<?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>205379</bug_id>
          
          <creation_ts>2019-12-17 23:49:56 -0800</creation_ts>
          <short_desc>Add remote media resource loader for the GPU process</short_desc>
          <delta_ts>2020-01-01 17:20:42 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>205631</dependson>
          <blocked>205123</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1599707</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-17 23:49:56 -0800</bug_when>
    <thetext>Add remote media resource loader</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599709</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-17 23:51:40 -0800</bug_when>
    <thetext>&lt;rdar://problem/58035178&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1599710</commentid>
    <comment_count>2</comment_count>
      <attachid>385946</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-18 00:15:42 -0800</bug_when>
    <thetext>Created attachment 385946
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600607</commentid>
    <comment_count>3</comment_count>
      <attachid>386173</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-19 18:43:49 -0800</bug_when>
    <thetext>Created attachment 386173
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600611</commentid>
    <comment_count>4</comment_count>
      <attachid>386174</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-19 19:56:30 -0800</bug_when>
    <thetext>Created attachment 386174
Rebased WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600618</commentid>
    <comment_count>5</comment_count>
      <attachid>386178</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-19 20:39:40 -0800</bug_when>
    <thetext>Created attachment 386178
Fix iOS build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600633</commentid>
    <comment_count>6</comment_count>
      <attachid>386178</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-19 22:13:15 -0800</bug_when>
    <thetext>Comment on attachment 386178
Fix iOS build failure

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

Looks good. Just a couple of minor bits:

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:52
&gt; +    RefPtr&lt;RemoteMediaResource&gt; remoteMediaResource = adoptRef(*new RemoteMediaResource(m_remoteMediaResourceManager, remoteMediaResourceIdentifier));

This can be `auto remoteMediaResource = ...`.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:30
&gt; +#include &quot;RemoteMediaPlayerProxy.h&quot;

This and some of the following includes may be able to be moved into the .cpp file and replaced with forward declarations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600661</commentid>
    <comment_count>7</comment_count>
      <attachid>386178</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-20 02:48:02 -0800</bug_when>
    <thetext>Comment on attachment 386178
Fix iOS build failure

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

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h:100
&gt; +    RemoteMediaResourceManager&amp; m_remoteMediaResourceManager;

Maybe we could get it from m_gpuConnectionToWebProcess.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:46
&gt; +    , m_mediaResourceManager(mediaResourceManager)

We could try to get it from either m_gpuConnectionToWebProcess or m_manager.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:319
&gt; +    return adoptRef(*new RemoteMediaResourceLoader(m_id, *this, m_mediaResourceManager));

Do we need to pass m_id given we pass this?
Also, maybe we do not need to pass m_mediaResourceManager to RemoteMediaResourceLoader and let it go through its RemoteMediaPlayerProxy.

Given RemoteMediaResourceLoader is ref counted, there is a possibility that RemoteMediaResourceLoader will outlive its RemoteMediaPlayerProxy.
Ideally we would make it a unique_ptr but this does not seem very easy to do.
The safest is probably to make RemoteMediaResourceLoader store a WeakPtr&lt;RemoteMediaPlayerProxy&gt; which should be fine as long as we are doing main thread only business.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:42
&gt;  class RemoteMediaPlayerProxy

final?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:51
&gt; +    IPC::Connection&amp; WebProcessConnection() { return m_webProcessConnection; }

s/WebProcessConnection/webProcessConnection.
Do we need to expose it? Maybe we could add a requestResource method to RemoteMediaPlayerProxy?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:52
&gt; +    // TODO: do we need to send message to the web process here?

I guess we should stop the load if not already done so.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:53
&gt; +    m_remoteMediaResourceManager.removeMediaResource(m_id);

I see that PlatformMediaResourceLoader is ThreadSafeRefCounted, although I do not think we are doing background thread processing.
Let&apos;s add an ASSERT(isMainThread()) here just in case.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:58
&gt; +    // TODO: notify the web process that the job is done?

Yes, we should probably have a way to cancel the load happening in Network Process if our client is no longer interested.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:69
&gt; +        m_client-&gt;responseReceived(*this, response, [weakThis = makeWeakPtr(*this)](ShouldContinue shouldContinue) mutable {

Since this is threadSafeRefCounted, you could do protectedThis = makeRef(*this) and not make it CanMakeWeakPtr.
Adding an ASSERT(isMainThread()) maybe.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:79
&gt; +        m_client-&gt;redirectReceived(*this, WTFMove(request), response, [](ResourceRequest&amp;&amp;) mutable { });

could use auto here and above (ShouldContinue).
No need for mutable

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:41
&gt; +    explicit RemoteMediaResource(RemoteMediaResourceManager&amp;, RemoteMediaResourceIdentifier);

No need for explicit, maybe we can remove CanMakeWeakPtr.
Please make this constructor private as well since we should always have adoptRef close to the new.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:44
&gt; +    bool ready() { return m_ready; }

const

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:49
&gt; +    bool didPassAccessControlCheck() const override;

final?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:41
&gt; +    , m_remoteMediaResourceManager(remoteMediaResourceManager)

See above comment about RemoteMediaResourceLoader being ref counted.
We are not sure it will not outlive m_remoteMediaPlayerProxy and/or m_remoteMediaResourceManager.
Maybe we can just have one m_remoteMediaPlayerProxy being a WeakPtr&lt;RemoteMediaPlayerProxy&gt;

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:55
&gt; +    m_remoteMediaPlayerProxy.WebProcessConnection().sendWithAsyncReply(Messages::RemoteMediaPlayerManager::RequestResource(m_mediaPlayerPrivateRemoteIdentifier, remoteMediaResourceIdentifier, request, options), [remoteMediaResource]() {

If using auto, you might need to copyRef here.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:56
&gt; +        if (remoteMediaResource)

You can remove the if check here.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:39
&gt; +class RemoteMediaResourceLoader

could be final.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:42
&gt; +    explicit RemoteMediaResourceLoader(MediaPlayerPrivateRemoteIdentifier, RemoteMediaPlayerProxy&amp;, RemoteMediaResourceManager&amp;);

No need for explicit.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:49
&gt; +void RemoteMediaResourceManager::addMediaResource(RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, RefPtr&lt;RemoteMediaResource&gt; remoteMediaResource)

Let&apos;s pass a Ref&lt;RemoteMediaResource&gt;&amp;&amp;

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:51
&gt; +    m_remoteMediaResources.add(remoteMediaResourceIdentifier, remoteMediaResource);

Let&apos;s add some ASSERT(!m_remoteMediaResources.contains(remoteMediaResourceIdentifier))
and do m_remoteMediaResources.add(remoteMediaResourceIdentifier, WTFMove(remoteMediaResource));

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:54
&gt; +void RemoteMediaResourceManager::removeMediaResource(RemoteMediaResourceIdentifier remoteMediaResourceIdentifier)

This method is only call in RemoteMediaResource destructor.
Given m_remoteMediaResources holds a ref, we might never free it until RemoteMediaResourceManager goes away.
Do we need m_remoteMediaResources to hold a Ref.
Could it just take a RemoteMediaResource*?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:56
&gt; +    m_remoteMediaResources.remove(remoteMediaResourceIdentifier);

Let&apos;s add some ASSERT(m_remoteMediaResources.contains(remoteMediaResourceIdentifier))

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:61
&gt; +    ASSERT(m_remoteMediaResources.contains(id) &amp;&amp; m_remoteMediaResources.get(id)-&gt;ready());

At some point, this will probably be called straight from IPC, right?
I think we should exit early in addition to ASSERTING.
Also, we should probably RELEASE_ASSERT or MESSAGE_CHECK that id is not 0, otherwise we might corrupt the map.

Ditto for other methods called from IPC.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:49
&gt; +    explicit RemoteMediaResourceManager();

No need for explicit

&gt; Source/WebKit/Sources.txt:31
&gt; +//GPUProcess/media/RemoteMediaResourceManager.cpp

Why are they commented out?
If this is a unify build issue, can we use @no-unify?

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:773
&gt; +{

ASSERT(!m_mediaResources.contains(remoteMediaResourceIdentifier)).
We could also check that remoteMediaResourceIdentifier is not null.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:776
&gt; +    m_mediaResources.add(remoteMediaResourceIdentifier, WTFMove(resource));

We are not removing any m_mediaResources entry here.
This is fine to do as a follow-up, maybe add a FIXME somewhere, the patch being already quite big.
One possibility would be for the RemoteMediaResourceProxy to remove the resource from the map when loadFailed/loadFinished.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:48
&gt; +    static std::unique_ptr&lt;MediaPlayerPrivateRemote&gt; create(WebCore::MediaPlayer* player, WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, MediaPlayerPrivateRemoteIdentifier identifier, RemoteMediaPlayerManager&amp; manager)

Would be nicer as a MediaPlayer&amp;.
We probably cannot have ref all the way up due to existing interfaces, but we should try to do so.
This is fine to do as a separate patch.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:53
&gt; +    explicit MediaPlayerPrivateRemote(WebCore::MediaPlayer*, WebCore::MediaPlayerEnums::MediaEngineIdentifier, MediaPlayerPrivateRemoteIdentifier, RemoteMediaPlayerManager&amp;);

Can we make it private?

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:57
&gt; +    WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier() const { return m_remoteEngineIdentifier; }

Given the patch is big, maybe all these WebCore:: changes could be split in its own patch.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:296
&gt; +    WebCore::MediaPlayer* m_player { nullptr };

Wonder whether it would be safer to have a WeakPtr&lt;MediaPlayer&gt;, not for this patch though.

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:302
&gt; +    HashMap&lt;RemoteMediaResourceIdentifier, RefPtr&lt;WebCore::PlatformMediaResource&gt;&gt; m_mediaResources;

HashMap of Ref&lt;&gt; would be better.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:249
&gt; +void RemoteMediaPlayerManager::requestResource(MediaPlayerPrivateRemoteIdentifier id, RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, WebCore::ResourceRequest&amp;&amp; request, WebCore::PlatformMediaResourceLoader::LoadOptions options, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

No need for WebCore:: here

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:251
&gt; +    if (auto player = m_players.get(id))

I think s/auto/auto&amp;/ is better.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:39
&gt; +    : m_gpuProcessConnection(WTFMove(connection))

s/m_gpuProcessConnection/m_connection otherwise we can think it is a GPUProcessConnection.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:51
&gt; +        completionHandler(WebCore::ShouldContinue::Yes);

Given we are waiting for GPU process response, we should we have RemoteMediaResourceManager::ResponseReceived give back a WebCore::ShouldContinue.
Then it would be up to the RemoteMediaResourceManager to return Yes automatically or actually ask its underling resource to say no.
In case the RemoteMediaResource is gone, we should also return No.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h:37
&gt; +class RemoteMediaResourceProxy : public WebCore::PlatformMediaResourceClient {

final.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h:51
&gt; +    void loadFinished(WebCore::PlatformMediaResource&amp;);

All of these private and final?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600662</commentid>
    <comment_count>8</comment_count>
      <attachid>386178</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-20 02:56:09 -0800</bug_when>
    <thetext>Comment on attachment 386178
Fix iOS build failure

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

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:84
&gt; +    return true;

Should we add a FIXME there to implement it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601379</commentid>
    <comment_count>9</comment_count>
      <attachid>386382</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-24 00:30:57 -0800</bug_when>
    <thetext>Created attachment 386382
Update the WIP patch based on comments from Youenn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601380</commentid>
    <comment_count>10</comment_count>
      <attachid>386382</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-24 00:31:45 -0800</bug_when>
    <thetext>Comment on attachment 386382
Update the WIP patch based on comments from Youenn.

Also rebase to the latest repo. Will publish the responses to the comments later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601675</commentid>
    <comment_count>11</comment_count>
      <attachid>386467</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-28 04:09:19 -0800</bug_when>
    <thetext>Created attachment 386467
Patch (fixed the audio playback issue)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601741</commentid>
    <comment_count>12</comment_count>
      <attachid>386483</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-28 23:02:22 -0800</bug_when>
    <thetext>Created attachment 386483
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601742</commentid>
    <comment_count>13</comment_count>
      <attachid>386178</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-28 23:02:51 -0800</bug_when>
    <thetext>Comment on attachment 386178
Fix iOS build failure

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

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h:100
&gt;&gt; +    RemoteMediaResourceManager&amp; m_remoteMediaResourceManager;
&gt; 
&gt; Maybe we could get it from m_gpuConnectionToWebProcess.

Right. Removed the reference.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:46
&gt;&gt; +    , m_mediaResourceManager(mediaResourceManager)
&gt; 
&gt; We could try to get it from either m_gpuConnectionToWebProcess or m_manager.

Right, fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:319
&gt;&gt; +    return adoptRef(*new RemoteMediaResourceLoader(m_id, *this, m_mediaResourceManager));
&gt; 
&gt; Do we need to pass m_id given we pass this?
&gt; Also, maybe we do not need to pass m_mediaResourceManager to RemoteMediaResourceLoader and let it go through its RemoteMediaPlayerProxy.
&gt; 
&gt; Given RemoteMediaResourceLoader is ref counted, there is a possibility that RemoteMediaResourceLoader will outlive its RemoteMediaPlayerProxy.
&gt; Ideally we would make it a unique_ptr but this does not seem very easy to do.
&gt; The safest is probably to make RemoteMediaResourceLoader store a WeakPtr&lt;RemoteMediaPlayerProxy&gt; which should be fine as long as we are doing main thread only business.

Added a function in RemoteMediaPlayerProxy to send messages to the web process on behalf of the RemoteMediaResourceLoader. So RemoteMediaResourceLoader does not need to have the m_id as well as the reference to the RemoteMediaResourceManager.

Right, added WeakPtr&lt;RemoteMediaPlayerProxy&gt; in RemoteMediaResourceLoader. RemoteMediaResourceLoader can outlive its RemoteMediaPlayerProxy. It replaces the role of MediaResourceLoader, which is owned by WebCoreNSURLSesssion. We will keep the same behavior.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:42
&gt;&gt;  class RemoteMediaPlayerProxy
&gt; 
&gt; final?

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:51
&gt;&gt; +    IPC::Connection&amp; WebProcessConnection() { return m_webProcessConnection; }
&gt; 
&gt; s/WebProcessConnection/webProcessConnection.
&gt; Do we need to expose it? Maybe we could add a requestResource method to RemoteMediaPlayerProxy?

Removed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:52
&gt;&gt; +    // TODO: do we need to send message to the web process here?
&gt; 
&gt; I guess we should stop the load if not already done so.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:53
&gt;&gt; +    m_remoteMediaResourceManager.removeMediaResource(m_id);
&gt; 
&gt; I see that PlatformMediaResourceLoader is ThreadSafeRefCounted, although I do not think we are doing background thread processing.
&gt; Let&apos;s add an ASSERT(isMainThread()) here just in case.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:58
&gt;&gt; +    // TODO: notify the web process that the job is done?
&gt; 
&gt; Yes, we should probably have a way to cancel the load happening in Network Process if our client is no longer interested.

Added a XPC message to implement that.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:69
&gt;&gt; +        m_client-&gt;responseReceived(*this, response, [weakThis = makeWeakPtr(*this)](ShouldContinue shouldContinue) mutable {
&gt; 
&gt; Since this is threadSafeRefCounted, you could do protectedThis = makeRef(*this) and not make it CanMakeWeakPtr.
&gt; Adding an ASSERT(isMainThread()) maybe.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:79
&gt;&gt; +        m_client-&gt;redirectReceived(*this, WTFMove(request), response, [](ResourceRequest&amp;&amp;) mutable { });
&gt; 
&gt; could use auto here and above (ShouldContinue).
&gt; No need for mutable

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:84
&gt;&gt; +    return true;
&gt; 
&gt; Should we add a FIXME there to implement it?

Implemented.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:41
&gt;&gt; +    explicit RemoteMediaResource(RemoteMediaResourceManager&amp;, RemoteMediaResourceIdentifier);
&gt; 
&gt; No need for explicit, maybe we can remove CanMakeWeakPtr.
&gt; Please make this constructor private as well since we should always have adoptRef close to the new.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:44
&gt;&gt; +    bool ready() { return m_ready; }
&gt; 
&gt; const

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:49
&gt;&gt; +    bool didPassAccessControlCheck() const override;
&gt; 
&gt; final?

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:41
&gt;&gt; +    , m_remoteMediaResourceManager(remoteMediaResourceManager)
&gt; 
&gt; See above comment about RemoteMediaResourceLoader being ref counted.
&gt; We are not sure it will not outlive m_remoteMediaPlayerProxy and/or m_remoteMediaResourceManager.
&gt; Maybe we can just have one m_remoteMediaPlayerProxy being a WeakPtr&lt;RemoteMediaPlayerProxy&gt;

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:52
&gt;&gt; +    RefPtr&lt;RemoteMediaResource&gt; remoteMediaResource = adoptRef(*new RemoteMediaResource(m_remoteMediaResourceManager, remoteMediaResourceIdentifier));
&gt; 
&gt; This can be `auto remoteMediaResource = ...`.

Moved this function to RemoteMediaPlayerProxy.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:55
&gt;&gt; +    m_remoteMediaPlayerProxy.WebProcessConnection().sendWithAsyncReply(Messages::RemoteMediaPlayerManager::RequestResource(m_mediaPlayerPrivateRemoteIdentifier, remoteMediaResourceIdentifier, request, options), [remoteMediaResource]() {
&gt; 
&gt; If using auto, you might need to copyRef here.

Ditto.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:56
&gt;&gt; +        if (remoteMediaResource)
&gt; 
&gt; You can remove the if check here.

Ditto.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:30
&gt;&gt; +#include &quot;RemoteMediaPlayerProxy.h&quot;
&gt; 
&gt; This and some of the following includes may be able to be moved into the .cpp file and replaced with forward declarations.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:39
&gt;&gt; +class RemoteMediaResourceLoader
&gt; 
&gt; could be final.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:42
&gt;&gt; +    explicit RemoteMediaResourceLoader(MediaPlayerPrivateRemoteIdentifier, RemoteMediaPlayerProxy&amp;, RemoteMediaResourceManager&amp;);
&gt; 
&gt; No need for explicit.

It needs to explicit after refactoring.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:49
&gt;&gt; +void RemoteMediaResourceManager::addMediaResource(RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, RefPtr&lt;RemoteMediaResource&gt; remoteMediaResource)
&gt; 
&gt; Let&apos;s pass a Ref&lt;RemoteMediaResource&gt;&amp;&amp;

Use raw pointer here after refactoring because the RemoteMediaResourceManager does not own RemoteMediaResource. In the destructor of RemoteMediaResource, it will remove itself from the RemoteMediaResourceManager.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:51
&gt;&gt; +    m_remoteMediaResources.add(remoteMediaResourceIdentifier, remoteMediaResource);
&gt; 
&gt; Let&apos;s add some ASSERT(!m_remoteMediaResources.contains(remoteMediaResourceIdentifier))
&gt; and do m_remoteMediaResources.add(remoteMediaResourceIdentifier, WTFMove(remoteMediaResource));

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:54
&gt;&gt; +void RemoteMediaResourceManager::removeMediaResource(RemoteMediaResourceIdentifier remoteMediaResourceIdentifier)
&gt; 
&gt; This method is only call in RemoteMediaResource destructor.
&gt; Given m_remoteMediaResources holds a ref, we might never free it until RemoteMediaResourceManager goes away.
&gt; Do we need m_remoteMediaResources to hold a Ref.
&gt; Could it just take a RemoteMediaResource*?

Right. Changed the implementation to use raw pointers of RemoteMediaResource.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:56
&gt;&gt; +    m_remoteMediaResources.remove(remoteMediaResourceIdentifier);
&gt; 
&gt; Let&apos;s add some ASSERT(m_remoteMediaResources.contains(remoteMediaResourceIdentifier))

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:61
&gt;&gt; +    ASSERT(m_remoteMediaResources.contains(id) &amp;&amp; m_remoteMediaResources.get(id)-&gt;ready());
&gt; 
&gt; At some point, this will probably be called straight from IPC, right?
&gt; I think we should exit early in addition to ASSERTING.
&gt; Also, we should probably RELEASE_ASSERT or MESSAGE_CHECK that id is not 0, otherwise we might corrupt the map.
&gt; 
&gt; Ditto for other methods called from IPC.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:49
&gt;&gt; +    explicit RemoteMediaResourceManager();
&gt; 
&gt; No need for explicit

Fixed.

&gt;&gt; Source/WebKit/Sources.txt:31
&gt;&gt; +//GPUProcess/media/RemoteMediaResourceManager.cpp
&gt; 
&gt; Why are they commented out?
&gt; If this is a unify build issue, can we use @no-unify?

Yes, we can. In this patch, these new files are included in the Xcode project. Will fix the unified build failure in webkit.org/b/205616.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:773
&gt;&gt; +{
&gt; 
&gt; ASSERT(!m_mediaResources.contains(remoteMediaResourceIdentifier)).
&gt; We could also check that remoteMediaResourceIdentifier is not null.

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:776
&gt;&gt; +    m_mediaResources.add(remoteMediaResourceIdentifier, WTFMove(resource));
&gt; 
&gt; We are not removing any m_mediaResources entry here.
&gt; This is fine to do as a follow-up, maybe add a FIXME somewhere, the patch being already quite big.
&gt; One possibility would be for the RemoteMediaResourceProxy to remove the resource from the map when loadFailed/loadFinished.

Implemented the mechanism to remove an entry when it is done.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:48
&gt;&gt; +    static std::unique_ptr&lt;MediaPlayerPrivateRemote&gt; create(WebCore::MediaPlayer* player, WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier, MediaPlayerPrivateRemoteIdentifier identifier, RemoteMediaPlayerManager&amp; manager)
&gt; 
&gt; Would be nicer as a MediaPlayer&amp;.
&gt; We probably cannot have ref all the way up due to existing interfaces, but we should try to do so.
&gt; This is fine to do as a separate patch.

Will take care of that in a separate patch.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:53
&gt;&gt; +    explicit MediaPlayerPrivateRemote(WebCore::MediaPlayer*, WebCore::MediaPlayerEnums::MediaEngineIdentifier, MediaPlayerPrivateRemoteIdentifier, RemoteMediaPlayerManager&amp;);
&gt; 
&gt; Can we make it private?

We cannot make it private due to the implementation of makeUnique.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:57
&gt;&gt; +    WebCore::MediaPlayerEnums::MediaEngineIdentifier remoteEngineIdentifier() const { return m_remoteEngineIdentifier; }
&gt; 
&gt; Given the patch is big, maybe all these WebCore:: changes could be split in its own patch.

Fixed in this patch.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:296
&gt;&gt; +    WebCore::MediaPlayer* m_player { nullptr };
&gt; 
&gt; Wonder whether it would be safer to have a WeakPtr&lt;MediaPlayer&gt;, not for this patch though.

Will take care of that in a separate patch.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:302
&gt;&gt; +    HashMap&lt;RemoteMediaResourceIdentifier, RefPtr&lt;WebCore::PlatformMediaResource&gt;&gt; m_mediaResources;
&gt; 
&gt; HashMap of Ref&lt;&gt; would be better.

We can make that change, but it will introduce extra complexity.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:249
&gt;&gt; +void RemoteMediaPlayerManager::requestResource(MediaPlayerPrivateRemoteIdentifier id, RemoteMediaResourceIdentifier remoteMediaResourceIdentifier, WebCore::ResourceRequest&amp;&amp; request, WebCore::PlatformMediaResourceLoader::LoadOptions options, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)
&gt; 
&gt; No need for WebCore:: here

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:251
&gt;&gt; +    if (auto player = m_players.get(id))
&gt; 
&gt; I think s/auto/auto&amp;/ is better.

s/auto/const auto&amp;/

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:39
&gt;&gt; +    : m_gpuProcessConnection(WTFMove(connection))
&gt; 
&gt; s/m_gpuProcessConnection/m_connection otherwise we can think it is a GPUProcessConnection.

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:51
&gt;&gt; +        completionHandler(WebCore::ShouldContinue::Yes);
&gt; 
&gt; Given we are waiting for GPU process response, we should we have RemoteMediaResourceManager::ResponseReceived give back a WebCore::ShouldContinue.
&gt; Then it would be up to the RemoteMediaResourceManager to return Yes automatically or actually ask its underling resource to say no.
&gt; In case the RemoteMediaResource is gone, we should also return No.

Added WebCore::PolicyChecker::ShouldContinue as the return value of the asynchronous ResponseReceived XPC message. Now the media resource client in the GPU Process can tell the media resource in the Web process whether the downloading should &quot;continue&quot;.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h:37
&gt;&gt; +class RemoteMediaResourceProxy : public WebCore::PlatformMediaResourceClient {
&gt; 
&gt; final.

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.h:51
&gt;&gt; +    void loadFinished(WebCore::PlatformMediaResource&amp;);
&gt; 
&gt; All of these private and final?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601748</commentid>
    <comment_count>14</comment_count>
      <attachid>386484</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-29 00:07:27 -0800</bug_when>
    <thetext>Created attachment 386484
Patch for review (fixed gtk and wpe build failures)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601754</commentid>
    <comment_count>15</comment_count>
      <attachid>386484</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-29 06:46:32 -0800</bug_when>
    <thetext>Comment on attachment 386484
Patch for review (fixed gtk and wpe build failures)

Please fix RemoteMediaResourceManager.cpp.
We also might not need to implement some WebCore interfaces, which would simplify the implementation, in this patch or as a follow-up.
I am thinking of RemoteMediaResourceProxy for instance.

Would it be possible add a test as well?
One possibility is to enable media loading from GPU Process for just this test.
Then make a page that is controlled by a service worker, the page then triggers a media load that is intercepted by the service worker.
The test would succeed as soon as the load is intercepted by the service worker.
You can look at LayoutTests/http/wpt/service-workers or LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker for service worker tests.

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

&gt; Source/WebCore/loader/MediaResourceLoader.cpp:175
&gt; +        m_client-&gt;responseReceived(*this, response, [this, protectedThis = makeRef(*this), completionHandler = completionHandlerCaller.release()] (PolicyChecker::ShouldContinue shouldContinue) mutable {

Could use auto

&gt; Source/WebCore/loader/PolicyChecker.h:75
&gt; +    using NewWindowPolicyDecisionFunction = CompletionHandler&lt;void(const ResourceRequest&amp;, WeakPtr&lt;FormState&gt;&amp;&amp;, const String&amp; frameName, const NavigationAction&amp;, PolicyChecker::ShouldContinue)&gt;;

s/PolicyChecker::ShouldContinue/ShouldContinue/

&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h:110
&gt; +} // namespace WebKit

This patch is already big so we could also have separated these refactoring in preliminary patches.
This makes reviews/rollback/diagnosis easier.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:73
&gt; +    if (m_client) {

Usually we do if(!m_client) return if the follow-up code is multi line.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:95
&gt; +    return true;

One-liner maybe?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:48
&gt; +    return m_remoteMediaPlayerProxy-&gt;requestResource(WTFMove(request), options);

How do we know that m_remoteMediaPlayerProxy is not null?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:44
&gt; +    RefPtr&lt;WebCore::PlatformMediaResource&gt; requestResource(WebCore::ResourceRequest&amp;&amp;, LoadOptions) final;

private?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:74
&gt; +    if (!m_remoteMediaResources.get(id)-&gt;ready()) {

We probably cannot guarantee that m_remoteMediaResources.get(id) returns non null given it is coming from IPC.
The easiest would be to do something like:
auto* resource = m_remoteMediaResources.get(id);
if (!resource || !resource-&gt;ready())
    return completionHandler();
...
Ditto for other methods called from IPC.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:79
&gt; +    RELEASE_ASSERT(m_remoteMediaResources.contains(id) &amp;&amp; m_remoteMediaResources.get(id)-&gt;ready());

This RELEASE_ASSERT is covered by the above if check.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:39
&gt; +#include &lt;wtf/WeakPtr.h&gt;

We do not need WeakPtr.
We could probably forward declare Connection, Decoder, DataReference, ResourceRequest and remove the corresponding includes.
We probably need in theory HashMap.h

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:52
&gt; +    void addMediaResource(RemoteMediaResourceIdentifier, RemoteMediaResource*);

Would probably be better as a RemoteMediaResource&amp;

&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:66
&gt; +    , m_mediaResourceLoader(player-&gt;createResourceLoader())

Since we are in MediaPlayerPrivateRemote, we could try to create our own resource loader that would not need to implement PlatformMediaResourceLoader.
Maybe not for this patch though.
It seems that we could even remove m_mediaResourceLoader and just do IPC to NetworkProcess from MediaPlayerPrivateRemote::requestResource

I also wonder whether we need RemoteMediaResourceProxy to implement WebCore::PlatformMediaResourceClient.
It seems this object does not surface at WebCore level.
That could further simplify the code.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:38
&gt; +RemoteMediaResourceProxy::RemoteMediaResourceProxy(Ref&lt;IPC::Connection&gt;&amp;&amp; connection, WebCore::PlatformMediaResource* platformMediaResource, RemoteMediaResourceIdentifier id)

We can probably take a PlatformMediaResource&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601770</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-29 09:44:14 -0800</bug_when>
    <thetext>Can you update the GPU process TestExpectations to enable audio-only tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601792</commentid>
    <comment_count>17</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-29 14:06:40 -0800</bug_when>
    <thetext>Sure, I will do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601831</commentid>
    <comment_count>18</comment_count>
      <attachid>386484</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-30 00:52:04 -0800</bug_when>
    <thetext>Comment on attachment 386484
Patch for review (fixed gtk and wpe build failures)

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

Reported a follow-up bug to track the refactoring to simplify the media resource loader, especially in the web process side.

About testing, as Eric commented, we can update the TestExpectations to enable some layout tests to verify the media resource loader. I also added two layout tests to verify the audio playback.

&gt;&gt; Source/WebCore/loader/MediaResourceLoader.cpp:175
&gt;&gt; +        m_client-&gt;responseReceived(*this, response, [this, protectedThis = makeRef(*this), completionHandler = completionHandlerCaller.release()] (PolicyChecker::ShouldContinue shouldContinue) mutable {
&gt; 
&gt; Could use auto

Fixed.

&gt;&gt; Source/WebCore/loader/PolicyChecker.h:75
&gt;&gt; +    using NewWindowPolicyDecisionFunction = CompletionHandler&lt;void(const ResourceRequest&amp;, WeakPtr&lt;FormState&gt;&amp;&amp;, const String&amp; frameName, const NavigationAction&amp;, PolicyChecker::ShouldContinue)&gt;;
&gt; 
&gt; s/PolicyChecker::ShouldContinue/ShouldContinue/

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h:110
&gt;&gt; +} // namespace WebKit
&gt; 
&gt; This patch is already big so we could also have separated these refactoring in preliminary patches.
&gt; This makes reviews/rollback/diagnosis easier.

Right. It was done in webkit.org/b/205631.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:73
&gt;&gt; +    if (m_client) {
&gt; 
&gt; Usually we do if(!m_client) return if the follow-up code is multi line.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:95
&gt;&gt; +    return true;
&gt; 
&gt; One-liner maybe?

return m_client ? m_client-&gt;shouldCacheResponse(*this, response) : true;

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.cpp:48
&gt;&gt; +    return m_remoteMediaPlayerProxy-&gt;requestResource(WTFMove(request), options);
&gt; 
&gt; How do we know that m_remoteMediaPlayerProxy is not null?

Added null pointer checking.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceLoader.h:44
&gt;&gt; +    RefPtr&lt;WebCore::PlatformMediaResource&gt; requestResource(WebCore::ResourceRequest&amp;&amp;, LoadOptions) final;
&gt; 
&gt; private?

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:74
&gt;&gt; +    if (!m_remoteMediaResources.get(id)-&gt;ready()) {
&gt; 
&gt; We probably cannot guarantee that m_remoteMediaResources.get(id) returns non null given it is coming from IPC.
&gt; The easiest would be to do something like:
&gt; auto* resource = m_remoteMediaResources.get(id);
&gt; if (!resource || !resource-&gt;ready())
&gt;     return completionHandler();
&gt; ...
&gt; Ditto for other methods called from IPC.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:79
&gt;&gt; +    RELEASE_ASSERT(m_remoteMediaResources.contains(id) &amp;&amp; m_remoteMediaResources.get(id)-&gt;ready());
&gt; 
&gt; This RELEASE_ASSERT is covered by the above if check.

Removed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:39
&gt;&gt; +#include &lt;wtf/WeakPtr.h&gt;
&gt; 
&gt; We do not need WeakPtr.
&gt; We could probably forward declare Connection, Decoder, DataReference, ResourceRequest and remove the corresponding includes.
&gt; We probably need in theory HashMap.h

Fixed, and removed unnecessary header files.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.h:52
&gt;&gt; +    void addMediaResource(RemoteMediaResourceIdentifier, RemoteMediaResource*);
&gt; 
&gt; Would probably be better as a RemoteMediaResource&amp;

Do you mean the function argument only? If yes, then fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:66
&gt;&gt; +    , m_mediaResourceLoader(player-&gt;createResourceLoader())
&gt; 
&gt; Since we are in MediaPlayerPrivateRemote, we could try to create our own resource loader that would not need to implement PlatformMediaResourceLoader.
&gt; Maybe not for this patch though.
&gt; It seems that we could even remove m_mediaResourceLoader and just do IPC to NetworkProcess from MediaPlayerPrivateRemote::requestResource
&gt; 
&gt; I also wonder whether we need RemoteMediaResourceProxy to implement WebCore::PlatformMediaResourceClient.
&gt; It seems this object does not surface at WebCore level.
&gt; That could further simplify the code.

Sound like a follow-up patch will be a better idea. Created webkit.org/b/205637 to track it.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:38
&gt;&gt; +RemoteMediaResourceProxy::RemoteMediaResourceProxy(Ref&lt;IPC::Connection&gt;&amp;&amp; connection, WebCore::PlatformMediaResource* platformMediaResource, RemoteMediaResourceIdentifier id)
&gt; 
&gt; We can probably take a PlatformMediaResource&amp;

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601832</commentid>
    <comment_count>19</comment_count>
      <attachid>386514</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-30 01:10:50 -0800</bug_when>
    <thetext>Created attachment 386514
Update the patch based on comments from Youenn and Eric</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601835</commentid>
    <comment_count>20</comment_count>
      <attachid>386516</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-30 01:18:15 -0800</bug_when>
    <thetext>Created attachment 386516
Update the patch based on comments from Youenn and Eric</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601874</commentid>
    <comment_count>21</comment_count>
      <attachid>386516</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-30 08:10:01 -0800</bug_when>
    <thetext>Comment on attachment 386516
Update the patch based on comments from Youenn and Eric

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

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:88
&gt; +        m_client-&gt;redirectReceived(*this, WTFMove(request), response, [](auto&amp;&amp;) { });

See comment below, we should probably pass a real completion handler here.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:53
&gt; +    bool shouldCacheResponse(const WebCore::ResourceResponse&amp;);

This does not seem to be used right now, should we remove the code from now?

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:67
&gt; +    bool m_ready;

/sm_ready;/m_ready { false };
And remove init in constructor.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:66
&gt; +    if (!resource || !resource-&gt;ready()) {

I am not exactly sure what the ready check is supposed to cover.
Instead of doing the ready check, could we simply add resource to m_remoteMediaResources in the asyncReply of m_webProcessConnection-&gt;sendWithAsyncReply(Messages::RemoteMediaPlayerManager::RequestResource?
Then the if (!resource) would cover both cases.
In practice, I do not see how ready() could be false in any of the  methods called from IPC.

&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:82
&gt; +    m_remoteMediaResources.get(id)-&gt;redirectReceived(WTFMove(request), response);

In theory, the call to redirectReceived could mutate the request.
We should then have completionHandler be a CompletionHandler&lt;void(ResourceRequest&amp;&amp;)&gt;
And we would write something like m_remoteMediaResources.get(id)-&gt;redirectReceived(WTFMove(request), response, WTFMove(completionHandler));

In the if (!resource) case, we would call completionHandler({ }) which would probably cancel the load in WebProcess side.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:59
&gt; +        completionHandler(WTFMove(request));

Then here we would not need to capture request since it would be given by the async reply.

&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:65
&gt; +    return true;

We should probably return false, or return what the GPU Process would tell us through sync IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601952</commentid>
    <comment_count>22</comment_count>
      <attachid>386516</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-30 19:56:35 -0800</bug_when>
    <thetext>Comment on attachment 386516
Update the patch based on comments from Youenn and Eric

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

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.cpp:88
&gt;&gt; +        m_client-&gt;redirectReceived(*this, WTFMove(request), response, [](auto&amp;&amp;) { });
&gt; 
&gt; See comment below, we should probably pass a real completion handler here.

Done.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:53
&gt;&gt; +    bool shouldCacheResponse(const WebCore::ResourceResponse&amp;);
&gt; 
&gt; This does not seem to be used right now, should we remove the code from now?

Removed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResource.h:67
&gt;&gt; +    bool m_ready;
&gt; 
&gt; /sm_ready;/m_ready { false };
&gt; And remove init in constructor.

Fixed.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:66
&gt;&gt; +    if (!resource || !resource-&gt;ready()) {
&gt; 
&gt; I am not exactly sure what the ready check is supposed to cover.
&gt; Instead of doing the ready check, could we simply add resource to m_remoteMediaResources in the asyncReply of m_webProcessConnection-&gt;sendWithAsyncReply(Messages::RemoteMediaPlayerManager::RequestResource?
&gt; Then the if (!resource) would cover both cases.
&gt; In practice, I do not see how ready() could be false in any of the  methods called from IPC.

RemoteMediaPlayerProxy::requestResource() needs to return a Ref&lt;PlatformMediaResource&gt; to the caller (WebCoreNSURLSessionDataTask._restart()) immediately, but since we use an async XPC message to implement the function, it needs to return a PlatformMediaResource which is not ready and set it to be ready later after it receives response of the XPC message.

To implement the logic you proposed, I think we have to modify the caller as well.

In RemoteMediaPlayerManager::requestResource(), if the resource request gets responses before calling completionHandler(), then some method of RemoteMediaResourceManager may be called before the resource is ready.

&gt;&gt; Source/WebKit/GPUProcess/media/RemoteMediaResourceManager.cpp:82
&gt;&gt; +    m_remoteMediaResources.get(id)-&gt;redirectReceived(WTFMove(request), response);
&gt; 
&gt; In theory, the call to redirectReceived could mutate the request.
&gt; We should then have completionHandler be a CompletionHandler&lt;void(ResourceRequest&amp;&amp;)&gt;
&gt; And we would write something like m_remoteMediaResources.get(id)-&gt;redirectReceived(WTFMove(request), response, WTFMove(completionHandler));
&gt; 
&gt; In the if (!resource) case, we would call completionHandler({ }) which would probably cancel the load in WebProcess side.

I thought we can &quot;complete&quot; the completion handler in the Web process without the involvement of the GPU process, but sounds like completing the callback in the GPU process is better.

I also added the RequestRequest as the return value of the RedirectReceived XPC message.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:59
&gt;&gt; +        completionHandler(WTFMove(request));
&gt; 
&gt; Then here we would not need to capture request since it would be given by the async reply.

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:65
&gt;&gt; +    return true;
&gt; 
&gt; We should probably return false, or return what the GPU Process would tell us through sync IPC.

Return false for now. Added a TODO in the comment.
Will take care of it on webkit.org/b/205637.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601954</commentid>
    <comment_count>23</comment_count>
      <attachid>386549</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-30 20:28:24 -0800</bug_when>
    <thetext>Created attachment 386549
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601992</commentid>
    <comment_count>24</comment_count>
      <attachid>386563</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-12-31 10:06:27 -0800</bug_when>
    <thetext>Created attachment 386563
Patch for landing (rebased)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602031</commentid>
    <comment_count>25</comment_count>
      <attachid>386563</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-31 18:27:09 -0800</bug_when>
    <thetext>Comment on attachment 386563
Patch for landing (rebased)

Clearing flags on attachment: 386563

Committed r253964: &lt;https://trac.webkit.org/changeset/253964&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385946</attachid>
            <date>2019-12-18 00:15:42 -0800</date>
            <delta_ts>2019-12-19 18:43:48 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-205379-20191218001541.patch</filename>
            <type>text/plain</type>
            <size>63624</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJiYzAxNjE5NDk0ZWI4ZmZj
NjY3ZDI2YmEyN2UyZGNhZDkzODhhZmMuLjcwYTAyNDk3NmU2NDdlNTQyYjBlOTY2OGVjMGZkZWNk
ZmQxNWQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMTktMTItMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVtb3RlIG1lZGlhIHJlc291
cmNlIGxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UpOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNyZWF0ZVJlc291
cmNlTG9hZGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmNwcC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFS
ZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6On5SZW1vdGVN
ZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6c3Rv
cCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmRpZFBhc3NBY2Nlc3ND
b250cm9sQ2hlY2sgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OnNob3VsZENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlOjpkYXRhU2VudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6
OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmFj
Y2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
Ojpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6
OnJlYWR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2V0UmVhZHkp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmguCisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjp+UmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6ZGF0YVNlbnQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpsb2FkRmFpbGVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6bG9hZEZpbmlzaGVk
KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIu
aDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZUxvYWRlci5tZXNzYWdlcy5pbjogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmguCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXJQcm94eS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHk6OlJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQ
cm94eTo6flJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eTo6cmVxdWVzdFJlc291cmNlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHku
aDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJv
eHk6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eS5tZXNzYWdlcy5pbjog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LmguCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6UmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlZGlyZWN0UmVjZWl2ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnNob3VsZENhY2hlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFT
ZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpkYXRhUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmFjY2Vz
c0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eTo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eTo6bG9hZEZpbmlzaGVkKToKKwogMjAxOS0xMi0xNiAgUGVyIEFybmUgVm9sbGFuICA8
cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBsb29rdXAgZXh0
ZW5zaW9uIHRvIGRpYWdub3N0aWNzIGRhZW1vbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4N2ZmZWU3ZGI4MGUx
MTRkMjI1MTEyNjYuLjdhZTJhZmRkYWMxZGVkNDg4MWU5MzI0YTVjODY1YzQyODQ0NTQzOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE3
LDYgKzE3LDcgQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJL
aXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9MZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdv
cmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIubWVzc2FnZXMuaW4KQEAgLTk5LDYgKzEw
MCw3IEBAICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIubWVzc2FnZXMuCiAkKFBST0pFQ1RfRElSKS9XZWJQcm9jZXNz
L0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAkKFBS
T0pFQ1RfRElSKS9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
bWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXJQcm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvV2ViUHJv
Y2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJP
SkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKaW5kZXggOTg2OWNmMTcxNjFmZWQ5NDQ5MmIyZWI2NzZhMzA5NjExN2NlNjUy
Zi4uYjMyM2U3MTk1ODU2NzMyNjU5ZTBiNDFhZGQyOWIyNzJlOTg4Y2U3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjAsNiArMTIw
LDEyIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyTWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eU1l
c3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1l
c3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1Jl
cGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIx
YjZhZjRkNzRhYjU4ZTUwNGE4MTIxODMuLjQxNzQ1ZGYxMDE0ZjVhYjUzMDBlMTJlZmY2MTc2NjY5
MWYzZTllZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksOCBA
QCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5IFwKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyIFwKKyAgICBS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkgXAogICAgIFJlbW90ZU9iamVjdFJlZ2lzdHJ5
IFwKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBcCiAgICAgUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGMzNDhlMzBkZThhMjllOTczZWFlYWE2YTliOGE4
ZTA5MzNhYTg4MjUuLjczMDg0ZDJkZmQ5MmU2OTY0NGNiZmM3MDkzNDliOTU0ODgwNjFhNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTk5LDYgKzk5LDggQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8vIFRPRE8KKwogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IGQ2Y2Q3MGMzZmNm
OTNhYmExNzkwYzhiOTMzZjUxNTlhZjY0MDRjNTYuLjhlNTU3YTcxMzU3ZjZmMzBhMjJiMmE1NzVh
YWIzMDIzOWQ1ZjI3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC05Nyw2ICs5
Nyw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA2YzJmODU2YjUzZmUxYWY1ZmRmOTI3NmM0
YWMzMzE0YWUyZmYxNDdlLi44OTgyYTBkYWU0ZmNmMTc0MjA1MmQ3MTJhMGU4YTYyNjZmNmU4ZGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtMzIxLDggKzMyMiw3IEBAIENh
Y2hlZFJlc291cmNlTG9hZGVyKiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNh
Y2hlZFJlc291cmNlTG9hZGVyKCkKIAogUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
cj4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRl
cigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKFdURk1vdmUobV93
ZWJQcm9jZXNzQ29ubmVjdGlvbikpKTsKIH0KIAogYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5
Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyopIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuaAppbmRleCBmMzllZDdmMTk4ODlhYTc2NmY4NWFmOTUxMmY3Y2RmYTc4OTI4
NTM5Li5kNjk0MDY0OTdiZGNhNGNkMDEyNDk4NDAzODBlMGUxMmQ2M2NjNjA2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKQEAgLTE3NCw2ICsxNzQsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi19Cit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkwMGI0
Nzg4YjZlMjc3MWVlYTAyYzhkNzgyNjFmYTUwODZkYTY2NwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAt
MCwwICsxLDEwNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK1JlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVJlc291cmNlOjpj
cmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2Up
OworfQorCitSZW1vdGVNZWRpYVJlc291cmNlOjpSZW1vdGVNZWRpYVJlc291cmNlKCkKKyAgICA6
IG1fcmVhZHkoZmFsc2UpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2U6On5SZW1vdGVNZWRp
YVJlc291cmNlKCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpzdG9wKCkKK3sK
KyAgICAKK30KKworYm9vbCBSZW1vdGVNZWRpYVJlc291cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJv
bENoZWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVzcG9u
c2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKFJlc291cmNl
UmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
Ym9vbCBSZW1vdGVNZWRpYVJlc291cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNlKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlOjpkYXRhU2VudCh1aW50NjRfdCwgdWludDY0X3QpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQoY29u
c3QgY2hhciosIGludDY0X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgUmVzb3Vy
Y2VFcnJvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlOjpsb2FkRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZpbmlzaGVk
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaCBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTY1YjI2MDNkZjNhNDAxNDg1M2ZlMjk5ZWQzZmMwYmJlMjgyOWFmMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiV2ViQ29yZS9QbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXIuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1l
ZGlhUmVzb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IGNyZWF0ZSgpOworICAg
IGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVzb3VyY2UoKTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJj
ZSgpOworCisgICAgYm9vbCByZWFkeSgpIHsgcmV0dXJuIG1fcmVhZHk7IH0KKyAgICB2b2lkIHNl
dFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CisKKyAgICAvLyBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UKKyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGRpZFBh
c3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQgcmVzcG9u
c2VSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpTaG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVkaXJl
Y3RSZWNlaXZlZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYpPiYmKTsKKyAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGF0YVNlbnQodWludDY0X3QsIHVpbnQ2
NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50NjRfdCk7CisgICAg
dm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpOworICAgIHZvaWQgbG9hZEZhaWxlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7
CisgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1fcmVhZHk7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyOGE1YjQwNzNiMzBkOTRjZTk1YTYzMGJmZDZjNWYz
Y2ExYjgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVt
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3ODNkZjVhMjc5ZWYyNDNkM2Q5ZWJlMzk0
NWJlODczYTJhMzg5ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTAsMCArMSwxMDMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5TWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihSZWY8SVBD
OjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9u
KFdURk1vdmUoY29ubmVjdGlvbikpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6
On5SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCkKK3sKK30KKworUmVmUHRyPFBsYXRmb3JtTWVk
aWFSZXNvdXJjZT4gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIExvYWRPcHRpb25zIG9wdGlvbnMpCit7CisgICAgYXV0
byBpZCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIG1f
cmVtb3RlTWVkaWFSZXNvdXJjZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3Vy
Y2U+KCkpOworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5OjpSZXF1ZXN0UmVzb3VyY2Uo
aWQsIHJlcXVlc3QsIG9wdGlvbnMpLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGlk
XSgpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBBU1NFUlQod2Vha1RoaXMtPm1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQp
KTsKKyAgICAgICAgd2Vha1RoaXMtPm1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+c2V0
UmVhZHkodHJ1ZSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gbV9yZW1vdGVNZWRpYVJlc291cmNl
cy5nZXQoaWQpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlc3BvbnNl
UmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2Vz
LmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkp
OworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVzcG9uc2VSZWNlaXZlZChy
ZXNwb25zZSwgeyB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpyZWRp
cmVjdFJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpkYXRhU2VudChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6ZGF0YVJlY2Vp
dmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmJiwgaW50MzJf
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXI6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpsb2FkRmFpbGVkKFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OmxvYWRG
aW5pc2hlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjAxZmQwNDAxZmIxZWViOWQxNmNmNDJiZmYxYTcxZDNjZDU3NmZkMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJj
ZUxvYWRlcgorICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgLCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcj4KKyAgICAsIHB1YmxpYyBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIgeworcHVibGljOgorICAgIGV4cGxp
Y2l0IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJik7Cisg
ICAgdmlydHVhbCB+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpOworCisgICAgUmVmUHRyPFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBMb2FkT3B0aW9ucykgZmluYWw7CisKK3ByaXZhdGU6CisgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXNwb25zZVJlY2Vp
dmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGF0YVNlbnQoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIHVpbnQ2NF90LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQo
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYmLCBpbnQzMl90KTsK
KyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZh
aWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyKTsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b247CisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFJlbW90ZU1lZGlhUmVzb3VyY2U+PiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzNlOTBmYzA1ZWY0NzJjYmIwMGZhZTA3Y2E1
MjVhMDA5ODZkZjM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVzcG9uc2VS
ZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIFJlZGlyZWN0UmVjZWl2ZWQoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAgRGF0
YVNlbnQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgdWludDY0X3Qg
Ynl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCisgICAgRGF0YVJlY2VpdmVk
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFN0cmluZyBkYXRhLCBp
bnQzMl90IGxlbmd0aCkKKyAgICBBY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJv
cikKKyAgICBMb2FkRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIg
aWQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9hZEZpbmlzaGVkKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQwMmVmNTEx
ODhmN2U4ZGJlMzk2YmE4YWNlMGZhZC4uMjU3YjAwZWI4NjA4ODE1YWM4OWI1NzI1YjVhYjIxNDkz
MDc5ZjE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0y
MjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQo
KToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dl
YktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCA2NTE4NGVkZGZmOTJlNTMwODhjZTk4MWExMjVkNmNlYTNkOGI5ZTYyLi44NDM1
YTQ0MTZhZDhlNGMwZWVjYTIxNzcwMjhkY2ViYTFkNzcyYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC02MzQsNSArNjM0LDcgQEAgR1BVUHJvY2Vzc1Byb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAogR1BVUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAKIC8vUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogLy9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAKKy8vUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNl
aXZlci5jcHAKKy8vUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5TWVzc2FnZVJlY2VpdmVy
LmNwcAogU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VSZWNlaXZlci5jcHAKIFRleHRDaGVj
a2luZ0NvbnRyb2xsZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGY0YWFmYWNiN2ZjODlmY2Yw
OTI1MjhlYmZhODQxMDY1NGFiZmFhMGMuLjJiY2U5NTY0MDkyOWZmZjRlNzZmZWI1OWY3ZjhhZDA4
ZjhhNTJjMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtNDA1LDcgKzQwNSwxOSBAQAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIg
LyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3Bl
Y3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMw
MDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OworCQkxRDMyRjg5QTIzQTg0NjgwMDBCMUVBNkEg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAgKi87IH07CisJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLzsgfTsKKwkJMUQzMkY4OUUyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmNwcCAqLzsgfTsKKwkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDRENzM3
MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIz
QTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi87
IH07CisJCTFENEQ3MzcyMjNBOUU1NjcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkYyM0E5REZBNTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3Mzcz
MjNBOUU1NkMwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDcz
NkUyM0E5REY4RjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eU1lc3Nh
Z2VzLmggKi87IH07CisJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUx
RjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBT
aGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCAqLzsgfTsKKwkJMURBNDA4OTcyM0E4MjUwQzAwNThDOTUwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4OTYyM0E4MjUwQzAwNThDOTUwIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eS5oICovOyB9OworCQkxREE0MDg5QzIzQTgyNjU4MDA1
OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQTQwODk5MjNBODI2NTgwMDU4Qzk1
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkuY3BwICovOyB9OworCQkxREE0MDg5
RjIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREE0MDg5RTIzQTgyNzc4
MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi87IH07CiAJCTFEQjAx
OTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBX
S1NoYXJlU2hlZXQuaCAqLzsgfTsKIAkJMURCMDE5NDQyMTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hh
cmVTaGVldC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi87IH07CiAJCTFG
MzM1QkMwMTg1Qjg0RjAwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzM1QkJG
MTg1Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjYxMSw5ICsy
NjIzLDI2IEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVj
dG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owog
CQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9y
VUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDMyRjg5
ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
MzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGOEE2
MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2QzIzQTlE
RjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2RTIzQTlERjhGMDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5TWVzc2FnZXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNzYWdlcy5oOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2RjIz
QTlERkE1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNzQyM0E5RUI1NTAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNzYWdlc1JlcGxpZXMuaDsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclBy
b3h5TWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENEQ3
Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyTWVzc2FnZXNS
ZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2Vz
UmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CiAJCTFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJ
RC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZVNoZWV0Q2FsbGJhY2tJ
RC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5
NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQw
ODk2MjNBODI1MEMwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODk5MjNBODI2NTgwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MURBNDA4OUEyM0E4MjY1ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94
eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODlFMjNBODI3NzgwMDU4
Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFy
ZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVTaGVldC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREUyREZBQzIzQTk1OUY4MDAzRTAxM0Eg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUYwMTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAv
KiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC00ODQ4LDcgKzQ4NzcsNyBAQAogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0
aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRp
dmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1
MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8q
IEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5n
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTExNUM3MTUxOTBGOEEyNTAw
RUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5h
bWUgPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKKwkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5X
ZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBjb20uYXBwbGUuV2ViS2l0
LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL2NvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRTEz
M0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFtZSA9IFdlYktpdC5p
Y25zOyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5pY25zOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9y
bVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUwOTUsNiArNTEyNCwxMSBAQAogCQkJCTA3OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICovLAogCQkJCTA3OTIzMTM0MjM5QjNCMEMwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAqLywKIAkJCQkwNzkyMzEzMzIzOUIzQjBD
MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAorCQkJ
CTFEQTQwODk5MjNBODI2NTgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJv
eHkuY3BwICovLAorCQkJCTFEQTQwODk2MjNBODI1MEMwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyUHJveHkuaCAqLywKKwkJCQkxREE0MDg5QTIzQTgyNjU4MDA1OEM5NTAgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5Lm1lc3NhZ2VzLmluICovLAorCQkJCTFEMzJG
ODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovLAor
CQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHku
aCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtNTEwNyw2ICs1MTQxLDEyIEBACiAJCQkJMDcyNUVGQUIyMzlBRTM4NDAwQTUzOEE5IC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTA3QkFG
MzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCAqLywKIAkJ
CQkwN0JBRjM1NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICov
LAorCQkJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNw
cCAqLywKKwkJCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZS5oICovLAorCQkJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oICovLAorCQkJCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5
NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTFEMzJGOEE2MjNBODYw
MTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluICovLAog
CQkJKTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05
MjU1LDYgKzkyOTUsMTIgQEAKIAkJCQkwNzkyMzE0NTIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTA3OTIz
MTQ2MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3Nh
Z2VzLmggKi8sCiAJCQkJMDc5MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQ0RDczNkIyM0E5REY1
NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyTWVzc2FnZXMuaCAqLywKKwkJCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTFENEQ3MzZG
MjNBOURGQTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAorCQkJCTFENEQ3MzZFMjNBOURGOEYwMDcxN0EyNSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNzYWdlcy5oICovLAorCQkJCTFENEQ3Mzc0MjNBOUVC
NTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaCAqLywKIAkJCQkxQUMxMzM4MzE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVn
aXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQzEzMzg0MTg1OTBDNDYwMEYzRUMw
NSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggKi8sCiAJCQkJMEY1OTQ3QTUxODdC
NTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKQEAgLTEwMTQ1LDYgKzEwMTkxLDEyIEBACiAJCQkJMDc5MjMxNEEyMzlDQkNCODAw
OTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMDc5MjMxNEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTQ4MjM5
Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVw
bGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBNDA4OTUyM0E4MEEzRTAwNThDOTUwIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENEQ3MzcxMjNB
OUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxREE0MDg5
NzIzQTgyNTBDMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5LmggaW4g
SGVhZGVycyAqLywKKwkJCQkxRDRENzM3MzIzQTlFNTZDMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMzJGODlD
MjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJl
bW90ZU9iamVjdEludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBB
RTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0x
MTgxMyw2ICsxMTg2NSwxMiBAQAogCQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1v
dGVMYXllclRyZWVWaWV3cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTQ5MjM5Q0JDQjgw
MDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDc5MjMxNEIyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTFEMzJGODlBMjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFEQTQwODlGMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFEQTQwODlDMjNBODI2NTgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0RDczNzIyM0E5RTU2
NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDMyRjg5RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1
OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCA1ODRhMWIzZGY2M2Q4
Mzc5ZmQ2ODliY2NmODdkODY3NTZkZWQ5MmM3Li43ZDJhMjNjN2RmODVkZDYwN2I4NGM3M2I3Yjk4
NDQ3NGQxNjVhMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdl
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZU1lc3NhZ2VzLmgiCkBAIC02Myw3ICs2NCwxMCBAQCB2b2lk
IEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpTdHJpbgogdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAg
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3Mo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRl
Y29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICAvLyBUT0RP
CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggOGI3NDI5OWU0YWE2Yjc2MzY4
MDcxNTg3NmYwZDRlNTc0MmE3MzJkNC4uYWY3MjI5MGZmOGYyMDU0MDU4MTgzMGIyNzEzZGI1YmU2
ZWFiN2UzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24uaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVu
Y2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRlOwogCi0gICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSBh
IHdlYiBwcm9jZXNzIHRvIHRoaXMgR1BVIHByb2Nlc3MuCisgICAgLy8gVGhlIGNvbm5lY3Rpb24g
ZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIEdQVSBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLmgKaW5kZXggODdlN2I4YmJhZWMzNTM0ZTdkZWZkNzgyMzg2MTAxNDMy
MTc1MzhjNy4uMjU2YjNjNTlmYmU0MmI2YmMxYTMwNjcxZTcwMGE1NzM0ZGRiOWY1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDgg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRl
IDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTMyLDQg
KzM0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBlbnVtIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXJUeXBlPjsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5kZXggNzk0YTM4ZmU0M2YzODE4
NDA1MDYyOGFjZjUxNDFlMmZmYTYwZmQxYy4uN2YzMWFkOTMyMjFmNTQ2NGVmOTZkODhmNzhjMDMw
MGM4MDgwNDI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCkBAIC01Niw3ICs1Niw3IEBA
IHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSBj
b25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZl
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2Rl
ciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQog
CiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbgppbmRleCAwM2RmMTIyYzgyOTg5YTAxN2FkY2Y2ZWFmZjFjZDQxOTZiNzk3Njc1Li4yN2U4
MWVhNmJlMjM3MDIxMTYzNDE1NWYxNDBkZThmN2RiZTkwZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjEsMTAgKzIxLDkgQEAKICMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUo
VklERU8pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0KICAgICBOZXR3b3JrU3RhdGVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50
OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKICAgICBS
ZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRl
IHN0YXRlKQogICAgIFZvbHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFjOGRmOWViY2RmNWI4YzAyMzJiNWNjOGM1OWZi
MWQ5OWRkNjk1YmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eTo6UmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlclByb3h5KCkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5Ojp+UmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5KCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyUHJveHk6OnJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQwYzJmN2M2YTExODIxNDg2
MGJjNTVlODEyZGYyNWY5OTMwZmY0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5LmgKQEAg
LTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSAiV2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eSA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlclByb3h5KCk7CisgICAgflJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXJQcm94eSgpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQ
cm9jZXNzKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVy
KSB7IGRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CisKK3ByaXZhdGU6
CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCByZXF1
ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRP
cHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYmIwYTkyNjhhOTIwMGRjM2MyNmIzYmYy
ODNmMDk4YWM0ZTJhMWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisK
K21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXJQcm94eSBOb3RSZWZDb3VudGVk
IHsKKyAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMp
IC0+ICgpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIwYWRjMTY4ODAzZmE3ZmE0YzliZjY4ZDc0OGJiMWIwMzMxYThlMmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5jcHAKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KCkKK3sKK30KKworUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KCkKK3sKK30K
KworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1MjE0
ZGIxNGNhYTgzN2NiNTRjMTBmZjQwOTg3MWY0MjdhZWI2YTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIldlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoKTsKKyAgICB+UmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5KCk7CisKKyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGll
bnQKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlOjpZZXMpOyB9CisgICAgdm9p
ZCByZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVl
c3QpKTsgfQorICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgeyByZXR1cm4g
dHJ1ZTsgfQorICAgIHZvaWQgZGF0YVNlbnQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
JiwgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIHsgfQorICAgIHZvaWQg
ZGF0YVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIq
LCBpbnQpIHsgfQorICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSB7IH0K
KyAgICB2b2lkIGxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIHsgfQorICAgIHZvaWQgbG9hZEZpbmlzaGVkKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpIHsgfQorCitwcml2YXRlOgorICAgIC8vIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CisgICAgLy8gUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgbV9pZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386173</attachid>
            <date>2019-12-19 18:43:49 -0800</date>
            <delta_ts>2019-12-19 19:56:29 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-205379-20191219184348.patch</filename>
            <type>text/plain</type>
            <size>97570</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJiYzAxNjE5NDk0ZWI4ZmZj
NjY3ZDI2YmEyN2UyZGNhZDkzODhhZmMuLjAxYjVjNDIxMTdmMjRiM2JiZmU4ZmE3ZDBmNTc3ZmE3
NTM5MjA0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEwIEBACisyMDE5LTEyLTE5ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNv
dXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIsIFJl
bW90ZU1lZGlhUmVzb3VyY2UsIGFuZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBpbiB0aGUg
R1BVIHByb2Nlc3MgZm9yIG1lZGlhLAorICAgICAgICBhbmQgUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5IGluIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgRGlzYWJsZSB1bmlmaWVkIGJ1aWxkIG9m
IGFsbCB0aGUgY3BwIGZpbGVzIGZvciBtZWRpYSBpbiBHUFUgYmVjYXVzZSBvZiBhIHN0cmFuZ2Ug
aXNzdWUgcmVsYXRlZCB0byBkdXBsaWNhdGVkICJGaXhlZCIga2V5d29yZCBkZWZpbml0aW9uLgor
ICAgICAgICBUaGlzIHBhdGNoIHVzZXMgWFBDIG1lc3NhZ2VzIHRvIHRyYW5zZmVyIG1lZGlhIGRh
dGEsIHdoaWNoIGlzIG5vdCBlZmZpY2llbnQuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpSZW1vdGVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlOjpyZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OnNldFJlYWR5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6YWRkTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWNjZXNzQ29udHJv
bENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVkaXJlY3RSZWNlaXZlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNl
bnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNl
aXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNz
Q29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Ojpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Ojpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOiBBZGRlZC4KKwogMjAxOS0xMi0xNiAgUGVyIEFybmUg
Vm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gSXNzdWUgbWFjaCBs
b29rdXAgZXh0ZW5zaW9uIHRvIGRpYWdub3N0aWNzIGRhZW1vbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4N2Zm
ZWU3ZGI4MGUxMTRkMjI1MTEyNjYuLjQzYWY3MGFlZTllMzNiZWE4YWRlMDBmNzNlZTNjYTcyMmYy
YjA0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QKQEAgLTE3LDYgKzE3LDcgQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQ
VVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5h
Z2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90
b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1Rf
RElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5
ODY5Y2YxNzE2MWZlZDk0NDkyYjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43YmU4OTQ5Y2NhZjIwOGQy
YTM1ZDJlYTBhYmNiMGEyZGU4MmU5MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyMCw2ICsxMjAsOSBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJN
ZXNzYWdlc1JlcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNl
aXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRkNzRh
YjU4ZTUwNGE4MTIxODMuLjNjMDc3ZTRmMTdjY2NmMWYzYjgyZGIyYTIwNGQxOTg2YzJmM2NmMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksNyBAQCBNRVNTQUdF
X1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAg
ICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYzM0OGUzMGRlOGEyOWU5NzNl
YWVhYTZhOWI4YThlMDkzM2FhODgyNS4uYTk3NzllNzJhOWMzYTllMDczYTMyYzE4YmZkYzMwYjAz
MWE2N2JiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
RXJyb3JzLmgiCkBAIC03NiwxMCArNzcsMTggQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWMKICAg
ICBDUkFTSCgpOwogfQogCitSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICgh
bV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKKyAgICAgICAgbV9yZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+KCk7CisK
KyAgICByZXR1cm4gKm1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7Cit9CisKIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5JiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSgpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5KQotICAgICAgICBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5ID0g
bWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMpOworICAgICAg
ICBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5ID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eT4oKnRoaXMsIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkp
OwogCiAgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogfQpAQCAt
ODksNiArOTgsOSBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlv
biwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAg
IHJldHVybjsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGJiZmMxNjgwYmJiMzBlMTk3ZGFmODAz
NjA1Y2ZjNGEyMTc5YWVmNDkuLmRhMTgxMDc1MjRjNDBlZDU3YTVhZTViZDNjN2ExN2RkOGQ0MDFj
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgR1BVUHJvY2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OworY2xh
c3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M+CkBAIC01Nyw2ICs1OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyhHUFVQcm9jZXNzJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKICAgICBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKIAogICAgIC8v
IElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CkBAIC02OCw2ICs3MCw3IEBAIHByaXZhdGU6CiAgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxHUFVQcm9jZXNzPiBt
X2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQ
cm9jZXNzSWRlbnRpZmllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggNjc1
OGY0YzkzMTJlNDQzYjcyYTY4MzdhZDljYTJjNjBjNWZkNjMyMy4uNTg3MzZlN2Y3NTcwYTkzNjM4
MzYzZGFkZjQ3ZTUzZTAxNDg4NmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0yOSw5ICsyOSwxMSBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUg
IkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBA
IC00MCw2ICs0Miw3IEBACiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZp
ZXIpIE1FU1NBR0VfQ0hFQ0tfQkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwg
Jm1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgeworCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRApAQCAtNTAsOCArNTMsOSBAQCBzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dn
ZXIoKQogfQogI2VuZGlmCiAKLVJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uKQorUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICAgICA6IG1f
Z3B1Q29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQorICAgICwgbV9yZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcihyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICNpZiAhUkVMRUFT
RV9MT0dfRElTQUJMRUQKICAgICAsIG1fbG9nSWRlbnRpZmllcihXVEY6OkxvZ2dlckhlbHBlcjo6
dW5pcXVlTG9nSWRlbnRpZmllcigpKQogI2VuZGlmCkBAIC02Nyw3ICs3MSw3IEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkCiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWQpOwogCiAgICAg
QVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQpKTsKLSAgICBtX3Byb3hpZXMuYWRkKGlkLCBt
YWtlVW5pcXVlPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZCwgbV9ncHVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmllcikpOworICAgIG1f
cHJveGllcy5hZGQoaWQsIG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMs
IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIGlkLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY29ubmVjdGlvbigpLCBlbmdpbmVJZGVudGlmaWVyKSk7CiAKICAgICBjb21wbGV0aW9u
SGFuZGxlcih0cnVlKTsKIH0KQEAgLTIyMiwxMSArMjI2LDExIEBAIGNvbnN0IExvZ2dlciYgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0CiAKIFdURkxvZ0NoYW5u
ZWwmIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gV2ViS2l0MkxvZ1dlYlJUQzsKKyAgICByZXR1cm4gV2ViS2l0MkxvZ01lZGlh
OwogfQogI2VuZGlmCiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FH
RV9DSEVDS19DT05URVhUSUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAppbmRleCBkNmNk
NzBjM2ZjZjkzYWJhMTc5MGM4YjkzM2Y1MTU5YWY2NDA0YzU2Li4yMDNjNzRiYmI3ZmYyOGNlOWFk
ZGEzNzIwNTZkM2Q0MmM0MTZiM2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAt
MzAsMTIgKzMwLDE0IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwor
Y2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
clByb3h5OwogCiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eQpAQCAtNDYsNyAr
NDgsNyBAQCBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eQogewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBleHBsaWNp
dCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiwgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImKTsKICAgICB+UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkoKTsKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M7IH0KQEAgLTkxLDEyICs5MywxMyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eT4+IG1fcHJveGllczsKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXImIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiAKICNpZiAhUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBjb25zdCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIH07CiAK
LX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRl
eCA2YzJmODU2YjUzZmUxYWY1ZmRmOTI3NmM0YWMzMzE0YWUyZmYxNDdlLi5kYmFlMWFlMmFiMGRh
ZDExN2NmMjI4ZDM2MGIzYjQwYTQ4ZTQ2OGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOCw3
ICsyOCw5IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
UGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAg
LTM3LDEwICszOSwxMSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLVJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHko
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwg
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIp
CitSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYW5hZ2VyLCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ciYgbWVkaWFSZXNvdXJjZU1hbmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCiAgICAgOiBtX2lkKGlk
KQogICAgICwgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAg
ICwgbV9tYW5hZ2VyKG1hbmFnZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VNYW5hZ2VyKG1lZGlh
UmVzb3VyY2VNYW5hZ2VyKQogICAgICwgbV9lbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZp
ZXIpCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21hbmFnZXIu
bG9nZ2VyKCkpCkBAIC0zMjEsOCArMzI0LDcgQEAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKQogCiBS
ZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIobV9pZCwgKnRoaXMsIG1fbWVkaWFSZXNvdXJjZU1hbmFnZXIp
KTsKIH0KIAogYm9vbCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpkb2VzSGF2ZUF0dHJpYnV0ZShj
b25zdCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBm
MzllZDdmMTk4ODlhYTc2NmY4NWFmOTUxMmY3Y2RmYTc4OTI4NTM5Li44ZDk5MmIwMDNhY2UxMjVm
MmQxOGU2YzI2OTkwZDkxMjZlYjM1ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI3LDM3ICsyNywz
MyBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJI
ZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLWNsYXNzIE1lZGlhUGxheWVyOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlh
UGxheWVyUHJveHkKLSAgICA6IHB1YmxpYyBNZWRpYVBsYXllckNsaWVudCB7CisgICAgOiBwdWJs
aWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHkmLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8
SVBDOjpDb25uZWN0aW9uPiYmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIpOworICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSgpCiAgICAgewogICAgIH0KIAorICAgIElQQzo6Q29ubmVjdGlvbiYgV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24oKSB7IHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uOyB9CisK
ICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJv
b2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZyk7CiAKLSAgICB2b2lkIGxv
YWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2
b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIAogICAgIHZvaWQgcGxheSgpOwpAQCAt
MTEwLDMxICsxMDYsMzEgQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2Ny
ZWVuKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1p
dHRlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvKCkgY29uc3Qg
ZmluYWw7Ci0gICAgTGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3Qg
ZmluYWw7CisgICAgV2ViQ29yZTo6TGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0
KCkgY29uc3QgZmluYWw7CiAgICAgZmxvYXQgbWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllclNldFNpemUoY29uc3QgSW50U2l6ZSYpIGZp
bmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJTZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1l
ZGlhUGxheWVyUGxheSgpIGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVt
ZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5
ZXJJc1BhdXNlZCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0xvb3Bpbmco
KSBjb25zdCBmaW5hbDsKLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNo
ZWRSZXNvdXJjZUxvYWRlcigpIGZpbmFsOwotICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKKyAgICBX
ZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxv
YWRlcigpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKICAgICBib29s
IGRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmLCBBdG9tU3RyaW5nKiA9IG51bGxw
dHIpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50
Q2FjaGUoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1lZGlhUGxheWVyTWVkaWFD
YWNoZURpcmVjdG9yeSgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFk
ZEF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxh
eWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2
b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFs
OwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2
YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhJbmJh
bmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92
ZVZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxh
eWVyRGlkQWRkQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwor
ICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNr
KFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXll
ckRpZFJlbW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsK
KyAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKFdlYkNvcmU6OkluYmFuZFRl
eHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVmlk
ZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwogCi0gICAgdm9pZCB0
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVjdCYpIGZpbmFs
OworICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykgJiYgRU5B
QkxFKEFWRl9DQVBUSU9OUykKLSAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPj4g
b3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCkgZmluYWw7CisgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3Jl
OjpQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291cmNlcygpIGZpbmFsOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTQyLDcgKzEzOCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtZWRpYVBsYXllckdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiwgVmVjdG9y
PENvb2tpZT4mKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCBtZWRpYVBsYXllckhh
bmRsZVBsYXliYWNrQ29tbWFuZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6UmVtb3RlQ29udHJvbENv
bW1hbmRUeXBlKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVySGFuZGxlUGxheWJhY2tDb21t
YW5kKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFTZXNzaW9uOjpSZW1vdGVDb250cm9sQ29tbWFuZFR5
cGUpIGZpbmFsOwogCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyU291cmNlQXBwbGljYXRpb25JZGVu
dGlmaWVyKCkgY29uc3QgZmluYWw7CiAKQEAgLTE1MCw3ICsxNDYsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdCBmaW5hbDsKIAogICAg
IGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFsOwot
ICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbWVkaWFQbGF5ZXJGdWxs
c2NyZWVuTW9kZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUgbWVkaWFQbGF5ZXJGdWxsc2NyZWVuTW9kZSgpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBjb25z
dCBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBtZWRpYVBsYXllclByZWZlcnJlZEF1ZGlvQ2hh
cmFjdGVyaXN0aWNzKCkgY29uc3QgZmluYWw7CiAKQEAgLTE2NCw5ICsxNjAsMTAgQEAgcHJpdmF0
ZToKIAogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uOwotICAgIFJlZlB0cjxN
ZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyPiBt
X3BsYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOwot
ICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX2VuZ2luZUlkZW50
aWZpZXI7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fbWVkaWFSZXNvdXJjZU1h
bmFnZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIG1fZW5naW5lSWRlbnRpZmllcjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+
IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElT
QUJMRUQKQEAgLTE3NCw2ICsxNzEsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi19Cit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI0NDc3
YmRiZGJlMzc3ZDRlNTExMjFlNTY2Yzk1ZDVhNjczMGU0MAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAt
MCwwICsxLDExOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXNwb25zZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK1JlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVJlc291
cmNlOjpjcmVhdGUoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlKHJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLCBpZCkpOworfQorCitSZW1vdGVNZWRpYVJlc291cmNlOjpSZW1vdGVNZWRpYVJlc291
cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ciwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCisgICAgOiBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQorICAgICwgbV9pZChp
ZCkKKyAgICAsIG1fcmVhZHkoZmFsc2UpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2U6On5S
ZW1vdGVNZWRpYVJlc291cmNlKCkKK3sKKyAgICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHRvIHNlbmQg
bWVzc2FnZSB0byB0aGUgd2ViIHByb2Nlc3MgaGVyZT8KKyAgICBtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLnJlbW92ZU1lZGlhUmVzb3VyY2UobV9pZCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFSZXNvdXJjZTo6c3RvcCgpCit7CisgICAgLy8gVE9ETzogbm90aWZ5IHRoZSB3ZWIgcHJvY2Vz
cyB0aGF0IHRoZSBqb2IgaXMgZG9uZT8KK30KKworYm9vbCBSZW1vdGVNZWRpYVJlc291cmNlOjpk
aWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpIHsKKyAgICAgICAg
bV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbd2Vha1RoaXMgPSBt
YWtlV2Vha1B0cigqdGhpcyldKFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBTaG91bGRDb250aW51ZTo6Tm8g
JiYgd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnN0b3AoKTsKKyAgICAgICAg
fSk7CisgICAgfQorfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlZGlyZWN0UmVjZWl2
ZWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVkaXJlY3RS
ZWNlaXZlZCgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgcmVzcG9uc2UsIFtdKFJlc291cmNlUmVx
dWVzdCYmKSBtdXRhYmxlIHsgfSk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6c2hv
dWxkQ2FjaGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKK3sKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhU2VudCh1aW50NjRfdCBi
eXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKK3sKKyAgICBpZiAobV9jbGll
bnQpCisgICAgICAgIG1fY2xpZW50LT5kYXRhU2VudCgqdGhpcywgYnl0ZXNTZW50LCB0b3RhbEJ5
dGVzVG9CZVNlbnQpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFSZWNlaXZl
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQ2NF90IGxlbmd0aCkKK3sKKyAgICBpZiAobV9jbGllbnQp
CisgICAgICAgIG1fY2xpZW50LT5kYXRhUmVjZWl2ZWQoKnRoaXMsIGRhdGEsIGxlbmd0aCk7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAg
bV9jbGllbnQtPmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCgqdGhpcywgZXJyb3IpOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGYWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bG9hZEZhaWxl
ZCgqdGhpcywgZXJyb3IpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGaW5p
c2hlZCgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bG9hZEZpbmlz
aGVkKCp0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTQ1YWU5MjQ3YzY2OTM0ODExYjFjNWNlZjViNWI0ZTE5YTJjMmUyYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlci5oIgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKKworY2xhc3MgUmVtb3RlTWVkaWFS
ZXNvdXJjZSA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVNZWRpYVJlc291cmNlPiwgcHVi
bGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFJlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBjcmVhdGUoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgZXhwbGljaXQgUmVtb3Rl
TWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYsIFJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJjZSgpOworCisgICAgYm9v
bCByZWFkeSgpIHsgcmV0dXJuIG1fcmVhZHk7IH0KKyAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVh
ZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CisKKyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2UK
KyAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKyAgICBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9s
Q2hlY2soKSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVk
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRhdGFTZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7Cisg
ICAgdm9pZCBkYXRhUmVjZWl2ZWQoY29uc3QgY2hhciosIGludDY0X3QpOworICAgIHZvaWQgYWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAg
ICB2b2lkIGxvYWRGYWlsZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZv
aWQgbG9hZEZpbmlzaGVkKCk7CisKK3ByaXZhdGU6CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXImIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CisgICAgUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgbV9pZDsKKyAgICBib29sIG1fcmVhZHk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNjcyOGE1YjQwNzNiMzBkOTRjZTk1YTYzMGJmZDZjNWYzY2ExYjgxZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVu
dGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlPjsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmFjMjQwNmYyNmMxNjM2YTc3ZGU4NjVlMzkxYzhiYzI2MzY3NGYzZmYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBtZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5LCBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgOiBt
X21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIobWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllcikKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShyZW1vdGVNZWRp
YVBsYXllclByb3h5KQorICAgICwgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihyZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcikKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6
flJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKQoreworfQorCitSZWZQdHI8UGxhdGZvcm1NZWRp
YVJlc291cmNlPiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgTG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBhdXRv
IHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgUmVmUHRyPFJlbW90ZU1lZGlhUmVzb3VyY2U+IHJlbW90
ZU1lZGlhUmVzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2UobV9yZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlciwgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpKTsK
KyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmFkZE1lZGlhUmVzb3VyY2UocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIHJlbW90ZU1lZGlhUmVzb3VyY2UpOworCisgICAgbV9y
ZW1vdGVNZWRpYVBsYXllclByb3h5LldlYlByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJlcXVlc3RSZXNvdXJj
ZShtX21lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIHJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSwgW3dlYWtSZW1vdGVNZWRpYVJlc291cmNl
ID0gbWFrZVdlYWtQdHIoKnJlbW90ZU1lZGlhUmVzb3VyY2UpXSgpIHsKKyAgICAgICAgaWYgKCF3
ZWFrUmVtb3RlTWVkaWFSZXNvdXJjZSkKKyAgICAgICAgICAgIHdlYWtSZW1vdGVNZWRpYVJlc291
cmNlLT5zZXRSZWFkeSh0cnVlKTsKKyAgICB9KTsKKworICAgIHJldHVybiByZW1vdGVNZWRpYVJl
c291cmNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNjk4Zjg2NTVmM2UyNWU1MjBjZDI4MDBmODg1Nzk4ZDY0OGQz
NTY2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2U7
CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIKKyAgICA6IHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyPgorICAgICwgcHVibGljIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImKTsK
KyAgICB2aXJ0dWFsIH5SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCk7CisKKyAgICBSZWZQdHI8
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIExvYWRPcHRpb25zKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1fbWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5JiBtX3JlbW90ZU1lZGlh
UGxheWVyUHJveHk7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTZmNTUxMmY1ZTAwYjAzMDYz
YjY3MDVlNDMwNWY1YzUyNDA2MWU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsx
LDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlc291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcigpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKQoreworfQorCit2b2lkIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8UmVtb3RlTWVkaWFS
ZXNvdXJjZT4gcmVtb3RlTWVkaWFSZXNvdXJjZSkKK3sKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VzLmFkZChyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVkaWFSZXNvdXJj
ZSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVz
b3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIpCit7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5yZW1vdmUocmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjpyZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5
KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVzcG9uc2VSZWNlaXZl
ZChyZXNwb25zZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciBpZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhp
ZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3Jl
bW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlZGlyZWN0UmVjZWl2ZWQoV1RGTW92ZShyZXF1
ZXN0KSwgcmVzcG9uc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2Vu
dCkKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYg
bV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmdldChpZCktPmRhdGFTZW50KGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVT
ZW50KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVJlY2VpdmVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmJiBkYXRhLCBp
bnQzMl90IGxlbmd0aCkKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250
YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAg
ICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmRhdGFSZWNlaXZlZCgoY29uc3QgY2hh
ciopZGF0YS5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIEFTU0VS
VChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVz
b3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0
KGlkKS0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJUKG1fcmVt
b3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Z2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5s
b2FkRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
bG9hZEZpbmlzaGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQoreworICAgIEFT
U0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Z2V0KGlkKS0+bG9hZEZpbmlzaGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwZTE0YTFmNzk5NTIyNGE4
ZDNiZTlkNzNhZDgyNWNlMzg1Y2YxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEs
NzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIK
KyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90
ZU1lZGlhUmVzb3VyY2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyCisgICAg
OiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7
CisgICAgdmlydHVhbCB+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKworICAgIHZvaWQg
YWRkTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFJl
bW90ZU1lZGlhUmVzb3VyY2U+KTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhUmVzb3VyY2UoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgdWludDY0X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYsIGludDMyX3QpOworICAgIHZvaWQg
YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmFpbGVkKFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7
CisgICAgdm9pZCBsb2FkRmluaXNoZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwor
CisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFJlbW90
ZU1lZGlhUmVzb3VyY2U+PiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFiZTdjMTE4MmZmN2YyYTBiZDQ5Y2UwMDdkMzJjNWVlM2ZjYjVh
ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlc3BvbnNlUmVjZWl2ZWQo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSkgLT4gKCkgQXN5bmMKKyAgICBSZWRpcmVjdFJlY2VpdmVkKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAo
KSBBc3luYworICAgIERhdGFTZW50KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgaWQsIHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQor
ICAgIERhdGFSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlk
LCBTdHJpbmcgZGF0YSwgaW50MzJfdCBsZW5ndGgpCisgICAgQWNjZXNzQ29udHJvbENoZWNrRmFp
bGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJl
c291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9hZEZhaWxlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIExv
YWRGaW5pc2hlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggMjk2ZGU4NmU2MWUyOTJmN2Vi
M2Y0NDg2NWM1NzY0ZDliNDMwMzcyZi4uZTAzMjM3ZTFmZjZmZjQ3MGIyYTVjMjdlMGUxYmM0MDY4
NmVlMjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTYyLDYgKzYyLDcgQEAgZXh0
ZXJuICJDIiB7CiAgICAgTShMYXlvdXQpIFwKICAgICBNKExvYWRpbmcpIFwKICAgICBNKExvY2Fs
U3RvcmFnZURhdGFiYXNlVHJhY2tlcikgXAorICAgIE0oTWVkaWEpIFwKICAgICBNKE1vdXNlSGFu
ZGxpbmcpIFwKICAgICBNKE5ldHdvcmspIFwKICAgICBNKE5ldHdvcmtDYWNoZSkgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQwMmVmNTEx
ODhmN2U4ZGJlMzk2YmE4YWNlMGZhZC4uMjU3YjAwZWI4NjA4ODE1YWM4OWI1NzI1YjVhYjIxNDkz
MDc5ZjE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0y
MjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQo
KToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dl
YktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4
IDU0MjRlNWRmYmIxNTIwMTBiMGIzMmQ2ZjVlYTZkNTM1ODkxNGU1NmIuLjJjYTUxMjc3NzEyOWUz
MWMwMTc1YTYwYmZhZjlmMmQxMGFlYjAyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291
cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsNiArMjQsMTEg
QEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAK
Ky8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorLy9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5jcHAKIAogTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9u
TWFuYWdlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBA
IC01MDAsOCArNTA1LDkgQEAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9NZWRpYURldmljZVNhbmRi
b3hFeHRlbnNpb25zLmNwcAogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcAotV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAotV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisvL1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogCiBXZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDY1MTg0ZWRkZmY5
MmU1MzA4OGNlOTgxYTEyNWQ2Y2VhM2Q4YjllNjIuLmQ0OTQyZjc0Njk5MTkwMWJhZTZkN2YyMjEz
ZDY5M2M2OTc3YzNhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU5LDggKzU5LDYgQEAg
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKIEdQVVByb2Nlc3Mv
aW9zL0dQVVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KLUdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKLUdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL0VudHJ5UG9p
bnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9j
Zi9Nb2R1bGVDRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGY0YWFmYWNiN2ZjODlmY2YwOTI1MjhlYmZhODQxMDY1NGFiZmFhMGMu
LjdlODdhNjFmMTViYjc3ODVjNjI3MGU3MDRmMWNiODY1ZmFmODViZjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA1LDcgKzQwNSwy
MCBAQAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNB
OEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsg
fTsKIAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICov
OyB9OworCQkxRDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMy
Rjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi87IH07
CisJCTFEMzJGODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4
OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi87IH07
CisJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
NzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHku
Y3BwICovOyB9OworCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAg
Ki87IH07CisJCTFEM0FCMDUyMjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJG
ODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLzsgfTsKKwkJ
MUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzQUIwNEUy
M0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9Owor
CQkxRDNBQjA1NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4
OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJMUQzQUIwNTUyM0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzky
MzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLzsg
fTsKKwkJMUQzQUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzky
MzEzMDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3MzcxMjNBOUU1NjIw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkx
RDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyog
U2hhcmVTaGVldENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJh
Y2tJRC5oICovOyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5oICovOyB9OwogCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5
NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjEx
Q0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFy
ZVNoZWV0Lm1tICovOyB9OwogCQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1
Z0luTG9hZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTI2MTEsOSArMjYyNCwyMiBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZD
MkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYklu
c3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdE
ODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZB
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUQy
M0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDREMjNBQjAw
NzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUQzQUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkx
RDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRE
NzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxi
YWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVTaGVldENhbGxi
YWNrSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBNDA4OTQyM0E4MEEzRTAw
NThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBX
S1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjEx
Q0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
RTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQ
cm9jZXNzUGx1Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYw
MTgxNkExODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5
Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NDgsNyArNDg3NCw3IEBACiAJCURGNThDNjMx
MTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVs
RXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRp
dmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1
RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsg
cGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNi
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMTE1QzcxNTE5MEY4QTI1
MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
bmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0Lmlj
bnMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFn
ZS5pY25zOyBuYW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAv
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAv
KiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA5NSw2ICs1MTIxLDggQEAKIAkJCQkwNzkyMzEzMDIz
OUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQkw
NzkyMzEzNDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8s
CiAJCQkJMDc5MjMxMzMyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ci5tZXNzYWdlcy5pbiAqLywKKwkJCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLywKKwkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlh
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUxMDcsNiArNTEzNSwxNCBAQAogCQkJ
CTA3MjVFRkFCMjM5QUUzODQwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAgKi8sCiAJCQkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8q
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAqLywKKwkJCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVB
NkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8sCisJCQkJMUQzMkY4OTgyM0E4NDY1QTAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAqLywKKwkJCQkxREUyREZBQzIzQTk1OUY4
MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQkxRDNB
QjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8s
CisJCQkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCAqLywKKwkJCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovLAorCQkJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2
QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJ
CQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTI1NSw2ICs5
MjkxLDkgQEAKIAkJCQkwNzkyMzE0NTIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTA3OTIzMTQ2MjM5Q0JD
QjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8s
CiAJCQkJMDc5MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJ
CQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlcy5oICovLAorCQkJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgzMTg1OTBD
NDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CiAJCQkJMUFDMTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVz
c2FnZXMuaCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAxNDUsNiArMTAxODQs
MTAgQEAKIAkJCQkwNzkyMzE0QTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0QzIzOUNC
Q0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDc5MjMxNDgyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
REE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBp
biBIZWFkZXJzICovLAorCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDRENzM3NjIz
QTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcxMTYzRjI0
NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTc1NSw2ICsxMTc5OCw3IEBACiAJCQkJ
Mjk4NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclBy
b3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0OUQ5MERBMjFGREMz
MEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gaW4gU291cmNlcyAq
LywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyogTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEyQjZBNzEwMEY0OTNGRCAv
KiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODIyMTJC
NkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3N0EyMTJCNkE2MTAwRjQ5M0ZEIC8qIE1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTEx
ODExLDggKzExODU1LDE2IEBACiAJCQkJMkQ3MkExRkEyMTJCRjQ2RTAwNTE3QTIwIC8qIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5
RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGQjQyMThBNkU5RTAwMjVBODhEIC8q
IFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTYyM0FD
MDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUwMjNBQzAx
QTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIw
NTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYwIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTQy
M0FDMDFCNzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDMyRjg5
RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdp
c3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1
MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90
ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcAppbmRleCA1ODRhMWIzZGY2M2Q4Mzc5ZmQ2ODliY2NmODdkODY3NTZkZWQ5MmM3Li40MmU3
M2MzY2UzZDAzNDczMjU4YmE2NWRiN2UyZTY5YTI5MDBmZmNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNjMs
NyArNjMsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbgogdm9pZCBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
c3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2VpdmVNZXNzYWdl
RnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmgKaW5kZXggOGI3NDI5OWU0YWE2Yjc2MzY4MDcxNTg3NmYwZDRlNTc0MmE3MzJk
NC4uYWY3MjI5MGZmOGYyMDU0MDU4MTgzMGIyNzEzZGI1YmU2ZWFiN2UzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAt
NTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJy
aWRlOwogCi0gICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSBhIHdlYiBwcm9jZXNzIHRvIHRoaXMg
R1BVIHByb2Nlc3MuCisgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3Mg
dG8gdGhlIEdQVSBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCAwOTAzYjMyMzcwMjcy
ZTc4MWE0MDNkZjljNGY5NDIxMjg0Y2QxODE3Li5hNmMwNzM2MTM4ZjM1N2QwZDdjZGNlYWUyZjEx
OWI1YTIwOWUyMzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC00MSwxMSAr
NDEsMTIgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlh
UGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBl
bmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXll
cklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlcikKICAgICA6IG1f
cGxheWVyKHBsYXllcikKKyAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRlcihwbGF5ZXItPmNyZWF0
ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAgICwgbV9pZChwbGF5ZXJJ
ZGVudGlmaWVyKQpAQCAtNzg1LDYgKzc4NiwxMyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZTo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoYm9vbCBwYXVzZWQpCiAgICAgbV9wbGF5ZXItPnBs
YXliYWNrU3RhdGVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpyZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9u
cykKK3sKKyAgICBhdXRvIHJlc291cmNlID0gbV9tZWRpYVJlc291cmNlTG9hZGVyLT5yZXF1ZXN0
UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgcmVzb3VyY2UtPnNldENs
aWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eT4obV9tYW5hZ2VyLmdwdVBy
b2Nlc3NDb25uZWN0aW9uKCksIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKSk7CisgICAg
bV9tZWRpYVJlc291cmNlcy5hZGQocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1v
dmUocmVzb3VyY2UpKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogV1RGTG9nQ2hh
bm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IGIwMzIxMjViODk2ODkxMzI0YWU2MmQ3OTI3YmI1
YjdjMDhkMWU5MGEuLmMyMTgzNDViOTNmYWZlMmFkNmQ4MGJkM2I5NTdkMDExZjhhZTY1MGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZh
dGUuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlh
VGltZS5oPgpAQCAtMzcsMjIgKzM5LDIyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+Ci0gICAgLCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50
ZXJmYWNlCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcml2YXRlIExvZ2dlckhl
bHBlcgogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImIG1hbmFnZXIpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVy
LCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3Rl
RW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgewogICAgICAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwgbWFuYWdlcik7CiAgICAgfQogCi0gICAg
ZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImKTsKKyAgICBleHBsaWNpdCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIHZpcnR1YWwg
fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBt
X2ludmFsaWQgPSB0cnVlOyB9Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVu
Z2luZUlkZW50aWZpZXI7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmVtb3RlRW5naW5lSWRlbnRpZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgcGxheWVySXRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAg
IHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpOZXR3
b3JrU3RhdGUpOwpAQCAtNjQsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByYXRlQ2hhbmdl
ZChkb3VibGUpOwogICAgIHZvaWQgcGxheWJhY2tTdGF0ZUNoYW5nZWQoYm9vbCk7CiAKKyAgICB2
b2lkIHJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
cjo6TG9hZE9wdGlvbnMpOworCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgY29uc3Qg
TG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAqbV9sb2dnZXI7IH0KICAgICBj
b25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlIjsgfQpAQCAtNzIsMTQgKzc2LDE0IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiBwcml2YXRlOgotICAgIHZvaWQgbG9hZChjb25zdCBVUkwmLCBjb25zdCBDb250ZW50VHlw
ZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJv
b2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNo
LCBib29sIHByZXBhcmUpIGZpbmFsOworICAgIHZvaWQgbG9hZChjb25zdCBVUkwmLCBjb25zdCBX
ZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgcHJl
cGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQ
cmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmUpIGZpbmFsOwogCiAjaWYg
RU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFsOwogI2VuZGlmCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICB2b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikg
ZmluYWw7CisgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFs
OwogI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxMb2FkKCkgZmluYWw7CiAKQEAgLTg5LDkgKzkzLDkg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGlu
ZUltYWdlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJl
Y3QpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXll
cjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUo
TWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0KSBmaW5hbDsKKyAgICB2b2lkIHNl
dFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0
eSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICB2b2lkIHZpZGVvRnVsbHNj
cmVlblN0YW5kYnlDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKIApAQCAtMTA0LDcgKzEwOCw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXkoKSBmaW5hbDsKICAgICB2b2lkIHBhdXNlKCkgZmlu
YWw7Ci0gICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1Bv
bGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgZmluYWw7CiAKICAgICBib29sIHN1cHBvcnRzUGljdHVy
ZUluUGljdHVyZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKCkg
Y29uc3QgZmluYWw7CkBAIC0xMTMsNyArMTE3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgY2Fu
U2F2ZU1lZGlhRGF0YSgpIGNvbnN0IGZpbmFsOwogCi0gICAgRmxvYXRTaXplIG5hdHVyYWxTaXpl
KCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29u
c3QgZmluYWw7CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBo
YXNBdWRpbygpIGNvbnN0IGZpbmFsOwpAQCAtMTUzLDI5ICsxNTcsMjkgQEAgcHJpdmF0ZToKICAg
ICBkb3VibGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3QgZmluYWw7CiAgICAgZG91YmxlIG1p
bkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0IGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXI6Ok5ldHdv
cmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX25ldHdvcmtTdGF0
ZTsgfQotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TmV0
d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbmV0d29ya1N0
YXRlOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQogCi0gICAgc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBmaW5hbDsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJsZSgpIGNvbnN0
IGZpbmFsOwogCiAgICAgTWVkaWFUaW1lIG1heE1lZGlhVGltZVNlZWthYmxlKCkgY29uc3QgZmlu
YWw7CiAgICAgTWVkaWFUaW1lIG1pbk1lZGlhVGltZVNlZWthYmxlKCkgY29uc3QgZmluYWw7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBm
aW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBi
dWZmZXJlZCgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBzZWVrYWJsZVRpbWVSYW5nZXNMYXN0
TW9kaWZpZWRUaW1lKCkgY29uc3QgZmluYWw7CiAgICAgZG91YmxlIGxpdmVVcGRhdGVJbnRlcnZh
bCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXMoKSBj
b25zdCBmaW5hbDsKICAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IGZpbmFsOwog
Ci0gICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbDsKKyAgICB2b2lkIHNldFNp
emUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBwYWludChHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHBhaW50KFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFs
OwogCi0gICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQm
LCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKLSAgICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1Bs
YXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QsIEdDM0Rl
bnVtLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtLCBib29sLCBib29sKSBm
aW5hbDsKLSAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmlu
YWw7CisgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICBib29sIGNv
cHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RCosIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGVu
dW0sIEdDM0RlbnVtLCBib29sLCBib29sKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpOYXRpdmVJbWFn
ZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAKLSAgICB2b2lkIHNldFBy
ZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOworICAgIHZvaWQgc2V0UHJlbG9hZChX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCkgZmluYWw7CiAKICAgICBib29sIGhhc0F2YWls
YWJsZVZpZGVvRnJhbWUoKSBjb25zdCBmaW5hbDsKIApAQCAtMTg5LDE0ICsxOTMsMTQgQEAgcHJp
dmF0ZToKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgU3RyaW5n
IHdpcmVsZXNzUGxheWJhY2tUYXJnZXROYW1lKCkgY29uc3QgZmluYWw7Ci0gICAgTWVkaWFQbGF5
ZXI6OldpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlIHdpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBl
KCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OldpcmVsZXNzUGxheWJh
Y2tUYXJnZXRUeXBlIHdpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlKCkgY29uc3QgZmluYWw7CiAK
ICAgICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKSBmaW5hbDsKIAog
ICAgIGJvb2wgY2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNvbnN0IGZpbmFsOwot
ICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5YmFja1Rhcmdl
dD4mJikgZmluYWw7CisgICAgdm9pZCBzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxXZWJD
b3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0U2hvdWxk
UGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCkgZmluYWw7CiAjZW5kaWYKQEAgLTIxMyw5ICsyMTcs
OSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdpbigpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0IGZpbmFsOwot
ICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4m
KSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxib29sPiB3b3VsZFRhaW50T3JpZ2luKGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJikgY29uc3QgZmluYWw7CiAKLSAgICBNZWRpYVBsYXll
cjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IGZpbmFs
OwogCiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCkgZmluYWw7CiAKQEAgLTIzMiwyNSAr
MjM2LDI1IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3Qg
ZmluYWw7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIEF1ZGlvU291cmNlUHJvdmlkZXIq
IGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxMZWdhY3lDRE1T
ZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYsIExlZ2FjeUNETVNlc3Npb25DbGll
bnQqKSBmaW5hbDsKLSAgICB2b2lkIHNldENETVNlc3Npb24oTGVnYWN5Q0RNU2Vzc2lvbiopIGZp
bmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uPiBjcmVh
dGVTZXNzaW9uKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb25DbGllbnQq
KSBmaW5hbDsKKyAgICB2b2lkIHNldENETVNlc3Npb24oV2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lv
biopIGZpbmFsOwogICAgIHZvaWQga2V5QWRkZWQoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lkIGNkbUluc3RhbmNlQXR0YWNoZWQoQ0RNSW5z
dGFuY2UmKSBmaW5hbDsKLSAgICB2b2lkIGNkbUluc3RhbmNlRGV0YWNoZWQoQ0RNSW5zdGFuY2Um
KSBmaW5hbDsKLSAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoQ0RNSW5zdGFu
Y2UmKSBmaW5hbDsKKyAgICB2b2lkIGNkbUluc3RhbmNlQXR0YWNoZWQoV2ViQ29yZTo6Q0RNSW5z
dGFuY2UmKSBmaW5hbDsKKyAgICB2b2lkIGNkbUluc3RhbmNlRGV0YWNoZWQoV2ViQ29yZTo6Q0RN
SW5zdGFuY2UmKSBmaW5hbDsKKyAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2Uo
V2ViQ29yZTo6Q0RNSW5zdGFuY2UmKSBmaW5hbDsKICAgICBib29sIHdhaXRpbmdGb3JLZXkoKSBj
b25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGJvb2wg
cmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQg
c2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSBmaW5h
bDsKKyAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6OlRleHRUcmFj
a1JlcHJlc2VudGF0aW9uKikgZmluYWw7CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNrQm91bmRzKCkg
ZmluYWw7CiAgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKQEAgLTI3MCw3
ICsyNzQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IGZpbmFsOwogCi0g
ICAgT3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVh
bGl0eU1ldHJpY3MoKSBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpWaWRlb1BsYXliYWNr
UXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFsOwogCiAj
aWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICB2b2lkIG5vdGlmeVRyYWNrTW9kZUNoYW5nZWQo
KSBmaW5hbDsKQEAgLTI5MSwxMyArMjk1LDE2IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNob3Vs
ZElnbm9yZUludHJpbnNpY1NpemUoKSBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXll
ciB7IG51bGxwdHIgfTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgbV9tYW5hZ2VyOwot
ICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3JlbW90ZUVuZ2lu
ZUlkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0
ciB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1f
bWVkaWFSZXNvdXJjZUxvYWRlcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1fbWFu
YWdlcjsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgbV9pZDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbV9uZXR3
b3JrU3RhdGUgeyBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlOjpFbXB0eSB9OwotICAgIE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZSB7IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRl
OjpIYXZlTm90aGluZyB9OworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBtX21lZGlhUmVzb3Vy
Y2VzOworCisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtT
dGF0ZSB7IFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5IH07CisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIH07CiAgICAgZG91YmxlIG1fdm9s
dW1lIHsgMSB9OwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CiAgICAgTWVkaWFUaW1lIG1f
ZHVyYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oCmlu
ZGV4IDg3ZTdiOGJiYWVjMzUzNGU3ZGVmZDc4MjM4NjEwMTQzMjE3NTM4YzcuLjI1NmIzYzU5ZmJl
NDJiNmJjMWEzMDY3MWU3MDBhNTczNGRkYjlmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllci5oCkBAIC0yNSw2ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQog
CisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zMiw0ICszNCw2IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogZW51bSBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyVHlwZSB7IH07
CiB1c2luZyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRp
ZmllcjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyVHlwZT47CiAKLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCAyZDc2OGE3ZGYxYzVhNTZmNjAyYWMyYzg2NGQwYjlj
ODFmNjNmNmY4Li5jYzZmNDE3ZjQ0MGM3MmZiMDk1NGM1ZjA2YWExMjM0OTNjOWVjMDIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpA
QCAtMzksNiArNDEsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgeworCiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTIwMSw0MiArMjA0LDUwIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmCiAgICAg
ICAgIHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoc3RhdGUpOwogfQogCi12b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCit2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkLCBkb3VibGUgdm9sdW1lKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVy
cy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnZvbHVtZUNoYW5nZWQodm9sdW1lKTsKIH0KIAot
dm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQordm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGJvb2wgbXV0ZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXll
cnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5tdXRlQ2hhbmdlZChtdXRlKTsKIH0KIAotdm9p
ZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRpbWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lJiYgdGltZSkKK3ZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQogewogICAgIGlmIChhdXRvIHBsYXll
ciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnRpbWVDaGFuZ2VkKFdURk1v
dmUodGltZSkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25D
aGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVk
aWFUaW1lJiYgdGltZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNo
YW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lJiYg
dGltZSkKIHsKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAg
ICAgcGxheWVyLT5kdXJhdGlvbkNoYW5nZWQoV1RGTW92ZSh0aW1lKSk7CiB9CiAKLXZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSByYXRlKQordm9pZCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OnJhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGRvdWJsZSByYXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5n
ZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnJhdGVDaGFuZ2VkKHJhdGUpOwogfQogCi12b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29sIHBhdXNlZCkKK3ZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29sIHBhdXNlZCkKIHsKICAgICBpZiAoYXV0byBw
bGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5wbGF5YmFja1N0YXRl
Q2hhbmdlZChwYXVzZWQpOwogfQogCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVx
dWVzdFJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3Bs
YXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5yZXF1ZXN0UmVzb3VyY2UocmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworCisgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKIHsKICAgICBhdXRv
IHJlZ2lzdGVyRW5naW5lID0gW3RoaXNdKE1lZGlhRW5naW5lUmVnaXN0cmFyIHJlZ2lzdHJhciwg
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCmluZGV4IDc5NGEzOGZlNDNmMzgxODQw
NTA2MjhhY2Y1MTQxZTJmZmE2MGZkMWMuLjk3MjhjMzlhNTA3NDc3Y2Y0NDc1YzA0YWI1MmI2NzVm
Y2VmNGYzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAog
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC01Niw3
ICs1Nyw3IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBk
aWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsgfQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtNzgsNiArNzksNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgTWVkaWFUaW1lJiYpOwogICAgIHZvaWQgcmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBkb3VibGUpOwogICAgIHZvaWQgcGxheWJh
Y2tTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
LCBib29sKTsKKyAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9h
ZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBmcmllbmQgY2xh
c3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAwM2RmMTIyYzgyOTg5YTAxN2FkY2Y2ZWFm
ZjFjZDQxOTZiNzk3Njc1Li42N2E2YWFiN2I5OWVkZTFiYjQzMzVjNmZmZjk1ZjM2OTI5MDEyMGNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjEs
MTAgKzIxLDkgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAKLSNpZiBFTkFCTEUoVklERU8pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBt
ZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0KICAg
ICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdv
cmtTdGF0ZSBzdGF0ZSkKICAgICBSZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQogICAgIFZvbHVtZUNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1lKQpAQCAt
MzMsNiArMzIsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVm
Q291bnRlZCB7CiAgICAgRHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgTWVkaWFUaW1lIHRpbWUpCiAgICAgUmF0ZUNoYW5nZWQoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkK
ICAgICBQbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQorCisgICAgUmVxdWVzdFJlc291cmNlKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVx
dWVzdCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6
TG9hZE9wdGlvbnMgb3B0aW9ucykgLT4gKCkgQXN5bmMKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA3YTJjMDgwOGRhZmU4MmU0N2MxZWUwYWRk
OTY5NWM3ZmVkOTdiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcApAQCAtMCwwICsxLDk0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tlci5oPgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciBpZCkKKyAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkK
KyAgICAsIG1faWQoaWQpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5OjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZXNwb25zZVJlY2VpdmVkKG1faWQsIHJlc3Bv
bnNlKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OlNob3VsZENvbnRp
bnVlOjpZZXMpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6
cmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6UmVkaXJlY3RSZWNlaXZlZChtX2lkLCByZXF1ZXN0LCByZXNwb25zZSksIFtjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCByZXF1ZXN0ID0gV1RGTW92
ZShyZXF1ZXN0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXF1ZXN0KSk7CisgICAgfSk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
OjpzaG91bGRDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKQoreworICAgIHJldHVybiB0cnVlOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNlbnQoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQg
bG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkKK3sKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6RGF0YVNlbnQo
bV9pZCwgYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpLCAwKTsKK30KKwordm9pZCBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OjpEYXRhUmVjZWl2ZWQobV9pZCwgZGF0YSwgbGVuZ3RoKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5OjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3Ip
Cit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI6OkFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChtX2lkLCBlcnJvciks
IDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZhaWxlZChXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3sKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZhaWxlZChtX2lkLCBlcnJvciksIDApOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZpbmlzaGVkKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpCit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkxvYWRGaW5pc2hlZCht
X2lkKSwgMCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYjcxOGY1OWY5ZTc5MThiNDMyMzcwNjE4MDJmZDEwMDVmZDA5NzhkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXNwb25zZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KCk7CisK
KyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQKKyAgICB2b2lkIHJlc3BvbnNlUmVj
ZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29u
dGludWUpPiYmKTsKKyAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmKT4mJik7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KTsKKyAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVu
c2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKTsKKyAgICB2b2lkIGRhdGFSZWNl
aXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiwgaW50KTsK
KyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2Fk
RmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmKTsKKworcHJpdmF0ZToKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2dw
dVByb2Nlc3NDb25uZWN0aW9uOworICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIG1f
aWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386174</attachid>
            <date>2019-12-19 19:56:30 -0800</date>
            <delta_ts>2019-12-19 20:39:39 -0800</delta_ts>
            <desc>Rebased WIP patch</desc>
            <filename>bug-205379-20191219195629.patch</filename>
            <type>text/plain</type>
            <size>97433</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiMzVlYjk1MmRmNmE2ZTAx
NTU5Y2JkNTIwYmE3YWE1NTc2ZTVlN2IuLjU2MDM5NzY1MzM1MmZlMjNiMTFhNjkzNWE0NTc3NWRk
NTI0NDlmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEwIEBACisyMDE5LTEyLTE5ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNv
dXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIsIFJl
bW90ZU1lZGlhUmVzb3VyY2UsIGFuZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBpbiB0aGUg
R1BVIHByb2Nlc3MgZm9yIG1lZGlhLAorICAgICAgICBhbmQgUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5IGluIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgRGlzYWJsZSB1bmlmaWVkIGJ1aWxkIG9m
IGFsbCB0aGUgY3BwIGZpbGVzIGZvciBtZWRpYSBpbiBHUFUgYmVjYXVzZSBvZiBhIHN0cmFuZ2Ug
aXNzdWUgcmVsYXRlZCB0byBkdXBsaWNhdGVkICJGaXhlZCIga2V5d29yZCBkZWZpbml0aW9uLgor
ICAgICAgICBUaGlzIHBhdGNoIHVzZXMgWFBDIG1lc3NhZ2VzIHRvIHRyYW5zZmVyIG1lZGlhIGRh
dGEsIHdoaWNoIGlzIG5vdCBlZmZpY2llbnQuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpSZW1vdGVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlOjpyZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OnNldFJlYWR5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6YWRkTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWNjZXNzQ29udHJv
bENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVkaXJlY3RSZWNlaXZlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNl
bnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNl
aXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNz
Q29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Ojpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Ojpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOiBBZGRlZC4KKwogMjAxOS0xMi0xOSAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBMb2cgdGVsZW1ldHJ5IGZvciBJ
T1VzZXJDbGllbnQgbG9va3VwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4N2ZmZWU3ZGI4MGUxMTRkMjI1MTEy
NjYuLjQzYWY3MGFlZTllMzNiZWE4YWRlMDBmNzNlZTNjYTcyMmYyYjA0ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE3LDYgKzE3LDcg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJv
Y2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5ODY5Y2YxNzE2MWZlZDk0NDky
YjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43YmU4OTQ5Y2NhZjIwOGQyYTM1ZDJlYTBhYmNiMGEyZGU4
MmU5MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTEyMCw2ICsxMjAsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRkNzRhYjU4ZTUwNGE4MTIxODMuLjNj
MDc3ZTRmMTdjY2NmMWYzYjgyZGIyYTIwNGQxOTg2YzJmM2NmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IFwKKyAgICBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAg
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggZDAxOWU3MTVhNmM2ODJlYzZhNDI1YjVlMzkzOTcwZWEyYzc4
ZDY1ZC4uNWVlZDcyZmVlZTc4NDE2NDFjNzFjYTFiMTM1OTBhMjg4MjU1NWIzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtOTgsMTAgKzk5LDE4IEBAIHZvaWQgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1f
cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworfQorCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlmICghbV9y
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSkKLSAgICAgICAgbV9yZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+
KCp0aGlzKTsKKyAgICAgICAgbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSA9IG1ha2VV
bmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlzLCByZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcigpKTsKIAogICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTsKIH0KQEAgLTEyMSw2ICsxMzAsOSBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAg
ICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdl
YlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKKyAgICB9IGVs
c2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKaW5kZXggYzQwNjg1ZjE2N2Q1NDBiZTVlYTc0ZTY4M2FkMDk3MzhiOWRhYWQ5Zi4uMGU0ZjEw
ZGRhODAwZWM4Y2ZmODlkZWM5MWMwNTg1YWRlMjU3YjY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2ICsz
OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwogCiBjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzPgpAQCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCisgICAgUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CiAgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOwpA
QCAtNzIsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNvbnN0IFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyPiBtX3JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggMjkyOWU3MDQyYTI1NjllYjhmM2My
NmNlZTMwMzQwMjI0MTIxODU0Yy4uMmMyYTA3NmNkMGE4MzY1NWE5NDUxY2E1ODdjZTkwZjM5NTE2
Y2QyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBAIC00MCw2ICs0Miw3IEBACiAj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hFQ0tf
QkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAtNTAsOCAr
NTMsOSBAQCBzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQogfQogI2VuZGlmCiAK
LVJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQorUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
JiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyhjb25uZWN0aW9uKQorICAgICwgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihy
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICAsIG1fbG9nSWRlbnRpZmllcihXVEY6OkxvZ2dlckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmll
cigpKQogI2VuZGlmCkBAIC02Nyw3ICs3MSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkCiAg
ICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWQpOwogCiAgICAgQVNTRVJUKCFtX3Byb3hpZXMu
Y29udGFpbnMoaWQpKTsKLSAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZCwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmllcikpOworICAgIG1fcHJveGllcy5hZGQoaWQsIG1h
a2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMsIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIsIGlkLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigp
LCBlbmdpbmVJZGVudGlmaWVyKSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0K
QEAgLTI0NiwxMSArMjUwLDExIEBAIGNvbnN0IExvZ2dlciYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0CiAKIFdURkxvZ0NoYW5uZWwmIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViS2l0
MkxvZ1dlYlJUQzsKKyAgICByZXR1cm4gV2ViS2l0MkxvZ01lZGlhOwogfQogI2VuZGlmCiAKLX0K
K30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDS19DT05URVhUSUQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAppbmRleCA3ZTUxZTNjNmUxMmFhNGJlYjg1NGEy
ODhmMjU1YzhhZmY0NmQwZmM3Li4zZGRkNDhiYmQ5NTM0YmFmYTJjNjc5ODZiYjI3MGY3YzQ0NDNm
Nzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAtMzAsMTIgKzMwLDE0IEBACiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OwogCiBjbGFzcyBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eQpAQCAtNDYsNyArNDgsNyBAQCBjbGFzcyBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eQogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXImKTsKICAgICB+UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKIAog
ICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KSBjb25zdCB7IHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7IH0KQEAgLTk1LDEy
ICs5NywxMyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4+IG1f
cHJveGllczsKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25z
dCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA3ZGIwY2E5MzM0Mzg2MmIw
NjJmNmU0NjE4ZjIzZDhhOWU4M2IwOTZiLi4xMzQwY2Q1Nzc0NzBlZDE1YjFjY2RjYmVmOTRiNzdh
MGJmMTAyYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOCw3ICsyOCw5IEBACiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTM3LDEwICszOSwxMSBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCitSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5JiBtYW5hZ2VyLCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbWVkaWFSZXNvdXJjZU1h
bmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCiAgICAgOiBtX2lkKGlkKQogICAgICwgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VNYW5hZ2VyKG1lZGlhUmVzb3VyY2VNYW5hZ2VyKQog
ICAgICwgbV9lbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21hbmFnZXIubG9nZ2VyKCkpCkBAIC0zMTMs
OCArMzE2LDcgQEAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKQogCiBSZWZQdHI8UGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyPiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNyZWF0
ZVJlc291cmNlTG9hZGVyKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIobV9pZCwgKnRoaXMsIG1fbWVkaWFSZXNvdXJjZU1hbmFnZXIpKTsKIH0KIAogYm9vbCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiwg
QXRvbVN0cmluZyopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA5ZTNkMzIyM2Y3ZWJlOWE2MDI5
MDQ1MjRjNjlmMGM2YWYyZDk0NzlkLi44N2IxMjNlODE5Yzg2Yjc1NDg3MGJlODI5MGI5N2VmYTM1
MjIzYWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI3LDM3ICsyNywzMyBAQAogCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2UgSVBD
IHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE1l
ZGlhUGxheWVyOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHkKLSAgICA6
IHB1YmxpYyBNZWRpYVBsYXllckNsaWVudCB7CisgICAgOiBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIpOworICAgIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlciYsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcik7CiAgICAgdmlydHVhbCB+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCiAg
ICAgewogICAgIH0KIAorICAgIElQQzo6Q29ubmVjdGlvbiYgV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
KSB7IHJldHVybiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uOyB9CisKICAgICB2b2lkIGludmFsaWRh
dGUoKTsKIAogICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdl
YkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJv
b2wgcHJlcGFyZUZvclJlbmRlcmluZyk7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29u
c3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJM
JiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lk
IGNhbmNlbExvYWQoKTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwpAQCAtMTEzLDI4ICsx
MDksMjggQEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNv
bnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvKCkgY29uc3QgZmluYWw7Ci0g
ICAgTGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QgZmluYWw7Cisg
ICAgV2ViQ29yZTo6TGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3Qg
ZmluYWw7CiAgICAgZmxvYXQgbWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QgZmluYWw7
CiAgICAgdm9pZCBtZWRpYVBsYXllclBhdXNlKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXll
clBsYXkoKSBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVyUGxhdGZvcm1Wb2x1bWVDb25maWd1
cmF0aW9uUmVxdWlyZWQoKSBjb25zdCBmaW5hbDsKLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciog
bWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIGZpbmFsOwotICAgIFJlZlB0cjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIo
KSBmaW5hbDsKKyAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJD
YWNoZWRSZXNvdXJjZUxvYWRlcigpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBm
aW5hbDsKICAgICBib29sIGRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmLCBBdG9t
U3RyaW5nKiA9IG51bGxwdHIpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91
bGRVc2VQZXJzaXN0ZW50Q2FjaGUoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1l
ZGlhUGxheWVyTWVkaWFDYWNoZURpcmVjdG9yeSgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBt
ZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAg
ICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUm
KSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNr
UHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNr
KEF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92
ZVRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRp
YVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAg
ICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJp
dmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soV2ViQ29y
ZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJE
aWRBZGRWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAg
dm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1By
aXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKFdl
YkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxh
eWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFs
OwogCi0gICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3Qg
SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHND
aGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykgJiYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICBWZWN0b3I8UmVmUHRyPFBsYXRm
b3JtVGV4dFRyYWNrPj4gb3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCkgZmluYWw7CisgICAgVmVjdG9y
PFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291cmNl
cygpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTQ3LDcg
KzE0Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9h
ZCgpIGNvbnN0IGZpbmFsOwogCiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJh
Y2tSYXRlKCkgY29uc3QgZmluYWw7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWw7CisgICAgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1
bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW9G
dWxsc2NyZWVuU3RhbmRieSgpIGNvbnN0IGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IG1lZGlh
UGxheWVyUHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MoKSBjb25zdCBmaW5hbDsKIApAQCAt
MTYxLDkgKzE1NywxMCBAQCBwcml2YXRlOgogCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBtX2lkOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nv
bm5lY3Rpb247Ci0gICAgUmVmUHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6TWVkaWFQbGF5ZXI+IG1fcGxheWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5JiBtX21hbmFnZXI7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciYgbV9tZWRpYVJlc291cmNlTWFuYWdlcjsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9lbmdpbmVJZGVudGlmaWVyOwogICAgIFZlY3Rv
cjxXZWJDb3JlOjpDb250ZW50VHlwZT4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsK
IAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAtMTcxLDYgKzE2OCw2IEBAIHByaXZhdGU6
CiAjZW5kaWYKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45YjQ0NzdiZGJkYmUzNzdkNGU1MTEyMWU1NjZjOTVkNWE2NzMwZTQw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlbW90ZU1lZGlhUmVz
b3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3Vy
Y2UocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIGlkKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVz
b3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBp
ZCkKKyAgICA6IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIpCisgICAgLCBtX2lkKGlkKQorICAgICwgbV9yZWFkeShmYWxzZSkKK3sKK30KKwor
UmVtb3RlTWVkaWFSZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQoreworICAgIC8vIFRP
RE86IGRvIHdlIG5lZWQgdG8gc2VuZCBtZXNzYWdlIHRvIHRoZSB3ZWIgcHJvY2VzcyBoZXJlPwor
ICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIucmVtb3ZlTWVkaWFSZXNvdXJjZShtX2lk
KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpzdG9wKCkKK3sKKyAgICAvLyBUT0RP
OiBub3RpZnkgdGhlIHdlYiBwcm9jZXNzIHRoYXQgdGhlIGpvYiBpcyBkb25lPworfQorCitib29s
IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25zdAor
eworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNw
b25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlm
IChtX2NsaWVudCkgeworICAgICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywg
cmVzcG9uc2UsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oU2hvdWxkQ29udGludWUg
c2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVl
ID09IFNob3VsZENvbnRpbnVlOjpObyAmJiB3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICB3ZWFr
VGhpcy0+c3RvcCgpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZTo6cmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5yZWRpcmVjdFJlY2VpdmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBy
ZXNwb25zZSwgW10oUmVzb3VyY2VSZXF1ZXN0JiYpIG11dGFibGUgeyB9KTsKK30KKworYm9vbCBS
ZW1vdGVNZWRpYVJlc291cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OmRhdGFTZW50KHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVT
ZW50KQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFTZW50KCp0
aGlzLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFSZXNvdXJjZTo6ZGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIGludDY0X3QgbGVuZ3Ro
KQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFSZWNlaXZlZCgq
dGhpcywgZGF0YSwgbGVuZ3RoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVk
KCp0aGlzLCBlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxl
ZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5sb2FkRmFpbGVkKCp0aGlzLCBlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6bG9hZEZpbmlzaGVkKCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5sb2FkRmluaXNoZWQoKnRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDVhZTkyNDdjNjY5MzQ4MTFiMWM1
Y2VmNWI1YjRlMTlhMmMyZTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkNvcmUv
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJl
bW90ZU1lZGlhUmVzb3VyY2U+LCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IGNyZWF0ZShS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
KTsKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyJiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1vdGVNZWRp
YVJlc291cmNlKCk7CisKKyAgICBib29sIHJlYWR5KCkgeyByZXR1cm4gbV9yZWFkeTsgfQorICAg
IHZvaWQgc2V0UmVhZHkoYm9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KKworICAgIC8v
IFBsYXRmb3JtTWVkaWFSZXNvdXJjZQorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJv
b2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdm9p
ZCByZXNwb25zZVJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICBib29sIHNob3VsZENhY2hlUmVzcG9u
c2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGF0YVNlbnQo
dWludDY0X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwg
aW50NjRfdCk7CisgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZhaWxlZChjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKKworcHJpdmF0ZToKKyAg
ICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cjsKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOworICAgIGJvb2wgbV9y
ZWFkeTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzI4YTViNDA3M2IzMGQ5NGNlOTVhNjMwYmZk
NmM1ZjNjYTFiODFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2VudW0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMwMDg1Y2U4MzIyYThhMDIwYWI2
NGY4OGIyYzQzNTY2YWYyMTYwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtMCwwICsxLDY1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6UmVtb3RlTWVkaWFSZXNv
dXJjZUxvYWRlcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1l
ZGlhUGxheWVyUHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcikKKyAgICA6IG1fbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
cihtZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKQorICAgICwgbV9yZW1vdGVNZWRp
YVBsYXllclByb3h5KHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgLCBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQoreworfQorCitSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpCit7Cit9
CisKK1JlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXI6OnJlcXVlc3RSZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBMb2FkT3B0aW9u
cyBvcHRpb25zKQoreworICAgIGF1dG8gcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBSZWZQdHI8UmVt
b3RlTWVkaWFSZXNvdXJjZT4gcmVtb3RlTWVkaWFSZXNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVt
b3RlTWVkaWFSZXNvdXJjZShtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCByZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllcikpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
YWRkTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVk
aWFSZXNvdXJjZSk7CisKKyAgICBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkuV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6UmVxdWVzdFJlc291cmNlKG1fbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpLCBb
cmVtb3RlTWVkaWFSZXNvdXJjZV0oKSB7CisgICAgICAgIGlmIChyZW1vdGVNZWRpYVJlc291cmNl
KQorICAgICAgICAgICAgcmVtb3RlTWVkaWFSZXNvdXJjZS0+c2V0UmVhZHkodHJ1ZSk7CisgICAg
fSk7CisKKyAgICByZXR1cm4gcmVtb3RlTWVkaWFSZXNvdXJjZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU5MTkx
N2M3ZTAwNjc2NjM1ZmY4Zjg0NWFmMmU4ZTczYmMyOTRhNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNv
dXJjZTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcgorICAgIDogcHVibGljIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciB7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImKTsKKyAgICB2aXJ0dWFsIH5SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCk7CisKKyAgICBS
ZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIExvYWRPcHRpb25zKSBmaW5hbDsKKworcHJpdmF0ZToK
KyAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1fbWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5JiBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHk7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTZmNTUxMmY1ZTAw
YjAzMDYzYjY3MDVlNDMwNWY1YzUyNDA2MWU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApAQCAt
MCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKQoreworfQorCit2b2lkIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8UmVtb3Rl
TWVkaWFSZXNvdXJjZT4gcmVtb3RlTWVkaWFSZXNvdXJjZSkKK3sKKyAgICBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmFkZChyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVkaWFS
ZXNvdXJjZSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1l
ZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIpCit7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5yZW1vdmUocmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyOjpyZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IGlkLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCkt
PnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVzcG9uc2VS
ZWNlaXZlZChyZXNwb25zZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBpZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250
YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAg
ICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlZGlyZWN0UmVjZWl2ZWQoV1RGTW92
ZShyZXF1ZXN0KSwgcmVzcG9uc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3Zv
aWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50KFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNU
b0JlU2VudCkKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhp
ZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3Jl
bW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmRhdGFTZW50KGJ5dGVzU2VudCwgdG90YWxCeXRl
c1RvQmVTZW50KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVJl
Y2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmJiBk
YXRhLCBpbnQzMl90IGxlbmd0aCkKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNl
cy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgp
KTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmRhdGFSZWNlaXZlZCgoY29u
c3QgY2hhciopZGF0YS5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAg
IEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJj
ZXMuZ2V0KGlkKS0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJU
KG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQo
aWQpLT5sb2FkRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6bG9hZEZpbmlzaGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorewor
ICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZXMuZ2V0KGlkKS0+bG9hZEZpbmlzaGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwZTE0YTFmNzk5
NTIyNGE4ZDNiZTlkNzNhZDgyNWNlMzg1Y2YxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oCkBAIC0w
LDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3Vy
Y2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVk
aWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFJlbW90ZU1lZGlhUmVzb3VyY2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
CisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyKCk7CisgICAgdmlydHVhbCB+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKworICAg
IHZvaWQgYWRkTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVm
UHRyPFJlbW90ZU1lZGlhUmVzb3VyY2U+KTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhUmVzb3VyY2Uo
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZWRpcmVjdFJl
Y2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYsIGludDMyX3QpOworICAg
IHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmFpbGVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIpOworCisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRy
PFJlbW90ZU1lZGlhUmVzb3VyY2U+PiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiZTdjMTE4MmZmN2YyYTBiZDQ5Y2UwMDdkMzJjNWVl
M2ZjYjVhZjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlc3BvbnNlUmVj
ZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkgLT4gKCkgQXN5bmMKKyAgICBSZWRpcmVjdFJlY2Vp
dmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KSAtPiAoKSBBc3luYworICAgIERhdGFTZW50KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgaWQsIHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVT
ZW50KQorICAgIERhdGFSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyIGlkLCBTdHJpbmcgZGF0YSwgaW50MzJfdCBsZW5ndGgpCisgICAgQWNjZXNzQ29udHJvbENo
ZWNrRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9hZEZhaWxlZChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQor
ICAgIExvYWRGaW5pc2hlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlk
KQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2lu
Zy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggMjk2ZGU4NmU2MWUy
OTJmN2ViM2Y0NDg2NWM1NzY0ZDliNDMwMzcyZi4uZTAzMjM3ZTFmZjZmZjQ3MGIyYTVjMjdlMGUx
YmM0MDY4NmVlMjdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5n
LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTYyLDYgKzYyLDcg
QEAgZXh0ZXJuICJDIiB7CiAgICAgTShMYXlvdXQpIFwKICAgICBNKExvYWRpbmcpIFwKICAgICBN
KExvY2FsU3RvcmFnZURhdGFiYXNlVHJhY2tlcikgXAorICAgIE0oTWVkaWEpIFwKICAgICBNKE1v
dXNlSGFuZGxpbmcpIFwKICAgICBNKE5ldHdvcmspIFwKICAgICBNKE5ldHdvcmtDYWNoZSkgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQw
MmVmNTExODhmN2U4ZGJlMzk2YmE4YWNlMGZhZC4uMjU3YjAwZWI4NjA4ODE1YWM4OWI1NzI1YjVh
YjIxNDkzMDc5ZjE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVj
bGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAg
ICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcics
CiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
CmluZGV4IDU0MjRlNWRmYmIxNTIwMTBiMGIzMmQ2ZjVlYTZkNTM1ODkxNGU1NmIuLjJjYTUxMjc3
NzEyOWUzMWMwMTc1YTYwYmZhZjlmMmQxMGFlYjAyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsNiAr
MjQsMTEgQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorLy9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCisvL0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKIAogTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJp
YnV0aW9uTWFuYWdlci5jcHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIu
Y3BwCkBAIC01MDAsOCArNTA1LDkgQEAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9NZWRpYURldmlj
ZVNhbmRib3hFeHRlbnNpb25zLmNwcAogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcAotV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNw
cAorLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisv
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogCiBXZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDY1MTg0
ZWRkZmY5MmU1MzA4OGNlOTgxYTEyNWQ2Y2VhM2Q4YjllNjIuLmQ0OTQyZjc0Njk5MTkwMWJhZTZk
N2YyMjEzZDY5M2M2OTc3YzNhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU5LDggKzU5
LDYgQEAgTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKIEdQVVBy
b2Nlc3MvaW9zL0dQVVByb2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMu
bW0KLUdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKLUdQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBQbGF0
Zm9ybS9jZi9Nb2R1bGVDRi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDFjNWM2Y2E0YmFjYmE0YjEzNGQ0NGFmOTIwMGIwYjFlOGI0
Y2EyYjMuLmI1YWQ4NWIzOTI1NjRiNjJjZWZmZTA2ZTBiMzFiNGM0MTMwYmEwYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA1LDcg
KzQwNSwyMCBAQAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJv
eHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMu
aCAqLzsgfTsKIAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
cy5oICovOyB9OworCQkxRDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmgg
Ki87IH07CisJCTFEMzJGODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAg
Ki87IH07CisJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwNzI1RUZBRDIzOUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkuY3BwICovOyB9OworCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAgKi87IH07CisJCTFEM0FCMDUyMjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJl
c291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLzsg
fTsKKwkJMUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
QUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICov
OyB9OworCQkxRDNBQjA1NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MURBNDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNw
cCAqLzsgfTsKKwkJMUQzQUIwNTUyM0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzkyMzEzMTIzOUIzQjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCAqLzsgfTsKKwkJMUQzQUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwNzkyMzEzMDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNw
cCAqLzsgfTsKKwkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3MzcxMjNB
OUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlE
RjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9
OworCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3
ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0
Q2FsbGJhY2tJRC5oICovOyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5oICovOyB9OwogCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFy
ZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
REUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAx
OTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyog
V0tTaGFyZVNoZWV0Lm1tICovOyB9OwogCQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tX
ZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTI2MTIsOSArMjYyNSwyMiBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJB
MDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8q
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUz
MDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291
cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQz
MkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDRE
MjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUQzQUIwNEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OworCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owor
CQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVl
dENhbGxiYWNrSUQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVTaGVl
dENhbGxiYWNrSUQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBNDA4OTQyM0E4
MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVD
QyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBE
MDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyog
V0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUYwMTgxNkExODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERD
MTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NDksNyArNDg3NSw3IEBACiAJCURG
NThDNjMxMTM3MUFDNTgwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdl
YldoZWVsRXZlbnRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTA1RkU1MzE4RDdCOURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5T
dG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFn
ZS5zYjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9y
YWdlLnNiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMTE1QzcxNTE5
MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2Vi
S2l0LmljbnMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBpbWFnZS5pY25zOyBuYW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0
LmljbnM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4
REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2ll
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4
REU4MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTA5OCw2ICs1MTI0LDggQEAKIAkJCQkwNzky
MzEzMDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLywK
IAkJCQkwNzkyMzEzNDIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
LmggKi8sCiAJCQkJMDc5MjMxMzMyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5tZXNzYWdlcy5pbiAqLywKKwkJCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLywKKwkJCQkxRDMyRjg5QjIzQTg0QkE2MDBC
MUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUxMTAsNiArNTEzOCwxNCBA
QAogCQkJCTA3MjVFRkFCMjM5QUUzODQwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyog
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi8sCiAJCQkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQy
NTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCAqLywKKwkJCQkxRDMyRjg5OTIzQTg0Njgw
MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8sCisJCQkJMUQzMkY4OTgyM0E4
NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAqLywKKwkJCQkxREUyREZBQzIz
QTk1OUY4MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJ
CQkxRDNBQjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgKi8sCisJCQkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIuaCAqLywKKwkJCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuY3BwICovLAorCQkJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovLAorCQkJCTFEMzJGOEE2MjNBODYwMTkw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTI2
MCw2ICs5Mjk2LDkgQEAKIAkJCQkwNzkyMzE0NTIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTA3OTIzMTQ2
MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggKi8sCiAJCQkJMDc5MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQ0RDczNkIyM0E5REY1NTAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKKwkJCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgz
MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCiAJCQkJMUFDMTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZXMuaCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAxNTAsNiAr
MTAxODksMTAgQEAKIAkJCQkwNzkyMzE0QTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0
QzIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5MjMxNDgyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDRE
NzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcx
MTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1v
dGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTc2MCw2ICsxMTgwMyw3IEBA
CiAJCQkJMjk4NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0OUQ5MERB
MjFGREMzMEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyogTG9nZ2luZy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEyQjZBNzEwMEY0
OTNGRCAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
ODIyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3N0EyMTJCNkE2MTAwRjQ5M0ZEIC8qIE1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTExODE2LDggKzExODYwLDE2IEBACiAJCQkJMkQ3MkExRkEyMTJCRjQ2RTAwNTE3QTIwIC8q
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRB
MkQxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGQjQyMThBNkU5RTAwMjVB
ODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIw
NTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUw
MjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUQzQUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYw
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQz
QUIwNTQyM0FDMDFCNzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
RDMyRjg5RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmpl
Y3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdB
NzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8q
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgw
Li5iOGU0NzY3ZmMwMGQ0OTMxZTRkOGExMzRiYmIzY2RlOGQ0Njc2ZTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApA
QCAtNjUsNyArNjUsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbgogdm9pZCBHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVt
ZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2Vi
UHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4NTNjYzE2NTUw
OTRiYjUyNDIxZmI2Y2ZhMWMzMTlhOTY0NzFjMDk0Li4zMWM2MTA0NjY5ZjJmMDJmZmE0NDBmZWI4
ODA5MjZjNzRhZTI2YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKLSAgICAvLyBUaGUgY29ubmVjdGlvbiBm
cm9tIGEgd2ViIHByb2Nlc3MgdG8gdGhpcyBHUFUgcHJvY2Vzcy4KKyAgICAvLyBUaGUgY29ubmVj
dGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCmluZGV4IGE5Yjg5NmI4NmNhZDI1OTc2NDU2ZGEyOTFkNWE1OTgxNzk0MDkzZjMuLjEw
NDMwYzRhMjU1MzdlZGRiMDJmMjdjOWY5YjMwODM1ZjZjMDhkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKQEAgLTQxLDExICs0MSwxMiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOworCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyJiBtYW5hZ2VyKQogICAgIDogbV9wbGF5ZXIocGxheWVyKQorICAgICwgbV9tZWRpYVJl
c291cmNlTG9hZGVyKHBsYXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFu
YWdlcihtYW5hZ2VyKQogICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50
aWZpZXIpCiAgICAgLCBtX2lkKHBsYXllcklkZW50aWZpZXIpCkBAIC03NjgsNiArNzY5LDEzIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVGYWlsZWRUb0xvYWQobG9uZyBw
bGF0Zm9ybUVycm9yQ29kZSkKICAgICBtX3BsYXllci0+cmVtb3RlRW5naW5lRmFpbGVkVG9Mb2Fk
KCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1ZXN0UmVzb3VyY2Uo
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBhdXRvIHJl
c291cmNlID0gbV9tZWRpYVJlc291cmNlTG9hZGVyLT5yZXF1ZXN0UmVzb3VyY2UoV1RGTW92ZShy
ZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgcmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eT4obV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCks
IHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKSk7CisgICAgbV9tZWRpYVJlc291cmNlcy5h
ZGQocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVzb3VyY2UpKTsKK30K
KwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpsb2dDaGFubmVsKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oCmluZGV4IDViYzc2N2NjYzAxYTllMTczZjEzNTlhZjYwMTNkM2E3YjEyZGUyMmUuLjdhNWM5
MzYzZTk0MWFlYjU5MWZiZWNlZDQ5YTNmNWExOGU4Yzg0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaApAQCAtMjgsNiArMjgsOCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDx3
dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtMzcsMjIg
KzM5LDIyIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUgZmluYWwKICAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZh
dGVSZW1vdGU+Ci0gICAgLCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisgICAg
LCBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAjaWYgIVJFTEVB
U0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgogI2VuZGlmCiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU+IGNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1h
bmFnZXIpCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXImIG1hbmFnZXIpCiAgICAgewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1
ZTxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmll
ciwgaWRlbnRpZmllciwgbWFuYWdlcik7CiAgICAgfQogCi0gICAgZXhwbGljaXQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXImKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlciYpOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9
Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7IH0K
KyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRlbnRp
ZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySXRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIHZvaWQgbmV0d29ya1N0YXRl
Q2hhbmdlZChXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUpOwpAQCAtNjUs
NiArNjcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChib29sKTsK
ICAgICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChsb25nKTsKIAorICAgIHZvaWQgcmVxdWVzdFJl
c291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9u
cyk7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xvZ2dlcjsgfQogICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUiOyB9CkBAIC03MywxNCArNzcsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7Ci0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9k
ZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFy
ZSkgZmluYWw7CisgICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRl
bnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJh
Y2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7CiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVk
aWFTb3VyY2VQcml2YXRlQ2xpZW50KikgZmluYWw7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotICAgIHZvaWQgbG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyAgICB2
b2lkIGxvYWQoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWw7CiAjZW5kaWYKICAg
ICB2b2lkIGNhbmNlbExvYWQoKSBmaW5hbDsKIApAQCAtMTAyLDkgKzEwNiw5IEBAIHByaXZhdGU6
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIGZp
bmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsK
LSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jh
dml0eSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVy
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5HcmF2aXR5KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpIGZpbmFsOwor
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShXZWJDb3JlOjpNZWRpYVBsYXllcjo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAgICAgdm9pZCB2aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5
Q2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKQEAgLTExNCw3ICsxMTgsNyBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBlcnJvckxvZygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNl
dEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBmaW5hbDsKKyAg
ICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShXZWJDb3JlOjpNZWRpYVBsYXllcjo6QnVmZmVyaW5n
UG9saWN5KSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKQEAg
LTEyMiw3ICsxMjYsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5TYXZlTWVkaWFEYXRhKCkg
Y29uc3QgZmluYWw7CiAKLSAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbDsK
KyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbDsKIAogICAg
IGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Qg
ZmluYWw7CkBAIC0xNTUsMjkgKzE1OSwyOSBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtYXhGYXN0
Rm9yd2FyZFJhdGUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRl
KCkgY29uc3QgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtT
dGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9Ci0gICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVh
ZHlTdGF0ZTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29y
a1N0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9yZWFkeVN0YXRlOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1l
UmFuZ2VzPiBzZWVrYWJsZSgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CiAKICAgICBN
ZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBNZWRpYVRp
bWUgbWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Qg
ZmluYWw7CiAgICAgZG91YmxlIHNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKSBj
b25zdCBmaW5hbDsKICAgICBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKCkgY29uc3QgZmluYWw7
CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNldFNp
emUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikgZmluYWw7CiAKLSAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAKLSAgICB2b2lkIHBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYpIGZpbmFsOwotICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdy
YXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0RpbnQsIEdD
M0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwotICAgIE5hdGl2
ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICB2b2lkIHBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRv
UGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0sIGJv
b2wsIGJvb2wpIGZpbmFsOworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdl
Rm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0UHJlbG9hZChNZWRpYVBsYXll
cjo6UHJlbG9hZCkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVsb2FkKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpQcmVsb2FkKSBmaW5hbDsKIAogICAgIGJvb2wgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgp
IGNvbnN0IGZpbmFsOwogCkBAIC0xODgsMTQgKzE5MiwxNCBAQCBwcml2YXRlOgogCiAjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBTdHJpbmcgd2lyZWxlc3NQbGF5YmFj
a1RhcmdldE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5
YmFja1RhcmdldFR5cGUgd2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsK
KyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUgd2ly
ZWxlc3NQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lyZWxl
c3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFdpcmVs
ZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5QbGF5
VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0N1cnJl
bnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBmaW5hbDsKKyAg
ICB2b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJh
Y2tUYXJnZXQ+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldChib29sKSBmaW5hbDsKICNlbmRpZgpAQCAtMjEyLDkgKzIxNiw5IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8Ym9v
bD4gd291bGRUYWludE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOwor
ICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBl
IG1vdmllTG9hZFR5cGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHBy
ZXBhcmVGb3JSZW5kZXJpbmcoKSBmaW5hbDsKIApAQCAtMjMwLDI1ICsyMzQsMjUgQEAgcHJpdmF0
ZToKICAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogI2lmIEVO
QUJMRShXRUJfQVVESU8pCi0gICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92
aWRlcigpIGZpbmFsOworICAgIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291
cmNlUHJvdmlkZXIoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBU
RURfTUVESUEpCi0gICAgc3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNl
c3Npb24oY29uc3QgU3RyaW5nJiwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOwotICAg
IHZvaWQgc2V0Q0RNU2Vzc2lvbihMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOworICAgIHZv
aWQgc2V0Q0RNU2Vzc2lvbihXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7CiAgICAg
dm9pZCBrZXlBZGRlZCgpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQotICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwot
ICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwotICAgIHZv
aWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYpIGZpbmFsOworICAg
IHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOwor
ICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFs
OworICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShXZWJDb3JlOjpDRE1JbnN0
YW5jZSYpIGZpbmFsOwogICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0IGZpbmFsOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgYm9vbCByZXF1aXJlc1RleHRUcmFj
a1JlcHJlc2VudGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRUZXh0VHJhY2tSZXBy
ZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOworICAgIHZvaWQgc2V0
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24q
KSBmaW5hbDsKICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKICAgICB2b2lk
IHRyYWNrc0NoYW5nZWQoKSBmaW5hbDsKICNlbmRpZgpAQCAtMjY4LDcgKzI3Miw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIGVuZGVkKCkgY29uc3QgZmluYWw7CiAKLSAgICBPcHRpb25hbDxWaWRl
b1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZp
bmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4g
dmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoQVZGX0NB
UFRJT05TKQogICAgIHZvaWQgbm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMjg5
LDEzICsyOTMsMTYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2lj
U2l6ZSgpIGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9Owot
ICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBtX21hbmFnZXI7Ci0gICAgTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKKyAg
ICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CisgICAgUmVmUHRy
PFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9h
ZGVyOworICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3JlbW90ZUVuZ2lu
ZUlkZW50aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lk
OwogCi0gICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZSB7IE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGU6OkVtcHR5IH07Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIH07
CisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4+IG1fbWVkaWFSZXNvdXJjZXM7CisKKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZTo6RW1wdHkgfTsKKyAgICBXZWJDb3JlOjpNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZTo6SGF2ZU5vdGhpbmcgfTsKICAgICBkb3VibGUgbV92b2x1bWUgeyAxIH07CiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKICAgICBNZWRpYVRpbWUgbV9kdXJhdGlvbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKaW5kZXggODdlN2I4YmJhZWMz
NTM0ZTdkZWZkNzgyMzg2MTAxNDMyMTc1MzhjNy4uMjU2YjNjNTlmYmU0MmI2YmMxYTMwNjcxZTcw
MGE1NzM0ZGRiOWY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCisKICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKQEAgLTMyLDQgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBlbnVtIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlPjsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
Y3BwCmluZGV4IDg3ZmMxMTg4NjZlYmE3OTc5MWFmNzU2ZTU2MGNkNzY3NmVkMmY5Y2QuLmQ4NmRh
YWU5ZTQ2ZGFkYjQyMDdiZGYzODIxMDhmMjA0NjkzYmM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
IAorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC0zOSw2ICs0MSw3IEBA
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVz
aW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjAxLDM3
ICsyMDQsMzcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFu
Z2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWYKICAgICAgICAgcGxheWVyLT5yZWFk
eVN0YXRlQ2hhbmdlZChzdGF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
Ojp2b2x1bWVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZCwgZG91YmxlIHZvbHVtZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1
bWVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2
b2x1bWUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAg
ICAgIHBsYXllci0+dm9sdW1lQ2hhbmdlZCh2b2x1bWUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6bXV0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBib29sIG11dGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6bXV0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9v
bCBtdXRlKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAg
ICAgICBwbGF5ZXItPm11dGVDaGFuZ2VkKG11dGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6dGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OnRpbWVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IE1lZGlhVGltZSYmIHRpbWUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdl
dChpZCkpCiAgICAgICAgIHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZSh0aW1lKSk7CiB9CiAK
LXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQor
dm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQogewogICAgIGlm
IChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPmR1cmF0
aW9uQ2hhbmdlZChXVEZNb3ZlKHRpbWUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OnJhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgZG91YmxlIHJhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0
ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHJh
dGUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAg
IHBsYXllci0+cmF0ZUNoYW5nZWQocmF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVy
cy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHBhdXNlZCk7
CkBAIC0yNDMsNiArMjQ2LDE0IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjplbmdp
bmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vCiAgICAgICAgIHBs
YXllci0+ZW5naW5lRmFpbGVkVG9Mb2FkKHBsYXRmb3JtRXJyb3JDb2RlKTsKIH0KIAordm9pZCBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBv
cHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgICAgIHBsYXll
ci0+cmVxdWVzdFJlc291cmNlKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3Zl
KHJlcXVlc3QpLCBvcHRpb25zKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0
aW5ncyYgc2V0dGluZ3MpCiB7CiAgICAgYXV0byByZWdpc3RlckVuZ2luZSA9IFt0aGlzXShNZWRp
YUVuZ2luZVJlZ2lzdHJhciByZWdpc3RyYXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIuaAppbmRleCA0Y2ZjMWFjMGU3Mjg4MTQ2NmQ0MTI2OGFjYWEyYTNjNDI0ZTQ4M2IyLi4zYjQ2
MWJhNDZlZWQwNjNmOWEyMWQwM2M3ZTNmNDc3NzBhYmRjY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNoYXJlZE1l
bW9yeS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXllci5oPgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICBJUEM6
OkNvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KIAogICAgIHZvaWQgZGVsZXRlUmVt
b3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAKQEAg
LTc5LDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJhdGVDaGFuZ2VkKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgZG91YmxlKTsKICAgICB2b2lkIHBsYXli
YWNrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgYm9vbCk7CiAgICAgdm9pZCBlbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBsb25nKTsKKyAgICB2b2lkIHJlcXVlc3RSZXNvdXJj
ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAg
IHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBl
YzJiNDNiY2RiNjFiNTNhZmU1MWJlZjNjM2Q0MzdlZmU3ZTRiNTAxLi5mMDRlMTA0NzllOTI5YWVi
NDRlNGE2ZWU5NWI5ODFiYmMwNTIxYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5tZXNzYWdlcy5pbgpAQCAtMjEsMTAgKzIxLDkgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoVklERU8pCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIgTm90UmVmQ291bnRlZCB7Ci0KICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKICAgICBSZWFkeVN0YXRlQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06
dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQogICAg
IFZvbHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBkb3VibGUgdm9sdW1lKQpAQCAtMzQsNiArMzMsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7CiAgICAgUmF0ZUNoYW5nZWQoV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKICAg
ICBQbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9y
Q29kZSkKKworICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+
ICgpIEFzeW5jCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcwN2EyYzA4MDhkYWZlODJlNDdjMWVlMGFkZDk2OTVjN2ZlZDk3YjEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eS5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BvbGljeUNoZWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCisgICAgOiBtX2dwdVByb2Nl
c3NDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkKGlkKQoreworfQor
CitSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6On5SZW1vdGVNZWRpYVJlc291cmNlUHJveHkoKQor
eworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVzcG9uc2VSZWNlaXZlZChX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTaG91bGRD
b250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6UmVzcG9uc2VSZWNlaXZlZChtX2lkLCByZXNwb25zZSksIFtjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihXZWJDb3JlOjpTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICB9KTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlZGlyZWN0UmVjZWl2ZWQo
bV9pZCwgcmVxdWVzdCwgcmVzcG9uc2UpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKCkgbXV0YWJsZSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0pOwor
fQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZShX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlUHJveHk6OmRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2ln
bmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9C
ZVNlbnQpCit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkRhdGFTZW50KG1faWQsIGJ5dGVzU2VudCwgdG90YWxC
eXRlc1RvQmVTZW50KSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpk
YXRhUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6RGF0YVJlY2VpdmVkKG1faWQsIGRh
dGEsIGxlbmd0aCksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpBY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlc291cmNlUHJveHk6OmxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9ncHVQ
cm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OkxvYWRGYWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OmxvYWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
KQoreworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjpMb2FkRmluaXNoZWQobV9pZCksIDApOworfQorCit9CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI3MThmNTlmOWU3OTE4
YjQzMjM3MDYxODAyZmQxMDA1ZmQwOTc4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eShS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7Cisg
ICAgflJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSgpOworCisgICAgLy8gUGxhdGZvcm1NZWRpYVJl
c291cmNlQ2xpZW50CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlKT4mJik7CisgICAgdm9pZCBy
ZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik+JiYpOworICAg
IGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkYXRhU2VudChX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2ln
bmVkIGxvbmcgbG9uZyk7CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciosIGludCk7CisgICAgdm9pZCBhY2Nlc3NDb250cm9s
Q2hlY2tGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZhaWxlZChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9p
ZCBsb2FkRmluaXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJik7CisKK3ByaXZh
dGU6CisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKKyAg
ICBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386178</attachid>
            <date>2019-12-19 20:39:40 -0800</date>
            <delta_ts>2019-12-24 00:30:56 -0800</delta_ts>
            <desc>Fix iOS build failure</desc>
            <filename>bug-205379-20191219203939.patch</filename>
            <type>text/plain</type>
            <size>97760</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiMzVlYjk1MmRmNmE2ZTAx
NTU5Y2JkNTIwYmE3YWE1NTc2ZTVlN2IuLjU2MDM5NzY1MzM1MmZlMjNiMTFhNjkzNWE0NTc3NWRk
NTI0NDlmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEwIEBACisyMDE5LTEyLTE5ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNv
dXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIsIFJl
bW90ZU1lZGlhUmVzb3VyY2UsIGFuZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBpbiB0aGUg
R1BVIHByb2Nlc3MgZm9yIG1lZGlhLAorICAgICAgICBhbmQgUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5IGluIHRoZSBXZWIgcHJvY2Vzcy4KKyAgICAgICAgRGlzYWJsZSB1bmlmaWVkIGJ1aWxkIG9m
IGFsbCB0aGUgY3BwIGZpbGVzIGZvciBtZWRpYSBpbiBHUFUgYmVjYXVzZSBvZiBhIHN0cmFuZ2Ug
aXNzdWUgcmVsYXRlZCB0byBkdXBsaWNhdGVkICJGaXhlZCIga2V5d29yZCBkZWZpbml0aW9uLgor
ICAgICAgICBUaGlzIHBhdGNoIHVzZXMgWFBDIG1lc3NhZ2VzIHRvIHRyYW5zZmVyIG1lZGlhIGRh
dGEsIHdoaWNoIGlzIG5vdCBlZmZpY2llbnQuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2Up
OgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFQbGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bG9nQ2hhbm5lbCBjb25zdCk6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6V2ViUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpSZW1vdGVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlOjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlOjpyZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OnNldFJlYWR5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6YWRkTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWNjZXNzQ29udHJv
bENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAq
IFBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0Ogor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKToKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VG
cm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVkaXJlY3RSZWNlaXZlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNl
bnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNl
aXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNz
Q29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Ojpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5Ojpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOiBBZGRlZC4KKwogMjAxOS0xMi0xOSAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBMb2cgdGVsZW1ldHJ5IGZvciBJ
T1VzZXJDbGllbnQgbG9va3VwcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4N2ZmZWU3ZGI4MGUxMTRkMjI1MTEy
NjYuLjQzYWY3MGFlZTllMzNiZWE4YWRlMDBmNzNlZTNjYTcyMmYyYjA0ZTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE3LDYgKzE3LDcg
QEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVByb2Nlc3MubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuR1BVUHJv
Y2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJ
UikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9t
UHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vz
cy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5ODY5Y2YxNzE2MWZlZDk0NDky
YjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43YmU4OTQ5Y2NhZjIwOGQyYTM1ZDJlYTBhYmNiMGEyZGU4
MmU5MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKQEAgLTEyMCw2ICsxMjAsOSBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlc1JlcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oCiskKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5
TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIv
UmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRkNzRhYjU4ZTUwNGE4MTIxODMuLjNj
MDc3ZTRmMTdjY2NmMWYzYjgyZGIyYTIwNGQxOTg2YzJmM2NmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAg
ICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5IFwKKyAgICBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogICAg
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggZDAxOWU3MTVhNmM2ODJlYzZhNDI1YjVlMzkzOTcwZWEyYzc4
ZDY1ZC4uNWVlZDcyZmVlZTc4NDE2NDFjNzFjYTFiMTM1OTBhMjg4MjU1NWIzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAi
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtOTgsMTAgKzk5LDE4IEBAIHZvaWQgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1f
cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworfQorCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlmICghbV9y
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSkKLSAgICAgICAgbV9yZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSA9IG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+
KCp0aGlzKTsKKyAgICAgICAgbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSA9IG1ha2VV
bmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+KCp0aGlzLCByZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcigpKTsKIAogICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTsKIH0KQEAgLTEyMSw2ICsxMzAsOSBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSQog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAg
ICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdl
YlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKKyAgICB9IGVs
c2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIHJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKaW5kZXggYzQwNjg1ZjE2N2Q1NDBiZTVlYTc0ZTY4M2FkMDk3MzhiOWRhYWQ5Zi4uMGU0ZjEw
ZGRhODAwZWM4Y2ZmODlkZWM5MWMwNTg1YWRlMjU3YjY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2ICsz
OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwogCiBjbGFzcyBHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzPgpAQCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoR1BVUHJvY2VzcyYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpOwogCisgICAgUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CiAgICAgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCk7
CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSYgdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOwpA
QCAtNzIsNiArNzQsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNvbnN0IFdl
YkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyPiBtX3JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKICNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eT4gbV91c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggMjkyOWU3MDQyYTI1NjllYjhmM2My
NmNlZTMwMzQwMjI0MTIxODU0Yy4uMmMyYTA3NmNkMGE4MzY1NWE5NDUxY2E1ODdjZTkwZjM5NTE2
Y2QyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSw5ICsyOSwxMSBA
QAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBAIC00MCw2ICs0Miw3IEBACiAj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hFQ0tf
QkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAtNTAsOCAr
NTMsOSBAQCBzdGF0aWMgUmVmUHRyPExvZ2dlcj4mIG51bGxMb2dnZXIoKQogfQogI2VuZGlmCiAK
LVJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uKQorUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
JiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICAgICA6IG1fZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcyhjb25uZWN0aW9uKQorICAgICwgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihy
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICAsIG1fbG9nSWRlbnRpZmllcihXVEY6OkxvZ2dlckhlbHBlcjo6dW5pcXVlTG9nSWRlbnRpZmll
cigpKQogI2VuZGlmCkBAIC02Nyw3ICs3MSw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OmNyZWF0ZU1lZGlhUGxheWVyKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkCiAg
ICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWQpOwogCiAgICAgQVNTRVJUKCFtX3Byb3hpZXMu
Y29udGFpbnMoaWQpKTsKLSAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFJlbW90ZU1l
ZGlhUGxheWVyUHJveHk+KCp0aGlzLCBpZCwgbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNv
bm5lY3Rpb24oKSwgZW5naW5lSWRlbnRpZmllcikpOworICAgIG1fcHJveGllcy5hZGQoaWQsIG1h
a2VVbmlxdWU8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4oKnRoaXMsIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIsIGlkLCBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigp
LCBlbmdpbmVJZGVudGlmaWVyKSk7CiAKICAgICBjb21wbGV0aW9uSGFuZGxlcih0cnVlKTsKIH0K
QEAgLTI0NiwxMSArMjUwLDExIEBAIGNvbnN0IExvZ2dlciYgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0CiAKIFdURkxvZ0NoYW5uZWwmIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViS2l0
MkxvZ1dlYlJUQzsKKyAgICByZXR1cm4gV2ViS2l0MkxvZ01lZGlhOwogfQogI2VuZGlmCiAKLX0K
K30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9DSEVDS19DT05URVhUSUQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAppbmRleCA3ZTUxZTNjNmUxMmFhNGJlYjg1NGEy
ODhmMjU1YzhhZmY0NmQwZmM3Li4zZGRkNDhiYmQ5NTM0YmFmYTJjNjc5ODZiYjI3MGY3YzQ0NDNm
Nzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAtMzAsMTIgKzMwLDE0IEBACiAj
aW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5
ZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OwogCiBjbGFzcyBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eQpAQCAtNDYsNyArNDgsNyBAQCBjbGFzcyBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eQogewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmKTsKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXImKTsKICAgICB+UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKTsKIAog
ICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mo
KSBjb25zdCB7IHJldHVybiBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7IH0KQEAgLTk1LDEy
ICs5NywxMyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4+IG1f
cHJveGllczsKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2dwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25z
dCB2b2lkKiBtX2xvZ0lkZW50aWZpZXI7CiAjZW5kaWYKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA3ZGIwY2E5MzM0Mzg2MmIw
NjJmNmU0NjE4ZjIzZDhhOWU4M2IwOTZiLi4xMzQwY2Q1Nzc0NzBlZDE1YjFjY2RjYmVmOTRiNzdh
MGJmMTAyYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOCw3ICsyOCw5IEBACiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTM3LDEwICszOSwxMSBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkmIG1hbmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCitSZW1vdGVNZWRpYVBsYXll
clByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5JiBtYW5hZ2VyLCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbWVkaWFSZXNvdXJjZU1h
bmFnZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlZjxJUEM6OkNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVu
dGlmaWVyIGVuZ2luZUlkZW50aWZpZXIpCiAgICAgOiBtX2lkKGlkKQogICAgICwgbV93ZWJQcm9j
ZXNzQ29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VNYW5hZ2VyKG1lZGlhUmVzb3VyY2VNYW5hZ2VyKQog
ICAgICwgbV9lbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAjaWYgIVJFTEVBU0Vf
TE9HX0RJU0FCTEVECiAgICAgLCBtX2xvZ2dlcihtX21hbmFnZXIubG9nZ2VyKCkpCkBAIC0zMTMs
OCArMzE2LDcgQEAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKQogCiBSZWZQdHI8UGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyPiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNyZWF0
ZVJlc291cmNlTG9hZGVyKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBu
dWxscHRyOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIobV9pZCwgKnRoaXMsIG1fbWVkaWFSZXNvdXJjZU1hbmFnZXIpKTsKIH0KIAogYm9vbCBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiwg
QXRvbVN0cmluZyopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCA5ZTNkMzIyM2Y3ZWJlOWE2MDI5
MDQ1MjRjNjlmMGM2YWYyZDk0NzlkLi5jZTA5NmQ4ODc2YjVkMmRjMTczYTM4NDZiYjAwM2RhZmFh
ZmVkNjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKQEAgLTI3LDM3ICsyNywzNCBAQAogCiAjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvcmUvQ29va2llLmgiCiAjaW5jbHVkZSA8
d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVkaWFQbGF5ZXI7Ci19Ci0KIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIAogY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eQotICAgIDogcHVibGljIE1lZGlhUGxheWVyQ2xpZW50IHsK
KyAgICA6IHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudCB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllcik7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSYsIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiwgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyKTsKICAgICB2aXJ0dWFs
IH5SZW1vdGVNZWRpYVBsYXllclByb3h5KCkKICAgICB7CiAgICAgfQogCisgICAgSVBDOjpDb25u
ZWN0aW9uJiBXZWJQcm9jZXNzQ29ubmVjdGlvbigpIHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb247IH0KKwogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgdm9pZCBwcmVwYXJlRm9y
UGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJl
bG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nKTsKIAot
ICAgIHZvaWQgbG9hZChjb25zdCBVUkwmLCBjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgbG9hZChjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlw
ZSYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogCiAgICAgdm9pZCBw
cmVwYXJlVG9QbGF5KCk7CkBAIC0xMTMsMzMgKzExMCwzMyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxh
eWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBs
YXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29u
dGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IG1lZGlh
UGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBtZWRpYVBsYXll
ckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGF1c2Uo
KSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZpbmFsOwogICAgIGJvb2wgbWVk
aWFQbGF5ZXJQbGF0Zm9ybVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpIGNvbnN0IGZpbmFs
OwotICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9h
ZGVyKCkgZmluYWw7Ci0gICAgUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVk
aWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIGZpbmFsOworICAgIFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkgZmluYWw7
CisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQ
bGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIGZpbmFsOwogICAgIGJvb2wgZG9lc0hhdmVBdHRy
aWJ1dGUoY29uc3QgQXRvbVN0cmluZyYsIEF0b21TdHJpbmcqID0gbnVsbHB0cikgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0
IGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFQbGF5ZXJNZWRpYUNhY2hlRGlyZWN0b3J5
KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayhB
dWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0
VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5
ZXJEaWRBZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBt
ZWRpYVBsYXllckRpZFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsK
LSAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1By
aXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhW
aWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRp
b1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRp
YVBsYXllckRpZEFkZFRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikg
ZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2soV2ViQ29yZTo6Vmlk
ZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlQXVk
aW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNv
cmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAKLSAgICB2b2lkIHRleHRUcmFja1JlcHJl
c2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCB0
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoQVZGX0NBUFRJ
T05TKQotICAgIFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1UZXh0VHJhY2s+PiBvdXRPZkJhbmRUcmFj
a1NvdXJjZXMoKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtVGV4
dFRyYWNrPj4gb3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFj
ZU5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIG1lZGlhUGxheWVyR2V0UmF3Q29va2llcyhj
b25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgbWVkaWFQ
bGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+Jikg
Y29uc3QgZmluYWw7CiAjZW5kaWYKIAogICAgIFN0cmluZyBtZWRpYVBsYXllclNvdXJjZUFwcGxp
Y2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwpAQCAtMTQ3LDcgKzE0NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBtZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0IGZpbmFs
OwogCiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3Qg
ZmluYWw7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBs
YXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW9GdWxsc2NyZWVuU3RhbmRi
eSgpIGNvbnN0IGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IG1lZGlhUGxheWVyUHJlZmVycmVk
QXVkaW9DaGFyYWN0ZXJpc3RpY3MoKSBjb25zdCBmaW5hbDsKIApAQCAtMTYxLDkgKzE1OCwxMCBA
QCBwcml2YXRlOgogCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lk
OwogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247Ci0gICAg
UmVmUHRyPE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFQ
bGF5ZXI+IG1fcGxheWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtX21h
bmFnZXI7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5n
aW5lSWRlbnRpZmllcjsKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbV9tZWRpYVJl
c291cmNlTWFuYWdlcjsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgbV9lbmdpbmVJZGVudGlmaWVyOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb250
ZW50VHlwZT4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKIAogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRApAQCAtMTcxLDYgKzE2OSw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAK
LX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YjQ0NzdiZGJkYmUzNzdkNGU1MTEyMWU1NjZjOTVkNWE2NzMwZTQwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
Y3BwCkBAIC0wLDAgKzEsMTE5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1l
ZGlhUmVzb3VyY2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorewor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2UocmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIsIGlkKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1l
ZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fcmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAg
LCBtX2lkKGlkKQorICAgICwgbV9yZWFkeShmYWxzZSkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNv
dXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQoreworICAgIC8vIFRPRE86IGRvIHdlIG5lZWQg
dG8gc2VuZCBtZXNzYWdlIHRvIHRoZSB3ZWIgcHJvY2VzcyBoZXJlPworICAgIG1fcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIucmVtb3ZlTWVkaWFSZXNvdXJjZShtX2lkKTsKK30KKwordm9pZCBS
ZW1vdGVNZWRpYVJlc291cmNlOjpzdG9wKCkKK3sKKyAgICAvLyBUT0RPOiBub3RpZnkgdGhlIHdl
YiBwcm9jZXNzIHRoYXQgdGhlIGpvYiBpcyBkb25lPworfQorCitib29sIFJlbW90ZU1lZGlhUmVz
b3VyY2U6OmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25zdAoreworICAgIHJldHVybiBm
YWxzZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX2NsaWVudCkgewor
ICAgICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0oU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUp
IG11dGFibGUgeworICAgICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRp
bnVlOjpObyAmJiB3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+c3RvcCgpOwor
ICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVkaXJl
Y3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5y
ZWRpcmVjdFJlY2VpdmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25zZSwgW10oUmVz
b3VyY2VSZXF1ZXN0JiYpIG11dGFibGUgeyB9KTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVJlc291
cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQoreworICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFTZW50KHVp
bnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFTZW50KCp0aGlzLCBieXRlc1NlbnQs
IHRvdGFsQnl0ZXNUb0JlU2VudCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0
YVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIGludDY0X3QgbGVuZ3RoKQoreworICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFSZWNlaXZlZCgqdGhpcywgZGF0YSwgbGVu
Z3RoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250cm9sQ2hlY2tG
YWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKCp0aGlzLCBlcnJvcik7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5s
b2FkRmFpbGVkKCp0aGlzLCBlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6
bG9hZEZpbmlzaGVkKCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5s
b2FkRmluaXNoZWQoKnRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNDVhZTkyNDdjNjY5MzQ4MTFiMWM1Y2VmNWI1YjRlMTlhMmMy
ZTJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2UuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkNvcmUvUGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworCitjbGFzcyBSZW1v
dGVNZWRpYVJlc291cmNlIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU1lZGlhUmVzb3Vy
Y2U+LCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IGNyZWF0ZShSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlciYsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBleHBsaWNp
dCBSZW1vdGVNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiwgUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNlKCk7CisK
KyAgICBib29sIHJlYWR5KCkgeyByZXR1cm4gbV9yZWFkeTsgfQorICAgIHZvaWQgc2V0UmVhZHko
Ym9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KKworICAgIC8vIFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZQorICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworICAgIGJvb2wgZGlkUGFzc0FjY2Vz
c0NvbnRyb2xDaGVjaygpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdm9pZCByZXNwb25zZVJlY2Vp
dmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIHJlZGlyZWN0
UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmKTsKKyAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGF0YVNlbnQodWludDY0X3QsIHVpbnQ2
NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50NjRfdCk7CisgICAg
dm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpOworICAgIHZvaWQgbG9hZEZhaWxlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7
CisgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKKworcHJpdmF0ZToKKyAgICBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciYgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKKyAgICBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOworICAgIGJvb2wgbV9yZWFkeTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NzI4YTViNDA3M2IzMGQ5NGNlOTVhNjMwYmZkNmM1ZjNjYTFiODFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
clR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMwMDg1Y2U4MzIyYThhMDIwYWI2NGY4OGIyYzQzNTY2YWYy
MTYwNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHks
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcikK
KyAgICA6IG1fbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcihtZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyKQorICAgICwgbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KHJl
bW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgLCBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpCit7Cit9CisKK1JlZlB0cjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBMb2FkT3B0aW9ucyBvcHRpb25zKQorewor
ICAgIGF1dG8gcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBSZWZQdHI8UmVtb3RlTWVkaWFSZXNvdXJj
ZT4gcmVtb3RlTWVkaWFSZXNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFSZXNvdXJj
ZShtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllcikpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuYWRkTWVkaWFSZXNvdXJj
ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVkaWFSZXNvdXJjZSk7CisK
KyAgICBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkuV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVxdWVz
dFJlc291cmNlKG1fbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgcmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpLCBbcmVtb3RlTWVkaWFSZXNv
dXJjZV0oKSB7CisgICAgICAgIGlmIChyZW1vdGVNZWRpYVJlc291cmNlKQorICAgICAgICAgICAg
cmVtb3RlTWVkaWFSZXNvdXJjZS0+c2V0UmVhZHkodHJ1ZSk7CisgICAgfSk7CisKKyAgICByZXR1
cm4gcmVtb3RlTWVkaWFSZXNvdXJjZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjU5MTkxN2M3ZTAwNjc2NjM1ZmY4
Zjg0NWFmMmU4ZTczYmMyOTRhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTAsMCArMSw1NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZTsKKworY2xhc3Mg
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcgorICAgIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5JiwgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImKTsKKyAgICB2aXJ0
dWFsIH5SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYsIExvYWRPcHRpb25zKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1fbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5JiBtX3JlbW90ZU1lZGlhUGxheWVyUHJv
eHk7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTZmNTUxMmY1ZTAwYjAzMDYzYjY3MDVlNDMw
NWY1YzUyNDA2MWU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDEwNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlc291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcigpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIoKQoreworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8UmVtb3RlTWVkaWFSZXNvdXJjZT4g
cmVtb3RlTWVkaWFSZXNvdXJjZSkKK3sKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmFkZChy
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVkaWFSZXNvdXJjZSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2UoUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
Cit7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5yZW1vdmUocmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZXNw
b25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRh
aW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAg
IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVzcG9uc2VSZWNlaXZlZChyZXNwb25z
ZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciBpZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYgbV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmdldChpZCktPnJlZGlyZWN0UmVjZWl2ZWQoV1RGTW92ZShyZXF1ZXN0KSwgcmVz
cG9uc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlk
LCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKK3sKKyAg
ICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVN
ZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VzLmdldChpZCktPmRhdGFTZW50KGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVJlY2VpdmVkKFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBTdHJpbmcmJiBkYXRhLCBpbnQzMl90IGxl
bmd0aCkKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkg
JiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmRhdGFSZWNlaXZlZCgoY29uc3QgY2hhciopZGF0YS5j
aGFyYWN0ZXJzOCgpLCBsZW5ndGgpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgaWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIEFTU0VSVChtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdl
dChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+YWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6bG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwg
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFS
ZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+
cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5sb2FkRmFpbGVk
KGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZpbmlz
aGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQoreworICAgIEFTU0VSVChtX3Jl
bW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2Vz
LmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+
bG9hZEZpbmlzaGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTIwZTE0YTFmNzk5NTIyNGE4ZDNiZTlkNzNh
ZDgyNWNlMzg1Y2YxMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oCkBAIC0wLDAgKzEsNzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2lu
Y2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiTWVz
c2FnZVNlbmRlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVz
b3VyY2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyCisgICAgOiBwdWJsaWMg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CisgICAgdmly
dHVhbCB+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkTWVkaWFS
ZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFJlbW90ZU1lZGlh
UmVzb3VyY2U+KTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CisgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgdWludDY0
X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYsIGludDMyX3QpOworICAgIHZvaWQgYWNjZXNzQ29u
dHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmFpbGVkKFJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9p
ZCBsb2FkRmluaXNoZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgSGFz
aE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFJlbW90ZU1lZGlhUmVz
b3VyY2U+PiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFiZTdjMTE4MmZmN2YyYTBiZDQ5Y2UwMDdkMzJjNWVlM2ZjYjVhZjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlc3BvbnNlUmVjZWl2ZWQoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSByZXNwb25zZSkgLT4gKCkgQXN5bmMKKyAgICBSZWRpcmVjdFJlY2VpdmVkKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoKSBBc3luYwor
ICAgIERhdGFTZW50KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIHVp
bnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQorICAgIERhdGFS
ZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBTdHJpbmcg
ZGF0YSwgaW50MzJfdCBsZW5ndGgpCisgICAgQWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlRXJy
b3IgZXJyb3IpCisgICAgTG9hZEZhaWxlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIExvYWRGaW5pc2hl
ZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKaW5kZXggMjk2ZGU4NmU2MWUyOTJmN2ViM2Y0NDg2NWM1
NzY0ZDliNDMwMzcyZi4uZTAzMjM3ZTFmZjZmZjQ3MGIyYTVjMjdlMGUxYmM0MDY4NmVlMjdlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9Mb2dnaW5nLmgKQEAgLTYyLDYgKzYyLDcgQEAgZXh0ZXJuICJDIiB7
CiAgICAgTShMYXlvdXQpIFwKICAgICBNKExvYWRpbmcpIFwKICAgICBNKExvY2FsU3RvcmFnZURh
dGFiYXNlVHJhY2tlcikgXAorICAgIE0oTWVkaWEpIFwKICAgICBNKE1vdXNlSGFuZGxpbmcpIFwK
ICAgICBNKE5ldHdvcmspIFwKICAgICBNKE5ldHdvcmtDYWNoZSkgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQwMmVmNTExODhmN2U4ZGJl
Mzk2YmE4YWNlMGZhZC4uMjU3YjAwZWI4NjA4ODE1YWM4OWI1NzI1YjVhYjIxNDkzMDc5ZjE4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIw
LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAg
ICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDU0MjRlNWRm
YmIxNTIwMTBiMGIzMmQ2ZjVlYTZkNTM1ODkxNGU1NmIuLjJjYTUxMjc3NzEyOWUzMWMwMTc1YTYw
YmZhZjlmMmQxMGFlYjAyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsNiArMjQsMTEgQEAKIEdQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKy8vR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKy8vR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorLy9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAKIAogTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5j
cHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC01MDAsOCAr
NTA1LDkgQEAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9NZWRpYURldmljZVNhbmRib3hFeHRlbnNp
b25zLmNwcAogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAot
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAotV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisvL1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogCiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDY1MTg0ZWRkZmY5MmU1MzA4OGNl
OTgxYTEyNWQ2Y2VhM2Q4YjllNjIuLmQ0OTQyZjc0Njk5MTkwMWJhZTZkN2YyMjEzZDY5M2M2OTc3
YzNhYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU5LDggKzU5LDYgQEAgTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKIEdQVVByb2Nlc3MvaW9zL0dQVVBy
b2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KLUdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKLUdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVD
Ri5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDFjNWM2Y2E0YmFjYmE0YjEzNGQ0NGFmOTIwMGIwYjFlOGI0Y2EyYjMuLmI1YWQ4NWIz
OTI1NjRiNjJjZWZmZTA2ZTBiMzFiNGM0MTMwYmEwYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA1LDcgKzQwNSwyMCBAQAogCQkx
Q0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdD
ODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNC
QkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlF
MTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5
RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OworCQkx
RDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5QjIzQTg0
QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi87IH07CisJCTFEMzJG
ODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUQyM0E4NEM1
QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi87IH07CisJCTFEM0FC
MDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovOyB9
OworCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0JBRjM1
NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi87IH07CisJ
CTFEM0FCMDUyMjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODk5MjNBODQ2
ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTMy
M0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzQUIwNEUyM0FCMDA5QjAw
NUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQkxRDNBQjA1
NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4OUUyM0E4Mjc3
ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTUyM0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMTIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMDIzOUIz
QjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQ0
RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkxRDRENzM3NjIz
QTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3
Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVl
dENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICov
OyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICov
OyB9OwogCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEz
MDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlG
QjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1t
ICovOyB9OwogCQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
TG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERl
bGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTI2MTIsOSArMjYyNSwyMiBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJ
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
Ykluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUQyM0E4NEM1QjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzQUIw
NEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2QzIz
QTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM3NTIzQTlF
QjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVTaGVldENhbGxiYWNrSUQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODlF
MjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hl
ZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hl
ZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQz
OUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERTJERkFDMjNB
OTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkExODU4
REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NDksNyArNDg3NSw3IEBACiAJCURGNThDNjMxMTM3MUFDNTgw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJXaGVl
bEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTE1
QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYg
LyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5pY25zOyBu
YW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTA5OCw2ICs1MTI0LDggQEAKIAkJCQkwNzkyMzEzMDIzOUIzQjBDMDA5
NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLywKIAkJCQkwNzkyMzEzNDIz
OUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJMDc5
MjMxMzMyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbiAqLywKKwkJCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcCAqLywKKwkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTUxMTAsNiArNTEzOCwxNCBAQAogCQkJCTA3MjVFRkFC
MjM5QUUzODQwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbiAqLywKIAkJCQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHAgKi8sCiAJCQkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1l
ZGlhUGxheWVyUHJveHkuaCAqLywKKwkJCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8sCisJCQkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAqLywKKwkJCQkxREUyREZBQzIzQTk1OUY4MDAzRTAxM0Eg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQkxRDNBQjA0RTIzQUIw
MDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8sCisJCQkJMUQz
QUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLywK
KwkJCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwICovLAorCQkJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oICovLAorCQkJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRoID0g
bWVkaWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTI2MCw2ICs5Mjk2LDkgQEAK
IAkJCQkwNzkyMzE0NTIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTA3OTIzMTQ2MjM5Q0JDQjcwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJMDc5
MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDRENzM2
QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
ICovLAorCQkJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgzMTg1OTBDNDYwMEYzRUMw
NSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUFD
MTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCAq
LywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAxNTAsNiArMTAxODksMTAgQEAKIAkJ
CQkwNzkyMzE0QTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0QzIzOUNCQ0I4MDA5NTk4
RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc5MjMxNDgyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxREE0MDg5NTIz
QTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDRENzM3NjIzQTlFRDE4MDA3
MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5
MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA0
RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTc2MCw2ICsxMTgwMyw3IEBACiAJCQkJMjk4NEY1N0Mx
NjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0OUQ5MERBMjFGREMzMEIwMEY2NzdD
MCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQky
RDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyogTG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEyQjZBNzEwMEY0OTNGRCAvKiBNZXNzYWdl
UmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3ODIyMTJCNkE3MTAwRjQ5
M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3N0EyMTJC
NkE2MTAwRjQ5M0ZEIC8qIE1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTExODE2LDggKzEx
ODYwLDE2IEBACiAJCQkJMkQ3MkExRkEyMTJCRjQ2RTAwNTE3QTIwIC8qIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FC
RjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGQjQyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxh
eWVyVHJlZVZpZXdzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTYyM0FDMDFGNjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
NzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTEyM0FDMDFB
QTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTQyM0FDMDFCNzAw
NUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDMyRjg5RTIzQTg0QzVC
MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4
NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRl
eCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgwLi5iOGU0NzY3ZmMwMGQ0
OTMxZTRkOGExMzRiYmIzY2RlOGQ0Njc2ZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtNjUsNyArNjUsNyBA
QCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbgogdm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkg
ewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0
aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVu
dDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVBy
b2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4NTNjYzE2NTUwOTRiYjUyNDIxZmI2Y2Zh
MWMzMTlhOTY0NzFjMDk0Li4zMWM2MTA0NjY5ZjJmMDJmZmE0NDBmZWI4ODA5MjZjNzRhZTI2YWNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lk
IGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdl
TmFtZSkgb3ZlcnJpZGU7CiAKLSAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIGEgd2ViIHByb2Nl
c3MgdG8gdGhpcyBHUFUgcHJvY2Vzcy4KKyAgICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3
ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGE5
Yjg5NmI4NmNhZDI1OTc2NDU2ZGEyOTFkNWE1OTgxNzk0MDkzZjMuLjEwNDMwYzRhMjU1MzdlZGRi
MDJmMjdjOWY5YjMwODM1ZjZjMDhkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAK
QEAgLTQxLDExICs0MSwxMiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7Ci11c2luZyBuYW1lc3BhY2UgUEFMOworCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2Vy
KQogICAgIDogbV9wbGF5ZXIocGxheWVyKQorICAgICwgbV9tZWRpYVJlc291cmNlTG9hZGVyKHBs
YXllci0+Y3JlYXRlUmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQog
ICAgICwgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAgICAgLCBt
X2lkKHBsYXllcklkZW50aWZpZXIpCkBAIC03NjgsNiArNzY5LDEzIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlOjplbmdpbmVGYWlsZWRUb0xvYWQobG9uZyBwbGF0Zm9ybUVycm9yQ29k
ZSkKICAgICBtX3BsYXllci0+cmVtb3RlRW5naW5lRmFpbGVkVG9Mb2FkKCk7CiB9CiAKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBhdXRvIHJlc291cmNlID0gbV9tZWRp
YVJlc291cmNlTG9hZGVyLT5yZXF1ZXN0UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9u
cyk7CisgICAgcmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eT4obV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIHJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyKSk7CisgICAgbV9tZWRpYVJlc291cmNlcy5hZGQocmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVzb3VyY2UpKTsKK30KKwogI2lmICFSRUxFQVNF
X0xPR19ESVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjps
b2dDaGFubmVsKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDViYzc2
N2NjYzAxYTllMTczZjEzNTlhZjYwMTNkM2E3YjEyZGUyMmUuLjdhNWM5MzYzZTk0MWFlYjU5MWZi
ZWNlZDQ5YTNmNWExOGU4Yzg0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMjgs
NiArMjgsOCBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVy
Lmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtMzcsMjIgKzM5LDIyIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwKICAg
ICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+Ci0gICAg
LCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisgICAgLCBwdWJsaWMgV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVE
CiAgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShNZWRp
YVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIpCisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJD
b3JlOjpNZWRpYVBsYXllciogcGxheWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIm
IG1hbmFnZXIpCiAgICAgewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgaWRlbnRpZmllciwg
bWFuYWdlcik7CiAgICAgfQogCi0gICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXImKTsKKyAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVk
aWFQbGF5ZXIqLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlciYpOwogICAgIHZpcnR1YWwgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCiAg
ICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9Ci0gICAgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIoKSBj
b25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7IH0KKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsgfQogICAgIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySXRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpOZXR3b3JrU3RhdGUpOwpAQCAtNjUsNiArNjcsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwbGF5YmFja1N0YXRlQ2hhbmdlZChib29sKTsKICAgICB2b2lkIGVuZ2lu
ZUZhaWxlZFRvTG9hZChsb25nKTsKIAorICAgIHZvaWQgcmVxdWVzdFJlc291cmNlKFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyk7CisKICNpZiAhUkVM
RUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICptX2xvZ2dlcjsgfQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUiOyB9CkBAIC03
MywxNCArNzcsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBsb2Fk
KGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0g
ICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6
OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7CisgICAg
dm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3Qg
U3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRl
TW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gs
IGJvb2wgcHJlcGFyZSkgZmluYWw7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBmaW5hbDsK
KyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRl
Q2xpZW50KikgZmluYWw7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIHZv
aWQgbG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWw7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbExv
YWQoKSBmaW5hbDsKIApAQCAtMTAyLDkgKzEwNiw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKSkKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIq
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAg
dm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIGZpbmFsOwotICAgIHZvaWQg
c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsKLSAgICB2b2lkIHNldFZp
ZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgZmluYWw7Ci0g
ICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6
OkZsb2F0UmVjdCkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpIGZpbmFsOworICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuTW9kZShXZWJDb3JlOjpNZWRpYVBsYXllcjo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSkgZmluYWw7CiAgICAgdm9pZCB2aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5Q2hhbmdlZCgpIGZpbmFs
OwogI2VuZGlmCiAKQEAgLTExNCw3ICsxMTgsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBlcnJv
ckxvZygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGlj
eShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBmaW5hbDsKKyAgICB2b2lkIHNldEJ1ZmZl
cmluZ1BvbGljeShXZWJDb3JlOjpNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBmaW5hbDsK
IAogICAgIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKQEAgLTEyMiw3ICsxMjYsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5TYXZlTWVkaWFEYXRhKCkgY29uc3QgZmluYWw7CiAK
LSAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpG
bG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaGFzVmlkZW8o
KSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3QgZmluYWw7CkBAIC0xNTUs
MjkgKzE1OSwyOSBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJhdGUoKSBj
b25zdCBmaW5hbDsKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3QgZmluYWw7
CiAKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQorICAg
IFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9yZWFkeVN0
YXRlOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJs
ZSgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRp
bWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CiAKICAgICBNZWRpYVRpbWUgbWF4TWVk
aWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBNZWRpYVRpbWUgbWluTWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1l
UmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgZmluYWw7CiAgICAgZG91
YmxlIHNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKSBjb25zdCBmaW5hbDsKICAg
ICBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKCkgY29uc3QgZmluYWw7CiAKICAgICB1bnNpZ25l
ZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGlu
Z1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6
ZSYpIGZpbmFsOworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmlu
YWw7CiAKLSAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYp
IGZpbmFsOworICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAKLSAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwotICAg
IGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNE
KiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEZW51
bSwgR0MzRGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwotICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2
ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1l
SW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJl
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0s
IEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0sIGJvb2wsIGJvb2wpIGZpbmFs
OworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUo
KSBmaW5hbDsKIAotICAgIHZvaWQgc2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9hZCkgZmlu
YWw7CisgICAgdm9pZCBzZXRQcmVsb2FkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkKSBm
aW5hbDsKIAogICAgIGJvb2wgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFsOwog
CkBAIC0xODgsMTQgKzE5MiwxNCBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKICAgICBTdHJpbmcgd2lyZWxlc3NQbGF5YmFja1RhcmdldE5hbWUoKSBj
b25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUg
d2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUgd2lyZWxlc3NQbGF5YmFja1Rh
cmdldFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNr
RGlzYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFj
a0Rpc2FibGVkKGJvb2wpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5QbGF5VG9XaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0N1cnJlbnRQbGF5YmFja1Rhcmdl
dFdpcmVsZXNzKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRXaXJlbGVzc1BsYXliYWNrVGFy
Z2V0KFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBmaW5hbDsKKyAgICB2b2lkIHNldFdpcmVs
ZXNzUGxheWJhY2tUYXJnZXQoUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZp
bmFsOwogCiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sKSBmaW5h
bDsKICNlbmRpZgpAQCAtMjEyLDkgKzIxNiw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc1Np
bmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBkaWRQYXNzQ09SU0Fj
Y2Vzc0NoZWNrKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludE9y
aWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOworICAgIE9wdGlvbmFsPGJv
b2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mKSBjb25z
dCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUo
KSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBt
b3ZpZUxvYWRUeXBlKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJp
bmcoKSBmaW5hbDsKIApAQCAtMjMwLDI1ICsyMzQsMjUgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
ZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8p
Ci0gICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwor
ICAgIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBm
aW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCi0gICAg
c3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3Ry
aW5nJiwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOwotICAgIHZvaWQgc2V0Q0RNU2Vz
c2lvbihMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkxlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOworICAgIHZvaWQgc2V0Q0RNU2Vzc2lv
bihXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7CiAgICAgdm9pZCBrZXlBZGRlZCgp
IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAgIHZvaWQg
Y2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwotICAgIHZvaWQgY2RtSW5z
dGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwotICAgIHZvaWQgYXR0ZW1wdFRvRGVj
cnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIHZvaWQgY2RtSW5zdGFu
Y2VBdHRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIHZvaWQgY2RtSW5z
dGFuY2VEZXRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIHZvaWQgYXR0
ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOwog
ICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9u
KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0
VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOworICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVz
ZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSBmaW5hbDsKICAgICB2
b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrc0NoYW5nZWQo
KSBmaW5hbDsKICNlbmRpZgpAQCAtMjY4LDcgKzI3Miw3IEBAIHByaXZhdGU6CiAKICAgICBib29s
IGVuZGVkKCkgY29uc3QgZmluYWw7CiAKLSAgICBPcHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0
eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFsOworICAgIE9wdGlv
bmFsPFdlYkNvcmU6OlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1
YWxpdHlNZXRyaWNzKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogICAgIHZv
aWQgbm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMjg5LDEzICsyOTMsMTYgQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpIGZpbmFsOwog
Ci0gICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OwotICAgIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlciBtX21hbmFnZXI7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKKyAgICBXZWJDb3JlOjpNZWRp
YVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOworICAgIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7CiAg
ICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwogCi0gICAgTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZSB7IE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGU6OkVtcHR5IH07Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRl
IHsgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nIH07CisgICAgSGFzaE1hcDxS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZT4+IG1fbWVkaWFSZXNvdXJjZXM7CisKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXll
cjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5l
dHdvcmtTdGF0ZTo6RW1wdHkgfTsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVhZHlTdGF0
ZSBtX3JlYWR5U3RhdGUgeyBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5v
dGhpbmcgfTsKICAgICBkb3VibGUgbV92b2x1bWUgeyAxIH07CiAgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKICAgICBNZWRpYVRpbWUgbV9kdXJhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKaW5kZXggODdlN2I4YmJhZWMzNTM0ZTdkZWZkNzgyMzg2
MTAxNDMyMTc1MzhjNy4uMjU2YjNjNTlmYmU0MmI2YmMxYTMwNjcxZTcwMGE1NzM0ZGRiOWY1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKQEAgLTI1LDYg
KzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNp
bmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTMyLDQgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBlbnVtIE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXJUeXBlPjsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IDg3ZmMx
MTg4NjZlYmE3OTc5MWFmNzU2ZTU2MGNkNzY3NmVkMmY5Y2QuLmQ4NmRhYWU5ZTQ2ZGFkYjQyMDdi
ZGYzODIxMDhmMjA0NjkzYmM2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAg
LTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkdQ
VVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC0zOSw2ICs0MSw3IEBACiAjaW5jbHVkZSA8d3Rm
L0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVzaW5nIG5hbWVzcGFjZSBQ
QUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjAxLDM3ICsyMDQsMzcgQEAgdm9p
ZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWYKICAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChz
dGF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZv
bHVtZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiB7CiAgICAg
aWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+dm9s
dW1lQ2hhbmdlZCh2b2x1bWUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
bXV0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBib29sIG11dGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0ZUNoYW5nZWQo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQogewogICAg
IGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPm11
dGVDaGFuZ2VkKG11dGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dGlt
ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBN
ZWRpYVRpbWUmJiB0aW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRpbWVDaGFu
Z2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIE1lZGlhVGltZSYmIHRp
bWUpCiB7CiAgICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAg
IHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZSh0aW1lKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQordm9pZCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBNZWRpYVRpbWUmJiB0aW1lKQogewogICAgIGlmIChhdXRvIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZChXVEZN
b3ZlKHRpbWUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJhdGVDaGFu
Z2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91Ymxl
IHJhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0ZUNoYW5nZWQoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHJhdGUpCiB7CiAgICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+cmF0ZUNo
YW5nZWQocmF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpwbGF5YmFj
a1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIGJvb2wgcGF1c2VkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnBsYXliYWNr
U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wg
cGF1c2VkKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAg
ICAgICBwbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHBhdXNlZCk7CkBAIC0yNDMsNiArMjQ2
LDE0IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjplbmdpbmVGYWlsZWRUb0xvYWQo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vCiAgICAgICAgIHBsYXllci0+ZW5naW5lRmFp
bGVkVG9Mb2FkKHBsYXRmb3JtRXJyb3JDb2RlKTsKIH0KIAordm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGF1dG8g
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgICAgIHBsYXllci0+cmVxdWVzdFJlc291
cmNlKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRp
b25zKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3Mp
CiB7CiAgICAgYXV0byByZWdpc3RlckVuZ2luZSA9IFt0aGlzXShNZWRpYUVuZ2luZVJlZ2lzdHJh
ciByZWdpc3RyYXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCA0Y2Zj
MWFjMGU3Mjg4MTQ2NmQ0MTI2OGFjYWEyYTNjNDI0ZTQ4M2IyLi4zYjQ2MWJhNDZlZWQwNjNmOWEy
MWQwM2M3ZTNmNDc3NzBhYmRjY2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
ci5oPgpAQCAtNTYsNyArNTcsNyBAQCBwdWJsaWM6CiAKICAgICBJUEM6OkNvbm5lY3Rpb24mIGdw
dVByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXIm
IGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKyAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7IH0KIAogICAgIHZvaWQgZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAKQEAgLTc5LDYgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciwgZG91YmxlKTsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCk7CiAgICAg
dm9pZCBlbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBsb25nKTsKKyAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxv
YWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBm
cmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3VwcG9y
dGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
LCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBlYzJiNDNiY2RiNjFiNTNh
ZmU1MWJlZjNjM2Q0MzdlZmU3ZTRiNTAxLi5mMDRlMTA0NzllOTI5YWViNDRlNGE2ZWU5NWI5ODFi
YmMwNTIxYzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5p
bgpAQCAtMjEsMTAgKzIxLDkgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoVklERU8pCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRl
ZCB7Ci0KICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6Ok5ldHdvcmtTdGF0ZSBzdGF0ZSkKICAgICBSZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpSZWFkeVN0YXRlIHN0YXRlKQogICAgIFZvbHVtZUNoYW5nZWQo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9s
dW1lKQpAQCAtMzQsNiArMzMsOCBAQCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXIgTm90UmVmQ291bnRlZCB7CiAgICAgUmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKICAgICBQbGF5YmFja1N0YXRl
Q2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJv
b2wgcGF1c2VkKQogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29kZSkKKworICAgIFJl
cXVlc3RSZXNvdXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
bWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+ICgpIEFzeW5jCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwN2EyYzA4
MDhkYWZlODJlNDdjMWVlMGFkZDk2OTVjN2ZlZDk3YjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5j
cHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKworI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Bv
bGljeUNoZWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCisgICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKFdU
Rk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX2lkKGlkKQoreworfQorCitSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6On5SZW1vdGVNZWRpYVJlc291cmNlUHJveHkoKQoreworfQorCit2b2lkIFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTaG91bGRDb250aW51ZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVzcG9uc2VS
ZWNlaXZlZChtX2lkLCByZXNwb25zZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihX
ZWJDb3JlOjpTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVN
ZWRpYVJlc291cmNlUHJveHk6OnJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlZGlyZWN0UmVjZWl2ZWQobV9pZCwgcmVxdWVzdCwg
cmVzcG9uc2UpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKCkgbXV0YWJsZSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0pOworfQorCitib29sIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikKK3sKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFT
ZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZyBi
eXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OkRhdGFTZW50KG1faWQsIGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KSwg
MCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpkYXRhUmVjZWl2ZWQoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkKK3sKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6RGF0YVJlY2VpdmVkKG1faWQsIGRhdGEsIGxlbmd0aCksIDAp
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNzQ29udHJvbENoZWNr
RmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpBY2Nlc3NDb250cm9sQ2hlY2tG
YWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJv
eHk6OmxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkxvYWRGYWlsZWQo
bV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6Omxv
YWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKQoreworICAgIG1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjpMb2FkRmluaXNoZWQobV9pZCksIDApOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGI3MThmNTlmOWU3OTE4YjQzMjM3MDYxODAyZmQx
MDA1ZmQwOTc4ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgflJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eSgpOworCisgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50Cisg
ICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlNob3VsZENvbnRpbnVlKT4mJik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVk
KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik+JiYpOworICAgIGJvb2wgc2hvdWxkQ2Fj
aGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkYXRhU2VudChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZyk7
CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgY2hhciosIGludCk7CisgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpOworICAgIHZvaWQgbG9hZEZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJik7CisKK3ByaXZhdGU6CisgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKKyAgICBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBtX2lkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386382</attachid>
            <date>2019-12-24 00:30:57 -0800</date>
            <delta_ts>2019-12-28 04:09:18 -0800</delta_ts>
            <desc>Update the WIP patch based on comments from Youenn.</desc>
            <filename>bug-205379-20191224003056.patch</filename>
            <type>text/plain</type>
            <size>104592</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzODk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDc4MmQ4MzQwMmI0OTZl
ZjNhZDk0ZGYyZGE1ZTZlYzk3ZTcwYjllMy4uNWEyZGNiYjJkNDFhMWIxZWRlODllYTYwNDEwYjFh
MDdiYWU1OTM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTI0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpiZWdpbkxvYWRpbmdNZXRhZGF0YSk6CisKIDIwMTkt
MTItMjMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTiAocjI1MzYzNCk6IFJlcHJvZHVjaWJsZSBjcmFzaCBnb2luZyBiYWNrIGFuZCBm
b3J3YXJkIG9uIGdvb2RyZWFkcy5jb20gaW4gUGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9yCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDc3YzQ2ZDdmNGY5ZDhjNTgyNzkzZTg2ZDlhMDBjNzQ4NTUwYWQ4MDAuLmExMmEyYzky
ZTIxMzQ4NjlkNjk1Y2E4NzU3ZTU2MDhjOWRlYzAxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEz
IEBACisyMDE5LTEyLTI0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHJlbW90ZSBtZWRpYSByZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBi
eSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAg
KiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwgY29uc3Qp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OnJlbW92ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJMb2dJ
ZGVudGlmaWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVt
b3RlTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6
On5SZW1vdGVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmRpZFBh
c3NBY2Nlc3NDb250cm9sQ2hlY2sgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZTo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2U6OnNob3VsZENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlOjpkYXRhU2VudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2U6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZTo6cmVhZHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpzZXRSZWFkeSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6On5SZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6
cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6flJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OmFkZE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6cmVtb3ZlTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVNlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVJlY2VpdmVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFjY2Vzc0NvbnRyb2xD
aGVja0ZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Ojpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBQ
bGF0Zm9ybS9Mb2dnaW5nLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAg
ICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQ
VVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWVzdFJlc291cmNlKToK
KyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZXNvdXJj
ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5z
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpuZXR3b3JrU3Rh
dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
ZWFkeVN0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpkdXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlbW92ZVJlc291cmNlKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21HUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eTo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2Vp
dmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRD
YWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
OjpkYXRhU2VudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6
ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
OjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlUHJveHk6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlUHJveHk6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg6IEFkZGVkLgorCiAyMDE5LTEyLTIzICBB
bGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIHdhdGNoT1MgYnVp
bGQgZml4IGF0dGVtcHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGZhM2VhNWNiNTlhNjM0
OGQ2MWQxZTI5MmFlOWVhNjEyZmYxMGMyMDkuLjU0YmE5YjhjZGNhOWU2OTU5NzZmOTYzYTY4ZTEz
Mjg0ODVjODJmYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTA1Myw3ICsxMDUzLDYg
QEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpiZWdpbkxvYWRpbmdN
ZXRhZGF0YSgpCiAgICAgZGlzcGF0Y2hfZ3JvdXBfZW50ZXIobWV0YWRhdGFMb2FkaW5nR3JvdXAu
Z2V0KCkpOwogICAgIGF1dG8gd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgW21f
YXZBc3NldC5nZXQoKSBsb2FkVmFsdWVzQXN5bmNocm9ub3VzbHlGb3JLZXlzOmFzc2V0TWV0YWRh
dGFLZXlOYW1lcygpIGNvbXBsZXRpb25IYW5kbGVyOl57Ci0KICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbd2Vha1RoaXMsIG1ldGFkYXRhTG9hZGluZ0dyb3VwXSB7CiAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMgJiYgW3dlYWtUaGlzLT5tX2F2QXNzZXQuZ2V0KCkgc3RhdHVzT2ZWYWx1ZUZvcktl
eTpAInRyYWNrcyIgZXJyb3I6bmlsXSA9PSBBVktleVZhbHVlU3RhdHVzTG9hZGVkKSB7CiAgICAg
ICAgICAgICAgICAgZm9yIChBVkFzc2V0VHJhY2sgKnRyYWNrIGluIFt3ZWFrVGhpcy0+bV9hdkFz
c2V0LmdldCgpIHRyYWNrc10pIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCAwN2QzMzA1YjgyMzk3MmU3ODdmZmVlN2RiODBlMTE0ZDIyNTEx
MjY2Li40M2FmNzBhZWU5ZTMzYmVhOGFkZTAwZjczZWUzY2E3MjJmMmIwNGU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNyw2ICsxNyw3
IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2Vz
LmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVBy
b2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9E
SVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3Rv
bVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggOTg2OWNmMTcxNjFmZWQ5NDQ5
MmIyZWI2NzZhMzA5NjExN2NlNjUyZi4uN2JlODk0OWNjYWYyMDhkMmEzNWQyZWEwYWJjYjBhMmRl
ODJlOTMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CkBAIC0xMjAsNiArMTIwLDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdl
cy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3Ry
eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCAxN2JkY2I1ZjJkYWFhOWJiMWI2YWY0ZDc0YWI1OGU1MDRhODEyMTgzLi4z
YzA3N2U0ZjE3Y2NjZjFmM2I4MmRiMmEyMDRkMTk4NmMyZjNjZjMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0xMzksNiArMTM5LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAg
ICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCiAgICAgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSBcCisgICAgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAgIFJlbW90ZU9iamVjdFJlZ2lzdHJ5IFwKICAg
ICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBcCiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCmluZGV4IGQwMTllNzE1YTZjNjgyZWM2YTQyNWI1ZTM5Mzk3MGVhMmM3
OGQ2NWQuLmMyZjg3NDFhMWViNDE5ZDZiMTM1MGY5NDMxMmIwNTY1MTJlNDJkN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlN
ZXNzYWdlcy5oIgpAQCAtOTgsNiArMTAwLDE0IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjCiAg
ICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkKK3sKKyAgICBpZiAo
IW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyPigpOwor
CisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworfQorCiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlmICghbV9yZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eSkKQEAgLTEyMSw2ICsxMzEsOSBAQCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAg
ICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJlY2VpdmVNZXNzYWdlRnJv
bVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKKyAgICB9
IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAg
IHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKaW5kZXggYzQwNjg1ZjE2N2Q1NDBiZTVlYTc0ZTY4M2FkMDk3MzhiOWRhYWQ5Zi4uZjZm
N2U4M2FiZjk5MjkwOGQ3NjBiYmIyMzU0YjRjY2U1NmNmYzRkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zOSw2
ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJvY2VzczsKIGNsYXNzIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwogCiBjbGFzcyBHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291bnRlZDxHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzPgpAQCAtNTQsNiArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmRT
dXNwZW5zaW9uKCk7CiAKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNz
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7IH0KKyAg
ICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIo
KTsKIAogcHJpdmF0ZToKICAgICBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKEdQVVByb2Nlc3Mm
LCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKQEAgLTcyLDYgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBt
X2Nvbm5lY3Rpb247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk+IG1fdXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGI4YjNkZmQ3YzgwNDM5MjY0
MGQ3MDNjNzJiZGYwOGFlNDg3NDUzOTUuLjQxM2E2ZWFjMzY2OGU2MGY5M2ZiMDE4MjlhOGVmOTc1
ODI5ZmQ5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAtMjksMTAgKzI5
LDEyIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KQEAgLTQxLDYgKzQzLDcgQEAK
ICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmllcikgTUVTU0FHRV9DSEVD
S19CQVNFKG1fcHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCAmbV9ncHVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECkBAIC0yNjQs
MTEgKzI2NywxMSBAQCBjb25zdCBMb2dnZXImIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
Ojpsb2dnZXIoKSBjb25zdAogCiBXVEZMb2dDaGFubmVsJiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYktpdDJMb2dXZWJS
VEM7CisgICAgcmV0dXJuIFdlYktpdDJMb2dNZWRpYTsKIH0KICNlbmRpZgogCi19Cit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElECiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggMDY3MDA1NmZhNmUyOTZiNzYwZDczMWQyYzhiMTVj
Y2JlNGMwNDlhNy4uYWU1MWZjMGM1MjAwM2UzNTBkYjVkZGUyZDY2ZDgyNDg0MzcyZTQ4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTMwLDE1ICszMCwxNiBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsKIHN0cnVjdCBS
ZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
CiAgICAgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCkBAIC0xMDYsNiArMTA3LDYgQEAg
cHJpdmF0ZToKICNlbmRpZgogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDZkZmE3NWY1YzUxZDM4YWJjMWQ1Yjk4MzQ0NTI0Y2E5
YWRhNzNlOWUuLjM3MjhjMmJhYTFhYjIwZGQxYjZkOGNiODUwZjViNDM1OWI3ZDhlOWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAKQEAgLTI4LDggKzI4LDE2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiAKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlD
b25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIK
KyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90SW1wbGVtZW50ZWQuaD4KQEAgLTUzLDYgKzYxLDEwIEBAIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkm
IG1hCiAgICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzLCBtX2VuZ2luZUlk
ZW50aWZpZXIpOwogfQogCitSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSgpCit7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0
ZSgpCiB7CiAgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7CkBAIC0x
NDMsNiArMTU1LDI1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0UHJlc2VydmVz
UGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0
Y2gocHJlc2VydmVzUGl0Y2gpOwogfQogCitSZWY8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQor
eworICAgIGF1dG8mIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbV9tYW5hZ2VyLmdwdUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS5yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOworICAg
IGF1dG8gcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBhdXRvIHJlbW90ZU1lZGlhUmVzb3VyY2UgPSBS
ZW1vdGVNZWRpYVJlc291cmNlOjpjcmVhdGUocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsICp0
aGlzLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuYWRkTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgcmVtb3RlTWVkaWFSZXNvdXJjZS5wdHIoKSk7CisKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6UmVxdWVzdFJlc291cmNlKG1faWQsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBy
ZXF1ZXN0LCBvcHRpb25zKSwgW3JlbW90ZU1lZGlhUmVzb3VyY2UgPSByZW1vdGVNZWRpYVJlc291
cmNlLmNvcHlSZWYoKV0oKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2UtPnNldFJlYWR5
KHRydWUpOworICAgIH0pOworCisgICAgcmV0dXJuIHJlbW90ZU1lZGlhUmVzb3VyY2U7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAg
bV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpSZW1vdmVSZXNvdXJjZShtX2lkLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciksIDApOworfQorCiAvLyBNZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXll
clByb3h5OjptZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewpAQCAtMzg4LDggKzQx
OSw3IEBAIENhY2hlZFJlc291cmNlTG9hZGVyKiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRp
YVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkKIAogUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcj4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNv
dXJjZUxvYWRlcigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCp0
aGlzKSk7CiB9CiAKIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZG9lc0hhdmVBdHRyaWJ1
dGUoY29uc3QgQXRvbVN0cmluZyYsIEF0b21TdHJpbmcqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5k
ZXggZjVjMjc3MDk5ODkxYWE3YzNlMjg3OWJjNzdjM2EzODMzOTM1MmNkYy4uY2FmZGQ3NTBlZGM4
NzUyMjVjMjU3YTA1YjkxNDI0ZTExNzZmNjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yNywzNCAr
MjcsMzIgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
bGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5h
bWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotY2xhc3MgTWVkaWFQbGF5ZXI7Ci19CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Owog
Ci1jbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5Ci0gICAgOiBwdWJsaWMgTWVkaWFQbGF5ZXJD
bGllbnQgeworY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAorICAgIDogcHVibGlj
IENhbk1ha2VXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+CisgICAgLCBwdWJsaWMgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkmLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpD
b25uZWN0aW9uPiYmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYpOwotICAgIHZpcnR1YWwgflJlbW90
ZU1lZGlhUGxheWVyUHJveHkoKQotICAgIHsKLSAgICB9CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNv
bmZpZ3VyYXRpb24mJik7CisgICAgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKTsKIAogICAgIHZv
aWQgaW52YWxpZGF0ZSgpOwogCkBAIC02Miw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVy
RW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRl
cmluZyk7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBj
b25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6
Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIAog
ICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwpAQCAtODAsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRQcml2YXRlQnJvd3NpbmdNb2RlKGJvb2wpOwogICAgIHZvaWQgc2V0UHJlc2VydmVz
UGl0Y2goYm9vbCk7CiAKKyAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiBy
ZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMpOworICAgIHZvaWQgcmVtb3ZlUmVz
b3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIC8v
IE1lZGlhUGxheWVyQ2xpZW50CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5n
ZWQoKSBmaW5hbDsKQEAgLTEyNCwzOSArMTI1LDM5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRp
YVBsYXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJ
c0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVy
SXNWaWRlbygpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50
Qm94UmVjdCgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5
ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29u
dGVudHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZp
bmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBs
YXllclBsYXRmb3JtVm9sdW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCkgY29uc3QgZmluYWw7Ci0g
ICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIo
KSBmaW5hbDsKLSAgICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBs
YXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6Q2FjaGVkUmVz
b3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXll
ckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgZmluYWw7CiAgICAgYm9vbCBkb2VzSGF2ZUF0dHJpYnV0
ZShjb25zdCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyogPSBudWxscHRyKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgZmlu
YWw7CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBj
b25zdCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFj
ayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRp
ZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlh
UGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAg
IHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFZpZGVv
VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJh
Y2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxh
eWVyRGlkQWRkVGV4dFRyYWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5h
bDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1Ry
YWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1Ry
YWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBs
YXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikg
ZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6
VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKIAotICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50
YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IEludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRU
cmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
ZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShBVkZfQ0FQVElPTlMp
Ci0gICAgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291
cmNlcygpIGZpbmFsOworICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJh
Y2s+PiBvdXRPZkJhbmRUcmFja1NvdXJjZXMoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFt
ZSgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0
IFVSTCYsIFZlY3RvcjxDb29raWU+JikgY29uc3QgZmluYWw7CisgICAgYm9vbCBtZWRpYVBsYXll
ckdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBjb25z
dCBmaW5hbDsKICNlbmRpZgogCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyU291cmNlQXBwbGljYXRp
b25JZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1
ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllckVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBjb25zdCBmaW5h
bDsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1l
ZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxh
eWVySXNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3QgZmluYWw7CiAgICAgVmVjdG9yPFN0
cmluZz4gbWVkaWFQbGF5ZXJQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygpIGNvbnN0IGZp
bmFsOwogCkBAIC0xNzYsOSArMTc3LDkgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dl
YlByb2Nlc3NDb25uZWN0aW9uOwotICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7Cisg
ICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsK
ICAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2Fy
ZVN1cHBvcnQ7CiAgICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91
cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRl
IG1fY2FjaGVkU3RhdGU7CkBAIC0xOTEsNiArMTkyLDYgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsK
IAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk3ZTEyNDU5Yzc1MDEwOGU3MWMwNDQwOThiNGI0Y2QyYmE0OTAzNjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJl
c3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKKworUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0
ZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIs
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHksIFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZU1lZGlhUmVzb3VyY2UocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIHJlbW90ZU1lZGlh
UGxheWVyUHJveHksIGlkKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlh
UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5LCBS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fcmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgLCBtX3JlbW90ZU1l
ZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCisgICAg
LCBtX2lkKGlkKQorICAgICwgbV9yZWFkeShmYWxzZSkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNv
dXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CisgICAgc3RvcCgpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIucmVtb3Zl
TWVkaWFSZXNvdXJjZShtX2lkKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpzdG9w
KCkKK3sKKyAgICBpZiAobV9yZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgICAgICBtX3JlbW90
ZU1lZGlhUGxheWVyUHJveHktPnJlbW92ZVJlc291cmNlKG1faWQpOworfQorCitib29sIFJlbW90
ZU1lZGlhUmVzb3VyY2U6OmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25zdAoreworICAg
IHJldHVybiBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKQoreworICAgIG1fZGlkUGFzc0Fj
Y2Vzc0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7CisKKyAgICBpZiAo
bV9jbGllbnQpIHsKKyAgICAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJl
c3BvbnNlLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShhdXRvIHNob3VsZENvbnRp
bnVlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
ICAgICAgICBpZiAoc2hvdWxkQ29udGludWUgPT0gU2hvdWxkQ29udGludWU6Ok5vKQorICAgICAg
ICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnN0b3AoKTsKKyAgICAgICAgfSk7CisgICAgfQorfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVkaXJlY3RSZWNlaXZlZCgqdGhpcywg
V1RGTW92ZShyZXF1ZXN0KSwgcmVzcG9uc2UsIFtdKGF1dG8mJikgeyB9KTsKK30KKworYm9vbCBS
ZW1vdGVNZWRpYVJlc291cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQoreworICAgIFJlZlB0cjxSZW1vdGVNZWRpYVJlc291cmNlPiBwcm90
ZWN0ZWRUaGlzKHRoaXMpOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuIG1fY2xp
ZW50LT5zaG91bGRDYWNoZVJlc3BvbnNlKCp0aGlzLCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVNlbnQodWludDY0X3QgYnl0
ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgaWYgKG1fY2xpZW50
KQorICAgICAgICBtX2NsaWVudC0+ZGF0YVNlbnQoKnRoaXMsIGJ5dGVzU2VudCwgdG90YWxCeXRl
c1RvQmVTZW50KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQo
Y29uc3QgY2hhciogZGF0YSwgaW50NjRfdCBsZW5ndGgpCit7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+ZGF0YVJlY2VpdmVkKCp0aGlzLCBkYXRhLCBsZW5ndGgpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2sgPSBmYWxzZTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5hY2Nlc3ND
b250cm9sQ2hlY2tGYWlsZWQoKnRoaXMsIGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlOjpsb2FkRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmxvYWRGYWlsZWQoKnRoaXMsIGVycm9yKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpsb2FkRmluaXNoZWQoKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmxvYWRGaW5pc2hlZCgqdGhpcyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2MmQ4
YzFjOGUzODk4ZWY2OTYxMzg2ZmU4NThkODNiYzQwYjFkOTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworCitjbGFz
cyBSZW1vdGVNZWRpYVJlc291cmNlIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBjcmVh
dGUoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Jiwg
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNl
KCk7CisKKyAgICBib29sIHJlYWR5KCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeTsgfQorICAgIHZv
aWQgc2V0UmVhZHkoYm9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KKworICAgIC8vIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZQorICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIGJvb2wgZGlk
UGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIGRpZFBhc3NB
Y2Nlc3NDb250cm9sQ2hlY2spOworICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAg
IGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CisgICAgdm9pZCBkYXRhU2VudCh1aW50NjRfdCwgdWludDY0X3QpOworICAgIHZvaWQgZGF0
YVJlY2VpdmVkKGNvbnN0IGNoYXIqLCBpbnQ2NF90KTsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xD
aGVja0ZhaWxlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2Fk
RmFpbGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGaW5p
c2hlZCgpOworCitwcml2YXRlOgorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXImLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIpOworCisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CisgICAgV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllclBy
b3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgbV9pZDsKKyAgICBib29sIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayB7IGZh
bHNlIH07CisgICAgYm9vbCBtX3JlYWR5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MjhhNWI0
MDczYjMwZDk0Y2U5NWE2MzBiZmQ2YzVmM2NhMWI4MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIu
aApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllclR5
cGUgeyB9OwordXNpbmcgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MTgyZGU2ZTUyZmMxNjRlYmJhY2U4NmJiMDdmYjFiMDNiZTJkOTMxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorCituYW1l
c3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICA6IG1fcmVtb3RlTWVkaWFQbGF5
ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKK3sKK30KKworUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKQorewor
fQorCitSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyOjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgTG9hZE9wdGlv
bnMgb3B0aW9ucykKK3sKKyAgICByZXR1cm4gbV9yZW1vdGVNZWRpYVBsYXllclByb3h5LT5yZXF1
ZXN0UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllZWMz
NWMwZTNkNWJmODE3MTE2MTRjMTNlZGQwMmRmOTc0YWYxYmUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5o
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNl
TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlciBmaW5hbAor
ICAgIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihSZW1vdGVNZWRpYVBs
YXllclByb3h5Jik7CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKTsKKworICAgIFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgTG9hZE9wdGlvbnMpIGZpbmFsOworCitwcml2YXRlOgor
ICAgIFdlYWtQdHI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllclBy
b3h5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFhYmQzYWNhOWI1MGJjMjU2MDJiNjhkYmQ5MWRiNThk
ZjgyNmIxZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIoKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6flJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cjo6YWRkTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZSogcmVtb3RlTWVkaWFS
ZXNvdXJjZSkKK3sKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmFkZChyZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVkaWFSZXNvdXJjZSk7Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5yZW1vdmUocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZXNwb25zZVJlY2VpdmVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0
KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZXNw
b25zZVJlY2VpdmVkKHJlc3BvbnNlLCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKTsKKyAgICBj
b21wbGV0aW9uSGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OjpyZWRpcmVjdFJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFT
U0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Z2V0KGlkKS0+cmVkaXJlY3RSZWNlaXZlZChXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25zZSk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6ZGF0YVNlbnQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIHVpbnQ2NF90
IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQoreworICAgIEFTU0VSVCht
X3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3Vy
Y2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlk
KS0+ZGF0YVNlbnQoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworfQorCit2b2lkIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIgaWQsIGNvbnN0IFN0cmluZyYmIGRhdGEsIGludDMyX3QgbGVuZ3RoKQorewor
ICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZXMuZ2V0KGlkKS0+ZGF0YVJlY2VpdmVkKChjb25zdCBjaGFyKilkYXRhLmNoYXJhY3RlcnM4
KCksIGxlbmd0aCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFjY2Vz
c0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNv
dXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVh
ZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5hY2Nlc3NDb250cm9s
Q2hlY2tGYWlsZWQoZXJyb3IpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Ojpsb2FkRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5j
b250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsK
KyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmxvYWRGYWlsZWQoZXJyb3IpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmluaXNoZWQoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit7CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFS
ZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+
cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5sb2FkRmluaXNo
ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45MmI3MDhkMjdiZjRhY2EwOTQzNjg1OThmNTBjZTU2NmEyOGNi
ODNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aCIKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2U7CisKK2NsYXNz
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyCisgICAgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KCk7CisKKyAgICB2b2lkIGFkZE1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2UqKTsKKyAgICB2b2lkIHJlbW92ZU1lZGlhUmVzb3Vy
Y2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgLy8gSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZl
ZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBy
ZWRpcmVjdFJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNl
aXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiYsIGludDMy
X3QpOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBs
b2FkRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIpOworCisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgUmVtb3RlTWVkaWFSZXNvdXJjZSo+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmMyNjA3NzNlMTZlODVlZGM2MzlkYTgzOTI0YTE3
MzFhMTVkYzU5YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4g
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVzcG9uc2VS
ZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2spIC0+ICgpIEFzeW5jCisgICAgUmVkaXJlY3RSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkgLT4gKCkgQXN5bmMKKyAgICBEYXRh
U2VudChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCB1aW50NjRfdCBi
eXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKKyAgICBEYXRhUmVjZWl2ZWQo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgU3RyaW5nIGRhdGEsIGlu
dDMyX3QgbGVuZ3RoKQorICAgIEFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9y
KQorICAgIExvYWRGYWlsZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBp
ZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBMb2FkRmluaXNoZWQoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vTG9nZ2luZy5oCmluZGV4IDI5NmRlODZlNjFlMjkyZjdlYjNmNDQ4NjVjNTc2NGQ5YjQz
MDM3MmYuLmUwMzIzN2UxZmY2ZmY0NzBiMmE1YzI3ZTBlMWJjNDA2ODZlZTI3ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vTG9nZ2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vTG9nZ2luZy5oCkBAIC02Miw2ICs2Miw3IEBAIGV4dGVybiAiQyIgewogICAgIE0o
TGF5b3V0KSBcCiAgICAgTShMb2FkaW5nKSBcCiAgICAgTShMb2NhbFN0b3JhZ2VEYXRhYmFzZVRy
YWNrZXIpIFwKKyAgICBNKE1lZGlhKSBcCiAgICAgTShNb3VzZUhhbmRsaW5nKSBcCiAgICAgTShO
ZXR3b3JrKSBcCiAgICAgTShOZXR3b3JrQ2FjaGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IGYyZTllZDdhYjU0MDJlZjUxMTg4ZjdlOGRiZTM5NmJhOGFj
ZTBmYWQuLjI1N2IwMGViODYwODgxNWFjODliNTcyNWI1YWIyMTQ5MzA3OWYxOGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3IEBAIGRl
ZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJL
aXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGlu
Z0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCiAgICAgICAgICdX
ZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9y
YWdlTmFtZXNwYWNlSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAxOTE2ZGIzZDY1YjY1ZWNk
YzVlMDBlYTdlYzAxZWZkYzY1NjYxMGZmLi43ODU4MGNlNzAzM2UzNzk3N2E4ZGVlNmZmYTQ0NTgx
MGM2OWRkMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDYgKzI0LDExIEBACiBHUFVQcm9jZXNzL0dQ
VVByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBH
UFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisvL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisvL0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlLmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
Y3BwCiAKIE5ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcApAQCAtNTAyLDggKzUwNyw5IEBA
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5jcHAK
IFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmNwcAogCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKLVdlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKLVdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBhNGFhNTVlMmFhMTlhMTQ2NjI1NGJiZjFiYmM3
MjI4OTliNmM2Mjc4Li4wMjNkYmQzOTRkNDU2ZmRkZDExOGFhOWI2NmQ4MjkyMGY2MjE2MmRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01OSw4ICs1OSw2IEBAIE5ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAogCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNzSU9T
Lm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCi1HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCi1HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZp
Y2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIAogUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBl
M2I5MTkyMGM5YjhhM2YzNmEwYmQxNDhjYTg1OGRiZGRjYjNhMDg3Li5mNjZjMTZiYmZjYWUwNGYz
NmM4ZTUwOGE5MDc1Njg5ZWM3MDliZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQwNyw3ICs0MDcsMjAgQEAKIAkJMUNBOEI5NDYx
MjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3
NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTFDQkJFNEEwMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUz
MDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkx
Q0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1
MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQzMkY4OUMy
M0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUIyM0E4NEJBNjAwQjFF
QTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovOyB9OworCQkxRDMyRjg5RTIzQTg0
QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODlEMjNBODRDNUIwMEIxRUE2
QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovOyB9OworCQkxRDNBQjA1MDIzQUMw
MUEwMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNUVGQUQyMzlCMDI0NTAw
QTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCQUYzNTcyM0EyQ0Mx
OTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovOyB9OworCQkxRDNBQjA1
MjIzQUMwMUFFMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5OTIzQTg0NjgwMDBCMUVB
NkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi87IH07CisJCTFEM0FCMDUzMjNBQzAxQjMw
MDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEM0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTQyM0FDMDFC
NzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQTQwODlFMjNBODI3NzgwMDU4Qzk1
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0FCMDU1MjNB
QzAxRjMwMDVDMUZGMCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxMzEyMzlCM0IwQzAwOTU5
OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi87IH07CisJCTFEM0FCMDU2MjNB
QzAxRjYwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxMzAyMzlCM0IwQzAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi87IH07CisJCTFENEQ3MzcwMjNB
OUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRE
NzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQ0RDczNzYyM0E5RUQxODAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlF
QjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLzsgfTsKIAkJMUQ2N0IzMzkyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFj
a0lELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDY3
QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAqLzsgfTsKKwkJ
MURBNDA4OTUyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREE0MDg5NDIz
QTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKIAkJ
MURCMDE5NDMyMTFDRjAwMjAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFMEQwOTUyMTFDQzIxMzAwNDM5QjVG
IC8qIFdLU2hhcmVTaGVldC5oICovOyB9OwogCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTggLyog
V0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLzsgfTsK
IAkJMUYzMzVCQzAxODVCODRGMDAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxl
Z2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYz
MzVCQkYxODVCODREODAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNjIw
LDkgKzI2MzMsMjIgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5z
cGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJ
bnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNw
ZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3Rv
clVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVj
dG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0
b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFE
MzJGODk4MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQz
MkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDNBQjA0RDIzQUIwMDcyMDA1QzFGRjAgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDRFMjNBQjAw
OUIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNkMyM0E5REY2MDAw
NzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNzUyM0E5RUI2ODAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgcGF0
aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQ2
N0IzMzgyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlU2hlZXRDYWxsYmFja0lELmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5RTIzQTgyNzc4
MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyog
V0tTaGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVT
aGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREUyREZBQzIzQTk1OUY4MDAz
RTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUYwMTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1l
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZy
YW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5
Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9j
ZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC00ODYzLDcgKzQ4ODksNyBAQAogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0Mg
LyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURG
NThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1
N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
ZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTExNUM3MTUxOTBG
OEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IGZp
bGU7IG5hbWUgPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291
cmNlcy9XZWJLaXQyL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5h
cHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBjb20uYXBwbGUu
V2ViS2l0LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL2NvbS5hcHBs
ZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFtZSA9IFdl
YktpdC5pY25zOyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5pY25zOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0
d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTUxMTQsNiArNTE0MCw4IEBACiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNCMEMwMDk1
OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDdC
M0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLywKKwkJ
CQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNw
cCAqLywKKwkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTUxMjcsNiArNTE1NSwxNCBAQAogCQkJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0
MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCAqLywKIAkJCQkwN0JBRjM1NjIzQTJD
QzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovLAogCQkJCTA3QjNCNDc1
MjNBRDg5MDQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5o
ICovLAorCQkJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
LmNwcCAqLywKKwkJCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZS5oICovLAorCQkJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllci5oICovLAorCQkJCTFEM0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJCQkxRDNBQjA0RDIzQUIwMDcyMDA1
QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTFEQTQwODlFMjNB
ODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJ
MURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgg
Ki8sCisJCQkJMUQzMkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05Mjg0LDYgKzkzMjAsOSBAQAogCQkJCTA3OTIzMTQ1MjM5
Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCiAJCQkJMDc5MjMxNDYyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkwNzkyMzE0MjIzOUNCQ0I1MDA5
NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAq
LywKKwkJCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJMUQ0RDcz
NzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNS
ZXBsaWVzLmggKi8sCiAJCQkJMUFDMTMzODMxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVj
dFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUMxMzM4NDE4NTkwQzQ2MDBG
M0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oICovLAogCQkJCTBGNTk0N0E1
MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8sCkBAIC0xMDE3OCw2ICsxMDIxNywxMCBAQAogCQkJCTA3OTIzMTRDMjM5Q0JD
QjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMzJGODlDMjNBODRCQTYw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVj
dEludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYzRUMw
NSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTc4OCw2ICsx
MTgzMSw3IEBACiAJCQkJMjk4NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVBy
b3RvY29sTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTQ0OUQ5MERBMjFGREMzMEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyogTG9nZ2lu
Zy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEy
QjZBNzEwMEY0OTNGRCAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3ODIyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkQ5MkE3N0EyMTJCNkE2MTAwRjQ5M0ZEIC8qIE1vZHVsZS5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTExODQ0LDggKzExODg4LDE2IEBACiAJCQkJMkQ3MkExRkEyMTJCRjQ2RTAw
NTE3QTIwIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGQjQyMThB
NkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tIGluIFNvdXJjZXMgKi8sCisJ
CQkJMUQzQUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQzQUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTMyM0FDMDFC
MzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJMUQzQUIwNTQyM0FDMDFCNzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQkxRDMyRjg5RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBS
ZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAw
N0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQ
cm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3
Njk3NDIxNTgwLi5iOGU0NzY3ZmMwMGQ0OTMxZTRkOGExMzRiYmIzY2RlOGQ0Njc2ZTgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0
aW9uLmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbgogdm9pZCBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVz
c2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZU1lc3Nh
Z2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRp
ZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4
NTNjYzE2NTUwOTRiYjUyNDIxZmI2Y2ZhMWMzMTlhOTY0NzFjMDk0Li4zMWM2MTA0NjY5ZjJmMDJm
ZmE0NDBmZWI4ODA5MjZjNzRhZTI2YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKLSAgICAvLyBUaGUgY29u
bmVjdGlvbiBmcm9tIGEgd2ViIHByb2Nlc3MgdG8gdGhpcyBHUFUgcHJvY2Vzcy4KKyAgICAvLyBU
aGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAg
ICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwCmluZGV4IDE1Mzg2ZWNkYzQ4ODljMGQ3NGVmZDc2NWEyZDY0NTg0YTA0
YjdhY2YuLmMwNjMxOGY2MDQ3NjJjMGUzZDVkZGZlM2I4MTgxYzQyOWY0YmU0MmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBB
TDsKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKICN1bmRlZiBub3RJbXBsZW1lbnRlZApA
QCAtNTUsNiArNTUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXll
ciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZp
ZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCisg
ICAgLCBtX21lZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigp
KQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZp
ZXIoZW5naW5lSWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKQEAgLTc5
MSw2ICs3OTIsMjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9y
ZUludHJpbnNpY1NpemUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGU6OnJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2Fk
T3B0aW9ucyBvcHRpb25zKQoreworICAgIEFTU0VSVCghbV9tZWRpYVJlc291cmNlcy5jb250YWlu
cyhyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikpOworICAgIGF1dG8gcmVzb3VyY2UgPSBt
X21lZGlhUmVzb3VyY2VMb2FkZXItPnJlcXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBv
cHRpb25zKTsKKyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2Ugb3ducyB0aGUgUGxhdGZvcm1N
ZWRpYVJlc291cmNlQ2xpZW50CisgICAgcmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eT4obV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCks
IHJlc291cmNlLmdldCgpLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikpOworICAgIG1f
bWVkaWFSZXNvdXJjZXMuYWRkKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3Zl
KHJlc291cmNlKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVS
ZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllcikKK3sKKyAgICAvLyBUaGUgY2xpZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eSkgd2lsbCBiZSBkZXN0cm95ZWQgYXMgd2VsbAorICAgIG1fbWVkaWFSZXNvdXJjZXMucmVtb3Zl
KHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19E
SVNBQkxFRAogV1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFu
bmVsKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDY4ODcyYWViY2Yw
ZWUwZDk1YzFmNmE2YTc2NjQwODdmMTBkYThmNWQuLjMzOGEzOTExNTNjNDEwYmQ0OThkMmQ4ZTlk
MTMzMTJmOGQxY2FiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzAsNiArMzAs
OCBAQAogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyU3RhdGUuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KQEAgLTM5LDIyICs0MSwyMiBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGZpbmFsCiAgICAgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPgotICAgICwgcHVibGlj
IE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZQorICAgICwgcHVibGljIFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUludGVyZmFjZQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwg
cHJpdmF0ZSBMb2dnZXJIZWxwZXIKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXIq
IHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRp
YVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBs
YXllciogcGxheWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNv
bnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7
CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxh
eWVyLCByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyLCBjb25maWd1
cmF0aW9uKTsKICAgICB9CiAKLSAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUo
TWVkaWFQbGF5ZXIqLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwotICAgIHZpcnR1YWwg
fk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZShXZWJDb3JlOjpNZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0
aW9uJik7CisgICAgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZh
bGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVlOyB9Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVy
biBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySXRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWQ7IH0KIAogICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0
YXRlJiYpOwpAQCAtNjksNiArNzEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRT
dGF0ZShSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWND
aGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVy
RW51bXM6Ok1vdmllTG9hZFR5cGUpOwogCisgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zKTsKKyAgICB2b2lk
IHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKwogI2lmICFS
RUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KQEAg
LTc3LDE0ICs4MiwxNCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxv
YWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsK
LSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXll
cjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKKyAg
ICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25z
dCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZh
dGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRj
aCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAg
dm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFs
OworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZh
dGVDbGllbnQqKSBmaW5hbDsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAg
dm9pZCBsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbG9hZChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKICNlbmRpZgogICAgIHZvaWQgY2FuY2Vs
TG9hZCgpIGZpbmFsOwogCkBAIC0xMDYsOSArMTExLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpKQogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXll
ciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAg
ICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkgZmluYWw7Ci0gICAgdm9p
ZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOwotICAgIHZvaWQgc2V0
VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsK
LSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29y
ZTo6RmxvYXRSZWN0KSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHko
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgZmluYWw7CisgICAgdm9pZCBzZXRW
aWRlb0Z1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKSBmaW5hbDsKICAgICB2b2lkIHZpZGVvRnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKCkgZmlu
YWw7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVy
cm9yTG9nKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9s
aWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0QnVm
ZmVyaW5nUG9saWN5KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFs
OwogCiAgICAgYm9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwpAQCAtMTI2LDcgKzEzMSw3
IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNhblNhdmVNZWRpYURhdGEoKSBjb25zdCBmaW5hbDsK
IAotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6
OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBoYXNWaWRl
bygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKQEAgLTE1
OSwyOSArMTY0LDI5IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgp
IGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBmaW5h
bDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNo
ZWRTdGF0ZS5yZWFkeVN0YXRlOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5l
dHdvcmtTdGF0ZTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLnJlYWR5U3RhdGU7IH0K
IAotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29u
c3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdl
cz4gc2Vla2FibGUoKSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlhVGltZSBtYXhNZWRpYVRpbWVT
ZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIE1lZGlhVGltZSBtaW5NZWRpYVRpbWVTZWVrYWJs
ZSgpIGNvbnN0IGZpbmFsOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IGJ1ZmZlcmVkKCkgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBs
YXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vl
a2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVkVGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJs
ZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIGxvbmcg
bG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jl
c3MoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgZmlu
YWw7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKIAot
ICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7
CisgICAgdm9pZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKSBmaW5hbDsKIAotICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7Ci0gICAgYm9vbCBj
b3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNE
ZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Ci0gICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VG
b3JDdXJyZW50VGltZSgpIGZpbmFsOworICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
ZmluYWw7CisgICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGlu
dCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisgICAg
V2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFs
OwogCi0gICAgdm9pZCBzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkKSBmaW5hbDsKKyAg
ICB2b2lkIHNldFByZWxvYWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOwog
CiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QgZmluYWw7CiAKQEAgLTE5
MiwxNCArMTk3LDE0IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQogICAgIFN0cmluZyB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0TmFtZSgpIGNvbnN0IGZp
bmFsOwotICAgIE1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVz
c1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlw
ZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxl
ZCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJs
ZWQoYm9vbCkgZmluYWw7CiAKICAgICBib29sIGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJn
ZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxl
c3MoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVm
PE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZpbmFsOworICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5
YmFja1RhcmdldChSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CiAK
ICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpIGZpbmFsOwogI2Vu
ZGlmCkBAIC0yMTYsOSArMjIxLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFzU2luZ2xlU2Vj
dXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hl
Y2soKSBjb25zdCBmaW5hbDsKLSAgICBPcHRpb25hbDxib29sPiB3b3VsZFRhaW50T3JpZ2luKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gd291
bGRUYWludE9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFs
OwogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0
IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9h
ZFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIGZp
bmFsOwogCkBAIC0yMzQsMjUgKzIzOSwyNSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBlbmdpbmVE
ZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBB
dWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWw7CisgICAgV2Vi
Q29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBM
ZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmluYWw7Ci0gICAgdm9pZCBzZXRDRE1TZXNzaW9uKExl
Z2FjeUNETVNlc3Npb24qKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TGVn
YWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpMZWdh
Y3lDRE1TZXNzaW9uQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBzZXRDRE1TZXNzaW9uKFdlYkNv
cmU6OkxlZ2FjeUNETVNlc3Npb24qKSBmaW5hbDsKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgdm9pZCBjZG1JbnN0
YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7Ci0gICAgdm9pZCBjZG1JbnN0YW5jZURl
dGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7Ci0gICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0
aEluc3RhbmNlKENETUluc3RhbmNlJikgZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFj
aGVkKFdlYkNvcmU6OkNETUluc3RhbmNlJikgZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZURl
dGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNlJikgZmluYWw7CisgICAgdm9pZCBhdHRlbXB0VG9E
ZWNyeXB0V2l0aEluc3RhbmNlKFdlYkNvcmU6OkNETUluc3RhbmNlJikgZmluYWw7CiAgICAgYm9v
bCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKikgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3lu
Y1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFs
OwogI2VuZGlmCkBAIC0yNzIsNyArMjc3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZW5kZWQo
KSBjb25zdCBmaW5hbDsKIAotICAgIE9wdGlvbmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmlj
cz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVhbGl0eU1l
dHJpY3MoKSBmaW5hbDsKIAogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgdm9pZCBub3Rp
ZnlUcmFja01vZGVDaGFuZ2VkKCkgZmluYWw7CkBAIC0yOTMsMTkgKzI5OCwyMiBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgZmluYWw7CiAKLSAgICBN
ZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyIG1fbWFuYWdlcjsKLSAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVy
KiBtX3BsYXllciB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7CisgICAgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CiAgICAgUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVy
U3RhdGUgbV9jYWNoZWRTdGF0ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFu
Z2VzPiBtX2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBtX2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKwor
ICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBtX21lZGlhUmVzb3VyY2VzOwogCiAgICAgZG91Ymxl
IG1fdm9sdW1lIHsgMSB9OwogICAgIGRvdWJsZSBtX3JhdGUgeyAxIH07CiAgICAgbG9uZyBtX3Bs
YXRmb3JtRXJyb3JDb2RlIHsgMCB9OwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5
cGUgbV9tb3ZpZUxvYWRUeXBlIHsgTWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5r
bm93biB9OworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9t
b3ZpZUxvYWRUeXBlIHsgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6
VW5rbm93biB9OwogICAgIGJvb2wgbV9oYXNBdWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hh
c1ZpZGVvIHsgZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaAppbmRleCA4N2U3YjhiYmFlYzM1MzRl
N2RlZmQ3ODIzODYxMDE0MzIxNzUzOGM3Li4yNTZiM2M1OWZiZTQyYjZiYzFhMzA2NzFlNzAwYTU3
MzRkZGI5ZjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIu
aApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKKwogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewpAQCAtMzIsNCArMzQsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGVudW0gTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllclR5cGU+OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAK
aW5kZXggY2VlNmI1NTI2OTgyYWZmNDExYmYwNDE1ZWM4MjA1MjUwZTg5OTlkMy4uMDFmM2Y5OTE0
ZTUwNzYwNTBkYzExODZiYTU5OTdmMWM3YzMxMTkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisj
aW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24u
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKQEAgLTQxLDYgKzQz
LDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
KwogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0x
NjUsNyArMTY4LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmdldFN1cHBvcnRl
ZFR5cGVzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICAgICAgcmVzdWx0LmFk
ZCh0eXBlKTsKIH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVk
aWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK01lZGlhUGxheWVyOjpTdXBw
b3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3Mo
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIsIGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7
CiAgICAgLy8gRklYTUU6IHN1cHBvcnRlZCB0eXBlcyBkb24ndCBjaGFuZ2UsIGNhY2hlIHRoZW0u
CiAKQEAgLTE4MSw5ICsxODQsOSBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3Vw
cG9ydHNLZXlTeXN0ZW0oTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om9yaWdpbnNJbk1lZGlhQ2FjaGUoTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgcGF0aCkKK0hhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IHBhdGgpCiB7Ci0gICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2lu
RGF0YTsKKyAgICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5EYXRhOwogICAgIGlm
ICghZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHk6Ok9yaWdpbnNJbk1lZGlhQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRp
ZmllciwgcGF0aCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6T3Jp
Z2luc0luTWVkaWFDYWNoZTo6UmVwbHkob3JpZ2luRGF0YSksIDApKQogICAgICAgICByZXR1cm4g
eyB9OwogCkBAIC0xOTksNyArMjAyLDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OmNsZWFyTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW4KICAgICBn
cHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5OjpDbGVhck1lZGlhQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGF0aCwg
bW9kaWZpZWRTaW5jZSksIDApOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25z
dCBIYXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zKQordm9p
ZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmln
aW4+PiYgb3JpZ2lucykKIHsKICAgICBhdXRvIG9yaWdpbkRhdGEgPSBXVEY6Om1hcChvcmlnaW5z
LCBbXSAoYXV0byYgb3JpZ2luKSB7CiAgICAgICAgIHJldHVybiBvcmlnaW4tPmRhdGEoKTsKQEAg
LTIxMCw1NSArMjEzLDU1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1l
ZGlhQ2FjaGVGb3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhCiAKIHZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsK
LSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3Qg
YXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+bmV0d29y
a1N0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1
dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXll
ciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2Vk
KFdURk1vdmUoc3RhdGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnZv
bHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBkb3VibGUgdm9sdW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnZvbHVtZUNo
YW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVt
ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAo
Y29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+
dm9sdW1lQ2hhbmdlZCh2b2x1bWUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6bXV0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBib29sIG11dGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0ZUNoYW5n
ZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQogewot
ICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBh
dXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5tdXRlQ2hh
bmdlZChtdXRlKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRpbWVDaGFu
Z2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3Rl
TWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0
KGlkKSkKICAgICAgICAgcGxheWVyLT50aW1lQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0
YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkp
CisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAg
ICBwbGF5ZXItPmR1cmF0aW9uQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKLXZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSByYXRlKQordm9pZCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OnJhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGRvdWJsZSByYXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5n
ZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
ICAgICAgICAgcGxheWVyLT5yYXRlQ2hhbmdlZChyYXRlKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBwYXVzZWQpCit2b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZCwgYm9vbCBwYXVzZWQpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVy
cy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHBhdXNlZCk7
CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjplbmdpbmVGYWlsZWRUb0xvYWQo
V2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBsb25nIHBsYXRm
b3JtRXJyb3JDb2RlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQp
KQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAg
ICAgcGxheWVyLT5lbmdpbmVGYWlsZWRUb0xvYWQocGxhdGZvcm1FcnJvckNvZGUpOwogfQogCkBA
IC0yNjcsNiArMjcwLDIwIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjaGFyYWN0
ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSCiAgICAgaWYgKGF1dG8g
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+Y2hhcmFjdGVyaXN0
aWNDaGFuZ2VkKGhhc0F1ZGlvLCBoYXNWaWRlbywgbG9hZFR5cGUpOwogfQorICAgIAordm9pZCBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGNvbnN0IGF1
dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgICAgICBwbGF5ZXItPnJlcXVlc3RS
ZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwg
b3B0aW9ucyk7CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6cmVtb3ZlUmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQorICAgICAgICBwbGF5ZXItPnJlbW92ZVJlc291cmNlKHJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKK30KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5oCmluZGV4IGMzYzI3N2FjODhjMzRkYzYwOWFjYWNmZWVkNmFlNTk3ODMy
OGYxNDIuLjY3YzBhMzVkNGEwM2M4YTk1ZTFiMzFkMjdkN2Y2MmI1MTk0YTg5ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNp
bmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQ
bGF5ZXIuaD4KQEAgLTQ4LDcgKzQ5LDcgQEAgY2xhc3MgV2ViUHJvY2VzczsKIGNsYXNzIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGlj
IElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKLSAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIoV2ViUHJvY2VzcyYp
OworICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcihXZWJQcm9jZXNzJik7CiAgICAgflJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcigpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1l
bnROYW1lKCk7CkBAIC01Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlv
biYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsg
fQorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBs
YXllcihNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtODIsNiArODMs
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgbG9uZyk7CiAgICAgdm9pZCB1cGRhdGVDYWNo
ZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBi
b29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsK
KyAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcik7CiAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5Owog
ICAgIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRl
eCA0NjU4YTdhMjhmNmM3OGUxMGNlMDU0NWQ3MGZmYzNmZmM1MGRkYzNjLi4xODBmMjYzMjM2M2Y1
MDZkZWJjMmExZTg3MzY5NmFmYzllN2Y2NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMjEsMTAgKzIxLDkgQEAKICMgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgog
IyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoVklERU8pCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXIgTm90UmVmQ291bnRlZCB7Ci0KICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSBzdGF0ZSkKICAgICBSZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCiAgICAgVm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCkBAIC0z
Niw2ICszNSw5IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZD
b3VudGVkIHsKICAgICBFbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkLCBpbnQgcGxhdGZvcm1FcnJvckNvZGUpCiAgICAgVXBkYXRl
Q2FjaGVkU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIENoYXJh
Y3RlcmlzdGljQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGVudW06dWludDhfdCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUpCisKKyAgICBS
ZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKSAtPiAoKSBBc3luYworICAg
IFJlbW92ZVJlc291cmNlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBtZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YzUxMjY3ODE1
OTA2Yjc1OTdiZWQyNmUwMTZhMzdmNGE5NjFmZDM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3Bw
CkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Qb2xp
Y3lDaGVja2VyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSogcGxhdGZvcm1NZWRpYVJlc291cmNlLCBSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rp
b24pKQorICAgICwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UocGxhdGZvcm1NZWRpYVJlc291cmNl
KQorICAgICwgbV9pZChpZCkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojp+UmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5KCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6UmVzcG9uc2VSZWNlaXZlZChtX2lkLCByZXNwb25zZSwgbV9w
bGF0Zm9ybU1lZGlhUmVzb3VyY2UtPmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSksIFtjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpTaG91bGRDb250aW51ZTo6WWVzKTsK
KyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlZGlyZWN0UmVj
ZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVkaXJlY3RSZWNlaXZl
ZChtX2lkLCByZXF1ZXN0LCByZXNwb25zZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfSk7
Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRDYWNoZVJlc3BvbnNl
KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UmKQoreworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eTo6ZGF0YVNlbnQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5z
aWduZWQgbG9uZyBsb25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNU
b0JlU2VudCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOjpEYXRhU2VudChtX2lkLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0Jl
U2VudCksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVJlY2Vp
dmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqIGRhdGEsIGlu
dCBsZW5ndGgpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjo6RGF0YVJlY2VpdmVkKG1faWQsIGRhdGEsIGxlbmd0aCksIDApOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNzQ29udHJvbENoZWNrRmFp
bGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChtX2lkLCBl
cnJvciksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZhaWxl
ZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpMb2FkRmFpbGVkKG1faWQsIGVycm9yKSwgMCk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmluaXNoZWQoV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVJlc291cmNlJikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpMb2FkRmluaXNoZWQobV9pZCksIDApOworfQor
Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQxZjc4
NTUwMGFmMTIxNzg5ZmY5MWFjZmZkZmVlZmU4YmJmOWI3YQotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
LmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9u
c2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQg
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UqLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgflJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eSgpOworCitwcml2YXRlOgorICAgIC8vIFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUNsaWVudAorICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTaG91bGRDb250aW51ZSk+JiYpIGZpbmFsOworICAg
IHZvaWQgcmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYm
KSBmaW5hbDsKKyAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwor
ICAgIHZvaWQgZGF0YVNlbnQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWdu
ZWQgbG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIGZpbmFsOworICAgIHZvaWQgZGF0YVJl
Y2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBpbnQp
IGZpbmFsOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsK
KyAgICB2b2lkIGxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIHZvaWQgbG9hZEZpbmlzaGVk
KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpIGZpbmFsOworCisgICAgUmVmPElQQzo6
Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOworICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSogbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2U7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgbV9pZDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386467</attachid>
            <date>2019-12-28 04:09:19 -0800</date>
            <delta_ts>2019-12-28 23:02:20 -0800</delta_ts>
            <desc>Patch (fixed the audio playback issue)</desc>
            <filename>bug-205379-20191228040919.patch</filename>
            <type>text/plain</type>
            <size>105463</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU1NjExZjA4MzQwODJk
ODg2NWE3N2NiZDlkOTJiNzgxMjIxMmZjZS4uOGJiM2RiODhiNTYxYjAyNmMyYzdlOGQ0MGJiZmE4
OWRlZjA1MDk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTEyLTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlOjpwbGF0Zm9ybUxheWVyIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6dGlt
ZWRNZXRhZGF0YSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmJlZ2luTG9hZGlu
Z01ldGFkYXRhKToKKwogMjAxOS0xMi0yMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVmYWN0b3IgdG8gc2ltcGxpZnkgYnJvYWRjYXN0aW5nIHRvIGFsbCBtZWRp
YSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNDI3MmMyMTI1MDM2OTBjZjg3YTQ2ZWQzMDg0YzA4NDg4
MmU4OWYxLi5mNTJmOTE4NDlhMWMyZjQ2NGI0NTAxNzUwZGYyMGI1OGZkMjY5YTI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDExMyBAQAorMjAxOS0xMi0yOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVyIGZvciB0
aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpOgor
ICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVz
c2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojps
b2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllclByb3h5OjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyTG9nSWRlbnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVNlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaDogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlYWR5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2V0UmVhZHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjp+
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6
On5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2UpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVzcG9uc2VSZWNlaXZlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZWRpcmVjdFJl
Y2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRh
dGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRh
dGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRk
ZWQuCisgICAgICAgICogUGxhdGZvcm0vTG9nZ2luZy5oOgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJl
cXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZTo6cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6b3JpZ2luc0luTWVkaWFDYWNo
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRp
YUNhY2hlRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZhaWxlZFRv
TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVxdWVz
dFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
ZW1vdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vz
cyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVz
cG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmluaXNoZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOiBBZGRlZC4K
KwogMjAxOS0xMi0yMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVmYWN0b3IgdG8gc2ltcGxpZnkgYnJvYWRjYXN0aW5nIHRvIGFsbCBtZWRpYSBlbGVtZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaAppbmRleCBiY2Y5MmRmYTQ5YzllMWY5NjM3MzdiYjE5OWY0NDVhOTA2MTljMTFjLi42
MmM3ZGQwMmZiZjNmYjFmYWE4MzUzMWUyNzMwZmYxZTUzMjUyN2EzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIHZpcnR1YWwgdm9pZCBwcmVw
YXJlVG9QbGF5KCkgeyB9Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZv
cm1MYXllcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkpCiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcigpOyB9CkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2aXJ0dWFsIE5TQXJyYXkgKnRpbWVkTWV0YWRhdGEo
KSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBOU0FycmF5ICp0aW1lZE1ldGFkYXRh
KCkgY29uc3QgeyByZXR1cm4gbmlsOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgYWNjZXNzTG9nKCkg
Y29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGVycm9y
TG9nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5tbQppbmRleCBmYTNlYTVjYjU5YTYzNDhkNjFkMWUyOTJhZTllYTYxMmZmMTBjMjA5
Li41NGJhOWI4Y2RjYTllNjk1OTc2Zjk2M2E2OGUxMzI4NDg1YzgyZmIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW0KQEAgLTEwNTMsNyArMTA1Myw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQzo6YmVnaW5Mb2FkaW5nTWV0YWRhdGEoKQogICAgIGRpc3BhdGNoX2dy
b3VwX2VudGVyKG1ldGFkYXRhTG9hZGluZ0dyb3VwLmdldCgpKTsKICAgICBhdXRvIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpOwogICAgIFttX2F2QXNzZXQuZ2V0KCkgbG9hZFZhbHVlc0Fz
eW5jaHJvbm91c2x5Rm9yS2V5czphc3NldE1ldGFkYXRhS2V5TmFtZXMoKSBjb21wbGV0aW9uSGFu
ZGxlcjpeewotCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzLCBtZXRhZGF0YUxv
YWRpbmdHcm91cF0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzICYmIFt3ZWFrVGhpcy0+bV9h
dkFzc2V0LmdldCgpIHN0YXR1c09mVmFsdWVGb3JLZXk6QCJ0cmFja3MiIGVycm9yOm5pbF0gPT0g
QVZLZXlWYWx1ZVN0YXR1c0xvYWRlZCkgewogICAgICAgICAgICAgICAgIGZvciAoQVZBc3NldFRy
YWNrICp0cmFjayBpbiBbd2Vha1RoaXMtPm1fYXZBc3NldC5nZXQoKSB0cmFja3NdKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMDdkMzMw
NWI4MjM5NzJlNzg3ZmZlZTdkYjgwZTExNGQyMjUxMTI2Ni4uNDNhZjcwYWVlOWUzM2JlYThhZGUw
MGY3M2VlM2NhNzIyZjJiMDRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIp
L0dQVVByb2Nlc3MvR1BVUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJv
Y2Vzcy9tYWMvY29tLmFwcGxlLldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCiskKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9Db29raWVz
L1dlYkNvb2tpZU1hbmFnZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9j
ZXNzL0N1c3RvbVByb3RvY29scy9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIubWVzc2FnZXMu
aW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIu
bWVzc2FnZXMuaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IDk4NjljZjE3MTYxZmVkOTQ0OTJiMmViNjc2YTMwOTYxMTdjZTY1MmYuLjdi
ZTg5NDljY2FmMjA4ZDJhMzVkMmVhMGFiY2IwYTJkZTgyZTkzMjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTIwLDYgKzEyMCw5IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlck1lc3NhZ2VzUmVwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNz
YWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3Nh
Z2VzUmVwbGllcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMTdiZGNiNWYyZGFh
YTliYjFiNmFmNGQ3NGFiNThlNTA0YTgxMjE4My4uM2MwNzdlNGYxN2NjY2YxZjNiODJkYjJhMjA0
ZDE5ODZjMmYzY2YzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTM5LDYgKzEz
OSw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBcCiAgICAgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkgXAorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIFwK
ICAgICBSZW1vdGVPYmplY3RSZWdpc3RyeSBcCiAgICAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IgXAogICAgIFJlbW90ZVdlYkluc3BlY3RvclByb3h5IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA1NDgw
M2NhODBkYWM0MzM0ZWQyZTI0N2ZmNzIzYmMyMTI2ZmFmZTU1Li40OWMyYjc1NzdlOWUyMzI0YTc3
ZWYzMzAxN2RhY2ZkN2Q1Zjg2ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAj
aW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlv
bi5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRl
ICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKQEAgLTEwOSw2ICsxMTEs
MTQgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlSW52YWxpZE1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWMKICAgICBDUkFTSCgpOwogfQogCitSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlciYgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIoKQoreworICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcikKKyAgICAgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciA9IG1ha2VVbmlxdWU8
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+KCk7CisKKyAgICByZXR1cm4gKm1fcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI7Cit9CisKIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBH
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgp
CiB7CiAgICAgaWYgKCFtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KQpAQCAtMTMyLDYg
KzE0Miw5IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJCiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIHJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5KCkuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBk
ZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAoZGVjb2Rlci5tZXNzYWdl
UmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIoKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgcmV0
dXJuOwogICAgIH0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIGlmIChkZWNvZGVyLm1l
c3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCA4NzNkY2VhMjk0ZDk2
MzhlMDYyYTBjZDZhMDkxNGYyNTMzZGFlYzYwLi5iYzMzNDFjZWQ2ZDAyOGQ2NDFkYmEwMDIyYzdm
NGVlMWM4MGMzMTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTQxLDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiBjbGFzcyBHUFVQcm9jZXNzOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk7CiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OworY2xhc3MgUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MKICAg
ICA6IHB1YmxpYyBSZWZDb3VudGVkPEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+CkBAIC01Niw2
ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuZFN1c3BlbnNpb24oKTsKIAogICAgIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1
cm4gbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsgfQorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyJiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOwogCiAgICAgTG9nZ2VyJiBsb2dnZXIo
KTsKIApAQCAtNzgsNiArODAsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKICAgICBSZWY8R1BVUHJvY2Vzcz4gbV9ncHVQcm9jZXNzOwogICAgIGNv
bnN0IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyPiBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKICAgICBQQUw6
OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCmluZGV4IGRmMGU0NGI2
ZmYzOGU3YTMwNGY2ZDVhM2RmZTlmYjQ3NTgzNzY1NjkuLjA1MDM0MDRhMGYxY2I1OTk3OTFmMDAz
YzNmODRhOTYzNTFlNGQyMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcApAQCAt
MjksMTAgKzI5LDEyIEBACiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Lmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxh
eWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KQEAgLTQxLDYg
KzQzLDcgQEAKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoaWRlbnRpZmllcikgTUVT
U0FHRV9DSEVDS19CQVNFKG1fcHJveGllcy5pc1ZhbGlkS2V5KGlkZW50aWZpZXIpLCAmbV9ncHVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNvbm5lY3Rpb24oKSkKIAogbmFtZXNwYWNlIFdlYktpdCB7
CisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbikKQEAgLTI1MCwxMSArMjUzLDExIEBAIGNvbnN0IExvZ2dlciYgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmxvZ2dlcigpIGNvbnN0CiAKIFdURkxvZ0NoYW5u
ZWwmIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojpsb2dDaGFubmVsKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gV2ViS2l0MkxvZ1dlYlJUQzsKKyAgICByZXR1cm4gV2ViS2l0MkxvZ01lZGlh
OwogfQogI2VuZGlmCiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FH
RV9DSEVDS19DT05URVhUSUQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAppbmRleCAwNjcw
MDU2ZmE2ZTI5NmI3NjBkNzMxZDJjOGIxNWNjYmU0YzA0OWE3Li5hZTUxZmMwYzUyMDAzZTM1MGRi
NWRkZTJkNjZkODI0ODQzNzJlNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAt
MzAsMTUgKzMwLDE2IEBACiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKLSNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Owogc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbjsK
K3N0cnVjdCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkKICAgICA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKQEAgLTEwNiw2ICsxMDcsNiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi19Cit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKaW5kZXggNmRmYTc1
ZjVjNTFkMzhhYmMxZDViOTgzNDQ1MjRjYTlhZGE3M2U5ZS4uMzcyOGMyYmFhMWFiMjBkZDFiNmQ4
Y2I4NTBmNWI0MzU5YjdkOGU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcApAQCAtMjgsOCArMjgsMTYg
QEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1v
dGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZS5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVt
b3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2
YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgpAQCAtNTMsNiArNjEs
MTAgQEAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbWEKICAgICBtX3BsYXllciA9IE1lZGlhUGxheWVy
OjpjcmVhdGUoKnRoaXMsIG1fZW5naW5lSWRlbnRpZmllcik7CiB9CiAKK1JlbW90ZU1lZGlhUGxh
eWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KCkKK3sKK30KKwogdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjppbnZhbGlkYXRlKCkKIHsKICAgICBtX3VwZGF0ZUNhY2hlZFN0YXRl
TWVzc2FnZVRpbWVyLnN0b3AoKTsKQEAgLTE0Myw2ICsxNTUsMjUgQEAgdm9pZCBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1BpdGNoKQogICAg
IG1fcGxheWVyLT5zZXRQcmVzZXJ2ZXNQaXRjaChwcmVzZXJ2ZXNQaXRjaCk7CiB9CiAKK1JlZjxQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnJlcXVlc3RSZXNv
dXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2Fk
ZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpCit7CisgICAgYXV0byYgcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIgPSBtX21hbmFnZXIuZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcygpLnJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CisgICAgYXV0byByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIGF1
dG8gcmVtb3RlTWVkaWFSZXNvdXJjZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZShyZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlciwgKnRoaXMsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKTsKKyAgICByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5hZGRNZWRpYVJlc291cmNlKHJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCByZW1vdGVNZWRpYVJlc291cmNlLnB0cigpKTsK
KworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZXF1ZXN0UmVzb3VyY2UobV9pZCwgcmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpLCBbcmVtb3RlTWVkaWFS
ZXNvdXJjZSA9IHJlbW90ZU1lZGlhUmVzb3VyY2UuY29weVJlZigpXSgpIHsKKyAgICAgICAgcmVt
b3RlTWVkaWFSZXNvdXJjZS0+c2V0UmVhZHkodHJ1ZSk7CisgICAgfSk7CisKKyAgICByZXR1cm4g
cmVtb3RlTWVkaWFSZXNvdXJjZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojpy
ZW1vdmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllcikKK3sKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJlbW92ZVJlc291cmNlKG1faWQsIHJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKSwgMCk7Cit9CisKIC8vIE1lZGlhUGxheWVyQ2xp
ZW50CiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTmV0d29ya1N0YXRl
Q2hhbmdlZCgpCiB7CkBAIC0zODgsOCArNDE5LDcgQEAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKQog
CiBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKnRoaXMpKTsKIH0KIAogYm9vbCBSZW1vdGVNZWRpYVBs
YXllclByb3h5Ojpkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiwgQXRvbVN0cmlu
ZyopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuaAppbmRleCBmNWMyNzcwOTk4OTFhYTdjM2UyODc5YmM3N2Mz
YTM4MzM5MzUyY2RjLi5jYWZkZDc1MGVkYzg3NTIyNWMyNTdhMDViOTE0MjRlMTE3NmY2ODIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmgKQEAgLTI3LDM0ICsyNywzMiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBDb25uZWN0aW9u
OwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBNZWRpYVBsYXllcjsKLX0KKyNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAKLWNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHkK
LSAgICA6IHB1YmxpYyBNZWRpYVBsYXllckNsaWVudCB7CitjbGFzcyBSZW1vdGVNZWRpYVBsYXll
clByb3h5IGZpbmFsCisgICAgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eT4KKyAgICAsIHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRp
b24mJik7Ci0gICAgdmlydHVhbCB+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgpCi0gICAgewotICAg
IH0KKyAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5JiwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
LCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYmKTsKKyAgICB+UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKQEAgLTYyLDcgKzYw
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRl
TW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlRm9yUmVuZGVyaW5nKTsKIAotICAgIHZvaWQgbG9hZChjb25zdCBV
UkwmLCBjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgbG9hZChj
b25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYpOwog
ICAgIHZvaWQgY2FuY2VsTG9hZCgpOwogCiAgICAgdm9pZCBwcmVwYXJlVG9QbGF5KCk7CkBAIC04
MCw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ01vZGUoYm9v
bCk7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKTsKIAorICAgIFJlZjxXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0
aW9ucyk7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllcik7CisKIHByaXZhdGU6CiAgICAgLy8gTWVkaWFQbGF5ZXJDbGllbnQKICAgICB2b2lkIG1l
ZGlhUGxheWVyTmV0d29ya1N0YXRlQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMTI0LDM5ICsxMjUsMzkg
QEAgcHJpdmF0ZToKICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlblBlcm1pdHRlZCgpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvKCkgY29uc3QgZmluYWw7Ci0gICAgTGF5
b3V0UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QgZmluYWw7CisgICAgV2Vi
Q29yZTo6TGF5b3V0UmVjdCBtZWRpYVBsYXllckNvbnRlbnRCb3hSZWN0KCkgY29uc3QgZmluYWw7
CiAgICAgZmxvYXQgbWVkaWFQbGF5ZXJDb250ZW50c1NjYWxlKCkgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBtZWRpYVBsYXllclBhdXNlKCkgZmluYWw7CiAgICAgdm9pZCBtZWRpYVBsYXllclBsYXko
KSBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVyUGxhdGZvcm1Wb2x1bWVDb25maWd1cmF0aW9u
UmVxdWlyZWQoKSBjb25zdCBmaW5hbDsKLSAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQ
bGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpIGZpbmFsOwotICAgIFJlZlB0cjxQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBmaW5h
bDsKKyAgICBXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRS
ZXNvdXJjZUxvYWRlcigpIGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsK
ICAgICBib29sIGRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmLCBBdG9tU3RyaW5n
KiA9IG51bGxwdHIpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJTaG91bGRVc2VQ
ZXJzaXN0ZW50Q2FjaGUoKSBjb25zdCBmaW5hbDsKICAgICBjb25zdCBTdHJpbmcmIG1lZGlhUGxh
eWVyTWVkaWFDYWNoZURpcmVjdG9yeSgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBtZWRpYVBs
YXllckRpZEFkZEF1ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lk
IG1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5h
bDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0
ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKEF1ZGlv
VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRU
cmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXll
ckRpZFJlbW92ZVZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lk
IG1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYp
IGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRW
aWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBt
ZWRpYVBsYXllckRpZFJlbW92ZUF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUm
KSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNrKFdlYkNvcmU6
OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlk
UmVtb3ZlVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwogCi0g
ICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29uc3QgSW50UmVj
dCYpIGZpbmFsOworICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2Vk
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShWSURFT19UUkFD
SykgJiYgRU5BQkxFKEFWRl9DQVBUSU9OUykKLSAgICBWZWN0b3I8UmVmUHRyPFBsYXRmb3JtVGV4
dFRyYWNrPj4gb3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCkgZmluYWw7CisgICAgVmVjdG9yPFJlZlB0
cjxXZWJDb3JlOjpQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291cmNlcygpIGZp
bmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFN0cmluZyBtZWRp
YVBsYXllck5ldHdvcmtJbnRlcmZhY2VOYW1lKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBtZWRp
YVBsYXllckdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiwgVmVjdG9yPENvb2tpZT4mKSBjb25zdCBm
aW5hbDsKKyAgICBib29sIG1lZGlhUGxheWVyR2V0UmF3Q29va2llcyhjb25zdCBVUkwmLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICAgICBTdHJpbmcg
bWVkaWFQbGF5ZXJTb3VyY2VBcHBsaWNhdGlvbklkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKIAog
ICAgIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0IGZpbmFs
OwotICAgIE1lZGlhUGxheWVyRW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbWVkaWFQbGF5ZXJG
dWxsc2NyZWVuTW9kZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbWVkaWFQbGF5ZXJGdWxsc2NyZWVuTW9kZSgpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBj
b25zdCBmaW5hbDsKICAgICBWZWN0b3I8U3RyaW5nPiBtZWRpYVBsYXllclByZWZlcnJlZEF1ZGlv
Q2hhcmFjdGVyaXN0aWNzKCkgY29uc3QgZmluYWw7CiAKQEAgLTE3Niw5ICsxNzcsOSBAQCBwcml2
YXRlOgogCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwogICAg
IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb247Ci0gICAgUmVmUHRy
PE1lZGlhUGxheWVyPiBtX3BsYXllcjsKKyAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFQbGF5ZXI+
IG1fcGxheWVyOwogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtX21hbmFnZXI7
Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRl
bnRpZmllcjsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgbV9lbmdpbmVJZGVudGlmaWVyOwogICAgIFZlY3RvcjxXZWJDb3JlOjpDb250ZW50VHlw
ZT4gbV90eXBlc1JlcXVpcmluZ0hhcmR3YXJlU3VwcG9ydDsKICAgICBSdW5Mb29wOjpUaW1lcjxS
ZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3VwZGF0ZUNhY2hlZFN0YXRlTWVzc2FnZVRpbWVyOwog
ICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUgbV9jYWNoZWRTdGF0ZTsKQEAgLTE5MSw2ICsxOTIs
NiBAQCBwcml2YXRlOgogI2VuZGlmCiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTdlMTI0NTljNzUwMTA4ZTcxYzA0NDA5OGI0
YjRjZDJiYTQ5MDM2NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllclByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVtb3RlTWVkaWFSZXNvdXJjZT4g
UmVtb3RlTWVkaWFSZXNvdXJjZTo6Y3JlYXRlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiBy
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlciwgcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSwgaWQpKTsKK30KKworUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkm
IHJlbW90ZU1lZGlhUGxheWVyUHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlk
KQorICAgIDogbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihyZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcikKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1v
dGVNZWRpYVBsYXllclByb3h5KSkKKyAgICAsIG1faWQoaWQpCisgICAgLCBtX3JlYWR5KGZhbHNl
KQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNvdXJjZSgpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdG9wKCk7CisgICAgbV9yZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5yZW1vdmVNZWRpYVJlc291cmNlKG1faWQpOworfQorCit2b2lk
IFJlbW90ZU1lZGlhUmVzb3VyY2U6OnN0b3AoKQoreworICAgIGlmIChtX3JlbW90ZU1lZGlhUGxh
eWVyUHJveHkpCisgICAgICAgIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+cmVtb3ZlUmVzb3Vy
Y2UobV9pZCk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0Nv
bnRyb2xDaGVjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xD
aGVjazsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9s
Q2hlY2spCit7CisgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gZGlkUGFzc0FjY2Vz
c0NvbnRyb2xDaGVjazsKKworICAgIGlmIChtX2NsaWVudCkgeworICAgICAgICBtX2NsaWVudC0+
cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyldKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBT
aG91bGRDb250aW51ZTo6Tm8pCisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcCgp
OworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVk
aXJlY3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50
LT5yZWRpcmVjdFJlY2VpdmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25zZSwgW10o
YXV0byYmKSB7IH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnNob3VsZENhY2hl
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgUmVmUHRy
PFJlbW90ZU1lZGlhUmVzb3VyY2U+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgaWYgKG1fY2xp
ZW50KQorICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNob3VsZENhY2hlUmVzcG9uc2UoKnRoaXMs
IHJlc3BvbnNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlOjpkYXRhU2VudCh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0Jl
U2VudCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kYXRhU2VudCgq
dGhpcywgYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVzb3VyY2U6OmRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCBpbnQ2NF90IGxlbmd0
aCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5kYXRhUmVjZWl2ZWQo
KnRoaXMsIGRhdGEsIGxlbmd0aCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6YWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAg
IG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IGZhbHNlOworICAgIGlmIChtX2NsaWVudCkK
KyAgICAgICAgbV9jbGllbnQtPmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCgqdGhpcywgZXJyb3Ip
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGYWlsZWQoY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+
bG9hZEZhaWxlZCgqdGhpcywgZXJyb3IpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6
OmxvYWRGaW5pc2hlZCgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+
bG9hZEZpbmlzaGVkKCp0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYyZDhjMWM4ZTM4OThlZjY5NjEzODZmZTg1OGQ4M2JjNDBi
MWQ5MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OworY2xhc3MgUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2UgOiBwdWJsaWMg
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVm
PFJlbW90ZU1lZGlhUmVzb3VyY2U+IGNyZWF0ZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYs
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7
CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2UoKTsKKworICAgIGJvb2wgcmVhZHkoKSBjb25zdCB7
IHJldHVybiBtX3JlYWR5OyB9CisgICAgdm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVh
ZHkgPSByZWFkeTsgfQorCisgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlCisgICAgdm9pZCBz
dG9wKCkgZmluYWw7CisgICAgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkgY29uc3Qg
ZmluYWw7CisKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayk7CisgICAgdm9pZCBy
ZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRhdGFTZW50KHVpbnQ2NF90
LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoY29uc3QgY2hhciosIGludDY0X3Qp
OworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGYWlsZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CisKK3ByaXZhdGU6CisgICAgUmVtb3Rl
TWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlciYgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKKyAgICBX
ZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsK
KyAgICBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOworICAgIGJvb2wgbV9kaWRQ
YXNzQWNjZXNzQ29udHJvbENoZWNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcmVhZHk7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjcyOGE1YjQwNzNiMzBkOTRjZTk1YTYzMGJmZDZjNWYzY2ExYjgx
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPHd0
Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitlbnVtIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxODJkZTZlNTJmYzE2NGViYmFjZTg2YmIwN2ZiMWIw
M2JlMmQ5MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6UmVtb3RlTWVkaWFSZXNv
dXJjZUxvYWRlcihSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXllclByb3h5
KQorICAgIDogbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KG1ha2VXZWFrUHRyKHJlbW90ZU1lZGlh
UGxheWVyUHJveHkpKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjp+UmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlcigpCit7Cit9CisKK1JlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2U+IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZShSZXNvdXJjZVJl
cXVlc3QmJiByZXF1ZXN0LCBMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAgIHJldHVybiBtX3Jl
bW90ZU1lZGlhUGxheWVyUHJveHktPnJlcXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBv
cHRpb25zKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOWVlYzM1YzBlM2Q1YmY4MTcxMTYxNGMxM2VkZDAyZGY5NzRh
ZjFiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OworCitjbGFzcyBSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyIGZpbmFsCisgICAgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmKTsKKyAgICB+UmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlcigpOworCisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZT4gcmVxdWVzdFJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBMb2FkT3B0
aW9ucykgZmluYWw7CisKK3ByaXZhdGU6CisgICAgV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllclBy
b3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYTA4OGQ3
NzBjODM2NzljMjIwODgxYWM5N2RiNTEzNDU1ZWEyYTE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNw
cApAQCAtMCwwICsxLDEwNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKQoreworfQorCit2b2lk
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVN
ZWRpYVJlc291cmNlKiByZW1vdGVNZWRpYVJlc291cmNlKQoreworICAgIG1fcmVtb3RlTWVkaWFS
ZXNvdXJjZXMuYWRkKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCByZW1vdGVNZWRpYVJl
c291cmNlKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVtb3ZlTWVk
aWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllcikKK3sKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIg
aWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3ND
b250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYg
bV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmdldChpZCktPnJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UsIGRpZFBhc3NB
Y2Nlc3NDb250cm9sQ2hlY2spOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlZGlyZWN0UmVjZWl2ZWQoUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgaWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29u
dGFpbnMoaWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7Cisg
ICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWRpcmVjdFJlY2VpdmVkKFdURk1v
dmUocmVxdWVzdCksIHJlc3BvbnNlKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudChSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciBpZCwgdWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVz
VG9CZVNlbnQpCit7CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMo
aWQpICYmIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5kYXRhU2VudChieXRlc1NlbnQsIHRvdGFsQnl0
ZXNUb0JlU2VudCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFS
ZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBkYXRhKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNv
bnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOwor
ICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+ZGF0YVJlY2VpdmVkKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuZGF0YSgpKSwgZGF0YS5zaXplKCkpOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQo
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAm
JiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGVycm9yKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7
CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVt
b3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJl
c291cmNlcy5nZXQoaWQpLT5sb2FkRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjo6bG9hZEZpbmlzaGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyIGlkKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlk
KSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVt
b3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+bG9hZEZpbmlzaGVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDIyMjA4NWEzZjEzMDI5MmQxZTg1OTJlYTBhODQ1OGExYmRkMDA3MgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXll
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZTsK
KworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIKKyAgICA6IHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZSopOworICAgIHZvaWQgcmVtb3ZlTWVk
aWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6
Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRhdGFTZW50KFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdCwgdWludDY0X3QpOworICAgIHZvaWQg
ZGF0YVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwor
ICAgIHZvaWQgbG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2UqPiBtX3JlbW90ZU1lZGlhUmVzb3VyY2Vz
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlNTNjZmFjMjU1ZDQ5NjI1NWRk
NmQzMGEwY2Y5YmY1MTM5MWY5MmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAg
LTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21l
c3NhZ2VzIC0+IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAg
IFJlc3BvbnNlUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBp
ZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNz
Q29udHJvbENoZWNrKSAtPiAoKSBBc3luYworICAgIFJlZGlyZWN0UmVjZWl2ZWQoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+ICgpIEFzeW5j
CisgICAgRGF0YVNlbnQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwg
dWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCisgICAgRGF0
YVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIElQQzo6
RGF0YVJlZmVyZW5jZSBkYXRhKQorICAgIEFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGVycm9yKQorICAgIExvYWRGYWlsZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBMb2FkRmluaXNoZWQo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMmU5ZWQ3YWI1NDAy
ZWY1MTE4OGY3ZThkYmUzOTZiYThhY2UwZmFkLi4yNTdiMDBlYjg2MDg4MTVhYzg5YjU3MjViNWFi
MjE0OTMwNzlmMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTIyMCw2ICsyMjAsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAg
ICAnV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlk
ZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXInLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
aW5kZXggMTkxNmRiM2Q2NWI2NWVjZGM1ZTAwZWE3ZWMwMWVmZGM2NTY2MTBmZi4uNzg1ODBjZTcw
MzNlMzc5NzdhOGRlZTZmZmE0NDU4MTBjNjlkZDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw2ICsy
NCwxMSBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
LmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisvL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcAogCiBOZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmli
dXRpb25NYW5hZ2VyLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5j
cHAKQEAgLTUwMiw4ICs1MDcsOSBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL01lZGlhRGV2aWNl
U2FuZGJveEV4dGVuc2lvbnMuY3BwCiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIAogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCi1XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCi1XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
CisvL1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKy8v
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiAKIFdlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYTRhYTU1
ZTJhYTE5YTE0NjYyNTRiYmYxYmJjNzIyODk5YjZjNjI3OC4uMDIzZGJkMzk0ZDQ1NmZkZGQxMThh
YTliNjZkODI5MjBmNjIxNjJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTksOCArNTks
NiBAQCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKIAogR1BVUHJv
Y2Vzcy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJvY2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5t
bQotR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAotR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvRW50
cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRm
b3JtL2NmL01vZHVsZUNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZTNiOTE5MjBjOWI4YTNmMzZhMGJkMTQ4Y2E4NThkYmRkY2Iz
YTA4Ny4uZjY2YzE2YmJmY2FlMDRmMzZjOGU1MDhhOTA3NTY4OWVjNzA5YmYxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDcsNyAr
NDA3LDIwIEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94
eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5o
ICovOyB9OwogCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJl
Y2VpdmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3Bl
Y3RvclVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmggKi87IH07CisJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAq
LzsgfTsKKwkJMUQzMkY4OUUyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
RDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAq
LzsgfTsKKwkJMUQzQUIwNTAyM0FDMDFBMDAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3MjVFRkFEMjM5QjAyNDUwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eS5jcHAgKi87IH07CisJCTFEM0FCMDUxMjNBQzAxQUEwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcCAqLzsgfTsKKwkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovOyB9
OworCQkxRDNBQjA1MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDNB
QjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi87
IH07CisJCTFEM0FCMDU0MjNBQzAxQjcwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
REE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3Bw
ICovOyB9OworCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3Bw
ICovOyB9OworCQkxRDNBQjA1NjIzQUMwMUY2MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3Bw
ICovOyB9OworCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMUQ0RDczNzEyM0E5
RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURG
NjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07
CisJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTFENjdCMzM5MjEyRTFGNjEwMEZBQTc4
NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUQ2N0IzMzgyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRD
YWxsYmFja0lELmggKi87IH07CisJCTFEQTQwODk1MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLmggKi87IH07CiAJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJl
U2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
RTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLzsgfTsKIAkJMURCMDE5
NDQyMTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBX
S1NoYXJlU2hlZXQubW0gKi87IH07CiAJCTFGMzM1QkMwMTg1Qjg0RjAwMDFBMjAxQSAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFGMzM1QkJGMTg1Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nl
c3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMjYyMCw5ICsyNjMzLDIyIEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEw
MDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyog
V2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0g
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlGMTlCNjZDNTMw
MDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3Vy
Y2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OworCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3Vy
Y2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5QjIzQTg0QkE2MDBC
MUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMy
Rjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzQUIwNEQy
M0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkxRDNBQjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0Rmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0
Q2FsbGJhY2tJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZVNoZWV0
Q2FsbGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5NDIzQTgw
QTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMURBNDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQkIwNjEyMTFDQzNDQjAwNTAyRUND
IC8qIFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURFMEQw
OTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxRjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVn
SW5GcmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMx
NTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg2Myw3ICs0ODg5LDcgQEAKIAkJREY1
OEM2MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2Vi
V2hlZWxFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxMDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0
b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdl
LnNiOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9jb20uYXBwbGUuV2ViS2l0LlN0b3Jh
Z2Uuc2I7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUxMTVDNzE1MTkw
RjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBuYW1lID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBwYXRoID0gRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJL
aXQuaWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IGltYWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFJlc291cmNlcy9XZWJLaXQu
aWNuczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDcxNkUwMTZBNDAwNjhE
RTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDgxNkUwMTZBNDAwNjhE
RTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTE0LDYgKzUxNDAsOCBAQAogCQkJCTA3OTIz
MTM0MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAqLywKIAkJ
CQkwNzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLAogCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRp
YVBsYXllclN0YXRlLmggKi8sCisJCQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8sCisJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZB
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRp
YTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01MTI3LDYgKzUxNTUsMTQgQEAKIAkJ
CQkwN0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAg
Ki8sCiAJCQkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCAqLywKIAkJCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8sCisJCQkJMUQzMkY4OTgyM0E4NDY1QTAwQjFF
QTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAqLywKKwkJCQkxREUyREZBQzIzQTk1OUY4MDAz
RTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQkxRDNBQjA0
RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8sCisJ
CQkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIu
aCAqLywKKwkJCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuY3BwICovLAorCQkJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oICovLAorCQkJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlw
YXRoID0gbWVkaWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTI4NCw2ICs5MzIw
LDkgQEAKIAkJCQkwNzkyMzE0NTIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTA3OTIzMTQ2MjM5Q0JDQjcw
MDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJMDc5MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkx
RDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oICovLAorCQkJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgzMTg1OTBDNDYw
MEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJ
CQkJMUFDMTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2Fn
ZXMuaCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAxNzgsNiArMTAyMTcsMTAg
QEAKIAkJCQkwNzkyMzE0QzIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5MjMxNDgyMzlDQkNCODAw
OTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwN0IzQjQ3MDIzQUIzMDJEMDBCQTVCMTIgLyogUmVtb3RlTWVk
aWFQbGF5ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBNDA4OTUyM0E4MEEzRTAwNThD
OTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkx
RDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxRDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUI3ODQ3MTE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTcwNEZDMUJFMTc1MTEw
MDg3NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUMxMzM4MDE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTE3ODgsNiArMTE4MzEsNyBAQAogCQkJCTI5ODRGNTdDMTY0QjkxNUYwMDRC
QzBDNiAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0NDlEOTBEQTIxRkRDMzBCMDBGNjc3QzAgLyogTG9jYWxB
dXRoZW50aWNhdGlvblNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3NzkyMTJC
NkE2MTAwRjQ5M0ZEIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTUy
M0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkyQTc4MTIxMkI2QTcxMDBGNDkzRkQgLyogTWVzc2FnZVJlY2VpdmVyTWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgyMjEyQjZBNzEwMEY0OTNGRCAvKiBNZXNz
YWdlU2VuZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzdBMjEyQjZBNjEwMEY0OTNG
RCAvKiBNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMTg0NCw4ICsxMTg4OCwxNiBAQAog
CQkJCTJENzJBMUZBMjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3
cy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU2MjNBQzAxRjYwMDVDMUZGMCAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5MjMxNDkyMzlD
QkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1MDIzQUMwMUEwMDA1QzFGRjAgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5MjMxNEIy
MzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUxMjNBQzAxQUEwMDVDMUZGMCAv
KiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUy
MjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFEM0FCMDUzMjNBQzAxQjMwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU0MjNBQzAxQjcwMDVDMUZGMCAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDRENzM3
MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzMkY4OUUyM0E4NEM1QjAwQjFFQTZBIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUMxMzM4
NTE4NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OTQ3QTcxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE1NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZThkYWFlMGY5
YmE4NWEyNTFiNzA2N2RlMzhjYTRhNzY5NzQyMTU4MC4uYjhlNDc2N2ZjMDBkNDkzMWU0ZDhhMTM0
YmJiM2NkZThkNDY3NmU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBHUFVQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW4KIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQog
ewogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI+KCktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rl
cik7CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5l
Y3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmgKaW5kZXggODUzY2MxNjU1MDk0YmI1MjQyMWZiNmNmYTFjMzE5YTk2NDcx
YzA5NC4uMzFjNjEwNDY2OWYyZjAyZmZhNDQwZmViODgwOTI2Yzc0YWUyNmFjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApA
QCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZl
SW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVz
c2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJy
aWRlOwogCi0gICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSBhIHdlYiBwcm9jZXNzIHRvIHRoaXMg
R1BVIHByb2Nlc3MuCisgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3Mg
dG8gdGhlIEdQVSBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBmYzMyZWQwNTdkOTM4
ZTczMTAxY2MwYzkxMjg2N2U3MGZjYTZiZmYwLi43YjQ5NjgyODM5YWI4YWQ4Njk3OWNmYzJkZGUy
MzE3OTJmYTdjMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC00Nyw3ICs0
Nyw3IEBAIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ01lZGlhOwogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKICNpZmRlZiBBTFdBWVNfTE9HX1VOSU1QTEVNRU5URURfTUVUSE9EUwpAQCAtNjMsNiAr
NjMsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21l
ZGlhUmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwg
bV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5l
SWRlbnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKQEAgLTc5OSw2ICs4MDAs
MjEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNp
Y1NpemUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBv
cHRpb25zKQoreworICAgIEFTU0VSVCghbV9tZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllcikpOworICAgIGF1dG8gcmVzb3VyY2UgPSBtX21lZGlhUmVz
b3VyY2VMb2FkZXItPnJlcXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsK
KyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2Ugb3ducyB0aGUgUGxhdGZvcm1NZWRpYVJlc291
cmNlQ2xpZW50CisgICAgcmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eT4obV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIHJlc291cmNl
LmdldCgpLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikpOworICAgIG1fbWVkaWFSZXNv
dXJjZXMuYWRkKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc291cmNl
KSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZXNvdXJjZShS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cikKK3sKKyAgICAvLyBUaGUgY2xpZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSkgd2lsbCBi
ZSBkZXN0cm95ZWQgYXMgd2VsbAorICAgIG1fbWVkaWFSZXNvdXJjZXMucmVtb3ZlKHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAog
V1RGTG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFubmVsKCkgY29u
c3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDY4ODcyYWViY2YwZWUwZDk1YzFm
NmE2YTc2NjQwODdmMTBkYThmNWQuLjMzOGEzOTExNTNjNDEwYmQ0OThkMmQ4ZTlkMTMzMTJmOGQx
Y2FiYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUu
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5
ZXJQcml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0
Zi9NZWRpYVRpbWUuaD4KQEAgLTM5LDIyICs0MSwyMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGZpbmFsCiAgICAgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPgotICAgICwgcHVibGljIE1lZGlhUGxh
eWVyUHJpdmF0ZUludGVyZmFjZQorICAgICwgcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZUludGVyZmFjZQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJpdmF0ZSBM
b2dnZXJIZWxwZXIKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwg
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxh
eWVyLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAgICAg
IHJldHVybiBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxheWVyLCByZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyLCBjb25maWd1cmF0aW9uKTsK
ICAgICB9CiAKLSAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5
ZXIqLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwotICAgIHZpcnR1YWwgfk1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZSgpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3Jl
OjpNZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7Cisg
ICAgfk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkg
eyBtX2ludmFsaWQgPSB0cnVlOyB9Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90
ZUVuZ2luZUlkZW50aWZpZXI7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgcGxheWVySXRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAog
ICAgIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwpA
QCAtNjksNiArNzEsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShSZW1v
dGVNZWRpYVBsYXllclN0YXRlJiYpOwogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJv
b2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1v
dmllTG9hZFR5cGUpOwogCisgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zKTsKKyAgICB2b2lkIHJlbW92ZVJl
c291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKwogI2lmICFSRUxFQVNFX0xP
R19ESVNBQkxFRAogICAgIGNvbnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gKm1fbG9nZ2VyOyB9CiAgICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KQEAgLTc3LDE0ICs4
MiwxNCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWQoY29uc3Qg
VVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lk
IHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9h
ZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKKyAgICB2b2lkIGxv
YWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcm
KSBmaW5hbDsKKyAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBX
ZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBw
cmVwYXJlKSBmaW5hbDsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBsb2Fk
KGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFsOworICAgIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQq
KSBmaW5hbDsKICNlbmRpZgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9pZCBsb2Fk
KE1lZGlhU3RyZWFtUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNZWRp
YVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKICNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpIGZp
bmFsOwogCkBAIC0xMDYsOSArMTExLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
KQogICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6
RnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICB2b2lkIHVw
ZGF0ZVZpZGVvRnVsbHNjcmVlbklubGluZUltYWdlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRl
b0Z1bGxzY3JlZW5GcmFtZShGbG9hdFJlY3QpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxs
c2NyZWVuR3Jhdml0eShNZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsKLSAgICB2b2lk
IHNldFZpZGVvRnVsbHNjcmVlbk1vZGUoTWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
IGZpbmFsOworICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRS
ZWN0KSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5h
bDsKICAgICB2b2lkIHZpZGVvRnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKCkgZmluYWw7CiAjZW5k
aWYKIApAQCAtMTE4LDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVycm9yTG9nKCkg
Y29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlh
UGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9s
aWN5KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOwogCiAgICAg
Ym9vbCBzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1
cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwpAQCAtMTI2LDcgKzEzMSw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIGNhblNhdmVNZWRpYURhdGEoKSBjb25zdCBmaW5hbDsKIAotICAgIEZs
b2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgaGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKQEAgLTE1OSwyOSArMTY0
LDI5IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IGZp
bmFsOwogICAgIGRvdWJsZSBtaW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBmaW5hbDsKIAotICAg
IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5y
ZWFkeVN0YXRlOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3
b3JrU3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0
ZTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLnJlYWR5U3RhdGU7IH0KIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2Fi
bGUoKSBjb25zdCBmaW5hbDsKIAogICAgIE1lZGlhVGltZSBtYXhNZWRpYVRpbWVTZWVrYWJsZSgp
IGNvbnN0IGZpbmFsOwogICAgIE1lZGlhVGltZSBtaW5NZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0
IGZpbmFsOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVk
KCkgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGlt
ZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1l
UmFuZ2VzTGFzdE1vZGlmaWVkVGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBk
YXRlSW50ZXJ2YWwoKSBjb25zdCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3Rh
bEJ5dGVzKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25z
dCBmaW5hbDsKIAotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWw7CisgICAg
dm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKIAotICAgIHZvaWQg
cGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9p
ZCBwYWludChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSBmaW5hbDsKIAotICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7Ci0gICAgYm9vbCBjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgYm9v
bCwgYm9vbCkgZmluYWw7Ci0gICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50
VGltZSgpIGZpbmFsOworICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7Cisg
ICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGVu
dW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisgICAgV2ViQ29yZTo6
TmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogCi0gICAg
dm9pZCBzZXRQcmVsb2FkKE1lZGlhUGxheWVyOjpQcmVsb2FkKSBmaW5hbDsKKyAgICB2b2lkIHNl
dFByZWxvYWQoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOwogCiAgICAgYm9v
bCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QgZmluYWw7CiAKQEAgLTE5MiwxNCArMTk3
LDE0IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQog
ICAgIFN0cmluZyB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0TmFtZSgpIGNvbnN0IGZpbmFsOwotICAg
IE1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNr
VGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0
IGZpbmFsOwogCiAgICAgYm9vbCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgc2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkg
ZmluYWw7CiAKICAgICBib29sIGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25z
dCBmaW5hbDsKICAgICBib29sIGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxh
eWJhY2tUYXJnZXQ+JiYpIGZpbmFsOworICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1Rhcmdl
dChSZWY8V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CiAKICAgICB2b2lk
IHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wpIGZpbmFsOwogI2VuZGlmCkBAIC0y
MTYsOSArMjIxLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmln
aW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25z
dCBmaW5hbDsKLSAgICBPcHRpb25hbDxib29sPiB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJikgY29uc3QgZmluYWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludE9y
aWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOwogCi0gICAg
TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IGZpbmFsOwor
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIGZpbmFsOwogCkBA
IC0yMzQsMjUgKzIzOSwyNSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlv
bigpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBBdWRpb1NvdXJj
ZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6QXVk
aW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBMZWdhY3lDRE1T
ZXNzaW9uQ2xpZW50KikgZmluYWw7Ci0gICAgdm9pZCBzZXRDRE1TZXNzaW9uKExlZ2FjeUNETVNl
c3Npb24qKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TGVnYWN5Q0RNU2Vz
c2lvbj4gY3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpMZWdhY3lDRE1TZXNz
aW9uQ2xpZW50KikgZmluYWw7CisgICAgdm9pZCBzZXRDRE1TZXNzaW9uKFdlYkNvcmU6OkxlZ2Fj
eUNETVNlc3Npb24qKSBmaW5hbDsKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCi0gICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFj
aGVkKENETUluc3RhbmNlJikgZmluYWw7Ci0gICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKENE
TUluc3RhbmNlJikgZmluYWw7Ci0gICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNl
KENETUluc3RhbmNlJikgZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKFdlYkNv
cmU6OkNETUluc3RhbmNlJikgZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKFdl
YkNvcmU6OkNETUluc3RhbmNlJikgZmluYWw7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0
aEluc3RhbmNlKFdlYkNvcmU6OkNETUluc3RhbmNlJikgZmluYWw7CiAgICAgYm9vbCB3YWl0aW5n
Rm9yS2V5KCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
ICAgICBib29sIHJlcXVpcmVzVGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0
aW9uKikgZmluYWw7CisgICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3Jl
OjpUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3luY1RleHRUcmFj
a0JvdW5kcygpIGZpbmFsOwogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlm
CkBAIC0yNzIsNyArMjc3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZW5kZWQoKSBjb25zdCBm
aW5hbDsKIAotICAgIE9wdGlvbmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gdmlkZW9Q
bGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6Vmlk
ZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MoKSBm
aW5hbDsKIAogI2lmIEVOQUJMRShBVkZfQ0FQVElPTlMpCiAgICAgdm9pZCBub3RpZnlUcmFja01v
ZGVDaGFuZ2VkKCkgZmluYWw7CkBAIC0yOTMsMTkgKzI5OCwyMiBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkgZmluYWw7CiAKLSAgICBNZWRpYVBsYXll
ciogbV9wbGF5ZXIgeyBudWxscHRyIH07Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIG1f
bWFuYWdlcjsKLSAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9y
ZW1vdGVFbmdpbmVJZGVudGlmaWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXll
ciB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
TG9hZGVyPiBtX21lZGlhUmVzb3VyY2VMb2FkZXI7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyJiBtX21hbmFnZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdp
bmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1
cmF0aW9uIG1fY29uZmlndXJhdGlvbjsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUgbV9j
YWNoZWRTdGF0ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBtX2Nh
Y2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxh
dGZvcm1UaW1lUmFuZ2VzPiBtX2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKworICAgIEhhc2hN
YXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2U+PiBtX21lZGlhUmVzb3VyY2VzOwogCiAgICAgZG91YmxlIG1fdm9sdW1l
IHsgMSB9OwogICAgIGRvdWJsZSBtX3JhdGUgeyAxIH07CiAgICAgbG9uZyBtX3BsYXRmb3JtRXJy
b3JDb2RlIHsgMCB9OwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3Zp
ZUxvYWRUeXBlIHsgTWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9Owor
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRU
eXBlIHsgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9
OwogICAgIGJvb2wgbV9oYXNBdWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaAppbmRleCA4N2U3YjhiYmFlYzM1MzRlN2RlZmQ3ODIz
ODYxMDE0MzIxNzUzOGM3Li4yNTZiM2M1OWZiZTQyYjZiYzFhMzA2NzFlNzAwYTU3MzRkZGI5ZjUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaApAQCAtMjUs
NiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwog
I2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpA
QCAtMzIsNCArMzQsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGVudW0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllclR5cGU+OwogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKaW5kZXggY2Vl
NmI1NTI2OTgyYWZmNDExYmYwNDE1ZWM4MjA1MjUwZTg5OTlkMy4uMDFmM2Y5OTE0ZTUwNzYwNTBk
YzExODZiYTU5OTdmMWM3YzMxMTkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcApA
QCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAi
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKQEAgLTQxLDYgKzQzLDcgQEAKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKKwogdXNpbmcg
bmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNjUsNyArMTY4
LDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmdldFN1cHBvcnRlZFR5cGVzKE1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICAgICAgcmVzdWx0LmFkZCh0eXBlKTsK
IH0KIAotTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVkaWFFbmdpbmVT
dXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKK01lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNv
bnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgLy8g
RklYTUU6IHN1cHBvcnRlZCB0eXBlcyBkb24ndCBjaGFuZ2UsIGNhY2hlIHRoZW0uCiAKQEAgLTE4
MSw5ICsxODQsOSBAQCBib29sIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNLZXlT
eXN0ZW0oTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotSGFzaFNldDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6Om9yaWdpbnNJbk1lZGlhQ2FjaGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
cGF0aCkKK0hhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5l
SWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgpCiB7
Ci0gICAgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKKyAg
ICBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5EYXRhOwogICAgIGlmICghZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHk6Ok9yaWdpbnNJbk1lZGlhQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGF0
aCksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6T3JpZ2luc0luTWVk
aWFDYWNoZTo6UmVwbHkob3JpZ2luRGF0YSksIDApKQogICAgICAgICByZXR1cm4geyB9OwogCkBA
IC0xOTksNyArMjAyLDcgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVk
aWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW4KICAgICBncHVQcm9jZXNz
Q29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpDbGVhck1lZGlhQ2FjaGUocmVtb3RlRW5naW5lSWRlbnRpZmllciwgcGF0aCwgbW9kaWZpZWRT
aW5jZSksIDApOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRp
YUNhY2hlRm9yT3JpZ2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBIYXNoU2V0
PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zKQordm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYgb3Jp
Z2lucykKIHsKICAgICBhdXRvIG9yaWdpbkRhdGEgPSBXVEY6Om1hcChvcmlnaW5zLCBbXSAoYXV0
byYgb3JpZ2luKSB7CiAgICAgICAgIHJldHVybiBvcmlnaW4tPmRhdGEoKTsKQEAgLTIxMCw1NSAr
MjEzLDU1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVG
b3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhCiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAo
YXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxh
eWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+bmV0d29ya1N0YXRlQ2hh
bmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpyZWFkeVN0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVy
ID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKFdURk1vdmUo
c3RhdGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnZvbHVtZUNoYW5n
ZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUg
dm9sdW1lKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQoTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVtZSkKIHsKLSAg
ICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0
byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+dm9sdW1lQ2hh
bmdlZCh2b2x1bWUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0ZUNo
YW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29s
IG11dGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0ZUNoYW5nZWQoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQogewotICAgIGlmIChh
dXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5
ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5tdXRlQ2hhbmdlZChtdXRl
KTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRpbWVDaGFuZ2VkKFdlYktp
dDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5
ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAg
ICAgICAgcGxheWVyLT50aW1lQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3Rh
dGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYg
KGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXIt
PmR1cmF0aW9uQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSByYXRlKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnJhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRv
dWJsZSByYXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQor
ICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAg
cGxheWVyLT5yYXRlQ2hhbmdlZChyYXRlKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OnBsYXliYWNrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBpZCwgYm9vbCBwYXVzZWQpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgYm9vbCBwYXVzZWQpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJz
LmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQp
KQogICAgICAgICBwbGF5ZXItPnBsYXliYWNrU3RhdGVDaGFuZ2VkKHBhdXNlZCk7CiB9CiAKIHZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjplbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBsb25nIHBsYXRmb3JtRXJyb3JD
b2RlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlm
IChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVy
LT5lbmdpbmVGYWlsZWRUb0xvYWQocGxhdGZvcm1FcnJvckNvZGUpOwogfQogCkBAIC0yNjcsNiAr
MjcwLDIwIEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjaGFyYWN0ZXJpc3RpY0No
YW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSCiAgICAgaWYgKGF1dG8gcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2Vk
KGhhc0F1ZGlvLCBoYXNWaWRlbywgbG9hZFR5cGUpOwogfQorICAgIAordm9pZCBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXI6OnJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXll
ciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgICAgICBwbGF5ZXItPnJlcXVlc3RSZXNvdXJjZShy
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7
CisKKyAgICBjb21wbGV0aW9uSGFuZGxlcigpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6cmVtb3ZlUmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciBpZCwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIpCit7CisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQorICAgICAgICBwbGF5ZXItPnJlbW92ZVJlc291cmNlKHJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKK30KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnVwZGF0ZVBy
ZWZlcmVuY2VzKGNvbnN0IFNldHRpbmdzJiBzZXR0aW5ncykKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5oCmluZGV4IGMzYzI3N2FjODhjMzRkYzYwOWFjYWNmZWVkNmFlNTk3ODMyOGYxNDIuLjY3
YzBhMzVkNGEwM2M4YTk1ZTFiMzFkMjdkN2Y2MmI1MTk0YTg5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNs
dWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4K
QEAgLTQ4LDcgKzQ5LDcgQEAgY2xhc3MgV2ViUHJvY2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIoV2ViUHJvY2VzcyYpOworICAgIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcihXZWJQcm9jZXNzJik7CiAgICAgflJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcigpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7
CkBAIC01Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
V2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVj
b2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0
aW9uLCBkZWNvZGVyKTsgfQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtODIsNiArODMsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciwgbG9uZyk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyU3RhdGUmJik7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1Zp
ZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKKyAgICB2b2lk
IHJlcXVlc3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7
CiAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA0NjU4YTdh
MjhmNmM3OGUxMGNlMDU0NWQ3MGZmYzNmZmM1MGRkYzNjLi4xODBmMjYzMjM2M2Y1MDZkZWJjMmEx
ZTg3MzY5NmFmYzllN2Y2NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMjEsMTAgKzIxLDkgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoVklERU8pCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90
UmVmQ291bnRlZCB7Ci0KICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZSBzdGF0ZSkKICAgICBSZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyU3RhdGUgc3RhdGUpCiAgICAgVm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCkBAIC0zNiw2ICszNSw5
IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3VudGVkIHsK
ICAgICBFbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBpbnQgcGxhdGZvcm1FcnJvckNvZGUpCiAgICAgVXBkYXRlQ2FjaGVkU3Rh
dGUoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3Qg
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIENoYXJhY3RlcmlzdGlj
Q2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJv
b2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBs
YXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUpCisKKyAgICBSZXF1ZXN0UmVz
b3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCByZXF1ZXN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKSAtPiAoKSBBc3luYworICAgIFJlbW92ZVJl
c291cmNlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTI0NTNjNTg2YWYzMTEyMDU5
ODhkZDg1MTliOWNlZThkZGViOGFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCkBAIC0wLDAg
KzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tlci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UqIHBsYXRmb3JtTWVkaWFSZXNv
dXJjZSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCisgICAgOiBtX2Nvbm5lY3Rp
b24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fcGxhdGZvcm1NZWRpYVJlc291cmNlKHBs
YXRmb3JtTWVkaWFSZXNvdXJjZSkKKyAgICAsIG1faWQoaWQpCit7Cit9CisKK1JlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSgpCit7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlNob3VsZENvbnRpbnVlKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlc3BvbnNlUmVjZWl2ZWQo
bV9pZCwgcmVzcG9uc2UsIG1fcGxhdGZvcm1NZWRpYVJlc291cmNlLT5kaWRQYXNzQWNjZXNzQ29u
dHJvbENoZWNrKCkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6U2hv
dWxkQ29udGludWU6Olllcyk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OlJlZGlyZWN0UmVjZWl2ZWQobV9pZCwgcmVxdWVzdCwgcmVzcG9uc2UpLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCldKCkgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
cmVxdWVzdCkpOworICAgIH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6
c2hvdWxkQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxv
bmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6RGF0YVNlbnQobV9pZCwgYnl0ZXNT
ZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlUHJveHk6OmRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkRhdGFSZWNlaXZlZChtX2lkLCBJ
UEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSks
IGxlbmd0aCkpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmFjY2Vz
c0NvbnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpBY2Nlc3NDb250cm9sQ2hl
Y2tGYWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHk6OmxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZhaWxlZChtX2lkLCBl
cnJvciksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZpbmlz
aGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpCit7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZpbmlzaGVk
KG1faWQpLCAwKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM0MWY3ODU1MDBhZjEyMTc4OWZmOTFhY2ZmZGZlZWZlOGJiZjliN2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVJlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlKiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNlUHJveHkoKTsKKworcHJpdmF0ZToKKyAgICAv
LyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6U2hvdWxkQ29udGludWUp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFS
ZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbDsK
KyAgICB2b2lkIGRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBjaGFyKiwgaW50KSBmaW5hbDsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxl
ZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJikgZmluYWw7CisgICAgdm9pZCBsb2FkRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2
b2lkIGxvYWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKSBmaW5hbDsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UqIG1fcGxhdGZvcm1NZWRpYVJlc291cmNlOworICAgIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIG1faWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386483</attachid>
            <date>2019-12-28 23:02:22 -0800</date>
            <delta_ts>2019-12-29 00:07:25 -0800</delta_ts>
            <desc>Patch for review</desc>
            <filename>bug-205379-20191228230221.patch</filename>
            <type>text/plain</type>
            <size>122425</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU1NjExZjA4MzQwODJk
ODg2NWE3N2NiZDlkOTJiNzgxMjIxMmZjZS4uMzg0OGVkMGZhMTNmYzhhOWNiOGRhNDMxNzk2ZmZk
MDUyMTc1YjZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE5LTEyLTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICBUaGVyZSBhcmUgdHdvIGRlZmluaXRpb25zIG9mIFNob3VsZENvbnRpbnVlOiBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTaG91bGRDb250aW51ZQorICAgICAgICBhbmQg
V2ViQ29yZTo6U2hvdWxkQ29udGludWUuIFRoaXMgcGF0Y2ggbW92ZXMgV2ViQ29yZTo6U2hvdWxk
Q29udGludWUgdG8KKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGlu
dWUgaW4gb3JkZXIgdG8gc3VwcG9ydCB0cmFuc21pdHRpbmcgaXQgaW4gWFBDIG1lc3NhZ2VzLgor
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9s
aWN5KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlc291cmNl
OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50OjpyZXNwb25z
ZVJlY2VpdmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VS
TFNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRh
c2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoLVtXZWJDb3JlTlNVUkxTZXNz
aW9uRGF0YVRhc2sgcmVzb3VyY2U6cmVjZWl2ZWRSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjpd
KToKKwogMjAxOS0xMi0yMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVmYWN0b3IgdG8gc2ltcGxpZnkgYnJvYWRjYXN0aW5nIHRvIGFsbCBtZWRpYSBlbGVtZW50
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBlNDI3MmMyMTI1MDM2OTBjZjg3YTQ2ZWQzMDg0YzA4NDg4MmU4OWYxLi5j
NWU5NDYxNDI4YzU3ZjhiY2Y0MzllMGMyMDlhOTQwOGFhOGRjN2MyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyMSBAQAorMjAxOS0xMi0yOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCByZW1vdGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVyIGZvciB0aGUgR1BVIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgSW4gdGhlIEdQVSBwcm9jZXNzLCB0
aGUgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlciBjcmVhdGVzIFJlbW90ZU1lZGlhUmVzb3VyY2Uo
cyksCisgICAgICAgIHdoaWNoIHdpbGwgbm90aWZ5IHRoZSBtZWRpYSByZXNvdXJjZSBjbGllbnRz
IChXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQpLgorICAgICAgICBUaGVuIHRoZSBk
YXRhIHdpbGwgYmUgZm9yd2FyZGVkIHRvIEFWRm91bmRhdGlvbi4KKworICAgICAgICBJbiB0aGUg
V2ViIHByb2Nlc3MsIE1laWRhUmVzb3VyY2VMb2FkZXIgY3JlYXRlcyBNZWRpYVJlc291cmNlKHMp
LCB3aGljaCB0YWtlIGNhcmUgb2YKKyAgICAgICAgZG93bmxvYWRpbmcgbWVkaWEgZGF0YSB0aHJv
dWdoIHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSByZWNlaXZlZCBkYXRhIHdpbGwgYmUgZm9yd2Fy
ZGVkIHRvCisgICAgICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSwgd2hpY2ggd2lsbCBmb3J3
YXJkIHRoZSBkYXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nIFJlbW90ZU1lZGlhUmVzb3VyY2UKKyAg
ICAgICAgdGhyb3VnaCBYUEMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vz
cy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpOgorICAgICAg
ICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojpsb2dDaGFu
bmVsIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIpOgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlh
UGxheWVyTG9nSWRlbnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUmVzb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVNlbnQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpsb2FkRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2U6OnJlYWR5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZTo6c2V0UmVhZHkpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjp+UmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6On5SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZWRpcmVjdFJlY2VpdmVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFSZWNl
aXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uOjpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNU
eXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpvcmlnaW5zSW5NZWRpYUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZWFkeVN0YXRlQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0ZUNoYW5nZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRpbWVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkdXJhdGlvbkNo
YW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJhdGVD
aGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpwbGF5
YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OnJlbW92ZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZl
TWVzc2FnZUZyb21XZWJQcm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICog
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRDYWNoZVJlc3BvbnNlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpkYXRhU2VudCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVJlY2VpdmVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjphY2Nlc3NDb250cm9sQ2hlY2tG
YWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmxvYWRG
YWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmxvYWRG
aW5pc2hlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5Lmg6IEFkZGVkLgorCiAyMDE5LTEyLTIzICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciB0byBzaW1wbGlmeSBicm9hZGNhc3RpbmcgdG8g
YWxsIG1lZGlhIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRl
eCA2Mzc1ZjUwNjI0MTU2YzlmNDhhYjdmNzRjNjE5NmY1MTNmNTlmN2RkLi4yMmViOGQwNDNiMzgw
Mzc1Y2E1ZTBkYjVmNjdlMWFjNGQ4NzY2Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKQEAgLTEzODAsNyArMTM4MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwo
RnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmCiAK
ICAgICBpZiAoIXRhcmdldEZyYW1lICYmICFlZmZlY3RpdmVGcmFtZU5hbWUuaXNFbXB0eSgpKSB7
CiAgICAgICAgIGFjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHkobV9mcmFtZSwgZnJhbWVM
b2FkUmVxdWVzdCkpOwotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xp
Y3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSks
IGVmZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwg
b3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVy
LnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3Jt
U3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJs
ZSB7CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3Zl
KGFjdGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZWZmZWN0aXZl
RnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xp
Y3ksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgp
XSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBm
b3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJl
cXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVl
LCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTE0NjMsNyArMTQ2Myw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAKICAg
ICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpKSB7CiAgICAgICAgIE5h
dmlnYXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5yZXF1ZXN0ZXIoKSwgcmVxdWVzdC5yZXNv
dXJjZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24sIE5hdmlnYXRpb25U
eXBlOjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkgfTsKLSAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9u
KSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9LCByZXF1ZXN0LmZyYW1l
TmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxG
b3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgewor
ICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rp
b24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJh
bWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRy
PEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNo
b3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1Bv
bGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRD
b250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVy
UG9saWN5OjpTdXBwcmVzcyk7CiAgICAgICAgIH0pOwogCkBAIC0zMDYzLDcgKzMwNjMsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgcmVmZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAK
LSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0
aW9uKSwgV1RGTW92ZSh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUp
LCBmcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBv
bGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0
YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIHBv
bGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1v
dmUod29ya2luZ1Jlc291cmNlUmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZnJhbWVOYW1l
LCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAg
ICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRl
LmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiAgICAgICAgIH0pOwpAQCAtMzU0MSw5ICszNTQxLDkgQEAgdm9pZCBGcmFtZUxvYWRl
cjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWUKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5k
b3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAotICAgIEZvcm1TdGF0ZSog
Zm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQ
b2xpY3kgb3BlbmVyUG9saWN5KQorICAgIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kg
b3BlbmVyUG9saWN5KQogewotICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBTaG91bGRDb250aW51
ZTo6WWVzKQorICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZTo6WWVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8RnJhbWU+IGZyYW1lKG1f
ZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBjZTNlZDZhNTUyMGJj
NGRjMWUzMGUyNzk5OTUzN2FmZDQ4NDljYzg0Li43MTYzNGM4NGM1NjA1OTI5YmU1NGE1NWM2ODRj
YmVjZmIxN2Y4NjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRN
aWxlc3RvbmUuaCIKICNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCisjaW5jbHVkZSAi
UG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMu
aCIKQEAgLTg0LDcgKzg1LDYgQEAgY2xhc3MgU3ViZnJhbWVMb2FkZXI7CiBjbGFzcyBTdWJzdGl0
dXRlRGF0YTsKIAogZW51bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7Ci1lbnVtIGNs
YXNzIFNob3VsZENvbnRpbnVlOwogZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24g
OiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29s
OwogCkBAIC0zNTcsNyArMzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoVW5sb2Fk
RXZlbnRzKFVubG9hZEV2ZW50UG9saWN5KTsKIAogICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKTsKLSAgICB2
b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiwgU2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3
RnJhbWVPcGVuZXJQb2xpY3kpOworICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGlj
eSk7CiAgICAgdm9pZCBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29udGludWUpOwogCiAgICAgYm9v
bCBzaG91bGRQZXJmb3JtRnJhZ21lbnROYXZpZ2F0aW9uKGJvb2wgaXNGb3JtU3VibWlzc2lvbiwg
Y29uc3QgU3RyaW5nJiBodHRwTWV0aG9kLCBGcmFtZUxvYWRUeXBlLCBjb25zdCBVUkwmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRleCAwNmU4
NDdkNDQ4Mjc1ZDVmNGE2MjdjN2E0NzcwODQxYzRkY2E0MTg3Li40ZjM1ODk1OTQxZmI2ZjVjZDc0
NDZhNTA2NDNlMGY1YWNkMTQyZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlh
UmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCB2b2lkIE1lZGlhUmVzb3Vy
Y2U6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNv
dXJjZVJlcwogCiAgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gbV9yZXNvdXJjZS0+
b3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwogICAgIGlmIChtX2Ns
aWVudCkKLSAgICAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNl
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKFNob3VsZENvbnRpbnVlIHNo
b3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2
ZWQoKnRoaXMsIHJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMp
LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0g
KFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3Vs
ZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQb2xpY3lD
aGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pCiAgICAgICAgICAgICAgICAgc3RvcCgpOwogICAg
ICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKaW5kZXggMGVmMWU2
ZTU3MzFjZmE1Y2I2ZWQ3ZWFlNWIyN2EyOWM1YzkzYWUyYS4uNDc2ODA2NjVkNDA4ZDFlMzhjNGNm
ZGRkOWMyNWVkMzU0MjRhNGQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Bv
bGljeUNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5o
CkBAIC01MiwxMSArNTIsNiBAQCBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKLWVudW0gY2xhc3MgU2hvdWxkQ29u
dGludWUgewotICAgIFllcywKLSAgICBObwotfTsKLQogZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9s
aWN5RGVjaXNpb24gOiB1aW50OF90IHsKICAgICBDb250aW51ZUxvYWQsCiAgICAgSWdub3JlTG9h
ZCwKQEAgLTY1LDE1ICs2MCwyMCBAQCBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
biA6IHVpbnQ4X3QgewogCiBlbnVtIGNsYXNzIFBvbGljeURlY2lzaW9uTW9kZSB7IFN5bmNocm9u
b3VzLCBBc3luY2hyb25vdXMgfTsKIAotdXNpbmcgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5j
dGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0
aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsKLXVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwg
V2Vha1B0cjxGb3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik+OwotCiBjbGFz
cyBQb2xpY3lDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2xpY3lDaGVja2Vy
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQ
b2xpY3lDaGVja2VyKEZyYW1lJik7CiAKKyAgICBlbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlIHsK
KyAgICAgICAgWWVzLAorICAgICAgICBObworICAgIH07CisKKyAgICB1c2luZyBOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VS
ZXF1ZXN0JiYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24p
PjsKKyAgICB1c2luZyBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWFrUHRyPEZvcm1TdGF0ZT4m
JiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+OworCiAgICAgdm9pZCBjaGVja05hdmlnYXRpb25Q
b2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgTmF2aWdhdGlv
blBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiwgUG9saWN5RGVjaXNpb25Nb2RlID0gUG9saWN5RGVj
aXNpb25Nb2RlOjpBc3luY2hyb25vdXMpOwogICAgIHZvaWQgY2hlY2tOYXZpZ2F0aW9uUG9saWN5
KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKICAgICB2b2lkIGNoZWNr
TmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFJl
ZlB0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBOZXdXaW5kb3dQb2xp
Y3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwpAQCAtMTEyLDMgKzExMiwxNiBAQCBwcml2YXRlOgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisvLyBUbyBzdXBwb3J0IGVuY29kaW5nIFdlYkNv
cmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIGluIFhQQyBtZXNzYWdlcworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSwKKyAgICAg
ICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vLAorICAgICAgICBX
ZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzCisgICAgPjsKK307CisK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKaW5kZXggNTE2MTVlZjYwNjVkZDM2ZmE1NTAx
OGY2NjY4NDhiMjFjYTliOTc4MC4uYTE0NWYxNjNjNjQzYTM4NjhlMTk3MTM4YWFlNGVkY2ZkMDQ3
NmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xh
c3MgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Q
bGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Olllcyk7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBkYXRhU2VudChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcg
bG9uZykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggYmE1NWYwMDQ4YjhlNGRkYzVi
MDczNGQ5OTNkYzliMTNiOGNiMmIwNS4uNzhhMDI3OTU4ZmI1ZTk2OTgxMjZjZWVkNzRlOWEyYjVl
ZDQxZGY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAtNTYsNyArNTYsNyBAQCBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogQHByb3BlcnR5IChhc3NpZ24pIFdlYkNvcmVOU1VSTFNlc3Np
b24gKiBfTnVsbGFibGUgc2Vzc2lvbjsKIAogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRp
YVJlc291cmNlJilyZXNvdXJjZSBzZW50Qnl0ZXM6KHVuc2lnbmVkIGxvbmcgbG9uZylieXRlc1Nl
bnQgdG90YWxCeXRlc1RvQmVTZW50Oih1bnNpZ25lZCBsb25nIGxvbmcpdG90YWxCeXRlc1RvQmVT
ZW50OwotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBy
ZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0
aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+JiYpY29t
cGxldGlvbkhhbmRsZXI7CistICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
KXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3Bv
bnNlIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIC0gKEJPT0wpcmVzb3Vy
Y2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2Ugc2hvdWxkQ2FjaGVSZXNwb25zZToo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2U7CiAtICh2b2lkKXJlc291cmNlOihQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkRGF0YTooY29uc3QgY2hhciopZGF0
YSBsZW5ndGg6KGludClsZW5ndGg7CiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVkaXJlY3Q6KGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KXJlc3BvbnNlIHJlcXVlc3Q6KFJlc291cmNlUmVxdWVzdCYmKXJlcXVlc3QgY29tcGxldGlvbkhh
bmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKWNvbXBs
ZXRpb25IYW5kbGVyOwpAQCAtMzgxLDcgKzM4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xl
YXJUYXNrKCk7CiAKLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hv
dWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRDYWNo
ZVJlc3BvbnNlKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSBvdmVycmlkZTsKICAgICB2b2lkIGRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVu
c2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBvdmVycmlkZTsKQEAgLTQxMCwx
MSArNDEwLDExIEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpkYXRh
U2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNlCiAgICAgW21fdGFzayByZXNvdXJj
ZTpyZXNvdXJjZSBzZW50Qnl0ZXM6Ynl0ZXNTZW50IHRvdGFsQnl0ZXNUb0JlU2VudDp0b3RhbEJ5
dGVzVG9CZVNlbnRdOwogfQogCi12b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVu
dDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNlLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91
bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNvcmVOU1VSTFNlc3Np
b25EYXRhVGFza0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
IHJlc291cmNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90YXNrTG9jayk7CiAgICAgaWYgKCFt
X3Rhc2spCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZTo6
Tm8pOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWU6Ok5vKTsKIAogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2UgcmVjZWl2
ZWRSZXNwb25zZTpyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV07CiB9CkBAIC02MjcsNyArNjI3LDcgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9u
RGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28K
ICAgICAvLyBOby1vcC4KIH0KIAotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291
cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJily
ZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRD
b250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpcmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7
CiAgICAgQVNTRVJUKHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJj
ZTo6TmV0d29yayB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3Vy
Y2U6OkRpc2tDYWNoZSB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpT
b3VyY2U6OkRpc2tDYWNoZUFmdGVyVmFsaWRhdGlvbiB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBS
ZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpOwogICAgIEFTU0VSVF9VTlVT
RUQocmVzb3VyY2UsICZyZXNvdXJjZSA9PSBfcmVzb3VyY2UpOwpAQCAtNjM4LDE0ICs2MzgsMTQg
QEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4g
c3Ryb25nUmVzcG9uc2UgeyByZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgfTsKICAgICBSZXRhaW5Q
dHI8V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBzdHJvbmdTZWxmIHsgc2VsZiB9OwogICAg
IGlmICghc2VsZi5zZXNzaW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU2hv
dWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxl
Z2F0ZU9wZXJhdGlvbjpbc3Ryb25nU2VsZiwgc3Ryb25nUmVzcG9uc2UsIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICBz
dHJvbmdTZWxmLT5fcmVzcG9uc2UgPSBzdHJvbmdSZXNwb25zZS5nZXQoKTsKIAogICAgICAgICBp
ZDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+IGRhdGFEZWxlZ2F0ZSA9IChpZDxOU1VSTFNlc3Np
b25EYXRhRGVsZWdhdGU+KXN0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lvbi5kZWxlZ2F0ZTsKICAgICAg
ICAgaWYgKCFbZGF0YURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoVVJMU2Vz
c2lvbjpkYXRhVGFzazpkaWRSZWNlaXZlUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRsZXI6KV0pIHsK
ICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1NlbGYsIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZ
ZXMpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAg
LTY1MywxMCArNjUzLDEwIEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50
Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvCiAgICAgICAgIFtkYXRh
RGVsZWdhdGUgVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc3Ryb25nU2VsZi5nZXQoKS5zZXNz
aW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKXN0cm9uZ1NlbGYuZ2V0KCkgZGlk
UmVjZWl2ZVJlc3BvbnNlOnN0cm9uZ1Jlc3BvbnNlLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOm1h
a2VCbG9ja1B0cihbc3Ryb25nU2VsZiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0gKE5TVVJMU2Vzc2lvblJlc3BvbnNlRGlzcG9zaXRpb24gZGlzcG9zaXRp
b24pIG11dGFibGUgewogICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbc3Ryb25nU2VsZiwg
ZGlzcG9zaXRpb24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChkaXNwb3NpdGlvbiA9PSBOU1VS
TFNlc3Npb25SZXNwb25zZUNhbmNlbCkKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsKICAgICAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGRpc3Bvc2l0aW9uID09IE5T
VVJMU2Vzc2lvblJlc3BvbnNlQWxsb3cpOwotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLmdldCgpXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAwN2QzMzA1Yjgy
Mzk3MmU3ODdmZmVlN2RiODBlMTE0ZDIyNTExMjY2Li40M2FmNzBhZWU5ZTMzYmVhOGFkZTAwZjcz
ZWUzY2E3MjJmMmIwNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC0xNyw2ICsxNyw3IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BV
UHJvY2Vzcy9HUFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L21hYy9jb20uYXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
KyQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2Vi
Q29va2llTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3Mv
Q3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgog
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggOTg2OWNmMTcxNjFmZWQ5NDQ5MmIyZWI2NzZhMzA5NjExN2NlNjUyZi4uN2JlODk0
OWNjYWYyMDhkMmEzNWQyZWEwYWJjYjBhMmRlODJlOTMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjAsNiArMTIwLDkgQEAgJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
UmVwbGllcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlN
ZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNS
ZXBsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBi
L1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxN2JkY2I1ZjJkYWFhOWJi
MWI2YWY0ZDc0YWI1OGU1MDRhODEyMTgzLi4zYzA3N2U0ZjE3Y2NjZjFmM2I4MmRiMmEyMDRkMTk4
NmMyZjNjZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzksNiArMTM5LDcg
QEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eSBcCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eSBcCisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAg
IFJlbW90ZU9iamVjdFJlZ2lzdHJ5IFwKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBc
CiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDU0ODAzY2E4
MGRhYzQzMzRlZDJlMjQ3ZmY3MjNiYzIxMjZmYWZlNTUuLjQ5YzJiNzU3N2U5ZTIzMjRhNzdlZjMz
MDE3ZGFjZmQ3ZDVmODZlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNs
dWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgi
CiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTA5LDYgKzExMSwxNCBA
QCB2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lYwogICAgIENSQVNIKCk7CiB9CiAKK1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KQorICAgICAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcjsKK30KKwogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkKIHsK
ICAgICBpZiAoIW1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkpCkBAIC0xMzIsNiArMTQy
LDkgQEAgdm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHkoKS5kaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29k
ZXIpOwogICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNl
aXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgeworICAgICAgICByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigp
LmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47
CiAgICAgfQogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDg3M2RjZWEyOTRkOTYzOGUw
NjJhMGNkNmEwOTE0ZjI1MzNkYWVjNjAuLmJjMzM0MWNlZDZkMDI4ZDY0MWRiYTAwMjJjN2Y0ZWUx
YzgwYzMxMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsK
IGNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFzcyBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcjsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDog
cHVibGljIFJlZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTU2LDYgKzU3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZW5kU3VzcGVuc2lvbigpOwogCiAgICAgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X3dlYlByb2Nlc3NJZGVudGlmaWVyOyB9CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIm
IHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CiAKICAgICBMb2dnZXImIGxvZ2dlcigpOwog
CkBAIC03OCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uOwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3Qg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vz
c2lvbklEIG1fc2Vzc2lvbklEOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggZGYwZTQ0YjZmZjM4
ZTdhMzA0ZjZkNWEzZGZlOWZiNDc1ODM3NjU2OS4uMDUwMzQwNGEwZjFjYjU5OTc5MWYwMDNjM2Y4
NGE5NjM1MWU0ZDIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSwx
MCArMjksMTIgQEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgpAQCAtNDEsNiArNDMs
NyBAQAogI2RlZmluZSBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChpZGVudGlmaWVyKSBNRVNTQUdF
X0NIRUNLX0JBU0UobV9wcm94aWVzLmlzVmFsaWRLZXkoaWRlbnRpZmllciksICZtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKKwog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
JiBjb25uZWN0aW9uKQpAQCAtMjUwLDExICsyNTMsMTEgQEAgY29uc3QgTG9nZ2VyJiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eTo6bG9nZ2VyKCkgY29uc3QKIAogV1RGTG9nQ2hhbm5lbCYg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OmxvZ0NoYW5uZWwoKSBjb25zdAogewotICAg
IHJldHVybiBXZWJLaXQyTG9nV2ViUlRDOworICAgIHJldHVybiBXZWJLaXQyTG9nTWVkaWE7CiB9
CiAjZW5kaWYKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NI
RUNLX0NPTlRFWFRJRAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDA2NzAwNTZm
YTZlMjk2Yjc2MGQ3MzFkMmM4YjE1Y2NiZTRjMDQ5YTcuLmFlNTFmYzBjNTIwMDNlMzUwZGI1ZGRl
MmQ2NmQ4MjQ4NDM3MmU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC0zMCwx
NSArMzAsMTYgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5o
IgotI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M7CitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk7CiBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uOworc3Ry
dWN0IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eQogICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgpAQCAtMTA2LDYgKzEwNyw2IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLX0KK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAppbmRleCA2ZGZhNzVmNWM1
MWQzOGFiYzFkNWI5ODM0NDUyNGNhOWFkYTczZTllLi4zNzI4YzJiYWExYWIyMGRkMWI2ZDhjYjg1
MGY1YjQzNTliN2Q4ZTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCkBAIC0yOCw4ICsyOCwxNiBAQAog
CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5jbHVkZSAiR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyU3RhdGUuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisjaW5j
bHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlIDxXZWJD
b3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CkBAIC01Myw2ICs2MSwxMCBA
QCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYQogICAgIG1fcGxheWVyID0gTWVkaWFQbGF5ZXI6OmNy
ZWF0ZSgqdGhpcywgbV9lbmdpbmVJZGVudGlmaWVyKTsKIH0KIAorUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQoreworfQorCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OmludmFsaWRhdGUoKQogewogICAgIG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNz
YWdlVGltZXIuc3RvcCgpOwpAQCAtMTQzLDYgKzE1NSwyNSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wgcHJlc2VydmVzUGl0Y2gpCiAgICAgbV9w
bGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZlc1BpdGNoKTsKIH0KIAorUmVmPFBsYXRm
b3JtTWVkaWFSZXNvdXJjZT4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cmVxdWVzdFJlc291cmNl
KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6
TG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBhdXRvJiByZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlciA9IG1fbWFuYWdlci5ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkucmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIoKTsKKyAgICBhdXRvIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgYXV0byBy
ZW1vdGVNZWRpYVJlc291cmNlID0gUmVtb3RlTWVkaWFSZXNvdXJjZTo6Y3JlYXRlKHJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLCAqdGhpcywgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
OworICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmFkZE1lZGlhUmVzb3VyY2UocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIHJlbW90ZU1lZGlhUmVzb3VyY2UucHRyKCkpOworCisg
ICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJlcXVlc3RSZXNvdXJjZShtX2lkLCByZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucyksIFtyZW1vdGVNZWRpYVJlc291
cmNlID0gcmVtb3RlTWVkaWFSZXNvdXJjZS5jb3B5UmVmKCldKCkgeworICAgICAgICByZW1vdGVN
ZWRpYVJlc291cmNlLT5zZXRSZWFkeSh0cnVlKTsKKyAgICB9KTsKKworICAgIHJldHVybiByZW1v
dGVNZWRpYVJlc291cmNlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnJlbW92
ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyKQoreworICAgIG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb24tPnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVtb3ZlUmVzb3VyY2UobV9pZCwgcmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpLCAwKTsKK30KKwogLy8gTWVkaWFQbGF5ZXJDbGllbnQK
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFu
Z2VkKCkKIHsKQEAgLTM4OCw4ICs0MTksNyBAQCBDYWNoZWRSZXNvdXJjZUxvYWRlciogUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDYWNoZWRSZXNvdXJjZUxvYWRlcigpCiAKIFJl
ZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6
Om1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlcigqdGhpcykpOwogfQogCiBib29sIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk6OmRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJpbmcmLCBBdG9tU3RyaW5nKikg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IGY1YzI3NzA5OTg5MWFhN2MzZTI4NzliYzc3YzNhMzgz
MzkzNTJjZGMuLmNhZmRkNzUwZWRjODc1MjI1YzI1N2EwNWI5MTQyNGUxMTc2ZjY4MjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuaApAQCAtMjcsMzQgKzI3LDMyIEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CiAKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJh
dGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Db29raWUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9y
bU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE1lZGlhUGxheWVyOwotfQorI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eTsKIAotY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eQotICAg
IDogcHVibGljIE1lZGlhUGxheWVyQ2xpZW50IHsKK2NsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHkgZmluYWwKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllclBy
b3h5PgorICAgICwgcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyQ2xpZW50IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZW1vdGVNZWRpYVBsYXllclByb3h5
KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbiYm
KTsKLSAgICB2aXJ0dWFsIH5SZW1vdGVNZWRpYVBsYXllclByb3h5KCkKLSAgICB7Ci0gICAgfQor
ICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkm
LCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9u
PiYmLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYpOworICAgIH5SZW1vdGVNZWRpYVBs
YXllclByb3h5KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsKIApAQCAtNjIsNyArNjAsNyBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2Rl
LCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNo
LCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcpOwogCi0gICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYs
IGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBsb2FkKGNvbnN0
IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjYW5jZWxMb2FkKCk7CiAKICAgICB2b2lkIHByZXBhcmVUb1BsYXkoKTsKQEAgLTgwLDYg
Kzc4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nTW9kZShib29sKTsK
ICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwogCisgICAgUmVmPFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25z
KTsKKyAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
KTsKKwogcHJpdmF0ZToKICAgICAvLyBNZWRpYVBsYXllckNsaWVudAogICAgIHZvaWQgbWVkaWFQ
bGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKCkgZmluYWw7CkBAIC0xMjQsMzkgKzEyNSwzOSBAQCBw
cml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0dGVkKCkgY29uc3QgZmluYWw7
CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBmaW5hbDsKLSAgICBMYXlvdXRS
ZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3Jl
OjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBmaW5hbDsKICAg
ICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGxheSgpIGZp
bmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVtZUNvbmZpZ3VyYXRpb25SZXF1
aXJlZCgpIGNvbnN0IGZpbmFsOwotICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXll
ckNhY2hlZFJlc291cmNlTG9hZGVyKCkgZmluYWw7Ci0gICAgUmVmUHRyPFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIGZpbmFsOwor
ICAgIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291
cmNlTG9hZGVyKCkgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpIGZpbmFsOwogICAg
IGJvb2wgZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbVN0cmluZyYsIEF0b21TdHJpbmcqID0g
bnVsbHB0cikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclNob3VsZFVzZVBlcnNp
c3RlbnRDYWNoZSgpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFN0cmluZyYgbWVkaWFQbGF5ZXJN
ZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIG1lZGlhUGxheWVy
RGlkQWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVk
aWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwot
ICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRlJikg
ZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZUF1ZGlvVHJhY2soQXVkaW9UcmFj
a1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVGV4dFRyYWNr
KEluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlk
UmVtb3ZlVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVk
aWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmlu
YWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVv
VHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlh
UGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZSYpIGZp
bmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soV2ViQ29yZTo6SW5i
YW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1v
dmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CiAKLSAgICB2
b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBJbnRSZWN0Jikg
ZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlvbkJvdW5kc0NoYW5nZWQoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKSAm
JiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIFZlY3RvcjxSZWZQdHI8UGxhdGZvcm1UZXh0VHJh
Y2s+PiBvdXRPZkJhbmRUcmFja1NvdXJjZXMoKSBmaW5hbDsKKyAgICBWZWN0b3I8UmVmUHRyPFdl
YkNvcmU6OlBsYXRmb3JtVGV4dFRyYWNrPj4gb3V0T2ZCYW5kVHJhY2tTb3VyY2VzKCkgZmluYWw7
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgU3RyaW5nIG1lZGlhUGxh
eWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIG1lZGlhUGxh
eWVyR2V0UmF3Q29va2llcyhjb25zdCBVUkwmLCBWZWN0b3I8Q29va2llPiYpIGNvbnN0IGZpbmFs
OworICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3RvcjxX
ZWJDb3JlOjpDb29raWU+JikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogICAgIFN0cmluZyBtZWRp
YVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwogCiAgICAg
ZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3QgZmluYWw7Ci0g
ICAgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxz
Y3JlZW5Nb2RlKCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGNvbnN0
IGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IG1lZGlhUGxheWVyUHJlZmVycmVkQXVkaW9DaGFy
YWN0ZXJpc3RpY3MoKSBjb25zdCBmaW5hbDsKIApAQCAtMTc2LDkgKzE3Nyw5IEBAIHByaXZhdGU6
CiAKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1faWQ7CiAgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlvbjsKLSAgICBSZWZQdHI8TWVk
aWFQbGF5ZXI+IG1fcGxheWVyOworICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVBsYXllcj4gbV9w
bGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1fbWFuYWdlcjsKLSAg
ICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9lbmdpbmVJZGVudGlm
aWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBtX2VuZ2luZUlkZW50aWZpZXI7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRUeXBlPiBt
X3R5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogICAgIFJ1bkxvb3A6OlRpbWVyPFJlbW90
ZU1lZGlhUGxheWVyUHJveHk+IG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXI7CiAgICAg
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwpAQCAtMTkxLDYgKzE5Miw2IEBA
IHByaXZhdGU6CiAjZW5kaWYKIH07CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDdhN2YxMTkzZjgyM2FhN2VkODFhMGM3ODI2Yzcz
MjczY2RlNzZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTMxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
UHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBSZW1v
dGVNZWRpYVJlc291cmNlOjpjcmVhdGUoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRp
YVBsYXllclByb3h5LCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlKHJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLCByZW1vdGVNZWRpYVBsYXllclByb3h5LCBpZCkpOworfQorCitSZW1vdGVNZWRp
YVJlc291cmNlOjpSZW1vdGVNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
JiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVt
b3RlTWVkaWFQbGF5ZXJQcm94eSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCisg
ICAgOiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyKQorICAgICwgbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KG1ha2VXZWFrUHRyKHJlbW90ZU1l
ZGlhUGxheWVyUHJveHkpKQorICAgICwgbV9pZChpZCkKKyAgICAsIG1fcmVhZHkoZmFsc2UpCit7
Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2U6On5SZW1vdGVNZWRpYVJlc291cmNlKCkKK3sKKyAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIHN0b3AoKTsKKyAgICBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLnJlbW92ZU1lZGlhUmVzb3VyY2UobV9pZCk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZTo6c3RvcCgpCit7CisgICAgaWYgKG1fcmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSkKKyAgICAgICAgbV9yZW1vdGVNZWRpYVBsYXllclByb3h5LT5yZW1vdmVSZXNvdXJjZSht
X2lkKTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVJlc291cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJv
bENoZWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVj
aywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
ID0gZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsKKyAgICBpZiAobV9jbGllbnQpIHsKKyAgICAg
ICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgICAgICAgICBpZiAoc2hvdWxkQ29udGludWUg
PT0gUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKQorICAgICAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPnN0b3AoKTsKKworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc2hv
dWxkQ29udGludWUpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZTo6cmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5yZWRpcmVjdFJlY2VpdmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCBy
ZXNwb25zZSwgW10oYXV0byYmKSB7IH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2U6
OnNob3VsZENhY2hlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7
CisgICAgUmVmUHRyPFJlbW90ZU1lZGlhUmVzb3VyY2U+IHByb3RlY3RlZFRoaXModGhpcyk7Cisg
ICAgaWYgKG1fY2xpZW50KQorICAgICAgICByZXR1cm4gbV9jbGllbnQtPnNob3VsZENhY2hlUmVz
cG9uc2UoKnRoaXMsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZW1v
dGVNZWRpYVJlc291cmNlOjpkYXRhU2VudCh1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRv
dGFsQnl0ZXNUb0JlU2VudCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50
LT5kYXRhU2VudCgqdGhpcywgYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiBkYXRhLCBp
bnQ2NF90IGxlbmd0aCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5k
YXRhUmVjZWl2ZWQoKnRoaXMsIGRhdGEsIGxlbmd0aCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQoreworICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IGZhbHNlOworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCgq
dGhpcywgZXJyb3IpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGYWlsZWQo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAg
ICBtX2NsaWVudC0+bG9hZEZhaWxlZCgqdGhpcywgZXJyb3IpOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVzb3VyY2U6OmxvYWRGaW5pc2hlZCgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAg
ICBtX2NsaWVudC0+bG9hZEZpbmlzaGVkKCp0aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTdiZTMwOTZkOTVlZWEwMDMxOWVjYjY5
YTZiZDdjOTY5NDEyNzE4MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5OworY2xh
c3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3Vy
Y2UgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IGNyZWF0ZShSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlciYsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllcik7CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2UoKTsKKworICAgIGJvb2wgcmVh
ZHkoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5OyB9CisgICAgdm9pZCBzZXRSZWFkeShib29sIHJl
YWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQorCisgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNl
CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENo
ZWNrKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKTsKKyAgICB2b2lkIHJlZGly
ZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKKyAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGF0YVNlbnQodWludDY0X3QsIHVp
bnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChjb25zdCBjaGFyKiwgaW50NjRfdCk7Cisg
ICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpOworICAgIHZvaWQgbG9hZEZhaWxlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoKTsKKworcHJpdmF0ZToKKyAgICBSZW1vdGVNZWRp
YVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiwgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSYsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworICAgIFdlYWtQ
dHI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllclByb3h5OworICAg
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIG1faWQ7CisgICAgYm9vbCBtX2RpZFBhc3NB
Y2Nlc3NDb250cm9sQ2hlY2sgeyBmYWxzZSB9OworICAgIGJvb2wgbV9yZWFkeTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NzI4YTViNDA3M2IzMGQ5NGNlOTVhNjMwYmZkNmM1ZjNjYTFiODFmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
clR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxv
YWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE4MmRlNmU1MmZjMTY0ZWJiYWNlODZiYjA3ZmIxYjAzYmUy
ZDkzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHkpCisg
ICAgOiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSkpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6On5SZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyKCkKK3sKK30KKworUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZT4g
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJlc291cmNlKFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIExvYWRPcHRpb25zIG9wdGlvbnMpCit7CisgICAgcmV0dXJuIG1fcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS0+cmVxdWVzdFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIG9wdGlv
bnMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZWVjMzVjMGUzZDViZjgxNzExNjE0YzEzZWRkMDJkZjk3NGFmMWJl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CisKK2NsYXNzIFJlbW90ZU1lZGlh
UmVzb3VyY2VMb2FkZXIgZmluYWwKKyAgICA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYpOworICAgIH5SZW1vdGVNZWRpYVJlc291
cmNlTG9hZGVyKCk7CisKKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
PiByZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIExvYWRPcHRpb25z
KSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+
IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYzI3NjdkZGQw
ZjYxNTc1NDJiMzE1NzYxMjUwY2Y1M2I3ZmNhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCkBA
IC0wLDAgKzEsMTMxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6
OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6On5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpCit7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFkZE1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlh
UmVzb3VyY2UqIHJlbW90ZU1lZGlhUmVzb3VyY2UpCit7CisgICAgQVNTRVJUKCFtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmNvbnRhaW5zKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKSk7Cisg
ICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5hZGQocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIHJlbW90ZU1lZGlhUmVzb3VyY2UpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIEFTU0VSVChtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmNvbnRhaW5zKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKSk7Cisg
ICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5yZW1vdmUocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZXNwb25zZVJl
Y2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+
cmVhZHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUkVMRUFTRV9B
U1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRp
YVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2Vz
LmdldChpZCktPnJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2UsIGRpZFBhc3NBY2Nlc3NDb250cm9s
Q2hlY2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciBpZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHko
KSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgUkVMRUFTRV9BU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhp
ZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3Jl
bW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlZGlyZWN0UmVjZWl2ZWQoV1RGTW92ZShyZXF1
ZXN0KSwgcmVzcG9uc2UpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2Vu
dCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9BU1NFUlQobV9yZW1vdGVNZWRpYVJlc291
cmNlcy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFk
eSgpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmRhdGFTZW50KGJ5dGVz
U2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjo6ZGF0YVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCit7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJFTEVB
U0VfQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291
cmNlcy5nZXQoaWQpLT5kYXRhUmVjZWl2ZWQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
ZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKCFtX3Jl
bW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFJFTEVBU0VfQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYm
IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVN
ZWRpYVJlc291cmNlcy5nZXQoaWQpLT5hY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoZXJyb3IpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmFpbGVkKFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sK
KyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9BU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5j
b250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsK
KyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmxvYWRGYWlsZWQoZXJyb3IpOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmluaXNoZWQoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVz
b3VyY2VzLmdldChpZCktPnJlYWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJFTEVBU0Vf
QVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMoaWQpICYmIG1fcmVtb3RlTWVk
aWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNl
cy5nZXQoaWQpLT5sb2FkRmluaXNoZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmI5ZDM5NjhiMTk3ODg1
MWQ4OWJmM2M0N2ZjMzQxMDE3M2FlNDRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCAr
MSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1BvbGljeUNoZWNrZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgor
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBS
ZW1vdGVNZWRpYVJlc291cmNlOworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcgor
ICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOworICAg
IH5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOworCisgICAgdm9pZCBhZGRNZWRpYVJlc291
cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlKik7
CisgICAgdm9pZCByZW1vdmVNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJik7Cisg
ICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBkYXRhU2VudChSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lk
IGRhdGFSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJik7CisgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
KyAgICB2b2lkIGxvYWRGYWlsZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICBIYXNoTWFwPFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlKj4gbV9yZW1vdGVNZWRpYVJlc291cmNl
czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjNiNWZkMGNjNDRjZDdkMDIw
YTQ4NzZlMDRhYmZiODcwMTNiNzVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCitt
ZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAg
ICBSZXNwb25zZVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIg
aWQsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vz
c0NvbnRyb2xDaGVjaykgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVl
IHNob3VsZENvbnRpbnVlKSBBc3luYworICAgIFJlZGlyZWN0UmVjZWl2ZWQoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+ICgpIEFzeW5jCisg
ICAgRGF0YVNlbnQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgdWlu
dDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCisgICAgRGF0YVJl
Y2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIElQQzo6RGF0
YVJlZmVyZW5jZSBkYXRhKQorICAgIEFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVy
cm9yKQorICAgIExvYWRGYWlsZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBMb2FkRmluaXNoZWQoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBmMmU5ZWQ3YWI1NDAyZWY1
MTE4OGY3ZThkYmUzOTZiYThhY2UwZmFkLi4yNTdiMDBlYjg2MDg4MTVhYzg5YjU3MjViNWFiMjE0
OTMwNzlmMThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTIyMCw2ICsyMjAsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViS2l0OjpBY3Rpdml0eVN0YXRlQ2hhbmdlSUQnLAogICAgICAgICAn
V2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0SUQnLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXInLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKaW5k
ZXggMTkxNmRiM2Q2NWI2NWVjZGM1ZTAwZWE3ZWMwMWVmZGM2NTY2MTBmZi4uNzg1ODBjZTcwMzNl
Mzc5NzdhOGRlZTZmZmE0NDU4MTBjNjlkZDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CkBAIC0yNCw2ICsyNCwx
MSBAQAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAogR1BVUHJvY2Vzcy9HUFVQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNw
cAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisvL0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcAogCiBOZXR3b3JrUHJvY2Vzcy9BZENsaWNrQXR0cmlidXRp
b25NYW5hZ2VyLmNwcAogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0FjdGl2aXR5VHJhY2tlci5jcHAK
QEAgLTUwMiw4ICs1MDcsOSBAQCBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL01lZGlhRGV2aWNlU2Fu
ZGJveEV4dGVuc2lvbnMuY3BwCiBXZWJQcm9jZXNzL01lZGlhU3RyZWFtL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKIAogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb24uY3BwCi1XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUu
Y3BwCi1XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisv
L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKy8vV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCiAKIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCiBXZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYTRhYTU1ZTJh
YTE5YTE0NjYyNTRiYmYxYmJjNzIyODk5YjZjNjI3OC4uMDIzZGJkMzk0ZDQ1NmZkZGQxMThhYTli
NjZkODI5MjBmNjIxNjJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNTksOCArNTksNiBA
QCBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1NvY2tldC5jcHAKIAogR1BVUHJvY2Vz
cy9pb3MvR1BVUHJvY2Vzc0lPUy5tbQogR1BVUHJvY2Vzcy9tYWMvR1BVUHJvY2Vzc01hYy5tbQot
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAotR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKIEdQVVByb2Nlc3MvRW50cnlQ
b2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50Lm1tCiAKIFBsYXRmb3Jt
L2NmL01vZHVsZUNGLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTNiOTE5MjBjOWI4YTNmMzZhMGJkMTQ4Y2E4NThkYmRkY2IzYTA4
Ny4uZjY2YzE2YmJmY2FlMDRmMzZjOGU1MDhhOTA3NTY4OWVjNzA5YmYxZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00MDcsNyArNDA3
LDIwIEBACiAJCTFDQThCOTQ2MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
Q0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICov
OyB9OwogCQkxQ0JCRTRBMDE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJMUNCQkU0QTExOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3Rv
clVJTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgg
Ki87IH07CisJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
MzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCAqLzsg
fTsKKwkJMUQzMkY4OUUyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMy
Rjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLzsg
fTsKKwkJMUQzQUIwNTAyM0FDMDFBMDAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDA3MjVFRkFEMjM5QjAyNDUwMEE1MzhBOSAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eS5jcHAgKi87IH07CisJCTFEM0FCMDUxMjNBQzAxQUEwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBs
YXllclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cCAqLzsgfTsKKwkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovOyB9Owor
CQkxRDNBQjA1MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDNBQjA0
RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi87IH07
CisJCTFEM0FCMDU0MjNBQzAxQjcwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREE0
MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICov
OyB9OworCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
OTIzMTMxMjM5QjNCMEMwMDk1OThFMiAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwICov
OyB9OworCQkxRDNBQjA1NjIzQUMwMUY2MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3
OTIzMTMwMjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwICov
OyB9OworCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKKwkJMUQ0RDczNzEyM0E5RTU2
MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3MzZDMjNBOURGNjAw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJ
CTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CiAJCTFENjdCMzM5MjEyRTFGNjEwMEZBQTc4NiAv
KiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUQ2N0IzMzgyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxs
YmFja0lELmggKi87IH07CisJCTFEQTQwODk1MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyLmggKi87IH07CiAJCTFEQjAxOTQzMjExQ0YwMDIwMDlGQjNFOCAvKiBXS1NoYXJlU2hl
ZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFERTBE
MDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLzsgfTsKIAkJMURCMDE5NDQy
MTFDRjAwNTAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1No
YXJlU2hlZXQubW0gKi87IH07CiAJCTFGMzM1QkMwMTg1Qjg0RjAwMDFBMjAxQSAvKiBXS1dlYlBy
b2Nlc3NQbHVnSW5Mb2FkRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFGMzM1QkJGMTg1Qjg0RDgwMDFBMjAxQSAvKiBXS1dlYlByb2Nlc3NQ
bHVnSW5Mb2FkRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwpAQCAtMjYyMCw5ICsyNjMzLDIyIEBACiAJCTFDQThCOTQ0MTI3Qzg4MkEwMDU3
NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRT
b3VyY2VzL1dlYktpdDIvV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDQkJFNDlGMTlCNjZDNTMwMDZC
N0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OworCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVB
NkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDMyRjg5
RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzQUIwNEQyM0FC
MDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRDNBQjA0RTIzQUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBw
YXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJ
CTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFE
NEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2Fs
bGJhY2tJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZVNoZWV0Q2Fs
bGJhY2tJRC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5NDIzQTgwQTNF
MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMURBNDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8q
IFdLU2hhcmVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLU2hhcmVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMURFMEQwOTUy
MTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS1NoYXJlU2hlZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTY5MTg1OERDMTUwMEY5Mjg4NCAvKiBXS1dl
YlByb2Nlc3NQbHVnSW5GcmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
RjAxODE2QTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5G
cmFtZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkIxODU4REMxNTAw
RjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDg2Myw3ICs0ODg5LDcgQEAKIAkJREY1OEM2
MzExMzcxQUM1ODAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlERjU4QzYzNTEzNzFBQ0EwMDBGOUEzN0MgLyogTmF0aXZlV2ViV2hl
ZWxFdmVudE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5h
dGl2ZVdlYldoZWVsRXZlbnRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
MDVGRTUzMThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRWRpdGluZ1JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUUxMTVDNzE1MTkwRjhBMjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3Jh
Z2Uuc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNi
OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uu
c2I7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCUUxMTVDNzE1MTkwRjhB
MjUwMEVDQzUxNiAvKiBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2IgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBuYW1lID0gY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBwYXRoID0gRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9jb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHNvdXJjZVRyZWUgPSBCVUlM
VF9QUk9EVUNUU19ESVI7IH07CiAJCUUxMzNGRDg5MTQyM0REN0YwMEZDN0JGQiAvKiBXZWJLaXQu
aWNucyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGlt
YWdlLmljbnM7IG5hbWUgPSBXZWJLaXQuaWNuczsgcGF0aCA9IFJlc291cmNlcy9XZWJLaXQuaWNu
czsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDcxNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE0QTk1NDgxNkUwMTZBNDAwNjhERTgy
IC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MTE0LDYgKzUxNDAsOCBAQAogCQkJCTA3OTIzMTM0
MjM5QjNCMEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCAqLywKIAkJCQkw
NzkyMzEzMzIzOUIzQjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3Nh
Z2VzLmluICovLAogCQkJCTA3QjNCNDZGMjNBQjJDQjMwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBs
YXllclN0YXRlLmggKi8sCisJCQkJMUQzMkY4OUQyM0E4NEM1QjAwQjFFQTZBIC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8sCisJCQkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01MTI3LDYgKzUxNTUsMTQgQEAKIAkJCQkw
N0JBRjM1NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi8s
CiAJCQkJMDdCQUYzNTYyM0EyQ0MxNzAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHku
aCAqLywKIAkJCQkwN0IzQjQ3NTIzQUQ4OTA0MDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi8sCisJCQkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZB
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAqLywKKwkJCQkxREUyREZBQzIzQTk1OUY4MDAzRTAx
M0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKKwkJCQkxRDNBQjA0RTIz
QUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8sCisJCQkJ
MUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAq
LywKKwkJCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuY3BwICovLAorCQkJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5oICovLAorCQkJCTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlwYXRo
ID0gbWVkaWE7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtOTI4NCw2ICs5MzIwLDkg
QEAKIAkJCQkwNzkyMzE0NTIzOUNCQ0I3MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTA3OTIzMTQ2MjM5Q0JDQjcwMDk1
OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJ
MDc5MjMxNDIyMzlDQkNCNTAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
TWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQkxRDRE
NzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oICovLAorCQkJCTFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAogCQkJCTFBQzEzMzgzMTg1OTBDNDYwMEYz
RUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
MUFDMTMzODQxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMu
aCAqLywKIAkJCQkwRjU5NDdBNTE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTAxNzgsNiArMTAyMTcsMTAgQEAK
IAkJCQkwNzkyMzE0QzIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc5MjMxNDgyMzlDQkNCODAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwN0IzQjQ3MDIzQUIzMDJEMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURBNDA4OTUyM0E4MEEzRTAwNThDOTUw
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDRE
NzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxRDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFMUI3ODQ3MTE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTcwNEZDMUJFMTc1MTEwMDg3
NEFGMSAvKiBSZW1vdGVPYmplY3RJbnZvY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUMx
MzM4MDE4NTkwQUU0MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTE3ODgsNiArMTE4MzEsNyBAQAogCQkJCTI5ODRGNTdDMTY0QjkxNUYwMDRCQzBD
NiAvKiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0NDlEOTBEQTIxRkRDMzBCMDBGNjc3QzAgLyogTG9jYWxBdXRo
ZW50aWNhdGlvblNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3NzkyMTJCNkE2
MTAwRjQ5M0ZEIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTUyM0FD
MDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDkyQTc4MTIxMkI2QTcxMDBGNDkzRkQgLyogTWVzc2FnZVJlY2VpdmVyTWFwLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgyMjEyQjZBNzEwMEY0OTNGRCAvKiBNZXNzYWdl
U2VuZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzdBMjEyQjZBNjEwMEY0OTNGRCAv
KiBNb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xMTg0NCw4ICsxMTg4OCwxNiBAQAogCQkJ
CTJENzJBMUZBMjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU2MjNBQzAxRjYwMDVDMUZGMCAvKiBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5MjMxNDkyMzlDQkNC
ODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1MDIzQUMwMUEwMDA1QzFGRjAgLyogUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc5MjMxNEIyMzlD
QkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUxMjNBQzAxQUEwMDVDMUZGMCAvKiBS
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUyMjNB
QzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFEM0FCMDUzMjNBQzAxQjMwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU0MjNBQzAxQjcwMDVDMUZGMCAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDRENzM3MDIz
QTlFNTQ3MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzMkY4OUUyM0E4NEM1QjAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUMxMzM4NTE4
NTkwQzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OTQ3QTcxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE1NUJBODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZThkYWFlMGY5YmE4
NWEyNTFiNzA2N2RlMzhjYTRhNzY5NzQyMTU4MC4uYjhlNDc2N2ZjMDBkNDkzMWU0ZDhhMTM0YmJi
M2NkZThkNDY3NmU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBHUFVQcm9j
ZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6U3RyaW4KIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewog
ICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+
KCktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CisgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKGNvbm5lY3Rp
b24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmgKaW5kZXggODUzY2MxNjU1MDk0YmI1MjQyMWZiNmNmYTFjMzE5YTk2NDcxYzA5
NC4uMzFjNjEwNDY2OWYyZjAyZmZhNDQwZmViODgwOTI2Yzc0YWUyNmFjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAt
NTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2Fn
ZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpIG92ZXJyaWRl
OwogCi0gICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSBhIHdlYiBwcm9jZXNzIHRvIHRoaXMgR1BV
IHByb2Nlc3MuCisgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8g
dGhlIEdQVSBwcm9jZXNzLgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAppbmRleCBmYzMyZWQwNTdkOTM4ZTcz
MTAxY2MwYzkxMjg2N2U3MGZjYTZiZmYwLi43YjQ5NjgyODM5YWI4YWQ4Njk3OWNmYzJkZGUyMzE3
OTJmYTdjMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCkBAIC00Nyw3ICs0Nyw3
IEBAIGV4dGVybiBXVEZMb2dDaGFubmVsIExvZ01lZGlhOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewotdXNpbmcgbmFtZXNwYWNlIFBBTDsKKwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKICNpZmRlZiBBTFdBWVNfTE9HX1VOSU1QTEVNRU5URURfTUVUSE9EUwpAQCAtNjMsNiArNjMs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5
ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRp
b24mIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21lZGlh
UmVzb3VyY2VMb2FkZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwgbV9t
YW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5lSWRl
bnRpZmllcikKICAgICAsIG1faWQocGxheWVySWRlbnRpZmllcikKQEAgLTc5OSw2ICs4MDAsMjEg
QEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNpY1Np
emUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRp
b25zKQoreworICAgIEFTU0VSVCghbV9tZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllcikpOworICAgIGF1dG8gcmVzb3VyY2UgPSBtX21lZGlhUmVzb3Vy
Y2VMb2FkZXItPnJlcXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKyAg
ICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2Ugb3ducyB0aGUgUGxhdGZvcm1NZWRpYVJlc291cmNl
Q2xpZW50CisgICAgcmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eT4obV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIHJlc291cmNlLmdl
dCgpLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikpOworICAgIG1fbWVkaWFSZXNvdXJj
ZXMuYWRkKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc291cmNlKSk7
Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZXNvdXJjZShSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikK
K3sKKyAgICAvLyBUaGUgY2xpZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSkgd2lsbCBiZSBk
ZXN0cm95ZWQgYXMgd2VsbAorICAgIG1fbWVkaWFSZXNvdXJjZXMucmVtb3ZlKHJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogV1RG
TG9nQ2hhbm5lbCYgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpsb2dDaGFubmVsKCkgY29uc3QK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDY4ODcyYWViY2YwZWUwZDk1YzFmNmE2
YTc2NjQwODdmMTBkYThmNWQuLmZhYTJlYzlhMzIxYjc4NDlkNDY4NjE0ZmNlOGJhOTk3MTFhMWQ3
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIK
KyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQ
cml2YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9N
ZWRpYVRpbWUuaD4KQEAgLTM5LDIyICs0MSwyMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIGZpbmFsCiAgICAgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPgotICAgICwgcHVibGljIE1lZGlhUGxheWVy
UHJpdmF0ZUludGVyZmFjZQorICAgICwgcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUludGVyZmFjZQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwgcHJpdmF0ZSBMb2dn
ZXJIZWxwZXIKICNlbmRpZgogewogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPiBjcmVhdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZp
Z3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShXZWJDb3JlOjpNZWRpYVBsYXllciogcGxheWVy
LCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3Rl
RW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNvbnN0IFJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAgICB7CiAgICAgICAgIHJl
dHVybiBtYWtlVW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4ocGxheWVyLCByZW1vdGVF
bmdpbmVJZGVudGlmaWVyLCBpZGVudGlmaWVyLCBtYW5hZ2VyLCBjb25maWd1cmF0aW9uKTsKICAg
ICB9CiAKLSAgICBleHBsaWNpdCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIq
LCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0IFJl
bW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOwotICAgIHZpcnR1YWwgfk1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZSgpOworICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShXZWJDb3JlOjpN
ZWRpYVBsYXllciosIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7CisKKyAg
ICB+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKSB7
IG1faW52YWxpZCA9IHRydWU7IH0KLSAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3Rl
RW5naW5lSWRlbnRpZmllcjsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOyB9CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBwbGF5ZXJJdGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiAg
ICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CkBA
IC02OSw2ICs3Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNhY2hlZFN0YXRlKFJlbW90
ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoYm9v
bCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92
aWVMb2FkVHlwZSk7CiAKKyAgICB2b2lkIHJlcXVlc3RSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMpOworICAgIHZvaWQgcmVtb3ZlUmVz
b3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCiAjaWYgIVJFTEVBU0VfTE9H
X0RJU0FCTEVECiAgICAgY29uc3QgTG9nZ2VyJiBsb2dnZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAqbV9sb2dnZXI7IH0KICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlIjsgfQpAQCAtNzcsMTQgKzgz
LDE0IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHZvaWQgbG9hZChjb25zdCBV
UkwmLCBjb25zdCBDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIHZvaWQg
cHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIE1lZGlhUGxheWVyOjpQcmVsb2Fk
LCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmUpIGZpbmFsOworICAgIHZvaWQgbG9h
ZChjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpDb250ZW50VHlwZSYsIGNvbnN0IFN0cmluZyYp
IGZpbmFsOworICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdl
YkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkLCBib29sIHByZXNlcnZlc1BpdGNoLCBib29sIHBy
ZXBhcmUpIGZpbmFsOwogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICB2b2lkIGxvYWQo
Y29uc3QgU3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KikgZmluYWw7CisgICAgdm9p
ZCBsb2FkKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCop
IGZpbmFsOwogI2VuZGlmCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICB2b2lkIGxvYWQo
TWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBsb2FkKFdlYkNvcmU6Ok1lZGlh
U3RyZWFtUHJpdmF0ZSYpIGZpbmFsOwogI2VuZGlmCiAgICAgdm9pZCBjYW5jZWxMb2FkKCkgZmlu
YWw7CiAKQEAgLTEwNiw5ICsxMTIsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkp
CiAgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiwgV1RGOjpG
dW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsOwogICAgIHZvaWQgdXBk
YXRlVmlkZW9GdWxsc2NyZWVuSW5saW5lSW1hZ2UoKSBmaW5hbDsKLSAgICB2b2lkIHNldFZpZGVv
RnVsbHNjcmVlbkZyYW1lKEZsb2F0UmVjdCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5HcmF2aXR5KE1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpIGZpbmFsOwotICAgIHZvaWQg
c2V0VmlkZW9GdWxsc2NyZWVuTW9kZShNZWRpYVBsYXllcjo6VmlkZW9GdWxsc2NyZWVuTW9kZSkg
ZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShXZWJDb3JlOjpGbG9hdFJl
Y3QpIGZpbmFsOworICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNj
cmVlbk1vZGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFs
OwogICAgIHZvaWQgdmlkZW9GdWxsc2NyZWVuU3RhbmRieUNoYW5nZWQoKSBmaW5hbDsKICNlbmRp
ZgogCkBAIC0xMTgsNyArMTI0LDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZXJyb3JMb2coKSBj
b25zdCBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xpY3koTWVkaWFQ
bGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgZmluYWw7CisgICAgdm9pZCBzZXRCdWZmZXJpbmdQb2xp
Y3koV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OkJ1ZmZlcmluZ1BvbGljeSkgZmluYWw7CiAKICAgICBi
b29sIHN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc3Vw
cG9ydHNGdWxsc2NyZWVuKCkgY29uc3QgZmluYWw7CkBAIC0xMjYsNyArMTMyLDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgY2FuU2F2ZU1lZGlhRGF0YSgpIGNvbnN0IGZpbmFsOwogCi0gICAgRmxv
YXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IG5hdHVyYWxTaXplKCkgY29uc3QgZmluYWw7CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qg
ZmluYWw7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IGZpbmFsOwpAQCAtMTU5LDI5ICsxNjUs
MjkgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbWF4RmFzdEZvcndhcmRSYXRlKCkgY29uc3QgZmlu
YWw7CiAgICAgZG91YmxlIG1pbkZhc3RSZXZlcnNlUmF0ZSgpIGNvbnN0IGZpbmFsOwogCi0gICAg
TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQotICAgIE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLnJl
YWR5U3RhdGU7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdv
cmtTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FjaGVkU3RhdGUubmV0d29ya1N0YXRl
OyB9CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FjaGVkU3RhdGUucmVhZHlTdGF0ZTsgfQogCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBmaW5hbDsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJs
ZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgTWVkaWFUaW1lIG1heE1lZGlhVGltZVNlZWthYmxlKCkg
Y29uc3QgZmluYWw7CiAgICAgTWVkaWFUaW1lIG1pbk1lZGlhVGltZVNlZWthYmxlKCkgY29uc3Qg
ZmluYWw7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQo
KSBjb25zdCBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1l
UmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBzZWVrYWJsZVRpbWVS
YW5nZXNMYXN0TW9kaWZpZWRUaW1lKCkgY29uc3QgZmluYWw7CiAgICAgZG91YmxlIGxpdmVVcGRh
dGVJbnRlcnZhbCgpIGNvbnN0IGZpbmFsOwogCiAgICAgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFs
Qnl0ZXMoKSBjb25zdCBmaW5hbDsKICAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0
IGZpbmFsOwogCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBmaW5hbDsKKyAgICB2
b2lkIHNldFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBw
YWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICB2b2lk
IHBhaW50KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpIGZpbmFsOwogCi0gICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBmaW5hbDsKLSAgICBib29sIGNvcHlWaWRlb1Rl
eHR1cmVUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmpl
Y3QsIEdDM0RlbnVtLCBHQzNEaW50LCBHQzNEZW51bSwgR0MzRGVudW0sIEdDM0RlbnVtLCBib29s
LCBib29sKSBmaW5hbDsKLSAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRU
aW1lKCkgZmluYWw7CisgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAg
ICBib29sIGNvcHlWaWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRCosIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBHQzNEaW50LCBHQzNEZW51
bSwgR0MzRGVudW0sIEdDM0RlbnVtLCBib29sLCBib29sKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpO
YXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZUZvckN1cnJlbnRUaW1lKCkgZmluYWw7CiAKLSAgICB2
b2lkIHNldFByZWxvYWQoTWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOworICAgIHZvaWQgc2V0
UHJlbG9hZChXZWJDb3JlOjpNZWRpYVBsYXllcjo6UHJlbG9hZCkgZmluYWw7CiAKICAgICBib29s
IGhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdCBmaW5hbDsKIApAQCAtMTkyLDE0ICsxOTgs
MTQgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAg
ICAgU3RyaW5nIHdpcmVsZXNzUGxheWJhY2tUYXJnZXROYW1lKCkgY29uc3QgZmluYWw7Ci0gICAg
TWVkaWFQbGF5ZXI6OldpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlIHdpcmVsZXNzUGxheWJhY2tU
YXJnZXRUeXBlKCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OldpcmVs
ZXNzUGxheWJhY2tUYXJnZXRUeXBlIHdpcmVsZXNzUGxheWJhY2tUYXJnZXRUeXBlKCkgY29uc3Qg
ZmluYWw7CiAKICAgICBib29sIHdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKCkgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBzZXRXaXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZChib29sKSBm
aW5hbDsKIAogICAgIGJvb2wgY2FuUGxheVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpIGNvbnN0
IGZpbmFsOwotICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8TWVkaWFQbGF5
YmFja1RhcmdldD4mJikgZmluYWw7CisgICAgdm9pZCBzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0
KFJlZjxXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBmaW5hbDsKIAogICAgIHZvaWQg
c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCkgZmluYWw7CiAjZW5kaWYKQEAgLTIx
Niw5ICsyMjIsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdp
bigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlkUGFzc0NPUlNBY2Nlc3NDaGVjaygpIGNvbnN0
IGZpbmFsOwotICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgU2VjdXJp
dHlPcmlnaW4mKSBjb25zdCBmaW5hbDsKKyAgICBPcHRpb25hbDxib29sPiB3b3VsZFRhaW50T3Jp
Z2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJikgY29uc3QgZmluYWw7CiAKLSAgICBN
ZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3QgZmluYWw7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNv
bnN0IGZpbmFsOwogCiAgICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCkgZmluYWw7CiAKQEAg
LTIzNCwyNSArMjQwLDI1IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9u
KCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoV0VCX0FVRElPKQotICAgIEF1ZGlvU291cmNl
UHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpBdWRp
b1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgZmluYWw7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShMRUdBQ1lfRU5DUllQVEVEX01FRElBKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxM
ZWdhY3lDRE1TZXNzaW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYsIExlZ2FjeUNETVNl
c3Npb25DbGllbnQqKSBmaW5hbDsKLSAgICB2b2lkIHNldENETVNlc3Npb24oTGVnYWN5Q0RNU2Vz
c2lvbiopIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpMZWdhY3lDRE1TZXNz
aW9uPiBjcmVhdGVTZXNzaW9uKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Np
b25DbGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIHNldENETVNlc3Npb24oV2ViQ29yZTo6TGVnYWN5
Q0RNU2Vzc2lvbiopIGZpbmFsOwogICAgIHZvaWQga2V5QWRkZWQoKSBmaW5hbDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSAgICB2b2lkIGNkbUluc3RhbmNlQXR0YWNo
ZWQoQ0RNSW5zdGFuY2UmKSBmaW5hbDsKLSAgICB2b2lkIGNkbUluc3RhbmNlRGV0YWNoZWQoQ0RN
SW5zdGFuY2UmKSBmaW5hbDsKLSAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2Uo
Q0RNSW5zdGFuY2UmKSBmaW5hbDsKKyAgICB2b2lkIGNkbUluc3RhbmNlQXR0YWNoZWQoV2ViQ29y
ZTo6Q0RNSW5zdGFuY2UmKSBmaW5hbDsKKyAgICB2b2lkIGNkbUluc3RhbmNlRGV0YWNoZWQoV2Vi
Q29yZTo6Q0RNSW5zdGFuY2UmKSBmaW5hbDsKKyAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRo
SW5zdGFuY2UoV2ViQ29yZTo6Q0RNSW5zdGFuY2UmKSBmaW5hbDsKICAgICBib29sIHdhaXRpbmdG
b3JLZXkoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQog
ICAgIGJvb2wgcmVxdWlyZXNUZXh0VHJhY2tSZXByZXNlbnRhdGlvbigpIGNvbnN0IGZpbmFsOwot
ICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oVGV4dFRyYWNrUmVwcmVzZW50YXRp
b24qKSBmaW5hbDsKKyAgICB2b2lkIHNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFdlYkNvcmU6
OlRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgZmluYWw7CiAgICAgdm9pZCBzeW5jVGV4dFRyYWNr
Qm91bmRzKCkgZmluYWw7CiAgICAgdm9pZCB0cmFja3NDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYK
QEAgLTI3Miw3ICsyNzgsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBlbmRlZCgpIGNvbnN0IGZp
bmFsOwogCi0gICAgT3B0aW9uYWw8VmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzPiB2aWRlb1Bs
YXliYWNrUXVhbGl0eU1ldHJpY3MoKSBmaW5hbDsKKyAgICBPcHRpb25hbDxXZWJDb3JlOjpWaWRl
b1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZp
bmFsOwogCiAjaWYgRU5BQkxFKEFWRl9DQVBUSU9OUykKICAgICB2b2lkIG5vdGlmeVRyYWNrTW9k
ZUNoYW5nZWQoKSBmaW5hbDsKQEAgLTI5MywxOSArMjk5LDIyIEBAIHByaXZhdGU6CiAKICAgICBi
b29sIHNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKSBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVy
KiBtX3BsYXllciB7IG51bGxwdHIgfTsKLSAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgbV9t
YW5hZ2VyOwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3Jl
bW90ZUVuZ2luZUlkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIG1fcGxheWVy
IHsgbnVsbHB0ciB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1fbWVkaWFSZXNvdXJjZUxvYWRlcjsKKyAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXImIG1fbWFuYWdlcjsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2lu
ZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOwogICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKICAgICBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24gbV9jb25maWd1cmF0aW9uOwogCiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2Nh
Y2hlZFN0YXRlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IG1fY2Fj
aGVkQnVmZmVyZWRUaW1lUmFuZ2VzOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0
Zm9ybVRpbWVSYW5nZXM+IG1fY2FjaGVkQnVmZmVyZWRUaW1lUmFuZ2VzOworCisgICAgSGFzaE1h
cDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZT4+IG1fbWVkaWFSZXNvdXJjZXM7CiAKICAgICBkb3VibGUgbV92b2x1bWUg
eyAxIH07CiAgICAgZG91YmxlIG1fcmF0ZSB7IDEgfTsKICAgICBsb25nIG1fcGxhdGZvcm1FcnJv
ckNvZGUgeyAwIH07Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBtX21vdmll
TG9hZFR5cGUgeyBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlOjpVbmtub3duIH07Cisg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBtX21vdmllTG9hZFR5
cGUgeyBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlOjpVbmtub3duIH07
CiAgICAgYm9vbCBtX2hhc0F1ZGlvIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzVmlkZW8geyBm
YWxzZSB9OwogICAgIGJvb2wgbV9tdXRlZCB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllci5oCmluZGV4IDg3ZTdiOGJiYWVjMzUzNGU3ZGVmZDc4MjM4
NjEwMTQzMjE3NTM4YzcuLjI1NmIzYzU5ZmJlNDJiNmJjMWEzMDY3MWU3MDBhNTczNGRkYjlmNTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oCkBAIC0yNSw2
ICsyNSw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCiAj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC0zMiw0ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogZW51bSBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyVHlwZSB7IH07CiB1c2luZyBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyVHlwZT47CiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBjZWU2
YjU1MjY5ODJhZmY0MTFiZjA0MTVlYzgyMDUyNTBlODk5OWQzLi4wMWYzZjk5MTRlNTA3NjA1MGRj
MTE4NmJhNTk5N2YxYzdjMzExOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBA
IC0yOCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJH
UFVQcm9jZXNzQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtNDEsNiArNDMsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBu
YW1lc3BhY2UgUEFMOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE2NSw3ICsxNjgs
NyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlwZXMoTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZAogICAgICAgICByZXN1bHQuYWRkKHR5cGUpOwog
fQogCi1NZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1
cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXll
ckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29u
c3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICAvLyBG
SVhNRTogc3VwcG9ydGVkIHR5cGVzIGRvbid0IGNoYW5nZSwgY2FjaGUgdGhlbS4KIApAQCAtMTgx
LDkgKzE4NCw5IEBAIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c0tleVN5
c3RlbShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1IYXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBw
YXRoKQorSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6Om9yaWdpbnNJbk1lZGlhQ2FjaGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJ
ZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcGF0aCkKIHsK
LSAgICBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5EYXRhOworICAg
IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbkRhdGE7CiAgICAgaWYgKCFncHVQcm9j
ZXNzQ29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eTo6T3JpZ2luc0luTWVkaWFDYWNoZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwYXRo
KSwgTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpPcmlnaW5zSW5NZWRp
YUNhY2hlOjpSZXBseShvcmlnaW5EYXRhKSwgMCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAg
LTE5OSw3ICsyMDIsNyBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRp
YUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbgogICAgIGdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6
OkNsZWFyTWVkaWFDYWNoZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwYXRoLCBtb2RpZmllZFNp
bmNlKSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlh
Q2FjaGVGb3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBy
ZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IEhhc2hTZXQ8
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMpCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhNZWRpYVBsYXllckVu
dW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBwYXRoLCBjb25zdCBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmln
aW5zKQogewogICAgIGF1dG8gb3JpZ2luRGF0YSA9IFdURjo6bWFwKG9yaWdpbnMsIFtdIChhdXRv
JiBvcmlnaW4pIHsKICAgICAgICAgcmV0dXJuIG9yaWdpbi0+ZGF0YSgpOwpAQCAtMjEwLDU1ICsy
MTMsNTUgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNoZUZv
ck9yaWdpbnMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWEKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6Om5ldHdvcmtTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChh
dXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5
ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFu
Z2VkKFdURk1vdmUoc3RhdGUpKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnJlYWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIg
PSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5
ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoV1RGTW92ZShz
dGF0ZSkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdl
ZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2
b2x1bWUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZChNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1lKQogewotICAg
IGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRv
JiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT52b2x1bWVDaGFu
Z2VkKHZvbHVtZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjptdXRlQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wg
bXV0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjptdXRlQ2hhbmdlZChNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29sIG11dGUpCiB7Ci0gICAgaWYgKGF1
dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXll
ciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPm11dGVDaGFuZ2VkKG11dGUp
OwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dGltZUNoYW5nZWQoV2ViS2l0
OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXll
clN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChp
ZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAg
ICAgICBwbGF5ZXItPnRpbWVDaGFuZ2VkKFdURk1vdmUoc3RhdGUpKTsKIH0KIAogdm9pZCBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0
ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAo
Y29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+
ZHVyYXRpb25DaGFuZ2VkKFdURk1vdmUoc3RhdGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXI6OnJhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZCwgZG91YmxlIHJhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6cmF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91
YmxlIHJhdGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisg
ICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBw
bGF5ZXItPnJhdGVDaGFuZ2VkKHJhdGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkLCBib29sIHBhdXNlZCkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpwbGF5YmFja1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkLCBib29sIHBhdXNlZCkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkp
CiAgICAgICAgIHBsYXllci0+cGxheWJhY2tTdGF0ZUNoYW5nZWQocGF1c2VkKTsKIH0KIAogdm9p
ZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGxvbmcgcGxhdGZvcm1FcnJvckNv
ZGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYg
KGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXIt
PmVuZ2luZUZhaWxlZFRvTG9hZChwbGF0Zm9ybUVycm9yQ29kZSk7CiB9CiAKQEAgLTI2Nyw2ICsy
NzAsMjAgQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNoYXJhY3RlcmlzdGljQ2hh
bmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVIKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBt
X3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQo
aGFzQXVkaW8sIGhhc1ZpZGVvLCBsb2FkVHlwZSk7CiB9CisgICAgCit2b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6cmVxdWVzdFJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVy
ID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgICAgIHBsYXllci0+cmVxdWVzdFJlc291cmNlKHJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsK
KworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyOjpyZW1vdmVSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVy
IGlkLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcikKK3sKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChp
ZCkpCisgICAgICAgIHBsYXllci0+cmVtb3ZlUmVzb3VyY2UocmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIpOworfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgU2V0dGluZ3MmIHNldHRpbmdzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKaW5kZXggYzNjMjc3YWM4OGMzNGRjNjA5YWNhY2ZlZWQ2YWU1OTc4MzI4ZjE0Mi4uMjQ4
ODE0NDMwOTVlNTExMzFkZTg2NjdhZjNiNjEzMTEwZGFlYzBkZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgpA
QCAtNTcsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBJUEM6OkNvbm5lY3Rpb24mIGdwdVByb2Nl
c3NDb25uZWN0aW9uKCkgY29uc3Q7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdl
YlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29k
ZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKyAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0
aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlv
biwgZGVjb2Rlcik7IH0KIAogICAgIHZvaWQgZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcik7CiAKQEAgLTgyLDYgKzgzLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIsIGxvbmcpOwogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUoV2Vi
S2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXll
clN0YXRlJiYpOwogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRl
bywgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CisgICAgdm9pZCBy
ZXF1ZXN0UmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgZnJpZW5kIGNsYXNzIE1lZGlhUGxheWVyUmVtb3RlRmFjdG9yeTsKICAgICB2b2lkIGdl
dFN1cHBvcnRlZFR5cGVzKFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciwgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNDY1OGE3YTI4
ZjZjNzhlMTBjZTA1NDVkNzBmZmMzZmZjNTBkZGMzYy4uMTgwZjI2MzIzNjNmNTA2ZGViYzJhMWU4
NzM2OTZhZmM5ZTdmNjc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTIxLDEwICsyMSw5IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi0jaWYgRU5BQkxFKFZJREVPKQorI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIAogbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIE5vdFJl
ZkNvdW50ZWQgewotCiAgICAgTmV0d29ya1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyU3RhdGUgc3RhdGUpCiAgICAgUmVhZHlTdGF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBs
YXllclN0YXRlIHN0YXRlKQogICAgIFZvbHVtZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1lKQpAQCAtMzYsNiArMzUsOSBA
QCBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7CiAg
ICAgRW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZCwgaW50IHBsYXRmb3JtRXJyb3JDb2RlKQogICAgIFVwZGF0ZUNhY2hlZFN0YXRl
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBzdGF0ZSkKICAgICBDaGFyYWN0ZXJpc3RpY0No
YW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29s
IGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKQorCisgICAgUmVxdWVzdFJlc291
cmNlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykgLT4gKCkgQXN5bmMKKyAgICBSZW1vdmVSZXNv
dXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ3MzA1MDVlZWRlM2VmNzllNjFl
NmQ0NmZkOTg3ZjI1YzIxMjAyZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcApAQCAtMCwwICsx
LDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
KiBwbGF0Zm9ybU1lZGlhUmVzb3VyY2UsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlk
KQorICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX3BsYXRm
b3JtTWVkaWFSZXNvdXJjZShwbGF0Zm9ybU1lZGlhUmVzb3VyY2UpCisgICAgLCBtX2lkKGlkKQor
eworfQorCitSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6On5SZW1vdGVNZWRpYVJlc291cmNlUHJv
eHkoKQoreworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVzcG9uc2VSZWNl
aXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOjpSZXNwb25zZVJlY2VpdmVkKG1faWQsIHJlc3BvbnNlLCBtX3BsYXRm
b3JtTWVkaWFSZXNvdXJjZS0+ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gc2hvdWxkQ29udGlu
dWUpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRDb250aW51ZSk7
CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJl
Y2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlZGlyZWN0UmVjZWl2
ZWQobV9pZCwgcmVxdWVzdCwgcmVzcG9uc2UpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCldKCkgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOworICAgIH0p
OworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNwb25z
ZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OmRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVu
c2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVz
VG9CZVNlbnQpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjo6RGF0YVNlbnQobV9pZCwgYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9C
ZVNlbnQpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNl
aXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiBkYXRhLCBp
bnQgbGVuZ3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI6OkRhdGFSZWNlaXZlZChtX2lkLCBJUEM6OkRhdGFSZWZlcmVuY2Uo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCAwKTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxl
ZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpBY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQobV9pZCwgZXJy
b3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmxvYWRGYWlsZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYgZXJyb3IpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZhaWxlZChtX2lkLCBlcnJvciksIDApOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZpbmlzaGVkKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZpbmlzaGVkKG1faWQpLCAwKTsKK30KKwor
fQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYTFmZmM0
NDg0YWUxNjYyZTdmMTRjYTE3NjVlY2I1Y2IwZDc0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5o
CkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1N
ZWRpYVJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2xpY3lDaGVja2VyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoUmVmPElQQzo6
Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlKiwgUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNlUHJveHkoKTsK
KworcHJpdmF0ZToKKyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQKKyAgICB2b2lk
IHJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJl
ZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7
CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lk
IGRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcg
bG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiwgaW50KSBmaW5hbDsK
KyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgdm9p
ZCBsb2FkRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZChXZWJDb3Jl
OjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKSBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UqIG1f
cGxhdGZvcm1NZWRpYVJlc291cmNlOworICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IG1faWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386484</attachid>
            <date>2019-12-29 00:07:27 -0800</date>
            <delta_ts>2019-12-30 01:10:48 -0800</delta_ts>
            <desc>Patch for review (fixed gtk and wpe build failures)</desc>
            <filename>bug-205379-20191229000726.patch</filename>
            <type>text/plain</type>
            <size>125832</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTU1NjExZjA4MzQwODJk
ODg2NWE3N2NiZDlkOTJiNzgxMjIxMmZjZS4uZDA2MmVlNjc3ZjY3Y2Q2ODBlNGEzNGI1YjRkNTU5
Y2QwNWVkYjFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTEyLTI5ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICBUaGVyZSBhcmUgdHdvIGRlZmluaXRpb25zIG9mIFNob3VsZENvbnRpbnVlOiBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTaG91bGRDb250aW51ZQorICAgICAgICBhbmQg
V2ViQ29yZTo6U2hvdWxkQ29udGludWUuIFRoaXMgcGF0Y2ggbW92ZXMgV2ViQ29yZTo6U2hvdWxk
Q29udGludWUgdG8KKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGlu
dWUgaW4gb3JkZXIgdG8gc3VwcG9ydCB0cmFuc21pdHRpbmcgaXQgaW4gWFBDIG1lc3NhZ2VzLgor
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpsb2FkVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2Fk
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9s
aWN5KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIv
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlc291cmNl
OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50OjpyZXNwb25z
ZVJlY2VpdmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKENhY2hlZFJlc291cmNlU3RyZWFtaW5n
Q2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nv
Y29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlTlNV
UkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoLVtX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2sgcmVzb3VyY2U6cmVjZWl2ZWRSZXNwb25zZTpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKwogMjAxOS0xMi0yMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgdG8gc2ltcGxpZnkgYnJvYWRjYXN0aW5nIHRvIGFs
bCBtZWRpYSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNDI3MmMyMTI1MDM2OTBjZjg3YTQ2ZWQzMDg0
YzA4NDg4MmU4OWYxLi45OTc3OWQ3MGRiMDg2ZjA3Mzg0YTM5NWVjMjUyOGEwZDgxYjRiYWFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyMSBAQAorMjAxOS0xMi0yOSAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCByZW1vdGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVy
IGZvciB0aGUgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwNTM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgSW4gdGhl
IEdQVSBwcm9jZXNzLCB0aGUgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlciBjcmVhdGVzIFJlbW90
ZU1lZGlhUmVzb3VyY2UocyksCisgICAgICAgIHdoaWNoIHdpbGwgbm90aWZ5IHRoZSBtZWRpYSBy
ZXNvdXJjZSBjbGllbnRzIChXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQpLgorICAg
ICAgICBUaGVuIHRoZSBkYXRhIHdpbGwgYmUgZm9yd2FyZGVkIHRvIEFWRm91bmRhdGlvbi4KKwor
ICAgICAgICBJbiB0aGUgV2ViIHByb2Nlc3MsIE1laWRhUmVzb3VyY2VMb2FkZXIgY3JlYXRlcyBN
ZWRpYVJlc291cmNlKHMpLCB3aGljaCB0YWtlIGNhcmUgb2YKKyAgICAgICAgZG93bmxvYWRpbmcg
bWVkaWEgZGF0YSB0aHJvdWdoIHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSByZWNlaXZlZCBkYXRh
IHdpbGwgYmUgZm9yd2FyZGVkIHRvCisgICAgICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSwg
d2hpY2ggd2lsbCBmb3J3YXJkIHRoZSBkYXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nIFJlbW90ZU1l
ZGlhUmVzb3VyY2UKKyAgICAgICAgdGhyb3VnaCBYUEMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBE
ZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
LW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAg
ICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRS
ZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5Ojpsb2dDaGFubmVsIGNvbnN0KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VM
b2FkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyUHJveHk6Om1lZGlhUGxheWVyTG9nSWRlbnRpZmllcik6IERlbGV0ZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnN0b3ApOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlZGlyZWN0UmVjZWl2ZWQpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpzaG91bGRDYWNoZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVNlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQp
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpsb2FkRmFpbGVkKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZpbmlzaGVkKToKKyAgICAg
ICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlYWR5IGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2V0UmVhZHkpOgorICAgICAgICAqIEdQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmg6IEFkZGVkLgorICAgICAg
ICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6On5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVzcG9uc2VS
ZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpy
ZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaDogQWRkZWQuCisgICAg
ICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdl
cy5pbjogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAg
KiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWVzdFJlc291cmNlKToKKyAgICAg
ICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZXNvdXJjZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpuZXR3b3JrU3RhdGVDaGFu
Z2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZWFkeVN0
YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
dm9sdW1lQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6bXV0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpkdXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlbW92ZVJlc291cmNlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2Fn
ZUZyb21HUFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRDYWNoZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpkYXRh
U2VudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVJl
Y2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjphY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlUHJveHk6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlUHJveHk6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg6IEFkZGVkLgorCiAyMDE5LTEyLTIzICBEYXJpbiBB
ZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciB0byBzaW1wbGlmeSBi
cm9hZGNhc3RpbmcgdG8gYWxsIG1lZGlhIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCA2Mzc1ZjUwNjI0MTU2YzlmNDhhYjdmNzRjNjE5NmY1MTNmNTlmN2Rk
Li4yMmViOGQwNDNiMzgwMzc1Y2E1ZTBkYjVmNjdlMWFjNGQ4NzY2Y2Q2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTEzODAsNyArMTM4MCw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRVUkwoRnJhbWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0
IFN0cmluZyYgcmVmCiAKICAgICBpZiAoIXRhcmdldEZyYW1lICYmICFlZmZlY3RpdmVGcmFtZU5h
bWUuaXNFbXB0eSgpKSB7CiAgICAgICAgIGFjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHko
bV9mcmFtZSwgZnJhbWVMb2FkUmVxdWVzdCkpOwotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hl
Y2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZN
b3ZlKGZvcm1TdGF0ZSksIGVmZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRp
b25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFt
ZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRD
b250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRv
d1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9ybVN0
YXRlKSwgZWZmZWN0aXZlRnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJD
YWxsZXIucmVsZWFzZSgpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRy
PEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNo
b3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3
V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24s
IHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGlj
eSk7CiAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTE0
NjMsNyArMTQ2Myw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYm
IHJlcXVlc3QpCiAKICAgICBpZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgp
KSB7CiAgICAgICAgIE5hdmlnYXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5yZXF1ZXN0ZXIo
KSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25v
d24sIE5hdmlnYXRpb25UeXBlOjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KCkgfTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5
KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9
LCByZXF1ZXN0LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91
bGRDb250aW51ZSkgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xp
Y3koV1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpLCB7
IH0sIHJlcXVlc3QuZnJhbWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRB
ZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwg
YWN0aW9uLCBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcyk7CiAgICAgICAgIH0pOwogCkBAIC0zMDYz
LDcgKzMwNjMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2Fk
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmZQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9s
aWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZSh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0KSwgV1RG
TW92ZShmb3JtU3RhdGUpLCBmcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3Jt
U3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJs
ZSB7CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3Zl
KGFjdGlvbiksIFdURk1vdmUod29ya2luZ1Jlc291cmNlUmVxdWVzdCksIFdURk1vdmUoZm9ybVN0
YXRlKSwgZnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVu
ZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZv
cm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11
dGFibGUgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVx
dWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUs
IGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwpAQCAtMzU0MSw5ICszNTQxLDkgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWUKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVM
b2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAot
ICAgIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwg
TmV3RnJhbWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9saWN5KQorICAgIEZvcm1TdGF0ZSogZm9ybVN0
YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwgQWxsb3dO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJh
bWVPcGVuZXJQb2xpY3kgb3BlbmVyUG9saWN5KQogewotICAgIGlmIChzaG91bGRDb250aW51ZSAh
PSBTaG91bGRDb250aW51ZTo6WWVzKQorICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBQb2xpY3lD
aGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8
RnJhbWU+IGZyYW1lKG1fZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCBjZTNlZDZhNTUyMGJjNGRjMWUzMGUyNzk5OTUzN2FmZDQ4NDljYzg0Li43MTYzNGM4NGM1NjA1
OTI5YmU1NGE1NWM2ODRjYmVjZmIxN2Y4NjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNp
bmNsdWRlICJMYXlvdXRNaWxlc3RvbmUuaCIKICNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2Vy
LmgiCisjaW5jbHVkZSAiUG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5
LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUxvYWRlck9wdGlvbnMuaCIKQEAgLTg0LDcgKzg1LDYgQEAgY2xhc3MgU3ViZnJhbWVMb2FkZXI7
CiBjbGFzcyBTdWJzdGl0dXRlRGF0YTsKIAogZW51bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6
IGJvb2w7Ci1lbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlOwogZW51bSBjbGFzcyBOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24gOiB1aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQgOiBib29sOwogCkBAIC0zNTcsNyArMzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpc3BhdGNoVW5sb2FkRXZlbnRzKFVubG9hZEV2ZW50UG9saWN5KTsKIAogICAgIHZvaWQgY29u
dGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZv
cm1TdGF0ZSosIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZh
bGlkVVJMKTsKLSAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KGNvbnN0
IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kpOworICAgIHZvaWQgY29udGludWVMb2Fk
QWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBQb2xpY3lD
aGVja2VyOjpTaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdG
cmFtZU9wZW5lclBvbGljeSk7CiAgICAgdm9pZCBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29udGlu
dWUpOwogCiAgICAgYm9vbCBzaG91bGRQZXJmb3JtRnJhZ21lbnROYXZpZ2F0aW9uKGJvb2wgaXNG
b3JtU3VibWlzc2lvbiwgY29uc3QgU3RyaW5nJiBodHRwTWV0aG9kLCBGcmFtZUxvYWRUeXBlLCBj
b25zdCBVUkwmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVy
LmNwcAppbmRleCAwNmU4NDdkNDQ4Mjc1ZDVmNGE2MjdjN2E0NzcwODQxYzRkY2E0MTg3Li40ZjM1
ODk1OTQxZmI2ZjVjZDc0NDZhNTA2NDNlMGY1YWNkMTQyZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCB2
b2lkIE1lZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291
cmNlLCBjb25zdCBSZXNvdXJjZVJlcwogCiAgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
ID0gbV9yZXNvdXJjZS0+b3B0aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3Jz
OwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQo
KnRoaXMsIHJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKFNo
b3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgbV9jbGllbnQt
PnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2Fs
bGVyLnJlbGVhc2UoKV0gKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRp
bnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKICAgICAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgICAgICAgICAgaWYgKHNob3VsZENv
bnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIGlmIChzaG91bGRDb250
aW51ZSA9PSBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pCiAgICAgICAgICAgICAg
ICAgc3RvcCgpOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmgKaW5kZXggMGVmMWU2ZTU3MzFjZmE1Y2I2ZWQ3ZWFlNWIyN2EyOWM1YzkzYWUyYS4uNDc2ODA2
NjVkNDA4ZDFlMzhjNGNmZGRkOWMyNWVkMzU0MjRhNGQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UG9saWN5Q2hlY2tlci5oCkBAIC01MiwxMSArNTIsNiBAQCBjbGFzcyBOYXZpZ2F0aW9uQWN0aW9u
OwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAKLWVudW0g
Y2xhc3MgU2hvdWxkQ29udGludWUgewotICAgIFllcywKLSAgICBObwotfTsKLQogZW51bSBjbGFz
cyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90IHsKICAgICBDb250aW51ZUxvYWQs
CiAgICAgSWdub3JlTG9hZCwKQEAgLTY1LDE1ICs2MCwyMCBAQCBlbnVtIGNsYXNzIE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3QgewogCiBlbnVtIGNsYXNzIFBvbGljeURlY2lzaW9u
TW9kZSB7IFN5bmNocm9ub3VzLCBBc3luY2hyb25vdXMgfTsKIAotdXNpbmcgTmV3V2luZG93UG9s
aWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsKLXVzaW5nIE5hdmln
YXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNv
dXJjZVJlcXVlc3QmJiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNp
c2lvbik+OwotCiBjbGFzcyBQb2xpY3lDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShQb2xpY3lDaGVja2VyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7CiAKKyAgICBlbnVtIGNsYXNzIFNo
b3VsZENvbnRpbnVlIHsKKyAgICAgICAgWWVzLAorICAgICAgICBObworICAgIH07CisKKyAgICB1
c2luZyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBOYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24pPjsKKyAgICB1c2luZyBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0
aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWFr
UHRyPEZvcm1TdGF0ZT4mJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+OworCiAgICAgdm9pZCBj
aGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiwgUmVmUHRyPEZvcm1TdGF0
ZT4mJiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiwgUG9saWN5RGVjaXNpb25N
b2RlID0gUG9saWN5RGVjaXNpb25Nb2RlOjpBc3luY2hyb25vdXMpOwogICAgIHZvaWQgY2hlY2tO
YXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsK
ICAgICB2b2lkIGNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24mJiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1l
LCBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwpAQCAtMTEyLDMgKzExMiwxNiBA
QCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisvLyBUbyBzdXBwb3J0
IGVuY29kaW5nIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIGluIFhQQyBt
ZXNzYWdlcworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8
V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU+IHsKKyAgICB1c2luZyB2YWx1
ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSwKKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6
Ok5vLAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVz
CisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKaW5kZXggNTE2MTVl
ZjYwNjVkZDM2ZmE1NTAxOGY2NjY4NDhiMjFjYTliOTc4MC4uYTE0NWYxNjNjNjQzYTM4NjhlMTk3
MTM4YWFlNGVkY2ZkMDQ3NmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTQ0
LDcgKzQ0LDcgQEAgY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHsKIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQoKSA9IGRlZmF1bHQ7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRD
b250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxk
Q29udGludWU6Olllcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6
Olllcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwg
dm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcs
IHVuc2lnbmVkIGxvbmcgbG9uZykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwCmluZGV4IGFlZGJmNjg2ZjA0YmYwOWU3MmQyZDNiNDc0N2M4YmQ5ZTdmNDll
NzAuLjY0MTU0MTc5NzMwNzkwMzAxYWUxNzhlZjg0ZDdmOGFkN2VlZmVkNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3Vy
Y2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIK
ICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJQb2xp
Y3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTY1LDcgKzY2
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2lnbmVkIGJ5
dGVzUmVhZCk7CiAKICAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgdmlydHVhbCBt
ZXRob2RzLgotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRD
b250aW51ZSk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBp
bnQpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAgICB2b2lk
IGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYp
IG92ZXJyaWRlOwpAQCAtOTQ0LDcgKzk0NSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1p
bmdDbGllbnQ6OmNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2lnbmVkIGJ5dGVzUmVhZCkKICAgICB9
CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2
ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9u
c2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNl
aXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViS2l0V2ViU3JjKiBzcmMgPSBXRUJL
SVRfV0VCX1NSQyhtX3NyYy5nZXQoKSk7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9
IHNyYy0+cHJpdjsKQEAgLTk5OCw3ICs5OTksNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFt
aW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgog
ICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJlY2VpdmVk
ICVkIEhUVFAgZXJyb3IgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAobnVsbHB0
cikpOwogICAgICAgICBwcml2LT5kb2VzSGF2ZUVPUyA9IHRydWU7CiAgICAgICAgIHdlYktpdFdl
YlNyY1N0b3AoR1NUX0JBU0VfU1JDX0NBU1Qoc3JjKSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
QEAgLTEwMTIsNyArMTAxMyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6
OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAgICAgICAgICAg
ICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJlY2VpdmVkIHVuZXhw
ZWN0ZWQgJWQgSFRUUCBzdGF0dXMgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAo
bnVsbHB0cikpOwogICAgICAgICAgICAgcHJpdi0+ZG9lc0hhdmVFT1MgPSB0cnVlOwogICAgICAg
ICAgICAgd2ViS2l0V2ViU3JjU3RvcChHU1RfQkFTRV9TUkNfQ0FTVChzcmMpKTsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgR1NUX0RFQlVH
X09CSkVDVChzcmMsICJSYW5nZSByZXF1ZXN0IHN1Y2NlZWRlZCIpOwpAQCAtMTA1OCw3ICsxMDU5
LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZl
ZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgcHJpdi0+d2VyZUhlYWRlcnNS
ZWNlaXZlZCA9IHRydWU7CiAgICAgICAgIHByaXYtPmhlYWRlcnNDb25kaXRpb24ubm90aWZ5T25l
KCk7CiAgICAgfQotICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpZZXMpOwor
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZZXMp
OwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpkYXRhUmVjZWl2ZWQo
UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5T
VVJMU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbQppbmRleCBiYTU1ZjAwNDhiOGU0ZGRjNWIwNzM0ZDk5M2RjOWIx
M2I4Y2IyYjA1Li43OGEwMjc5NThmYjVlOTY5ODEyNmNlZWQ3NGU5YTJiNWVkNDFkZjRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNvcmVOU1VS
TFNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9X
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tCkBAIC01Niw3ICs1Niw3IEBAIE5TX0FTU1VNRV9OT05OVUxM
X0JFR0lOCiBAcHJvcGVydHkgKGFzc2lnbikgV2ViQ29yZU5TVVJMU2Vzc2lvbiAqIF9OdWxsYWJs
ZSBzZXNzaW9uOwogCiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJl
c291cmNlIHNlbnRCeXRlczoodW5zaWduZWQgbG9uZyBsb25nKWJ5dGVzU2VudCB0b3RhbEJ5dGVz
VG9CZVNlbnQ6KHVuc2lnbmVkIGxvbmcgbG9uZyl0b3RhbEJ5dGVzVG9CZVNlbnQ7Ci0tICh2b2lk
KXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkUmVzcG9u
c2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOihD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxl
cjsKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVj
ZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29tcGxldGlv
bkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogLSAoQk9PTClyZXNvdXJjZTooUGxhdGZvcm1N
ZWRpYVJlc291cmNlJilyZXNvdXJjZSBzaG91bGRDYWNoZVJlc3BvbnNlOihjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJilyZXNwb25zZTsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWREYXRhOihjb25zdCBjaGFyKilkYXRhIGxlbmd0aDooaW50
KWxlbmd0aDsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3Vy
Y2UgcmVjZWl2ZWRSZWRpcmVjdDooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgcmVx
dWVzdDooUmVzb3VyY2VSZXF1ZXN0JiYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpY29tcGxldGlvbkhhbmRsZXI7
CkBAIC0zODEsNyArMzgxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhclRhc2soKTsKIAot
ICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVk
aXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VS
ZXF1ZXN0JiYpPiYmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGF0YVNlbnQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBs
b25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG92ZXJyaWRlOwpAQCAtNDEwLDExICs0MTAsMTEgQEAg
dm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmRhdGFTZW50KFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291cmNlIHNl
bnRCeXRlczpieXRlc1NlbnQgdG90YWxCeXRlc1RvQmVTZW50OnRvdGFsQnl0ZXNUb0JlU2VudF07
CiB9CiAKLXZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZXNwb25zZVJl
Y2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xp
ZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBpZiAoIW1fdGFzaykKLSAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6
Tm8pOwogCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOnJl
c3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXTsKIH0K
QEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVu
dDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIC8vIE5vLW9w
LgogfQogCi0tICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNl
IHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBs
ZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4mJilj
b21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNl
JilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNw
b25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBBU1NFUlQo
cmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrIHx8
IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6RGlza0NhY2hl
IHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6RGlza0Nh
Y2hlQWZ0ZXJWYWxpZGF0aW9uIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9u
c2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNvdXJjZSwg
JnJlc291cmNlID09IF9yZXNvdXJjZSk7CkBAIC02MzgsMTQgKzYzOCwxNCBAQCB2b2lkIFdlYkNv
cmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZSYgcmVzbwogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBzdHJvbmdSZXNwb25z
ZSB7IHJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSB9OwogICAgIFJldGFpblB0cjxXZWJDb3JlTlNV
UkxTZXNzaW9uRGF0YVRhc2s+IHN0cm9uZ1NlbGYgeyBzZWxmIH07CiAgICAgaWYgKCFzZWxmLnNl
c3Npb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZTo6
Tm8pOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWU6Ok5vKTsKICAgICBbc2VsZi5zZXNzaW9uIGFkZERlbGVnYXRlT3BlcmF0aW9u
OltzdHJvbmdTZWxmLCBzdHJvbmdSZXNwb25zZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIHN0cm9uZ1NlbGYtPl9y
ZXNwb25zZSA9IHN0cm9uZ1Jlc3BvbnNlLmdldCgpOwogCiAgICAgICAgIGlkPE5TVVJMU2Vzc2lv
bkRhdGFEZWxlZ2F0ZT4gZGF0YURlbGVnYXRlID0gKGlkPE5TVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0
ZT4pc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uLmRlbGVnYXRlOwogICAgICAgICBpZiAoIVtkYXRh
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihVUkxTZXNzaW9uOmRhdGFUYXNr
OmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjopXSkgewogICAgICAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbc3Ryb25nU2VsZiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjUzLDEwICs2NTMs
MTAgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hl
ZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICAgICAgW2RhdGFEZWxlZ2F0ZSBVUkxT
ZXNzaW9uOihOU1VSTFNlc3Npb24gKilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gZGF0YVRhc2s6
KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRSZWNlaXZlUmVzcG9u
c2U6c3Ryb25nUmVzcG9uc2UuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtz
dHJvbmdTZWxmLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoTlNVUkxTZXNzaW9uUmVzcG9uc2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgbXV0YWJsZSB7
CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBkaXNwb3NpdGlvbiwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lvblJlc3Bv
bnNlQ2FuY2VsKQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRD
b250aW51ZTo6Tm8pOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwogICAgICAgICAgICAgICAgIGVsc2Ugewog
ICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZGlzcG9zaXRpb24gPT0gTlNVUkxTZXNzaW9uUmVz
cG9uc2VBbGxvdyk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3Vs
ZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgfSkuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4N2ZmZWU3
ZGI4MGUxMTRkMjI1MTEyNjYuLjQzYWY3MGFlZTllMzNiZWE4YWRlMDBmNzNlZTNjYTcyMmYyYjA0
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
QEAgLTE3LDYgKzE3LDcgQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVVBy
b2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2NvbS5hcHBs
ZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9KRUNUX0RJ
UikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5p
bgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2Nv
bHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmluCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA5ODY5
Y2YxNzE2MWZlZDk0NDkyYjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43YmU4OTQ5Y2NhZjIwOGQyYTM1
ZDJlYTBhYmNiMGEyZGU4MmU5MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyMCw2ICsxMjAsOSBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlc1JlcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRkNzRhYjU4
ZTUwNGE4MTIxODMuLjNjMDc3ZTRmMTdjY2NmMWYzYjgyZGIyYTIwNGQxOTg2YzJmM2NmMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksNyBAQCBNRVNTQUdFX1JF
Q0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0
UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTQ4MDNjYTgwZGFjNDMzNGVkMmUy
NDdmZjcyM2JjMjEyNmZhZmU1NS4uNDljMmI3NTc3ZTllMjMyNGE3N2VmMzMwMTdkYWNmZDdkNWY4
NmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xMDksNiArMTExLDE0IEBAIHZvaWQgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1f
cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworfQorCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlmICghbV9y
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSkKQEAgLTEzMiw2ICsxNDIsOSBAQCB2b2lkIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggODczZGNlYTI5NGQ5NjM4ZTA2MmEwY2Q2YTA5MTRm
MjUzM2RhZWM2MC4uYmMzMzQxY2VkNmQwMjhkNjQxZGJhMDAyMmM3ZjRlZTFjODBjMzEyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgR1BVUHJv
Y2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3MgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMgUmVmQ291
bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtNTYsNiArNTcsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBlbmRTdXNwZW5zaW9uKCk7CiAKICAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
ZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJvY2Vzc0lk
ZW50aWZpZXI7IH0KKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIoKTsKIAogICAgIExvZ2dlciYgbG9nZ2VyKCk7CiAKQEAgLTc4LDYgKzgw
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAg
ICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk+IG1f
cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNz
aW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCBkZjBlNDRiNmZmMzhlN2EzMDRmNmQ1YTNk
ZmU5ZmI0NzU4Mzc2NTY5Li4wNTAzNDA0YTBmMWNiNTk5NzkxZjAwM2MzZjg0YTk2MzUxZTRkMjAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTI5LDEwICsyOSwxMiBAQAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBAIC00MSw2ICs0Myw3IEBACiAjZGVmaW5l
IE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hFQ0tfQkFTRSht
X3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24p
CkBAIC0yNTAsMTEgKzI1MywxMSBAQCBjb25zdCBMb2dnZXImIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5Ojpsb2dnZXIoKSBjb25zdAogCiBXVEZMb2dDaGFubmVsJiBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYktp
dDJMb2dXZWJSVEM7CisgICAgcmV0dXJuIFdlYktpdDJMb2dNZWRpYTsKIH0KICNlbmRpZgogCi19
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElE
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKaW5kZXggMDY3MDA1NmZhNmUyOTZiNzYwZDcz
MWQyYzhiMTVjY2JlNGMwNDlhNy4uYWU1MWZjMGM1MjAwM2UzNTBkYjVkZGUyZDY2ZDgyNDg0Mzcy
ZTQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgKQEAgLTMwLDE1ICszMCwxNiBAQAog
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOwogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsK
IHN0cnVjdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb247CitzdHJ1Y3QgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb247CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5CiAgICAgOiBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyCkBAIC0xMDYsNiAr
MTA3LDYgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDZkZmE3NWY1YzUxZDM4YWJjMWQ1Yjk4
MzQ0NTI0Y2E5YWRhNzNlOWUuLjM3MjhjMmJhYTFhYjIwZGQxYjZkOGNiODUwZjViNDM1OWI3ZDhl
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTI4LDggKzI4LDE2IEBACiAKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisj
aW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KQEAgLTUzLDYgKzYxLDEwIEBAIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OlJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkmIG1hCiAgICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzLCBt
X2VuZ2luZUlkZW50aWZpZXIpOwogfQogCitSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSgpCit7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
aW52YWxpZGF0ZSgpCiB7CiAgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9w
KCk7CkBAIC0xNDMsNiArMTU1LDI1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0
UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBtX3BsYXllci0+c2V0UHJl
c2VydmVzUGl0Y2gocHJlc2VydmVzUGl0Y2gpOwogfQogCitSZWY8UGxhdGZvcm1NZWRpYVJlc291
cmNlPiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBv
cHRpb25zKQoreworICAgIGF1dG8mIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbV9tYW5h
Z2VyLmdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS5yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cigpOworICAgIGF1dG8gcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKKyAgICBhdXRvIHJlbW90ZU1lZGlhUmVz
b3VyY2UgPSBSZW1vdGVNZWRpYVJlc291cmNlOjpjcmVhdGUocmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIsICp0aGlzLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIuYWRkTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgcmVtb3RlTWVkaWFSZXNvdXJjZS5wdHIoKSk7CisKKyAgICBtX3dlYlByb2Nl
c3NDb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6UmVxdWVzdFJlc291cmNlKG1faWQsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSwgW3JlbW90ZU1lZGlhUmVzb3VyY2UgPSByZW1vdGVN
ZWRpYVJlc291cmNlLmNvcHlSZWYoKV0oKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2Ut
PnNldFJlYWR5KHRydWUpOworICAgIH0pOworCisgICAgcmV0dXJuIHJlbW90ZU1lZGlhUmVzb3Vy
Y2U7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cmVtb3ZlUmVzb3VyY2UoUmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIp
Cit7CisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjpSZW1vdmVSZXNvdXJjZShtX2lkLCByZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciksIDApOworfQorCiAvLyBNZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewpAQCAt
Mzg4LDggKzQxOSw3IEBAIENhY2hlZFJlc291cmNlTG9hZGVyKiBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OjptZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkKIAogUmVmUHRyPFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlcj4gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJD
cmVhdGVSZXNvdXJjZUxvYWRlcigpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyKCp0aGlzKSk7CiB9CiAKIGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZG9lc0hh
dmVBdHRyaWJ1dGUoY29uc3QgQXRvbVN0cmluZyYsIEF0b21TdHJpbmcqKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgKaW5kZXggZjVjMjc3MDk5ODkxYWE3YzNlMjg3OWJjNzdjM2EzODMzOTM1MmNkYy4uY2Fm
ZGQ3NTBlZGM4NzUyMjVjMjU3YTA1YjkxNDI0ZTExNzZmNjgyMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBA
IC0yNywzNCArMjcsMzIgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5j
bHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+Ci0KLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotY2xhc3MgTWVkaWFQbGF5ZXI7Ci19CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5OwogCi1jbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5Ci0gICAgOiBwdWJsaWMgTWVk
aWFQbGF5ZXJDbGllbnQgeworY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAorICAg
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+CisgICAgLCBw
dWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkmLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYpOwotICAgIHZpcnR1
YWwgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQotICAgIHsKLSAgICB9CisgICAgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eShSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvbmZpZ3VyYXRpb24mJik7CisgICAgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKTsK
IAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCkBAIC02Miw3ICs2MCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcHJlcGFyZUZvclBsYXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFy
ZUZvclJlbmRlcmluZyk7CiAKLSAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVu
dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3Qg
V2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNhbmNlbExv
YWQoKTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpOwpAQCAtODAsNiArNzgsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdNb2RlKGJvb2wpOwogICAgIHZvaWQgc2V0
UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAKKyAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJl
c291cmNlPiByZXF1ZXN0UmVzb3VyY2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMpOworICAgIHZvaWQg
cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRl
OgogICAgIC8vIE1lZGlhUGxheWVyQ2xpZW50CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtT
dGF0ZUNoYW5nZWQoKSBmaW5hbDsKQEAgLTEyNCwzOSArMTI1LDM5IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtZWRpYVBsYXllcklzRnVsbHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVk
aWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1l
ZGlhUGxheWVySXNWaWRlbygpIGNvbnN0IGZpbmFsOwotICAgIExheW91dFJlY3QgbWVkaWFQbGF5
ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkxheW91dFJlY3Qg
bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlh
UGxheWVyQ29udGVudHNTY2FsZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQ
YXVzZSgpIGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CiAgICAgYm9v
bCBtZWRpYVBsYXllclBsYXRmb3JtVm9sdW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCkgY29uc3Qg
ZmluYWw7Ci0gICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKSBmaW5hbDsKLSAgICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
PiBtZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBm
aW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBt
ZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKCkgZmluYWw7CiAgICAgYm9vbCBkb2VzSGF2
ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3RyaW5nJiwgQXRvbVN0cmluZyogPSBudWxscHRyKSBjb25z
dCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkg
Y29uc3QgZmluYWw7CiAgICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJl
Y3RvcnkoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1Ry
YWNrKEF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFk
ZFRleHRUcmFjayhJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRp
YVBsYXllckRpZEFkZFZpZGVvVHJhY2soVmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2
b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZp
bmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soSW5iYW5kVGV4dFRy
YWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1Ry
YWNrKFZpZGVvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFk
ZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lk
IG1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZh
dGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3Jl
OjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1v
dmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9p
ZCBtZWRpYVBsYXllckRpZFJlbW92ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQ
cml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2so
V2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKIAotICAgIHZvaWQgdGV4dFRyYWNr
UmVwcmVzZW50YXRpb25Cb3VuZHNDaGFuZ2VkKGNvbnN0IEludFJlY3QmKSBmaW5hbDsKKyAgICB2
b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgZmluYWw7CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShBVkZf
Q0FQVElPTlMpCi0gICAgVmVjdG9yPFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFu
ZFRyYWNrU291cmNlcygpIGZpbmFsOworICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6UGxhdGZv
cm1UZXh0VHJhY2s+PiBvdXRPZkJhbmRUcmFja1NvdXJjZXMoKSBmaW5hbDsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50
ZXJmYWNlTmFtZSgpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29r
aWVzKGNvbnN0IFVSTCYsIFZlY3RvcjxDb29raWU+JikgY29uc3QgZmluYWw7CisgICAgYm9vbCBt
ZWRpYVBsYXllckdldFJhd0Nvb2tpZXMoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tp
ZT4mKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyU291cmNl
QXBwbGljYXRpb25JZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgbWVkaWFQ
bGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXll
ckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBj
b25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IG1lZGlhUGxheWVySXNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3QgZmluYWw7CiAgICAg
VmVjdG9yPFN0cmluZz4gbWVkaWFQbGF5ZXJQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygp
IGNvbnN0IGZpbmFsOwogCkBAIC0xNzYsOSArMTc3LDkgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgbV9pZDsKICAgICBSZWY8SVBDOjpDb25uZWN0
aW9uPiBtX3dlYlByb2Nlc3NDb25uZWN0aW9uOwotICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gbV9w
bGF5ZXI7CisgICAgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgbV9tYW5hZ2VyOwotICAgIE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRl
bnRpZmllcjsKICAgICBWZWN0b3I8V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJp
bmdIYXJkd2FyZVN1cHBvcnQ7CiAgICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eT4gbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBs
YXllclN0YXRlIG1fY2FjaGVkU3RhdGU7CkBAIC0xOTEsNiArMTkyLDYgQEAgcHJpdmF0ZToKICNl
bmRpZgogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3Bw
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmE0N2E3ZjExOTNmODIzYWE3ZWQ4MWEwYzc4MjZjNzMyNzNjZGU3NmUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZS5oIgorCisjaWYgRU5BQkxF
KEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxheWVyUHJveHks
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQoreworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2UocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIHJl
bW90ZU1lZGlhUGxheWVyUHJveHksIGlkKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2U6OlJl
bW90ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVNZWRpYVBsYXll
clByb3h5LCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgLCBt
X3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94
eSkpCisgICAgLCBtX2lkKGlkKQorICAgICwgbV9yZWFkeShmYWxzZSkKK3sKK30KKworUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6flJlbW90ZU1lZGlhUmVzb3VyY2UoKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgc3RvcCgpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIucmVtb3ZlTWVkaWFSZXNvdXJjZShtX2lkKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlOjpzdG9wKCkKK3sKKyAgICBpZiAobV9yZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgICAg
ICBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHktPnJlbW92ZVJlc291cmNlKG1faWQpOworfQorCiti
b29sIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25z
dAoreworICAgIHJldHVybiBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9uc2VSZWNlaXZlZChjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2sgPSBkaWRQYXNzQWNj
ZXNzQ29udHJvbENoZWNrOworICAgIGlmIChtX2NsaWVudCkgeworICAgICAgICBtX2NsaWVudC0+
cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKKyAgICAgICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZTo6Tm8pCisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
c3RvcCgpOworCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRDb250aW51ZSk7
CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZWRp
cmVjdFJlY2VpdmVkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQt
PnJlZGlyZWN0UmVjZWl2ZWQoKnRoaXMsIFdURk1vdmUocmVxdWVzdCksIHJlc3BvbnNlLCBbXShh
dXRvJiYpIHsgfSk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6c2hvdWxkQ2FjaGVS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBSZWZQdHI8
UmVtb3RlTWVkaWFSZXNvdXJjZT4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBpZiAobV9jbGll
bnQpCisgICAgICAgIHJldHVybiBtX2NsaWVudC0+c2hvdWxkQ2FjaGVSZXNwb25zZSgqdGhpcywg
cmVzcG9uc2UpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OmRhdGFTZW50KHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVT
ZW50KQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFTZW50KCp0
aGlzLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFSZXNvdXJjZTo6ZGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIGludDY0X3QgbGVuZ3Ro
KQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFSZWNlaXZlZCgq
dGhpcywgZGF0YSwgbGVuZ3RoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nl
c3NDb250cm9sQ2hlY2tGYWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAg
bV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gZmFsc2U7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKCp0aGlzLCBlcnJvcik7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5s
b2FkRmFpbGVkKCp0aGlzLCBlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6
bG9hZEZpbmlzaGVkKCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5s
b2FkRmluaXNoZWQoKnRoaXMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41N2JlMzA5NmQ5NWVlYTAwMzE5ZWNiNjlhNmJkN2M5Njk0MTI3
MTgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2UuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJl
c291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJveHk7CitjbGFzcyBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZSA6IHB1YmxpYyBX
ZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
UmVtb3RlTWVkaWFSZXNvdXJjZT4gY3JlYXRlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiwg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICB+UmVtb3RlTWVkaWFSZXNvdXJjZSgpOworCisgICAgYm9vbCByZWFkeSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmVhZHk7IH0KKyAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFk
eSA9IHJlYWR5OyB9CisKKyAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2UKKyAgICB2b2lkIHN0
b3AoKSBmaW5hbDsKKyAgICBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25zdCBm
aW5hbDsKKworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOworICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CisgICAgdm9pZCBkYXRhU2VudCh1aW50NjRfdCwgdWludDY0X3QpOworICAg
IHZvaWQgZGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqLCBpbnQ2NF90KTsKKyAgICB2b2lkIGFjY2Vz
c0NvbnRyb2xDaGVja0ZhaWxlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAg
dm9pZCBsb2FkRmFpbGVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lk
IGxvYWRGaW5pc2hlZCgpOworCitwcml2YXRlOgorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2UoUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiwgUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CisgICAgV2Vha1B0cjxSZW1vdGVNZWRp
YVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7CisgICAgUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgbV9pZDsKKyAgICBib29sIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xD
aGVjayB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JlYWR5OworfTsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY3MjhhNWI0MDczYjMwZDk0Y2U5NWE2MzBiZmQ2YzVmM2NhMWI4MWYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmll
ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworZW51bSBSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllclR5cGUgeyB9OwordXNpbmcgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBP
YmplY3RJZGVudGlmaWVyPFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMTgyZGU2ZTUyZmMxNjRlYmJhY2U4NmJiMDdmYjFiMDNiZTJkOTMxCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorCisjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5o
IgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICA6IG1fcmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKK3sK
K30KKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIoKQoreworfQorCitSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVJl
c291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
TG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICByZXR1cm4gbV9yZW1vdGVNZWRpYVBsYXllclBy
b3h5LT5yZXF1ZXN0UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjllZWMzNWMwZTNkNWJmODE3MTE2MTRjMTNlZGQwMmRmOTc0YWYxYmUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZUxvYWRlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4K
KyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRl
ciBmaW5hbAorICAgIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
ciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihSZW1v
dGVNZWRpYVBsYXllclByb3h5Jik7CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKTsK
KworICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IHJlcXVlc3RSZXNv
dXJjZShXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgTG9hZE9wdGlvbnMpIGZpbmFsOworCitw
cml2YXRlOgorICAgIFdlYWtQdHI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV9yZW1vdGVNZWRp
YVBsYXllclByb3h5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDBjMjc2N2RkZDBmNjE1NzU0MmIzMTU3
NjEyNTBjZjUzYjdmY2EzYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMzEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCitSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIoKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6flJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6YWRkTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZSogcmVt
b3RlTWVkaWFSZXNvdXJjZSkKK3sKKyAgICBBU1NFUlQoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Y29udGFpbnMocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmFkZChyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3RlTWVk
aWFSZXNvdXJjZSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92
ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Y29udGFpbnMocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpO
byk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSRUxFQVNFX0FTU0VSVChtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdl
dChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVz
cG9uc2VSZWNlaXZlZChyZXNwb25zZSwgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaywgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjpyZWRpcmVjdFJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGlmICghbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSRUxF
QVNFX0FTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAmJiBtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3RlTWVkaWFSZXNv
dXJjZXMuZ2V0KGlkKS0+cmVkaXJlY3RSZWNlaXZlZChXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25z
ZSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6ZGF0YVNlbnQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIHVp
bnQ2NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQoreworICAgIGlm
ICghbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBSRUxFQVNFX0FTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5z
KGlkKSAmJiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1f
cmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+ZGF0YVNlbnQoYnl0ZXNTZW50LCB0b3RhbEJ5
dGVzVG9CZVNlbnQpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRh
UmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0
KGlkKS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9BU1NFUlQobV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNl
cy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCkt
PmRhdGFSZWNlaXZlZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhLmRhdGEoKSks
IGRhdGEuc2l6ZSgpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNv
dXJjZXMuZ2V0KGlkKS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9B
U1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRp
YVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2Vz
LmdldChpZCktPmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChlcnJvcik7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmxvYWRGYWlsZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgaWQsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmICghbV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWFkeSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBSRUxFQVNFX0FTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKGlkKSAm
JiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlYWR5KCkpOworICAgIG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+bG9hZEZhaWxlZChlcnJvcik7Cit9CisKK3ZvaWQgUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmxvYWRGaW5pc2hlZChSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciBpZCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlk
KS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9BU1NFUlQobV9yZW1v
dGVNZWRpYVJlc291cmNlcy5jb250YWlucyhpZCkgJiYgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5n
ZXQoaWQpLT5yZWFkeSgpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPmxv
YWRGaW5pc2hlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2YjlkMzk2OGIxOTc4ODUxZDg5YmYzYzQ3ZmMz
NDEwMTczYWU0NGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNs
dWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
Ik1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5Q2hlY2tl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVz
b3VyY2U7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyCisgICAgOiBwdWJsaWMg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CisgICAgflJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGFkZE1lZGlhUmVzb3VyY2UoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2UqKTsKKyAgICB2b2lkIHJl
bW92ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCitwcml2YXRlOgorICAgIHZvaWQg
cmVzcG9uc2VSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKTsKKyAgICB2b2lkIHJlZGly
ZWN0UmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGRhdGFTZW50KFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCB1aW50NjRfdCwgdWludDY0X3QpOworICAgIHZvaWQgZGF0YVJlY2VpdmVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
KTsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9h
ZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIs
IFJlbW90ZU1lZGlhUmVzb3VyY2UqPiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmM2I1ZmQwY2M0NGNkN2QwMjBhNDg3NmUwNGFiZmI4
NzAxM2I3NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzOCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3NhZ2VzIC0+IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJlc3BvbnNlUmVj
ZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNr
KSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGlu
dWUpIEFzeW5jCisgICAgUmVkaXJlY3RSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkgLT4gKCkgQXN5bmMKKyAgICBEYXRhU2VudChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1Nl
bnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKKyAgICBEYXRhUmVjZWl2ZWQoV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEpCisgICAgQWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9h
ZEZhaWxlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIExvYWRGaW5pc2hlZChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGYyZTllZDdhYjU0MDJlZjUxMTg4ZjdlOGRiZTM5
NmJhOGFjZTBmYWQuLjI1N2IwMGViODYwODgxNWFjODliNTcyNWI1YWIyMTQ5MzA3OWYxOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3
IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAg
ICdXZWJLaXQ6OkFjdGl2aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVy
SG9zdGluZ0NvbnRleHRJRCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAxOTE2ZGIzZDY1
YjY1ZWNkYzVlMDBlYTdlYzAxZWZkYzY1NjYxMGZmLi43ODU4MGNlNzAzM2UzNzk3N2E4ZGVlNmZm
YTQ0NTgxMGM2OWRkMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTI0LDYgKzI0LDExIEBACiBHUFVQcm9j
ZXNzL0dQVVByb2Nlc3MuY3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCiBHUFVQcm9jZXNzL0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisvL0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisvL0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlLmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuY3BwCiAKIE5ldHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcApAQCAtNTAyLDggKzUw
Nyw5IEBAIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9u
cy5jcHAKIFdlYlByb2Nlc3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmNwcAogCiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKLVdl
YlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKLVdlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorLy9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCisvL1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBhNGFhNTVlMmFhMTlhMTQ2NjI1NGJi
ZjFiYmM3MjI4OTliNmM2Mjc4Li4wMjNkYmQzOTRkNDU2ZmRkZDExOGFhOWI2NmQ4MjkyMGY2MjE2
MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC01OSw4ICs1OSw2IEBAIE5ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDU29ja2V0LmNwcAogCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9j
ZXNzSU9TLm1tCiBHUFVQcm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCi1HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCi1HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQ
Q1NlcnZpY2UvR1BVU2VydmljZUVudHJ5UG9pbnQubW0KIAogUGxhdGZvcm0vY2YvTW9kdWxlQ0Yu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBlM2I5MTkyMGM5YjhhM2YzNmEwYmQxNDhjYTg1OGRiZGRjYjNhMDg3Li5mNjZjMTZiYmZj
YWUwNGYzNmM4ZTUwOGE5MDc1Njg5ZWM3MDliZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQwNyw3ICs0MDcsMjAgQEAKIAkJMUNB
OEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4
MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTFDQkJF
NEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RTE5
QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9
OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUYx
OUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQz
MkY4OUMyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUIyM0E4NEJB
NjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovOyB9OworCQkxRDMyRjg5
RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODlEMjNBODRDNUIw
MEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovOyB9OworCQkxRDNBQjA1
MDIzQUMwMUEwMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNUVGQUQyMzlC
MDI0NTAwQTUzOEE5IC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLzsgfTsK
KwkJMUQzQUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCQUYzNTcy
M0EyQ0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovOyB9OworCQkx
RDNBQjA1MjIzQUMwMUFFMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5OTIzQTg0Njgw
MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgKi87IH07CisJCTFEM0FCMDUzMjNB
QzAxQjMwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEM0FCMDRFMjNBQjAwOUIwMDVD
MUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTQy
M0FDMDFCNzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQTQwODlFMjNBODI3Nzgw
MDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0FC
MDU1MjNBQzAxRjMwMDVDMUZGMCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxMzEyMzlCM0Iw
QzAwOTU5OEUyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi87IH07CisJCTFEM0FC
MDU2MjNBQzAxRjYwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxMzAyMzlCM0Iw
QzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi87IH07CisJCTFENEQ3
MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQ0RDczNzYyM0E5
RUQxODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3
NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1Jl
cGxpZXMuaCAqLzsgfTsKIAkJMUQ2N0IzMzkyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRD
YWxsYmFja0lELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAqLzsg
fTsKKwkJMURBNDA4OTUyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREE0
MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLzsg
fTsKIAkJMURCMDE5NDMyMTFDRjAwMjAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFMEQwOTUyMTFDQzIxMzAw
NDM5QjVGIC8qIFdLU2hhcmVTaGVldC5oICovOyB9OwogCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIz
RTggLyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMURCQkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAq
LzsgfTsKIAkJMUYzMzVCQzAxODVCODRGMDAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxv
YWREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUYzMzVCQkYxODVCODREODAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxl
Z2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0yNjIwLDkgKzI2MzMsMjIgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYklu
c3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9XZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNU
U19ESVI7IH07CiAJCTFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1dlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJV
SUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYklu
c3BlY3RvclVJTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CisJCTFEMzJGODk4MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODlEMjNBODRDNUIwMEIx
RUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMUQzMkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDNBQjA0RDIzQUIwMDcyMDA1QzFGRjAg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDRF
MjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVk
U291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNkMyM0E5
REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBE
ZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMu
aDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNzUyM0E5RUI2
ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUQ2N0IzMzgyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlU2hlZXRDYWxsYmFja0lELmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5RTIz
QTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlC
NUYgLyogV0tTaGFyZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
U2hhcmVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREUyREZBQzIzQTk1
OUY4MDAzRTAxM0EgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUYwMTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJ
bkZyYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1Bs
dWdJbkZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERD
MTUwMEY5Mjg4NCAvKiBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tX
ZWJQcm9jZXNzUGx1Z0luRnJhbWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXS1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00ODYzLDcgKzQ4ODksNyBAQAogCQlERjU4QzYzMTEzNzFBQzU4MDBG
OUEzN0MgLyogTmF0aXZlV2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOYXRpdmVXZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCURGNThDNjM1MTM3MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxF
dmVudE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlE
RTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFZGl0aW5nUmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTExNUM3
MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IGZpbGU7IG5hbWUgPSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJp
dmVkU291cmNlcy9XZWJLaXQyL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8q
IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBjb20u
YXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL2Nv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJRTEzM0ZEODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFt
ZSA9IFdlYktpdC5pY25zOyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5pY25zOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1By
b2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTUxMTQsNiArNTE0MCw4IEBACiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5
OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNC
MEMwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJMDdCM0I0NkYyM0FCMkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAq
LywKKwkJCQkxRDMyRjg5RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5LmNwcCAqLywKKwkJCQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5LmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTUxMjcsNiArNTE1NSwxNCBAQAogCQkJCTA3QkFGMzU3MjNBMkND
MTkwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCAqLywKIAkJCQkwN0JBRjM1
NjIzQTJDQzE3MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovLAogCQkJCTA3
QjNCNDc1MjNBRDg5MDQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJh
dGlvbi5oICovLAorCQkJCTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlLmNwcCAqLywKKwkJCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZS5oICovLAorCQkJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovLAorCQkJCTFEM0FCMDRFMjNBQjAwOUIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJCQkxRDNBQjA0RDIzQUIw
MDcyMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTFEQTQw
ODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8s
CisJCQkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmggKi8sCisJCQkJMUQzMkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC05Mjg0LDYgKzkzMjAsOSBAQAogCQkJCTA3OTIz
MTQ1MjM5Q0JDQjcwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMDc5MjMxNDYyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkwNzkyMzE0MjIzOUNC
Q0I1MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxp
ZXMuaCAqLywKKwkJCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFENEQ3MzZDMjNBOURGNjAw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJ
MUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUFDMTMzODMxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90
ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUMxMzM4NDE4NTkw
QzQ2MDBGM0VDMDUgLyogUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oICovLAogCQkJCTBG
NTk0N0E1MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMDE3OCw2ICsxMDIxNywxMCBAQAogCQkJCTA3OTIzMTRD
MjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3QjNCNDcwMjNBQjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENEQ3MzcxMjNBOUU1NjIw
MDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMzJGODlDMjNB
ODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxQjc4NDcxMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90
ZU9iamVjdEludm9jYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQw
MEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTc4
OCw2ICsxMTgzMSw3IEBACiAJCQkJMjk4NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTQ0OUQ5MERBMjFGREMzMEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29m
dExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyog
TG9nZ2luZy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJB
NzgxMjEyQjZBNzEwMEY0OTNGRCAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQ5MkE3ODIyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3N0EyMTJCNkE2MTAwRjQ5M0ZEIC8qIE1vZHVsZS5jcHAg
aW4gU291cmNlcyAqLywKQEAgLTExODQ0LDggKzExODg4LDE2IEBACiAJCQkJMkQ3MkExRkEyMTJC
RjQ2RTAwNTE3QTIwIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZGMjRBMkQxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThG
QjQyMThBNkU5RTAwMjVBODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQzQUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyog
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTFEM0FCMDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIg
LyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMUQzQUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYw
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTMy
M0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUQzQUIwNTQyM0FDMDFCNzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0Ey
NSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxRDMyRjg5RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMw
NSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjU5NDdBNzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEy
NUNGRDAwN0NEMzNEIC8qIFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUz
OGNhNGE3Njk3NDIxNTgwLi5iOGU0NzY3ZmMwMGQ0OTMxZTRkOGExMzRiYmIzY2RlOGQ0Njc2ZTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3ND
b25uZWN0aW9uLmNwcApAQCAtNjUsNyArNjUsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9u
OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbgog
dm9pZCBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tV2ViUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+
KCktPmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaApp
bmRleCA4NTNjYzE2NTUwOTRiYjUyNDIxZmI2Y2ZhMWMzMTlhOTY0NzFjMDk0Li4zMWM2MTA0NjY5
ZjJmMDJmZmE0NDBmZWI4ODA5MjZjNzRhZTI2YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1l
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKLSAgICAvLyBU
aGUgY29ubmVjdGlvbiBmcm9tIGEgd2ViIHByb2Nlc3MgdG8gdGhpcyBHUFUgcHJvY2Vzcy4KKyAg
ICAvLyBUaGUgY29ubmVjdGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nl
c3MuCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGZjMzJlZDA1N2Q5MzhlNzMxMDFjYzBjOTEyODY3
ZTcwZmNhNmJmZjAuLjdiNDk2ODI4MzlhYjhhZDg2OTc5Y2ZjMmRkZTIzMTc5MmZhN2MwMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgZXh0ZXJuIFdU
RkxvZ0NoYW5uZWwgTG9nTWVkaWE7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci11c2lu
ZyBuYW1lc3BhY2UgUEFMOworCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogI2lmZGVmIEFM
V0FZU19MT0dfVU5JTVBMRU1FTlRFRF9NRVRIT0RTCkBAIC02Myw2ICs2Myw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRp
YUVuZ2luZUlkZW50aWZpZXIgZW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIm
IG1hbmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJh
dGlvbikKICAgICA6IG1fcGxheWVyKHBsYXllcikKKyAgICAsIG1fbWVkaWFSZXNvdXJjZUxvYWRl
cihwbGF5ZXItPmNyZWF0ZVJlc291cmNlTG9hZGVyKCkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdl
cikKICAgICAsIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcihlbmdpbmVJZGVudGlmaWVyKQogICAg
ICwgbV9pZChwbGF5ZXJJZGVudGlmaWVyKQpAQCAtNzk5LDYgKzgwMCwyMSBAQCBib29sIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6c2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWVzdFJl
c291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpCit7CisgICAg
QVNTRVJUKCFtX21lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyKSk7CisgICAgYXV0byByZXNvdXJjZSA9IG1fbWVkaWFSZXNvdXJjZUxvYWRlci0+cmVx
dWVzdFJlc291cmNlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworICAgIC8vIFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSBvd25zIHRoZSBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQKKyAgICBy
ZXNvdXJjZS0+c2V0Q2xpZW50KG1ha2VVbmlxdWU8UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Piht
X21hbmFnZXIuZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgcmVzb3VyY2UuZ2V0KCksIHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyKSk7CisgICAgbV9tZWRpYVJlc291cmNlcy5hZGQocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVzb3VyY2UpKTsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIC8vIFRo
ZSBjbGllbnQoUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KSB3aWxsIGJlIGRlc3Ryb3llZCBhcyB3
ZWxsCisgICAgbV9tZWRpYVJlc291cmNlcy5yZW1vdmUocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIpOworfQorCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmxvZ0NoYW5uZWwoKSBjb25zdAogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKaW5kZXggNjg4NzJhZWJjZjBlZTBkOTVjMWY2YTZhNzY2NDA4N2YxMGRh
OGY1ZC4uZmFhMmVjOWEzMjFiNzg0OWQ0Njg2MTRmY2U4YmE5OTcxMWExZDcyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNp
bmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpA
QCAtMzksMjIgKzQxLDIzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUgZmluYWwKICAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU+Ci0gICAgLCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAj
aWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgogI2Vu
ZGlmCiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU+IGNyZWF0ZShNZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1z
OjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXImIG1hbmFnZXIsIGNvbnN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29u
ZmlndXJhdGlvbikKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZT4gY3JlYXRlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBwbGF5ZXIsIFdlYkNvcmU6Ok1l
ZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlm
aWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZp
ZXIsIGlkZW50aWZpZXIsIG1hbmFnZXIsIGNvbmZpZ3VyYXRpb24pOwogICAgIH0KIAotICAgIGV4
cGxpY2l0IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZShNZWRpYVBsYXllciosIE1lZGlhUGxheWVy
RW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5
ZXJDb25maWd1cmF0aW9uJik7Ci0gICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
KCk7CisgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwg
V2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBs
YXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBj
b25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mKTsKKworICAgIH5NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9pbnZhbGlkID0g
dHJ1ZTsgfQotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1v
dGVFbmdpbmVJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyOyB9CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2lu
ZUlkZW50aWZpZXI7IH0KICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllckl0ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKICAgICB2b2lkIG5ldHdv
cmtTdGF0ZUNoYW5nZWQoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKQEAgLTY5LDYgKzcyLDkg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUoUmVtb3RlTWVkaWFQbGF5ZXJT
dGF0ZSYmKTsKICAgICB2b2lkIGNoYXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBi
b29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsK
IAorICAgIHZvaWQgcmVxdWVzdFJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyk7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAg
ICBjb25zdCBMb2dnZXImIGxvZ2dlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xvZ2dlcjsg
fQogICAgIGNvbnN0IGNoYXIqIGxvZ0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGUiOyB9CkBAIC03NywxNCArODMsMTQgQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENv
bnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgdm9pZCBwcmVwYXJlRm9yUGxh
eWJhY2soYm9vbCBwcml2YXRlTW9kZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJlc2Vy
dmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7CisgICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYs
IGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7
CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcm
LCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KikgZmluYWw7CiAjZW5k
aWYKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotICAgIHZvaWQgbG9hZChNZWRpYVN0cmVhbVBy
aXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRl
JikgZmluYWw7CiAjZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKSBmaW5hbDsKIApAQCAtMTA2
LDkgKzExMiw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICB2b2lkIHNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxz
Y3JlZW5JbmxpbmVJbWFnZSgpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUoRmxvYXRSZWN0KSBmaW5hbDsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHko
TWVkaWFQbGF5ZXI6OlZpZGVvR3Jhdml0eSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKE1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCkgZmluYWw7Cisg
ICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5HcmF2aXR5KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpW
aWRlb0dyYXZpdHkpIGZpbmFsOworICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShXZWJD
b3JlOjpNZWRpYVBsYXllcjo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAgICAgdm9pZCB2
aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5Q2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKQEAgLTExOCw3
ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBlcnJvckxvZygpIGNvbnN0IGZpbmFsOwog
I2VuZGlmCiAKLSAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVy
aW5nUG9saWN5KSBmaW5hbDsKKyAgICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNQ
aWN0dXJlSW5QaWN0dXJlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxzY3Jl
ZW4oKSBjb25zdCBmaW5hbDsKQEAgLTEyNiw3ICsxMzIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBjYW5TYXZlTWVkaWFEYXRhKCkgY29uc3QgZmluYWw7CiAKLSAgICBGbG9hdFNpemUgbmF0dXJh
bFNpemUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbDsKICAgICBi
b29sIGhhc0F1ZGlvKCkgY29uc3QgZmluYWw7CkBAIC0xNTksMjkgKzE2NSwyOSBAQCBwcml2YXRl
OgogICAgIGRvdWJsZSBtYXhGYXN0Rm9yd2FyZFJhdGUoKSBjb25zdCBmaW5hbDsKICAgICBkb3Vi
bGUgbWluRmFzdFJldmVyc2VSYXRlKCkgY29uc3QgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllcjo6
TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FjaGVk
U3RhdGUubmV0d29ya1N0YXRlOyB9Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlT
dGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FjaGVkU3RhdGUucmVhZHlTdGF0ZTsgfQor
ICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGU7IH0KKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVrYWJsZSgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmlu
YWw7CiAKICAgICBNZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsK
ICAgICBNZWRpYVRpbWUgbWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IGZpbmFs
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZl
cmVkKCkgY29uc3QgZmluYWw7CiAgICAgZG91YmxlIHNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2Rp
ZmllZFRpbWUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKCkg
Y29uc3QgZmluYWw7CiAKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgc2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgZmluYWw7CiAKLSAgICB2b2lkIHBhaW50KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcGFpbnQoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAK
LSAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNv
bnN0IEZsb2F0UmVjdCYpIGZpbmFsOwotICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0s
IEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0sIGJvb2wsIGJvb2wpIGZpbmFs
OwotICAgIE5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsK
KyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIGJvb2wgY29weVZp
ZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiwg
UGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEZW51bSwg
R0MzRGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRy
IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0UHJlbG9h
ZChNZWRpYVBsYXllcjo6UHJlbG9hZCkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVsb2FkKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjpQcmVsb2FkKSBmaW5hbDsKIAogICAgIGJvb2wgaGFzQXZhaWxhYmxl
VmlkZW9GcmFtZSgpIGNvbnN0IGZpbmFsOwogCkBAIC0xOTIsMTQgKzE5OCwxNCBAQCBwcml2YXRl
OgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBTdHJpbmcgd2ly
ZWxlc3NQbGF5YmFja1RhcmdldE5hbWUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllcjo6
V2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUgd2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUoKSBj
b25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1Rh
cmdldFR5cGUgd2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAg
IGJvb2wgd2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICB2
b2lkIHNldFdpcmVsZXNzVmlkZW9QbGF5YmFja0Rpc2FibGVkKGJvb2wpIGZpbmFsOwogCiAgICAg
Ym9vbCBjYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgZmluYWw7CiAgICAg
Ym9vbCBpc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkgY29uc3QgZmluYWw7Ci0gICAg
dm9pZCBzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYm
KSBmaW5hbDsKKyAgICB2b2lkIHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPFdlYkNvcmU6
Ok1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRTaG91bGRQbGF5
VG9QbGF5YmFja1RhcmdldChib29sKSBmaW5hbDsKICNlbmRpZgpAQCAtMjE2LDkgKzIyMiw5IEBA
IHByaXZhdGU6CiAKICAgICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBkaWRQYXNzQ09SU0FjY2Vzc0NoZWNrKCkgY29uc3QgZmluYWw7Ci0gICAg
T3B0aW9uYWw8Ym9vbD4gd291bGRUYWludE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNv
bnN0IGZpbmFsOworICAgIE9wdGlvbmFsPGJvb2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpN
b3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3QgZmluYWw7CiAK
ICAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKSBmaW5hbDsKIApAQCAtMjM0LDI1ICsyNDAs
MjUgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBmaW5h
bDsKIAogI2lmIEVOQUJMRShXRUJfQVVESU8pCi0gICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVk
aW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOworICAgIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlk
ZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExF
R0FDWV9FTkNSWVBURURfTUVESUEpCi0gICAgc3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNETVNlc3Np
b24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCop
IGZpbmFsOwotICAgIHZvaWQgc2V0Q0RNU2Vzc2lvbihMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNl
c3Npb24oY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZp
bmFsOworICAgIHZvaWQgc2V0Q0RNU2Vzc2lvbihXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uKikg
ZmluYWw7CiAgICAgdm9pZCBrZXlBZGRlZCgpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQotICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5j
ZSYpIGZpbmFsOwotICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZp
bmFsOwotICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYp
IGZpbmFsOworICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5j
ZSYpIGZpbmFsOworICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChXZWJDb3JlOjpDRE1JbnN0
YW5jZSYpIGZpbmFsOworICAgIHZvaWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShXZWJD
b3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOwogICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0
IGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgYm9vbCByZXF1
aXJlc1RleHRUcmFja1JlcHJlc2VudGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRU
ZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOwor
ICAgIHZvaWQgc2V0VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVw
cmVzZW50YXRpb24qKSBmaW5hbDsKICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5h
bDsKICAgICB2b2lkIHRyYWNrc0NoYW5nZWQoKSBmaW5hbDsKICNlbmRpZgpAQCAtMjcyLDcgKzI3
OCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGVuZGVkKCkgY29uc3QgZmluYWw7CiAKLSAgICBP
cHRpb25hbDxWaWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5
TWV0cmljcygpIGZpbmFsOworICAgIE9wdGlvbmFsPFdlYkNvcmU6OlZpZGVvUGxheWJhY2tRdWFs
aXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzKCkgZmluYWw7CiAKICNpZiBF
TkFCTEUoQVZGX0NBUFRJT05TKQogICAgIHZvaWQgbm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpIGZp
bmFsOwpAQCAtMjkzLDE5ICsyOTksMjIgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSWdu
b3JlSW50cmluc2ljU2l6ZSgpIGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsg
bnVsbHB0ciB9OwotICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBtX21hbmFnZXI7Ci0gICAg
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRl
bnRpZmllcjsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07
CisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRp
YVJlc291cmNlTG9hZGVyOworICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2Vy
OworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBt
X3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBtX2lkOwogICAgIFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBtX2NvbmZp
Z3VyYXRpb247CiAKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRp
bWVSYW5nZXM7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdl
cz4gbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5nZXM7CisKKyAgICBIYXNoTWFwPFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLCBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
Pj4gbV9tZWRpYVJlc291cmNlczsKIAogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBk
b3VibGUgbV9yYXRlIHsgMSB9OwogICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsK
LSAgICBNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1fbW92aWVMb2FkVHlwZSB7IE1l
ZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGU6OlVua25vd24gfTsKKyAgICBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1fbW92aWVMb2FkVHlwZSB7IFdlYkNvcmU6
Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1f
aGFzQXVkaW8geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLmgKaW5kZXggODdlN2I4YmJhZWMzNTM0ZTdkZWZkNzgyMzg2MTAxNDMyMTc1Mzhj
Ny4uMjU2YjNjNTlmYmU0MmI2YmMxYTMwNjcxZTcwMGE1NzM0ZGRiOWY1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlIDx3dGYv
T2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTMyLDQgKzM0LDYg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiBlbnVtIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
PSBPYmplY3RJZGVudGlmaWVyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBl
PjsKIAotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IGNlZTZiNTUyNjk4MmFmZjQx
MWJmMDQxNWVjODIwNTI1MGU4OTk5ZDMuLjAxZjNmOTkxNGU1MDc2MDUwZGMxMTg2YmE1OTk3ZjFj
N2MzMTE5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC00MSw2ICs0Myw3IEBACiAjaW5jbHVkZSA8d3RmL0Fz
c2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVzaW5nIG5hbWVzcGFjZSBQQUw7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTY1LDcgKzE2OCw3IEBAIHZvaWQgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBsYXllckVudW1z
OjpNZWRpYUVuZ2luZUlkCiAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7CiB9CiAKLU1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVB
bmRDb2RlY3MoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBNZWRpYUVuZ2lu
ZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIC8vIEZJWE1FOiBzdXBwb3J0
ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0aGVtLgogCkBAIC0xODEsOSArMTg0LDkgQEAg
Ym9vbCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzS2V5U3lzdGVtKE1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLUhhc2hTZXQ8
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgpCitIYXNoU2V0
PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6b3JpZ2lu
c0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIFZlY3RvcjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbkRhdGE7CisgICAgVmVjdG9yPFNlY3Vy
aXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKICAgICBpZiAoIWdwdVByb2Nlc3NDb25uZWN0aW9u
KCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpPcmln
aW5zSW5NZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgpLCBNZXNzYWdlczo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Ok9yaWdpbnNJbk1lZGlhQ2FjaGU6OlJlcGx5
KG9yaWdpbkRhdGEpLCAwKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMTk5LDcgKzIwMiw3
IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGUoTWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVuCiAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2xlYXJNZWRpYUNh
Y2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgsIG1vZGlmaWVkU2luY2UpLCAwKTsKIH0K
IAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdp
bnMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQdHI8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgs
IGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMpCiB7CiAgICAg
YXV0byBvcmlnaW5EYXRhID0gV1RGOjptYXAob3JpZ2lucywgW10gKGF1dG8mIG9yaWdpbikgewog
ICAgICAgICByZXR1cm4gb3JpZ2luLT5kYXRhKCk7CkBAIC0yMTAsNTUgKzIxMyw1NSBAQCB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhNZWRp
YVBsYXllckVudW1zOjpNZWRpYQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bmV0
d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBS
ZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVy
cy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoV1RGTW92ZShz
dGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVhZHlTdGF0ZUNo
YW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQ
bGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5n
ZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
ICAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0YXRlKSk7CiB9CiAK
LXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKFdlYktpdDo6TWVk
aWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVtZSkKK3ZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiB7Ci0gICAgaWYgKGF1dG8gcGxh
eWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnZvbHVtZUNoYW5nZWQodm9sdW1lKTsK
IH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRlKQordm9pZCBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBt
X3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJz
LmdldChpZCkpCiAgICAgICAgIHBsYXllci0+bXV0ZUNoYW5nZWQobXV0ZSk7CiB9CiAKIHZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0
ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAo
Y29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+
dGltZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlm
IChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBw
bGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5kdXJhdGlvbkNoYW5n
ZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
cmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
LCBkb3VibGUgcmF0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdl
ZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKIHsK
LSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3Qg
YXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+cmF0ZUNo
YW5nZWQocmF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpwbGF5YmFj
a1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIGJvb2wgcGF1c2VkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnBsYXliYWNr
U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wg
cGF1c2VkKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAg
IGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxh
eWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChwYXVzZWQpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgbG9uZyBwbGF0Zm9ybUVycm9yQ29kZSkKIHsKLSAgICBp
ZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYg
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+ZW5naW5lRmFpbGVk
VG9Mb2FkKHBsYXRmb3JtRXJyb3JDb2RlKTsKIH0KIApAQCAtMjY3LDYgKzI3MCwyMCBAQCB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUgogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQogICAgICAgICBwbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZChoYXNBdWRpbywgaGFz
VmlkZW8sIGxvYWRUeXBlKTsKIH0KKyAgICAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpyZXF1ZXN0UmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwg
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRl
cjo6TG9hZE9wdGlvbnMgb3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5yZXF1ZXN0UmVzb3VyY2UocmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworCisgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlbW92
ZVJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQorewor
ICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAg
cGxheWVyLT5yZW1vdmVSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7Cit9
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAppbmRleCBj
M2MyNzdhYzg4YzM0ZGM2MDlhY2FjZmVlZDZhZTU5NzgzMjhmMTQyLi4yNDg4MTQ0MzA5NWU1MTEz
MWRlODY2N2FmM2I2MTMxMTBkYWVjMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
LmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBs
ZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC01Nyw3ICs1OCw3
IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24o
KSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsg
fQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtODIsNiArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
ZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciwgbG9uZyk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJik7CiAg
ICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKKyAgICB2b2lkIHJlcXVlc3RSZXNvdXJj
ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAKICAgICBmcmllbmQg
Y2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3VwcG9ydGVkVHlw
ZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBIYXNo
U2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA0NjU4YTdhMjhmNmM3OGUxMGNlMDU0
NWQ3MGZmYzNmZmM1MGRkYzNjLi4xODBmMjYzMjM2M2Y1MDZkZWJjMmExZTg3MzY5NmFmYzllN2Y2
NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAt
MjEsMTAgKzIxLDkgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAKLSNpZiBFTkFCTEUoVklERU8pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQog
CiBtZXNzYWdlcyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7Ci0K
ICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBzdGF0
ZSkKICAgICBSZWFkeVN0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3Rh
dGUpCiAgICAgVm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCkBAIC0zNiw2ICszNSw5IEBAIG1lc3NhZ2VzIC0+
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKICAgICBFbmdpbmVGYWls
ZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBp
bnQgcGxhdGZvcm1FcnJvckNvZGUpCiAgICAgVXBkYXRlQ2FjaGVkU3RhdGUoV2ViS2l0OjpNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBzdHJ1Y3QgV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIENoYXJhY3RlcmlzdGljQ2hhbmdlZChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgaGFzQXVkaW8sIGJv
b2wgaGFzVmlkZW8sIGVudW06dWludDhfdCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3Zp
ZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUpCisKKyAgICBSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIsIFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2Fk
T3B0aW9ucyBvcHRpb25zKSAtPiAoKSBBc3luYworICAgIFJlbW92ZVJlc291cmNlKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDczMDUwNWVlZGUzZWY3OWU2MWU2ZDQ2ZmQ5ODdmMjVj
MjEyMDJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJj
ZVByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
IgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UqIHBsYXRmb3JtTWVk
aWFSZXNvdXJjZSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCisgICAgOiBtX2Nv
bm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fcGxhdGZvcm1NZWRpYVJlc291
cmNlKHBsYXRmb3JtTWVkaWFSZXNvdXJjZSkKKyAgICAsIG1faWQoaWQpCit7Cit9CisKK1JlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSgpCit7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
IHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6
OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXI6OlJlc3BvbnNlUmVjZWl2ZWQobV9pZCwgcmVzcG9uc2UsIG1fcGxhdGZvcm1NZWRpYVJlc291
cmNlLT5kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVlKTsKKyAgICB9KTsKK30K
Kwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVkaXJlY3RSZWNlaXZlZChtX2lkLCByZXF1
ZXN0LCByZXNwb25zZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfSk7Cit9CisKK2Jvb2wg
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRDYWNoZVJlc3BvbnNlKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKQor
eworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6
ZGF0YVNlbnQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBs
b25nIGJ5dGVzU2VudCwgdW5zaWduZWQgbG9uZyBsb25nIHRvdGFsQnl0ZXNUb0JlU2VudCkKK3sK
KyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjpEYXRhU2VudChtX2lkLCBieXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCksIDApOwor
fQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVJlY2VpdmVkKFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCit7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6RGF0YVJlY2VpdmVkKG1faWQsIElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihkYXRhKSwgbGVuZ3RoKSksIDApOworfQorCit2b2lkIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9y
KQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OkFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChtX2lkLCBlcnJvciksIDApOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZhaWxlZChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikK
K3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjpMb2FkRmFpbGVkKG1faWQsIGVycm9yKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFSZXNvdXJjZVByb3h5Ojpsb2FkRmluaXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlJikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjpMb2FkRmluaXNoZWQobV9pZCksIDApOworfQorCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmNhMWZmYzQ0ODRhZTE2NjJlN2Yx
NGNhMTc2NWVjYjVjYjBkNzQ2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BvbGljeUNoZWNrZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2VDbGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UqLCBSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcik7CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSgpOworCitwcml2YXRlOgor
ICAgIC8vIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudAorICAgIHZvaWQgcmVzcG9uc2VSZWNl
aXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpTaG91bGRDb250aW51ZSk+JiYpIGZpbmFsOworICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZl
ZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmKSBmaW5hbDsKKyAgICBib29sIHNo
b3VsZENhY2hlUmVzcG9uc2UoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOworICAgIHZvaWQgZGF0YVNlbnQoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBsb25nLCB1bnNpZ25l
ZCBsb25nIGxvbmcpIGZpbmFsOworICAgIHZvaWQgZGF0YVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqLCBpbnQpIGZpbmFsOworICAgIHZvaWQgYWNj
ZXNzQ29udHJvbENoZWNrRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRGYWlsZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpIGZpbmFsOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYpIGZpbmFsOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0
aW9uOworICAgIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSogbV9wbGF0Zm9ybU1lZGlh
UmVzb3VyY2U7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgbV9pZDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386514</attachid>
            <date>2019-12-30 01:10:50 -0800</date>
            <delta_ts>2019-12-30 01:18:13 -0800</delta_ts>
            <desc>Update the patch based on comments from Youenn and Eric</desc>
            <filename>bug-205379-20191230011049.patch</filename>
            <type>text/plain</type>
            <size>129364</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZiODI4ODUzZjE4ZTQ0
ZjI5MzZmZWE1YmIyYzQ5ZGIxYjc3YTRkZS4uNmM0NTk4OTU5ODk1NDc4N2U3OGE5MTRiYTNiMDlm
OTM1NTFhOTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBkZWZpbml0aW9ucyBvZiBT
aG91bGRDb250aW51ZTogV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2hvdWxkQ29u
dGludWUKKyAgICAgICAgYW5kIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlLiBUaGlzIHBhdGNoIG1v
dmVzIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlIHRvCisgICAgICAgIFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlIGluIG9yZGVyIHRvIHN1cHBvcnQgdHJhbnNtaXR0aW5nIGl0
IGluIFhQQyBtZXNzYWdlcy4KKworICAgICAgICBUZXN0czogbWVkaWEvYXVkaW8tcGxheS13aXRo
LXZpZGVvLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvYXVkaW8tcGxheS5odG1s
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVzb3Vy
Y2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQ6OnJlc3Bv
bnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1p
bmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVO
U1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICgt
W1dlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzayByZXNvdXJjZTpyZWNlaXZlZFJlc3BvbnNlOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorCiAyMDE5LTEyLTI5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CiAKICAgICAgICAgVHdlYWsgdGhlIGZvcm1hdCBhbmQgY29tbWVudCBpbiB0aGUg
Y29kZSB0byBzdXBwb3J0IG1lZGlhIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYwOTNhNDUx
MzA0Yzg4NmIzYTJlMTMxMDJiMDg5MDIzYmJkOGM2YjUuLmNhMWMyY2ZlNGY2MTYyZjIyZTAxMjZh
ZWUyMGYwMzRkYjZhY2MxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDE5LTEyLTMw
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBt
ZWRpYSByZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhlIEdQVSBwcm9jZXNzLCB0aGUg
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlciBjcmVhdGVzIFJlbW90ZU1lZGlhUmVzb3VyY2Uocyks
CisgICAgICAgIHdoaWNoIHdpbGwgbm90aWZ5IHRoZSBtZWRpYSByZXNvdXJjZSBjbGllbnRzIChX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQpLgorICAgICAgICBUaGVuIHRoZSBkYXRh
IHdpbGwgYmUgZm9yd2FyZGVkIHRvIEFWRm91bmRhdGlvbi4KKworICAgICAgICBJbiB0aGUgV2Vi
IHByb2Nlc3MsIE1laWRhUmVzb3VyY2VMb2FkZXIgY3JlYXRlcyBNZWRpYVJlc291cmNlKHMpLCB3
aGljaCB0YWtlIGNhcmUgb2YKKyAgICAgICAgZG93bmxvYWRpbmcgbWVkaWEgZGF0YSB0aHJvdWdo
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSByZWNlaXZlZCBkYXRhIHdpbGwgYmUgZm9yd2FyZGVk
IHRvCisgICAgICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSwgd2hpY2ggd2lsbCBmb3J3YXJk
IHRoZSBkYXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nIFJlbW90ZU1lZGlhUmVzb3VyY2UKKyAgICAg
ICAgdGhyb3VnaCBYUEMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBs
YXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cmVx
dWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpSZW1vdGVN
ZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6flJl
bW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0Fj
Y2Vzc0NvbnRyb2xDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2U6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZTo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpyZWFkeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6
OnNldFJlYWR5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZUxvYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
YWRkTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWNjZXNzQ29udHJvbENoZWNr
RmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Omxv
YWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6b3JpZ2luc0luTWVk
aWFDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xl
YXJNZWRpYUNhY2hlRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZh
aWxlZFRvTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2Vi
UHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eTo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmluaXNoZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOiBB
ZGRlZC4KKwogMjAxOS0xMi0yOSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAg
ICAgICAgIFR3ZWFrIHRoZSBmb3JtYXQgYW5kIGNvbW1lbnQgaW4gdGhlIGNvZGUgdG8gc3VwcG9y
dCBtZWRpYSBpbiBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggNjM3NWY1MDYyNDE1NmM5ZjQ4YWI3Zjc0YzYxOTZmNTEzZjU5ZjdkZC4uMjJlYjhkMDQz
YjM4MDM3NWNhNWUwZGI1ZjY3ZTFhYzRkODc2NmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC0xMzgwLDcgKzEzODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
VVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJl
ZgogCiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZWZmZWN0aXZlRnJhbWVOYW1lLmlzRW1wdHko
KSkgewogICAgICAgICBhY3Rpb24gPSBhY3Rpb24uY29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG1fZnJhbWUsIGZy
YW1lTG9hZFJlcXVlc3QpKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3Rh
dGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8
Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11
dGFibGUgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RG
TW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGVmZmVj
dGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVy
UG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVh
c2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+
JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51
ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250
aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3kpOwogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7CkBAIC0xNDYzLDcgKzE0NjMs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQog
CiAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSkgewogICAgICAg
ICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiB7IHJlcXVlc3QucmVxdWVzdGVyKCksIHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCksIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duLCBOYXZpZ2F0
aW9uVHlwZTo6T3RoZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpIH07
Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFj
dGlvbiksIFdURk1vdmUocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSksIHsgfSwgcmVxdWVzdC5m
cmFtZU5hbWUoKSwgW3RoaXNdIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQ
dHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUp
IHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUo
YWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9LCByZXF1ZXN0
LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5k
b3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsKIApAQCAtMzA2Myw3ICszMDYzLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCi0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3Zl
KGFjdGlvbiksIFdURk1vdmUod29ya2luZ1Jlc291cmNlUmVxdWVzdCksIFdURk1vdmUoZm9ybVN0
YXRlKSwgZnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVu
ZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZv
cm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAg
ICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBX
VEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGZyYW1l
TmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1T
dGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTM1NDEsOSArMzU0MSw5IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlCiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3
V2luZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKLSAgICBGb3JtU3Rh
dGUqIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3Bl
bmVyUG9saWN5IG9wZW5lclBvbGljeSkKKyAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5IG9wZW5lclBvbGljeSkKIHsKLSAgICBpZiAoc2hvdWxkQ29udGludWUgIT0gU2hvdWxkQ29u
dGludWU6OlllcykKKyAgICBpZiAoc2hvdWxkQ29udGludWUgIT0gUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWU6OlllcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmPEZyYW1lPiBmcmFt
ZShtX2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggY2UzZWQ2YTU1
MjBiYzRkYzFlMzBlMjc5OTk1MzdhZmQ0ODQ5Y2M4NC4uNzE2MzRjODRjNTYwNTkyOWJlNTRhNTVj
Njg0Y2JlY2ZiMTdmODYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiTGF5
b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgorI2luY2x1
ZGUgIlBvbGljeUNoZWNrZXIuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmgiCkBAIC04NCw3ICs4NSw2IEBAIGNsYXNzIFN1YmZyYW1lTG9hZGVyOwogY2xhc3MgU3Vi
c3RpdHV0ZURhdGE7CiAKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwotZW51
bSBjbGFzcyBTaG91bGRDb250aW51ZTsKIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDog
Ym9vbDsKIApAQCAtMzU3LDcgKzM1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFVu
bG9hZEV2ZW50cyhVbmxvYWRFdmVudFBvbGljeSk7CiAKICAgICB2b2lkIGNvbnRpbnVlTG9hZEFm
dGVyTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCk7Ci0g
ICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYsIFNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkws
IE5ld0ZyYW1lT3BlbmVyUG9saWN5KTsKKyAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2lu
ZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQ
b2xpY3kpOwogICAgIHZvaWQgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBv
bGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIHNob3VsZENvbnRpbnVlKTsKIAogICAg
IGJvb2wgc2hvdWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Np
b24sIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCwgRnJhbWVMb2FkVHlwZSwgY29uc3QgVVJMJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
MDZlODQ3ZDQ0ODI3NWQ1ZjRhNjI3YzdhNDc3MDg0MWM0ZGNhNDE4Ny4uN2M1MzE4OThkN2JjNzlj
NGI3YzAwOTAwYzc1NzhkNTU5ZGJlNjk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtMTcyLDEwICsxNzIsMTAgQEAgdm9pZCBNZWRpYVJl
c291cmNlOjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3Qg
UmVzb3VyY2VSZXMKIAogICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IG1fcmVzb3Vy
Y2UtPm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5yZXNwb25zZVJlY2VpdmVkKCp0aGlzLCByZXNw
b25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIG1fY2xpZW50LT5yZXNwb25zZVJl
Y2VpdmVkKCp0aGlzLCByZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNl
KCldIChhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChjb21w
bGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAg
ICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpObykKKyAgICAg
ICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6Tm8pCiAgICAgICAgICAgICAgICAgc3RvcCgpOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKaW5kZXggMGVmMWU2ZTU3MzFjZmE1Y2I2ZWQ3ZWFlNWIy
N2EyOWM1YzkzYWUyYS4uYzNjZTI2NjI3ZWVkODM0MzQ0ZTRjMjYzNmIzNTBiNThkODEzNjVjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCkBAIC01MiwxMSArNTIsNiBAQCBj
bGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7CiAKLWVudW0gY2xhc3MgU2hvdWxkQ29udGludWUgewotICAgIFllcywKLSAg
ICBObwotfTsKLQogZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90
IHsKICAgICBDb250aW51ZUxvYWQsCiAgICAgSWdub3JlTG9hZCwKQEAgLTY1LDE1ICs2MCwyMCBA
QCBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3QgewogCiBlbnVt
IGNsYXNzIFBvbGljeURlY2lzaW9uTW9kZSB7IFN5bmNocm9ub3VzLCBBc3luY2hyb25vdXMgfTsK
IAotdXNpbmcgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29u
dGludWUpPjsKLXVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYs
IE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik+OwotCiBjbGFzcyBQb2xpY3lDaGVja2VyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2xpY3lDaGVja2VyKTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7
CiAKKyAgICBlbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlIHsKKyAgICAgICAgWWVzLAorICAgICAg
ICBObworICAgIH07CisKKyAgICB1c2luZyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYsIFdlYWtQdHI8Rm9y
bVN0YXRlPiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pPjsKKyAgICB1c2luZyBOZXdXaW5k
b3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBTaG91bGRDb250aW51ZSk+OworCiAgICAg
dm9pZCBjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiwgUG9saWN5RGVj
aXNpb25Nb2RlID0gUG9saWN5RGVjaXNpb25Nb2RlOjpBc3luY2hyb25vdXMpOwogICAgIHZvaWQg
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biYmKTsKICAgICB2b2lkIGNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24mJiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwpAQCAtMTEyLDMgKzEx
MiwxNiBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisvLyBUbyBz
dXBwb3J0IGVuY29kaW5nIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIGlu
IFhQQyBtZXNzYWdlcworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSwKKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWU6Ok5vLAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6WWVzCisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKaW5kZXgg
NTE2MTVlZjYwNjVkZDM2ZmE1NTAxOGY2NjY4NDhiMjFjYTliOTc4MC4uYTE0NWYxNjNjNjQzYTM4
NjhlMTk3MTM4YWFlNGVkY2ZkMDQ3NmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQoKSA9IGRlZmF1
bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
U2hvdWxkQ29udGludWU6Olllcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZl
ZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWU6Olllcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25n
IGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGFlZGJmNjg2ZjA0YmYwOWU3MmQyZDNiNDc0N2M4YmQ5
ZTdmNDllNzAuLjY0MTU0MTc5NzMwNzkwMzAxYWUxNzhlZjg0ZDdmOGFkN2VlZmVkNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJQb2xpY3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTY1
LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2ln
bmVkIGJ5dGVzUmVhZCk7CiAKICAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgdmly
dHVhbCBtZXRob2RzLgotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNo
YXIqLCBpbnQpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAg
ICB2b2lkIGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpIG92ZXJyaWRlOwpAQCAtOTQ0LDcgKzk0NSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQ6OmNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2lnbmVkIGJ5dGVzUmVhZCkK
ICAgICB9CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNl
UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWUpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9u
c2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViS2l0V2ViU3JjKiBzcmMg
PSBXRUJLSVRfV0VCX1NSQyhtX3NyYy5nZXQoKSk7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSog
cHJpdiA9IHNyYy0+cHJpdjsKQEAgLTk5OCw3ICs5OTksNyBAQCB2b2lkIENhY2hlZFJlc291cmNl
U3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbgogICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJl
Y2VpdmVkICVkIEhUVFAgZXJyb3IgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAo
bnVsbHB0cikpOwogICAgICAgICBwcml2LT5kb2VzSGF2ZUVPUyA9IHRydWU7CiAgICAgICAgIHdl
YktpdFdlYlNyY1N0b3AoR1NUX0JBU0VfU1JDX0NBU1Qoc3JjKSk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTEwMTIsNyArMTAxMyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdD
bGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAgICAg
ICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJlY2VpdmVk
IHVuZXhwZWN0ZWQgJWQgSFRUUCBzdGF0dXMgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkpLCAobnVsbHB0cikpOwogICAgICAgICAgICAgcHJpdi0+ZG9lc0hhdmVFT1MgPSB0cnVlOwog
ICAgICAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChHU1RfQkFTRV9TUkNfQ0FTVChzcmMpKTsKLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8p
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVChzcmMsICJSYW5nZSByZXF1ZXN0IHN1Y2NlZWRlZCIpOwpAQCAtMTA1OCw3
ICsxMDU5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VS
ZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgcHJpdi0+d2VyZUhl
YWRlcnNSZWNlaXZlZCA9IHRydWU7CiAgICAgICAgIHByaXYtPmhlYWRlcnNDb25kaXRpb24ubm90
aWZ5T25lKCk7CiAgICAgfQotICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpZ
ZXMpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVl
OjpZZXMpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpkYXRhUmVj
ZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQppbmRleCBiYTU1ZjAwNDhiOGU0ZGRjNWIwNzM0ZDk5
M2RjOWIxM2I4Y2IyYjA1Li43OGEwMjc5NThmYjVlOTY5ODEyNmNlZWQ3NGU5YTJiNWVkNDFkZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNv
cmVOU1VSTFNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCkBAIC01Niw3ICs1Niw3IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiBAcHJvcGVydHkgKGFzc2lnbikgV2ViQ29yZU5TVVJMU2Vzc2lvbiAqIF9O
dWxsYWJsZSBzZXNzaW9uOwogCiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmKXJlc291cmNlIHNlbnRCeXRlczoodW5zaWduZWQgbG9uZyBsb25nKWJ5dGVzU2VudCB0b3Rh
bEJ5dGVzVG9CZVNlbnQ6KHVuc2lnbmVkIGxvbmcgbG9uZyl0b3RhbEJ5dGVzVG9CZVNlbnQ7Ci0t
ICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVk
UmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5k
bGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9u
SGFuZGxlcjsKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3Vy
Y2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogLSAoQk9PTClyZXNvdXJjZTooUGxh
dGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBzaG91bGRDYWNoZVJlc3BvbnNlOihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZTsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWREYXRhOihjb25zdCBjaGFyKilkYXRhIGxlbmd0
aDooaW50KWxlbmd0aDsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYp
cmVzb3VyY2UgcmVjZWl2ZWRSZWRpcmVjdDooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9u
c2UgcmVxdWVzdDooUmVzb3VyY2VSZXF1ZXN0JiYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpY29tcGxldGlvbkhh
bmRsZXI7CkBAIC0zODEsNyArMzgxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhclRhc2so
KTsKIAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250
aW51ZSk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVz
b3VyY2VSZXF1ZXN0JiYpPiYmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZENhY2hlUmVzcG9u
c2UoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGF0YVNlbnQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQg
bG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG92ZXJyaWRlOwpAQCAtNDEwLDExICs0MTAs
MTEgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmRhdGFTZW50KFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291
cmNlIHNlbnRCeXRlczpieXRlc1NlbnQgdG90YWxCeXRlc1RvQmVTZW50OnRvdGFsQnl0ZXNUb0Jl
U2VudF07CiB9CiAKLXZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZXNw
b25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRp
bnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFU
YXNrQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3Vy
Y2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBpZiAoIW1fdGFzaykK
LSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7Cisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZTo6Tm8pOwogCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJjZSByZWNlaXZlZFJlc3Bv
bnNlOnJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XTsKIH0KQEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFz
a0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIC8v
IE5vLW9wLgogfQogCi0tICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJl
c291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNl
IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVl
KT4mJiljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJl
c291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBB
U1NFUlQocmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3
b3JrIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6RGlz
a0NhY2hlIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
RGlza0NhY2hlQWZ0ZXJWYWxpZGF0aW9uIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNl
UmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNv
dXJjZSwgJnJlc291cmNlID09IF9yZXNvdXJjZSk7CkBAIC02MzgsMTQgKzYzOCwxNCBAQCB2b2lk
IFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBzdHJvbmdS
ZXNwb25zZSB7IHJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSB9OwogICAgIFJldGFpblB0cjxXZWJD
b3JlTlNVUkxTZXNzaW9uRGF0YVRhc2s+IHN0cm9uZ1NlbGYgeyBzZWxmIH07CiAgICAgaWYgKCFz
ZWxmLnNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250
aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tl
cjo6U2hvdWxkQ29udGludWU6Ok5vKTsKICAgICBbc2VsZi5zZXNzaW9uIGFkZERlbGVnYXRlT3Bl
cmF0aW9uOltzdHJvbmdTZWxmLCBzdHJvbmdSZXNwb25zZSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIHN0cm9uZ1Nl
bGYtPl9yZXNwb25zZSA9IHN0cm9uZ1Jlc3BvbnNlLmdldCgpOwogCiAgICAgICAgIGlkPE5TVVJM
U2Vzc2lvbkRhdGFEZWxlZ2F0ZT4gZGF0YURlbGVnYXRlID0gKGlkPE5TVVJMU2Vzc2lvbkRhdGFE
ZWxlZ2F0ZT4pc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uLmRlbGVnYXRlOwogICAgICAgICBpZiAo
IVtkYXRhRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihVUkxTZXNzaW9uOmRh
dGFUYXNrOmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjopXSkgewogICAgICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbc3Ryb25nU2VsZiwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjUzLDEw
ICs2NTMsMTAgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRG
aW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICAgICAgW2RhdGFEZWxlZ2F0
ZSBVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gZGF0
YVRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRSZWNlaXZl
UmVzcG9uc2U6c3Ryb25nUmVzcG9uc2UuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2Nr
UHRyKFtzdHJvbmdTZWxmLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoTlNVUkxTZXNzaW9uUmVzcG9uc2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBkaXNwb3Np
dGlvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lv
blJlc3BvbnNlQ2FuY2VsKQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
aG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwogICAgICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZGlzcG9zaXRpb24gPT0gTlNVUkxTZXNz
aW9uUmVzcG9uc2VBbGxvdyk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4
N2ZmZWU3ZGI4MGUxMTRkMjI1MTEyNjYuLjQzYWY3MGFlZTllMzNiZWE4YWRlMDBmNzNlZTNjYTcy
MmYyYjA0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTE3LDYgKzE3LDcgQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2Nv
bS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Q
cm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCA5ODY5Y2YxNzE2MWZlZDk0NDkyYjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43YmU4OTQ5Y2NhZjIw
OGQyYTM1ZDJlYTBhYmNiMGEyZGU4MmU5MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyMCw2ICsxMjAsOSBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJNZXNzYWdlc1JlcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRk
NzRhYjU4ZTUwNGE4MTIxODMuLjNjMDc3ZTRmMTdjY2NmMWYzYjgyZGIyYTIwNGQxOTg2YzJmM2Nm
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksNyBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwK
ICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3Rl
T2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTQ4MDNjYTgwZGFjNDMz
NGVkMmUyNDdmZjcyM2JjMjEyNmZhZmU1NS4uNDljMmI3NTc3ZTllMjMyNGE3N2VmMzMwMTdkYWNm
ZDdkNWY4NmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKICNpbmNs
dWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xMDksNiArMTExLDE0IEBAIHZvaWQg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAg
ICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOworfQorCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlm
ICghbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSkKQEAgLTEzMiw2ICsxNDIsOSBAQCB2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgp
LmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggODczZGNlYTI5NGQ5NjM4ZTA2MmEwY2Q2
YTA5MTRmMjUzM2RhZWM2MC4uYmMzMzQxY2VkNmQwMjhkNjQxZGJhMDAyMmM3ZjRlZTFjODBjMzEy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
R1BVUHJvY2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtNTYsNiArNTcsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbmRTdXNwZW5zaW9uKCk7CiAKICAgICBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJv
Y2Vzc0lkZW50aWZpZXI7IH0KKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKIAogICAgIExvZ2dlciYgbG9nZ2VyKCk7CiAKQEAgLTc4
LDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAgICAgUEFMOjpTZXNzaW9uSUQg
bV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCA4MzQ2NzNhZjk0ZjExMGQyNTRj
Njg1NTRjNDBlMDA4MTlhNzU2YTRiLi4wNTAzNDA0YTBmMWNiNTk5NzkxZjAwM2MzZjg0YTk2MzUx
ZTRkMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTI5LDEwICsyOSwx
MiBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBAIC00MSw2ICs0Myw3IEBACiAj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hFQ0tf
QkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDE2ZWQ2ZjIwMWRhM2RmY2Vi
YjQ5NDM2MGNjYjVjMDVhM2RjZTk0MjguLmFlNTFmYzBjNTIwMDNlMzUwZGI1ZGRlMmQ2NmQ4MjQ4
NDM3MmU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC0zMCwxNSArMzAsMTYg
QEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFz
cyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk7CiBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uOworc3RydWN0IFJlbW90
ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eQogICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCmluZGV4IDZkZmE3NWY1YzUxZDM4YWJjMWQ1Yjk4MzQ0NTI0Y2E5YWRhNzNlOWUu
Ljg4YzdlNzkxMjk3Njk3MDFkNDdjZmNlYzM1MWNjM2VjMjM1MzQzYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKQEAgLTI4LDggKzI4LDE2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KQEAgLTUzLDYgKzYxLDEwIEBAIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hCiAgICAg
bV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzLCBtX2VuZ2luZUlkZW50aWZpZXIp
OwogfQogCitSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgp
Cit7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7CiAg
ICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7CkBAIC0xNDMsNiArMTU1
LDI1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0UHJlc2VydmVzUGl0Y2goYm9v
bCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2Vy
dmVzUGl0Y2gpOwogfQogCitSZWY8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAgIGF1
dG8mIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKS5yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOworICAgIGF1dG8gcmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKKyAgICBhdXRvIHJlbW90ZU1lZGlhUmVzb3VyY2UgPSBSZW1vdGVNZWRp
YVJlc291cmNlOjpjcmVhdGUocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsICp0aGlzLCByZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuYWRkTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3Rl
TWVkaWFSZXNvdXJjZSk7CisKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVxdWVzdFJlc291
cmNlKG1faWQsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25z
KSwgW3JlbW90ZU1lZGlhUmVzb3VyY2UgPSByZW1vdGVNZWRpYVJlc291cmNlLmNvcHlSZWYoKV0o
KSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2UtPnNldFJlYWR5KHRydWUpOworICAgIH0p
OworCisgICAgcmV0dXJuIHJlbW90ZU1lZGlhUmVzb3VyY2U7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZW1vdmVS
ZXNvdXJjZShtX2lkLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciksIDApOworfQorCiAv
LyBNZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewpAQCAtMzg4LDggKzQxOSw3IEBAIENhY2hlZFJl
c291cmNlTG9hZGVyKiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNhY2hlZFJl
c291cmNlTG9hZGVyKCkKIAogUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCp0aGlzKSk7CiB9CiAKIGJv
b2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbVN0
cmluZyYsIEF0b21TdHJpbmcqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggNjAwZGNhZmY5OTgx
ODQyOGVkNGIyODM1ODYxMjE3ZmRhZGY4NjljZC4uY2FmZGQ3NTBlZGM4NzUyMjVjMjU3YTA1Yjkx
NDI0ZTExNzZmNjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yNywzNCArMjcsMzIgQEAKIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0Nvb2tpZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewot
Y2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVkaWFQ
bGF5ZXI7Ci19CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogCi1jbGFzcyBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ci0gICAgOiBwdWJsaWMgTWVkaWFQbGF5ZXJDbGllbnQgeworY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAorICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFJlbW90ZU1lZGlhUGxheWVyUHJveHk+CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uJiYpOwotICAgIHZpcnR1YWwgflJlbW90ZU1lZGlhUGxheWVyUHJv
eHkoKQotICAgIHsKLSAgICB9CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJik7
CisgICAgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogCkBAIC02Miw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQs
IGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZyk7CiAKLSAgICB2
b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIAogICAgIHZvaWQgcHJlcGFy
ZVRvUGxheSgpOwpAQCAtODAsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRl
QnJvd3NpbmdNb2RlKGJvb2wpOwogICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAK
KyAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2Uo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlcjo6TG9hZE9wdGlvbnMpOworICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxheWVyQ2xp
ZW50CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKQEAg
LTEyNCwzOSArMTI1LDM5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNj
cmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJt
aXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0
IGZpbmFsOwotICAgIExheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0
IGZpbmFsOworICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQg
bWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclBsYXRmb3JtVm9s
dW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCkgY29uc3QgZmluYWw7Ci0gICAgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKLSAgICBS
ZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291
cmNlTG9hZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1l
ZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291cmNl
TG9hZGVyKCkgZmluYWw7CiAgICAgYm9vbCBkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3Ry
aW5nJiwgQXRvbVN0cmluZyogPSBudWxscHRyKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlh
UGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3Qg
U3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCBmaW5hbDsKIAot
ICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRlJikg
ZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2so
VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3Zl
QXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5
ZXJEaWRSZW1vdmVUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAg
IHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRlJikg
ZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVGV4dFRy
YWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1l
ZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZp
bmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRl
eHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9p
ZCBtZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGUmKSBmaW5hbDsKIAotICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFu
Z2VkKGNvbnN0IEludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0
aW9uQm91bmRzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgVmVjdG9yPFJl
ZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291cmNlcygpIGZpbmFsOwor
ICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2s+PiBvdXRPZkJhbmRU
cmFja1NvdXJjZXMoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3RvcjxD
b29raWU+JikgY29uc3QgZmluYWw7CisgICAgYm9vbCBtZWRpYVBsYXllckdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBjb25zdCBmaW5hbDsKICNlbmRp
ZgogCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyU291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkg
Y29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1Jh
dGUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNj
cmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KCkgY29uc3QgZmluYWw7CiAgICAgVmVjdG9yPFN0cmluZz4gbWVkaWFQbGF5
ZXJQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygpIGNvbnN0IGZpbmFsOwogCkBAIC0xNzYs
OSArMTc3LDkgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgbV9pZDsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9uOwotICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgUmVmUHRyPFdlYkNv
cmU6Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eSYgbV9tYW5hZ2VyOwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKICAgICBWZWN0b3I8V2Vi
Q29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiAgICAg
UnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91cGRhdGVDYWNoZWRTdGF0
ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExZDE2NzlkNTFlNzM2ZjIwN2NjNmQ5YjEyODY0NzZm
NjQ3MjYxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVtb3RlTWVkaWFSZXNvdXJjZT4gUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6Y3JlYXRlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlciwgcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSwgaWQpKTsKK30KKworUmVtb3RlTWVkaWFS
ZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYg
cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90
ZU1lZGlhUGxheWVyUHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorICAg
IDogbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cikKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRp
YVBsYXllclByb3h5KSkKKyAgICAsIG1faWQoaWQpCisgICAgLCBtX3JlYWR5KGZhbHNlKQorewor
fQorCitSZW1vdGVNZWRpYVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNvdXJjZSgpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdG9wKCk7CisgICAgbV9yZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5yZW1vdmVNZWRpYVJlc291cmNlKG1faWQpOworfQorCit2b2lkIFJlbW90
ZU1lZGlhUmVzb3VyY2U6OnN0b3AoKQoreworICAgIGlmIChtX3JlbW90ZU1lZGlhUGxheWVyUHJv
eHkpCisgICAgICAgIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+cmVtb3ZlUmVzb3VyY2UobV9p
ZCk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xD
aGVjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ss
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250
cm9sQ2hlY2s7CisgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNl
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsK
KyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgaWYgKHNob3VsZENvbnRp
bnVlID09IFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPnN0b3AoKTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRD
b250aW51ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVkaXJl
Y3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5y
ZWRpcmVjdFJlY2VpdmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25zZSwgW10oYXV0
byYmKSB7IH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnNob3VsZENhY2hlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgUmVmUHRyPFJl
bW90ZU1lZGlhUmVzb3VyY2U+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgcmV0dXJuIG1fY2xp
ZW50ID8gbV9jbGllbnQtPnNob3VsZENhY2hlUmVzcG9uc2UoKnRoaXMsIHJlc3BvbnNlKSA6IHRy
dWU7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVNlbnQodWludDY0X3QgYnl0
ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgaWYgKG1fY2xpZW50
KQorICAgICAgICBtX2NsaWVudC0+ZGF0YVNlbnQoKnRoaXMsIGJ5dGVzU2VudCwgdG90YWxCeXRl
c1RvQmVTZW50KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQo
Y29uc3QgY2hhciogZGF0YSwgaW50NjRfdCBsZW5ndGgpCit7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+ZGF0YVJlY2VpdmVkKCp0aGlzLCBkYXRhLCBsZW5ndGgpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2sgPSBmYWxzZTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5hY2Nlc3ND
b250cm9sQ2hlY2tGYWlsZWQoKnRoaXMsIGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlOjpsb2FkRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmxvYWRGYWlsZWQoKnRoaXMsIGVycm9yKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpsb2FkRmluaXNoZWQoKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmxvYWRGaW5pc2hlZCgqdGhpcyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3YmUz
MDk2ZDk1ZWVhMDAzMTllY2I2OWE2YmQ3Yzk2OTQxMjcxODMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworCitjbGFz
cyBSZW1vdGVNZWRpYVJlc291cmNlIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBjcmVh
dGUoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Jiwg
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNl
KCk7CisKKyAgICBib29sIHJlYWR5KCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeTsgfQorICAgIHZv
aWQgc2V0UmVhZHkoYm9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KKworICAgIC8vIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZQorICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIGJvb2wgZGlk
UGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4m
Jik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgYm9vbCBzaG91bGRDYWNo
ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRh
dGFTZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoY29uc3Qg
Y2hhciosIGludDY0X3QpOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGYWlsZWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CisKK3ByaXZh
dGU6CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYs
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7
CisKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbV9yZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKKyAgICBXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fcmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTsKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOwor
ICAgIGJvb2wgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fcmVhZHk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyOGE1YjQwNzNiMzBkOTRjZTk1YTYz
MGJmZDZjNWYzY2ExYjgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitlbnVtIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlZWY5MGE1OTA0ZjhiOWZk
YWRkZDAwZDQ4MmYxNTZmZWYwOTQyOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVN
ZWRpYVBsYXllclByb3h5KQorICAgIDogbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KG1ha2VXZWFr
UHRyKHJlbW90ZU1lZGlhUGxheWVyUHJveHkpKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpCit7Cit9CisKK1JlZlB0cjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBMb2FkT3B0aW9ucyBvcHRpb25zKQorewor
ICAgIGlmICghbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHktPnJlcXVlc3RSZXNvdXJj
ZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIyYjM3Mjg1MTcxNzA5
NWQzNTIzNTQ5MGRlZDhlMzkxMTE5Mzc5OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyIGZpbmFsCisgICAgOiBwdWJs
aWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKFJlbW90ZU1lZGlhUGxheWVyUHJveHkm
KTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpOworCitwcml2YXRlOgorICAgIFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgTG9hZE9wdGlvbnMpIGZpbmFsOworICAgIFdlYWtQdHI8
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllclByb3h5OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjlhYzM1OGNiZTkzOTE2ODVjNzBlZWEyMmU3NDc5OWFhMDg3OTg5MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpCit7Cit9CisK
K1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIo
KQoreworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291
cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlJiByZW1vdGVNZWRpYVJlc291cmNlKQoreworICAg
IEFTU0VSVCghbV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllcikpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuYWRkKHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCAmcmVtb3RlTWVkaWFSZXNvdXJjZSk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7Cisg
ICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMocmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIg
aWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3ND
b250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxk
Q29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHJlc291cmNlID0g
bV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpOworICAgIGlmICghcmVzb3VyY2UgfHwgIXJl
c291cmNlLT5yZWFkeSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2Us
IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVt
b3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJj
ZS0+cmVhZHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWRpcmVj
dFJlY2VpdmVkKFdURk1vdmUocmVxdWVzdCksIHJlc3BvbnNlKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgdWludDY0X3QgYnl0ZXNTZW50LCB1aW50
NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2Ut
PnJlYWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Z2V0KGlkKS0+ZGF0YVNlbnQoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQoUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sK
KyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAg
ICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5kYXRhUmVjZWl2ZWQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxl
ZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdl
dChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+YWNjZXNzQ29u
dHJvbENoZWNrRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6bG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmdldChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJl
YWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0
KGlkKS0+bG9hZEZhaWxlZChlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI6OmxvYWRGaW5pc2hlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK3sK
KyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAg
ICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5sb2FkRmluaXNoZWQoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYmE2NzA0ZGI1MzRlOTA3OWIxMTQzMjU1OThkODY1MzMzOTk3MDQ5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BvbGljeUNoZWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
CituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworY2xh
c3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFS
ZXNvdXJjZTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIKKyAgICA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkTWVkaWFSZXNvdXJjZShSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZSYpOworICAgIHZvaWQg
cmVtb3ZlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCByZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVk
aXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGF0YVNlbnQoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIHVpbnQ2NF90LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2
ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYpOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBs
b2FkRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIpOworCisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgUmVtb3RlTWVkaWFSZXNvdXJjZSo+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzYjVmZDBjYzQ0Y2Q3ZDAyMGE0ODc2ZTA0YWJm
Yjg3MDEzYjc1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4g
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVzcG9uc2VS
ZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2spIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250
aW51ZSkgQXN5bmMKKyAgICBSZWRpcmVjdFJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoKSBBc3luYworICAgIERhdGFTZW50
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIHVpbnQ2NF90IGJ5dGVz
U2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQorICAgIERhdGFSZWNlaXZlZChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YSkKKyAgICBBY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBM
b2FkRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9hZEZpbmlzaGVkKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQwMmVmNTExODhmN2U4ZGJl
Mzk2YmE4YWNlMGZhZC4uMjU3YjAwZWI4NjA4ODE1YWM4OWI1NzI1YjVhYjIxNDkzMDc5ZjE4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIw
LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAg
ICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDE5MTZkYjNk
NjViNjVlY2RjNWUwMGVhN2VjMDFlZmRjNjU2NjEwZmYuLjc4NTgwY2U3MDMzZTM3OTc3YThkZWU2
ZmZhNDQ1ODEwYzY5ZGQxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsNiArMjQsMTEgQEAKIEdQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKy8vR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKy8vR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorLy9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAKIAogTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5j
cHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC01MDIsOCAr
NTA3LDkgQEAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9NZWRpYURldmljZVNhbmRib3hFeHRlbnNp
b25zLmNwcAogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAot
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAotV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisvL1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogCiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGE0YWE1NWUyYWExOWExNDY2MjU0
YmJmMWJiYzcyMjg5OWI2YzYyNzguLjAyM2RiZDM5NGQ0NTZmZGRkMTE4YWE5YjY2ZDgyOTIwZjYy
MTYyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU5LDggKzU5LDYgQEAgTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKIEdQVVByb2Nlc3MvaW9zL0dQVVBy
b2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KLUdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKLUdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVD
Ri5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGUzYjkxOTIwYzliOGEzZjM2YTBiZDE0OGNhODU4ZGJkZGNiM2EwODcuLmY2NmMxNmJi
ZmNhZTA0ZjM2YzhlNTA4YTkwNzU2ODllYzcwOWJmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA3LDcgKzQwNywyMCBAQAogCQkx
Q0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdD
ODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNC
QkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlF
MTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5
RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OworCQkx
RDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5QjIzQTg0
QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi87IH07CisJCTFEMzJG
ODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUQyM0E4NEM1
QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi87IH07CisJCTFEM0FC
MDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovOyB9
OworCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0JBRjM1
NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi87IH07CisJ
CTFEM0FCMDUyMjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODk5MjNBODQ2
ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTMy
M0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzQUIwNEUyM0FCMDA5QjAw
NUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQkxRDNBQjA1
NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4OUUyM0E4Mjc3
ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTUyM0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMTIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMDIzOUIz
QjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQ0
RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkxRDRENzM3NjIz
QTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3
Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVl
dENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICov
OyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICov
OyB9OwogCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEz
MDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlG
QjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1t
ICovOyB9OwogCQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
TG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERl
bGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTI2MjAsOSArMjYzMywyMiBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJ
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
Ykluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUQyM0E4NEM1QjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzQUIw
NEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2QzIz
QTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM3NTIzQTlF
QjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVTaGVldENhbGxiYWNrSUQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODlF
MjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hl
ZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hl
ZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQz
OUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERTJERkFDMjNB
OTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkExODU4
REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NjMsNyArNDg4OSw3IEBACiAJCURGNThDNjMxMTM3MUFDNTgw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJXaGVl
bEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTE1
QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYg
LyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5pY25zOyBu
YW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTExNCw2ICs1MTQwLDggQEAKIAkJCQkwNzkyMzEzNDIzOUIzQjBDMDA5
NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJMDc5MjMxMzMyMzlC
M0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywK
IAkJCQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5o
ICovLAorCQkJCTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuY3BwICovLAorCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNTEyNyw2ICs1MTU1LDE0IEBACiAJCQkJMDdCQUYzNTcyM0Ey
Q0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovLAogCQkJCTA3QkFG
MzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8sCiAJCQkJ
MDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uLmggKi8sCisJCQkJMUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwICovLAorCQkJCTFEMzJGODk4MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlLmggKi8sCisJCQkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovLAorCQkJCTFEM0FCMDREMjNB
QjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJMURB
NDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTkyODQsNiArOTMyMCw5IEBACiAJCQkJMDc5
MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkwNzkyMzE0NjIzOUNCQ0I3MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTA3OTIzMTQyMjM5
Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVw
bGllcy5oICovLAorCQkJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMUQ0RDczNkMyM0E5REY2
MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxQUMxMzM4MzE4NTkwQzQ2MDBGM0VDMDUgLyogUmVt
b3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQzEzMzg0MTg1
OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggKi8sCiAJCQkJ
MEY1OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEwMTc4LDYgKzEwMjE3LDEwIEBACiAJCQkJMDc5MjMx
NEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTQ4MjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdCM0I0NzAyM0FCMzAyRDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFEQTQwODk1MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0RDczNzEyM0E5RTU2
MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzMkY4OUMy
M0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFCNzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVt
b3RlT2JqZWN0SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFF
NDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTEx
Nzg4LDYgKzExODMxLDcgQEAKIAkJCQkyOTg0RjU3QzE2NEI5MTVGMDA0QkMwQzYgLyogTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDQ5RDkwREEyMUZEQzMwQjAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzc5MjEyQjZBNjEwMEY0OTNGRCAv
KiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU1MjNBQzAxRjMwMDVDMUZG
MCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3ODEyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkyQTc4MjIxMkI2QTcxMDBGNDkzRkQgLyogTWVzc2FnZVNlbmRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3QTIxMkI2QTYxMDBGNDkzRkQgLyogTW9kdWxlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTE4NDQsOCArMTE4ODgsMTYgQEAKIAkJCQkyRDcyQTFGQTIx
MkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNl
cyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMx
OEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNl
cyAqLywKKwkJCQkxRDNBQjA1NjIzQUMwMUY2MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTQ5MjM5Q0JDQjgwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQzQUIwNTAyM0FDMDFBMDAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTRCMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFG
RjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1
MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxRDNBQjA1NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFEMzJGODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNF
QzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNTk0N0E3MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTVCQTgyNjFC
QTI1Q0ZEMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGU4ZGFhZTBmOWJhODVhMjUxYjcwNjdk
ZTM4Y2E0YTc2OTc0MjE1ODAuLmI4ZTQ3NjdmYzAwZDQ5MzFlNGQ4YTEzNGJiYjNjZGU4ZDQ2NzZl
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
CiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IDg1M2NjMTY1NTA5NGJiNTI0MjFmYjZjZmExYzMxOWE5NjQ3MWMwOTQuLjMxYzYxMDQ2
NjlmMmYwMmZmYTQ0MGZlYjg4MDkyNmM3NGFlMjZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTU1LDcgKzU1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAotICAgIC8v
IFRoZSBjb25uZWN0aW9uIGZyb20gYSB3ZWIgcHJvY2VzcyB0byB0aGlzIEdQVSBwcm9jZXNzLgor
ICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBHUFUgcHJv
Y2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzQ4YTBmNWY0OGE3ZWE0OTU5NWVjYjVhYjEy
YzQzZTE1ZTRlYmZmMS4uNzU4ZDdlMjU3NDhiNjFlY2IzNDhiNmY1MWUxMjUyZjM3NWZjNjVkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNjIsNiArNjIsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
JiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VMb2Fk
ZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5lSWRlbnRpZmllcikKICAg
ICAsIG1faWQocGxheWVySWRlbnRpZmllcikKQEAgLTc5OCw2ICs3OTksMjEgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVlc3RS
ZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAg
IEFTU0VSVCghbV9tZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcikpOworICAgIGF1dG8gcmVzb3VyY2UgPSBtX21lZGlhUmVzb3VyY2VMb2FkZXItPnJl
cXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICAvLyBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2Ugb3ducyB0aGUgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50CisgICAg
cmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eT4o
bV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksICpyZXNvdXJjZSwgcmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX21lZGlhUmVzb3VyY2VzLmFkZChyZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXNvdXJjZSkpOworfQorCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgLy8gVGhlIGNs
aWVudChSZW1vdGVNZWRpYVJlc291cmNlUHJveHkpIHdpbGwgYmUgZGVzdHJveWVkIGFzIHdlbGwK
KyAgICBtX21lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cik7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwmIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAppbmRleCA2ODg3MmFlYmNmMGVlMGQ5NWMxZjZhNmE3NjY0MDg3ZjEwZGE4ZjVk
Li5mYWEyZWM5YTMyMWI3ODQ5ZDQ2ODYxNGZjZThiYTk5NzExYTFkNzJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC0z
OSwyMiArNDEsMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSBmaW5hbAogICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZT4KLSAgICAsIHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjZW5kaWYK
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
aWRlbnRpZmllciwgbWFuYWdlciwgY29uZmlndXJhdGlvbik7CiAgICAgfQogCi0gICAgZXhwbGlj
aXQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24mKTsKLSAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsK
KyAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOworCisgICAgfk1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVl
OyB9Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7
IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRl
bnRpZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVy
SXRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIHZvaWQgbmV0d29ya1N0
YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwpAQCAtNjksNiArNzIsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShSZW1vdGVNZWRpYVBsYXllclN0YXRl
JiYpOwogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wg
aGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogCisg
ICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI6OkxvYWRPcHRpb25zKTsKKyAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CiAg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KQEAgLTc3LDE0ICs4MywxNCBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVu
dFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29u
c3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXll
cjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKIAog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFsOworICAgIHZvaWQgbG9hZChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBmaW5hbDsKICNlbmRpZgog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9pZCBsb2FkKE1lZGlhU3RyZWFtUHJpdmF0
ZSYpIGZpbmFsOworICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBm
aW5hbDsKICNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpIGZpbmFsOwogCkBAIC0xMDYsOSAr
MTEyLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVl
bklubGluZUltYWdlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShG
bG9hdFJlY3QpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRp
YVBsYXllcjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bk1vZGUoTWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQg
c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0KSBmaW5hbDsKKyAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlZpZGVv
R3Jhdml0eSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICB2b2lkIHZpZGVv
RnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzEy
NCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVycm9yTG9nKCkgY29uc3QgZmluYWw7CiAjZW5k
aWYKIAotICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQ
b2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c1BpY3R1
cmVJblBpY3R1cmUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigp
IGNvbnN0IGZpbmFsOwpAQCAtMTI2LDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNh
blNhdmVNZWRpYURhdGEoKSBjb25zdCBmaW5hbDsKIAotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNv
bnN0IGZpbmFsOwogCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKQEAgLTE1OSwyOSArMTY1LDI5IEBAIHByaXZhdGU6CiAg
ICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBt
aW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0
ZS5uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlOyB9CisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQorICAgIFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NhY2hlZFN0YXRlLnJlYWR5U3RhdGU7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBmaW5hbDsK
IAogICAgIE1lZGlhVGltZSBtYXhNZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwogICAg
IE1lZGlhVGltZSBtaW5NZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQo
KSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVk
VGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBjb25z
dCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBmaW5hbDsKIAotICAgIHZv
aWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWw7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKIAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBwYWludChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKIAotICAg
IHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JikgZmluYWw7Ci0gICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0Mz
RGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Ci0g
ICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgYm9vbCBjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNE
ZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRQcmVsb2FkKE1l
ZGlhUGxheWVyOjpQcmVsb2FkKSBmaW5hbDsKKyAgICB2b2lkIHNldFByZWxvYWQoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOwogCiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCkgY29uc3QgZmluYWw7CiAKQEAgLTE5MiwxNCArMTk4LDE0IEBAIHByaXZhdGU6CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIFN0cmluZyB3aXJlbGVz
c1BsYXliYWNrVGFyZ2V0TmFtZSgpIGNvbnN0IGZpbmFsOwotICAgIE1lZGlhUGxheWVyOjpXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0
IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0
VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9v
bCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
c2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICBib29s
IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZp
bmFsOworICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8V2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CiAKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KGJvb2wpIGZpbmFsOwogI2VuZGlmCkBAIC0yMTYsOSArMjIyLDkgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdCBmaW5hbDsKLSAgICBPcHRp
b25hbDxib29sPiB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3Qg
ZmluYWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludE9yaWdpbihjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmll
TG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAg
IHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIGZpbmFsOwogCkBAIC0yMzQsMjUgKzI0MCwyNSBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwog
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1Nv
dXJjZVByb3ZpZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlciog
YXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4g
Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmlu
YWw7Ci0gICAgdm9pZCBzZXRDRE1TZXNzaW9uKExlZ2FjeUNETVNlc3Npb24qKSBmaW5hbDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lv
bihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmluYWw7
CisgICAgdm9pZCBzZXRDRE1TZXNzaW9uKFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb24qKSBmaW5h
bDsKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCi0gICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikg
ZmluYWw7Ci0gICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7
Ci0gICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhbmNlJikgZmlu
YWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNlJikg
ZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNl
JikgZmluYWw7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKFdlYkNvcmU6
OkNETUluc3RhbmNlJikgZmluYWw7CiAgICAgYm9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29sIHJlcXVpcmVz
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldFRleHRU
cmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgZmluYWw7CisgICAg
dm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3luY1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwog
ICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCkBAIC0yNzIsNyArMjc4LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZW5kZWQoKSBjb25zdCBmaW5hbDsKIAotICAgIE9wdGlv
bmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6VmlkZW9QbGF5YmFja1F1YWxpdHlN
ZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MoKSBmaW5hbDsKIAogI2lmIEVOQUJM
RShBVkZfQ0FQVElPTlMpCiAgICAgdm9pZCBub3RpZnlUcmFja01vZGVDaGFuZ2VkKCkgZmluYWw7
CkBAIC0yOTMsMTkgKzI5OSwyMiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVJ
bnRyaW5zaWNTaXplKCkgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxs
cHRyIH07Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIG1fbWFuYWdlcjsKLSAgICBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVz
b3VyY2VMb2FkZXI7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIG1fY29uZmlndXJh
dGlvbjsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUgbV9jYWNoZWRTdGF0ZTsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBtX2NhY2hlZEJ1ZmZlcmVkVGltZVJh
bmdlczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBt
X2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBt
X21lZGlhUmVzb3VyY2VzOwogCiAgICAgZG91YmxlIG1fdm9sdW1lIHsgMSB9OwogICAgIGRvdWJs
ZSBtX3JhdGUgeyAxIH07CiAgICAgbG9uZyBtX3BsYXRmb3JtRXJyb3JDb2RlIHsgMCB9OwotICAg
IE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRUeXBlIHsgTWVkaWFQ
bGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9OworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRUeXBlIHsgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9oYXNB
dWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIuaAppbmRleCAzZDU1ZmRhYWE5MmEyNWI2MmI4ZjU3MzhkMmNlOGMyOWMzMGIxM2RkLi4y
NTZiM2M1OWZiZTQyYjZiYzFhMzA2NzFlNzAwYTU3MzRkZGI5ZjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzMsMyArMzUsNSBAQCBl
bnVtIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlPjsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IGFlNzU2ODZk
YWY5MmZkMjI1ODQ5MjRlMmM5NDY5M2JiNzNlMWI0NzkuLjcxYjcxYmZmYTIzOGI5NGFiMzIzYWM0
OTFmYzYxMjA1YjRiNDhjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4
LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkdQVVBy
b2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC00MSw2ICs0Myw3IEBACiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTY1LDcgKzE2OCw3IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7CiB9CiAK
LU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBw
b3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
IHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIC8vIEZJWE1F
OiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0aGVtLgogCkBAIC0xODEsOSAr
MTg0LDkgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzS2V5U3lzdGVt
KE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgp
CitIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAg
IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbkRhdGE7CisgICAgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKICAgICBpZiAoIWdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpPcmlnaW5zSW5NZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgpLCBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Ok9yaWdpbnNJbk1lZGlhQ2Fj
aGU6OlJlcGx5KG9yaWdpbkRhdGEpLCAwKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMTk5
LDcgKzIwMiw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2Fj
aGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVuCiAgICAgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2xl
YXJNZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgsIG1vZGlmaWVkU2luY2Up
LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNo
ZUZvck9yaWdpbnMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMp
CiB7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gV1RGOjptYXAob3JpZ2lucywgW10gKGF1dG8mIG9y
aWdpbikgewogICAgICAgICByZXR1cm4gb3JpZ2luLT5kYXRhKCk7CkBAIC0yMTAsNTUgKzIxMyw1
NSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlRm9yT3Jp
Z2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8g
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQo
V1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0YXRl
KSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVt
ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiB7Ci0gICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBs
YXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnZvbHVtZUNoYW5nZWQo
dm9sdW1lKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRl
KQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZSkKIHsKLSAgICBpZiAoYXV0byBw
bGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+bXV0ZUNoYW5nZWQobXV0ZSk7CiB9
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAg
IHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQog
ewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25z
dCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5kdXJh
dGlvbkNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6cmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUg
cmF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBp
ZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXll
ci0+cmF0ZUNoYW5nZWQocmF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIGJvb2wgcGF1c2VkKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAg
ICAgICAgcGxheWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChwYXVzZWQpOwogfQogCiB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgbG9uZyBwbGF0Zm9ybUVycm9yQ29kZSkK
IHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29u
c3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+ZW5n
aW5lRmFpbGVkVG9Mb2FkKHBsYXRmb3JtRXJyb3JDb2RlKTsKIH0KIApAQCAtMjY3LDYgKzI3MCwy
MCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUgogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZChoYXNB
dWRpbywgaGFzVmlkZW8sIGxvYWRUeXBlKTsKIH0KKyAgICAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBt
X3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5yZXF1ZXN0UmVzb3VyY2UocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnJlbW92ZVJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICAgICAgcGxheWVyLT5yZW1vdmVSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllcik7Cit9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aAppbmRleCBjM2MyNzdhYzg4YzM0ZGM2MDlhY2FjZmVlZDZhZTU5NzgzMjhmMTQyLi4yNDg4MTQ0
MzA5NWU1MTEzMWRlODY2N2FmM2I2MTMxMTBkYWVjMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC01
Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlcikg
eyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsgfQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtODIsNiArODMsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgbG9uZyk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJik7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKKyAgICB2b2lkIHJlcXVl
c3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAKICAg
ICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3Vw
cG9ydGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBkMzFlMDVmYWE0MDEy
YTNkNWUzYTczNjhiN2M4ZjdjOTZkNmQ0ZmYwLi4xODBmMjYzMjM2M2Y1MDZkZWJjMmExZTg3MzY5
NmFmYzllN2Y2NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShWSURFTykKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3Vu
dGVkIHsKICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSBzdGF0ZSkKQEAgLTM1LDYgKzM1LDkgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29k
ZSkKICAgICBVcGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3Rh
dGUpCiAgICAgQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgZW51bTp1
aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2Fk
VHlwZSkKKworICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+
ICgpIEFzeW5jCisgICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk4NjJiZmJiOWNkNGFiZDczZTllNjdiMWQ4YWI2NDFiYWNiNzY5NDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcGxhdGZvcm1NZWRpYVJlc291cmNlLCBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNv
bm5lY3Rpb24pKQorICAgICwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UocGxhdGZvcm1NZWRpYVJl
c291cmNlKQorICAgICwgbV9pZChpZCkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVzcG9uc2VSZWNlaXZl
ZChtX2lkLCByZXNwb25zZSwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UuZGlkUGFzc0FjY2Vzc0Nv
bnRyb2xDaGVjaygpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzaG91bGRDb250aW51ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OlJlZGlyZWN0UmVjZWl2ZWQobV9pZCwgcmVxdWVzdCwgcmVzcG9uc2UpLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVxdWVzdCA9IFdU
Rk1vdmUocmVxdWVzdCldKCkgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVxdWVzdCkpOworICAgIH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFTZW50KFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2ln
bmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6RGF0YVNlbnQobV9pZCwg
Ynl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkRhdGFSZWNlaXZlZCht
X2lkLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YSksIGxlbmd0aCkpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpBY2Nlc3NDb250
cm9sQ2hlY2tGYWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OmxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZhaWxlZCht
X2lkLCBlcnJvciksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9h
ZEZpbmlzaGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpCit7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZp
bmlzaGVkKG1faWQpLCAwKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2Y2RmOTZhYjIwMDNkNzgxMGZlZGQxOWFkMDU3MGY2MDEzMDQ3OTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Qb2xpY3lDaGVja2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3Bv
bnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1v
dGVNZWRpYVJlc291cmNlUHJveHkoKTsKKworcHJpdmF0ZToKKyAgICAvLyBQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VDbGllbnQKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFS
ZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbDsK
KyAgICB2b2lkIGRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBjaGFyKiwgaW50KSBmaW5hbDsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxl
ZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJikgZmluYWw7CisgICAgdm9pZCBsb2FkRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2
b2lkIGxvYWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKSBmaW5hbDsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmIG1fcGxhdGZvcm1NZWRpYVJlc291cmNlOworICAgIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIG1faWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDc3MzAyNzZmMDAwNGY2YjJlODQzODM4OGE2Y2I1MzMyOGFh
MmQ2ZS4uODVmODM0MmI4MTBiMjc0ZWJkNTEwNjZjMWM4NjdhNWMyOGVkMjVhZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE5LTEyLTMwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXBs
YXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9hdWRpby1wbGF5LXdpdGgt
dmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1ZGlv
LXBsYXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1
ZGlvLXBsYXkuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gQWRkIGEgcHVyZSB2aXJ0dWFsIGJhc2UgY2xh
c3MgZm9yIEdyYXBoaWNzQ29udGV4dDNECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJv
Y2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA0NzVmYTI4MzJlNmE4NGY5ZGVkMTcxNmQzYTExOGMwODZkODZhZTQ3Li5k
MTZlZTQ1NTBjMTRkZGUzYmU4YjVjM2U2N2M5Njk2MjUxODIyM2U5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dw
dS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3OSw2ICsxNzksMTAgQEAgbGVnYWN5LWFu
aW1hdGlvbi1lbmdpbmUvaW1wb3J0ZWQvYmxpbmsvY29tcG9zaXRpbmcvc3F1YXNoaW5nL3JlbW92
ZS1mcm9tLWdyb3VwZWQKIGluc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNv
bnMuaHRtbCBbIFNraXAgXQogCiBtZWRpYSBbIFNraXAgXQorbWVkaWEvdmlkZW8tc3JjLmh0bWwg
WyBQYXNzIF0KK21lZGlhL21lZGlhLWNhbi1wbGF5LW1wZWctYXVkaW8uaHRtbCBbIFBhc3MgXQor
bWVkaWEvbWVkaWEtY2FuLXBsYXktd2F2LWF1ZGlvLmh0bWwgWyBQYXNzIF0KK21lZGlhL2F1ZGlv
LXBsYXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvbWVk
aWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBmYXN0L2Jsb2NrL2Zsb2F0L2xpc3QtbWFya2VyLWlz
LWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uLXJl
cGxhY2VkLWluLXRhYmxlLWRpc3BsYXktY3Jhc2guaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9hdWRpby1wbGF5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTYwNzdjNjBkODI3MmU4
YWQ5NzgyMTMyOTY3YzE3YmQ5ZTUyN2FlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
bWVkaWEvYXVkaW8tcGxheS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0IHRoYXQg
YSAncGxheScgZXZlbnQgbGlzdGVuZXIgaXMgdHJpZ2dlcmVkIHdoZW4gZmlyZWQgYnkgYSBuZXcg
YXVkaW8gZWxlbWVudC4KKworUlVOKG1lZGlhRWxlbWVudC5zcmMgPSBmaW5kTWVkaWFGaWxlKCdh
dWRpbycsICdjb250ZW50L3Rlc3QnKSkKK1JVTihtZWRpYUVsZW1lbnQucGxheSgpKQorRVZFTlQo
cGxheSkKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2F1ZGlv
LXBsYXktd2l0aC12aWRlby1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlh
L2F1ZGlvLXBsYXktd2l0aC12aWRlby1lbGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MTVkOTI1NmMzZWRiNDc1YzE4MmEyYzBmNzM0ZmJhYTVkZjk0NzZiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKKworVGVzdCB0aGF0IGNhbGxpbmcgcGxheSgpIGFuZCBw
YXVzZSgpIHRyaWdnZXJzIGFzeW5jIHBsYXksIG5vIHRpbWV1cGRhdGUgZXZlbnQgYW5kIHBhdXNl
IGV2ZW50LgorCitSVU4oaGFuZGxlUHJvbWlzZSh2aWRlby5wbGF5KCkpKQorUlVOKHZpZGVvLnBh
dXNlKCkpCitTQ1JJUFQgRE9ORQorRVZFTlQocGxheSkKK0VWRU5UKHdhaXRpbmcpCitFVkVOVChw
YXVzZSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSworRU5EIE9GIFRFU1QK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVs
ZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXktd2l0aC12aWRlby1lbGVt
ZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGExYWZiOWI0MmU2NDc0MjcxZWQwYjliOTY1ZjdmMmRhZjJh
ZDgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXktd2l0
aC12aWRlby1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPHZpZGVvIGNvbnRyb2xzPjwv
dmlkZW8+Cis8cD5UZXN0IHRoYXQgY2FsbGluZyBwbGF5KCkgYW5kIHBhdXNlKCkgdHJpZ2dlcnMg
YXN5bmMgcGxheSwgbm8gdGltZXVwZGF0ZSBldmVudCBhbmQgcGF1c2UgZXZlbnQuPC9wPgorPHNj
cmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXZpZGVvLXRlc3Qu
anM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoImF1
ZGlvIiwgImNvbnRlbnQvc2lsZW5jZSIpOworCisgICAgd2FpdEZvckV2ZW50KCJsb2Fkc3RhcnQi
KTsKKyAgICB3YWl0Rm9yRXZlbnQoInJhdGVjaGFuZ2UiKTsKKyAgICB3YWl0Rm9yRXZlbnQoIndh
aXRpbmciKTsKKyAgICB3YWl0Rm9yRXZlbnQoInJhdGVjaGFuZ2UiKTsKKyAgICB3YWl0Rm9yRXZl
bnQoImR1cmF0aW9uY2hhbmdlIik7CisgICAgd2FpdEZvckV2ZW50KCJsb2FkZWRtZXRhZGF0YSIp
OworICAgIHdhaXRGb3JFdmVudCgibG9hZGVkZGF0YSIpOworICAgIHdhaXRGb3JFdmVudCgiY2Fu
cGxheSIpOworICAgIHdhaXRGb3JFdmVudCgiY2FucGxheXRocm91Z2giKTsKKyAgICB3YWl0Rm9y
RXZlbnQoInBsYXkiKTsKKyAgICB3YWl0Rm9yRXZlbnQoInRpbWV1cGRhdGUiKTsKKyAgICB3YWl0
Rm9yRXZlbnQoJ3BhdXNlJywgZnVuY3Rpb24gKCkgeyB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNl
ZCIsIHRydWUpOyBlbmRUZXN0KCk7IH0gKTsKKworCisgICAgcnVuKCJoYW5kbGVQcm9taXNlKHZp
ZGVvLnBsYXkoKSkiKTsKKyAgICBydW4oInZpZGVvLnBhdXNlKCkiKTsKKyAgICAKKyAgICBjb25z
b2xlV3JpdGUoIlNDUklQVCBET05FIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL2F1ZGlvLXBsYXkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXku
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zZGQxYjhmMGY1ZGYzNTdmMDZlYmM5ZGE3YTllZGMwZWYzOWMzMjlm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS5odG1sCkBA
IC0wLDAgKzEsMjMgQEAKKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+J3BsYXkn
IGV2ZW50PC90aXRsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKworICAgICAg
ICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIG1lZGlhRWxlbWVudCA9IG5ldyBBdWRpbygpOworICAgICAgICAgICAg
ICAgIHdhaXRGb3JFdmVudCgnbG9hZGVkbWV0YWRhdGEnKTsKKyAgICAgICAgICAgICAgICB3YWl0
Rm9yRXZlbnQoJ3BsYXknLCBmdW5jdGlvbigpIHsgZW5kVGVzdCgpOyB9KTsKKyAgICAgICAgICAg
ICAgICBydW4oIm1lZGlhRWxlbWVudC5zcmMgPSBmaW5kTWVkaWFGaWxlKCdhdWRpbycsICdjb250
ZW50L3Rlc3QnKSIpOworICAgICAgICAgICAgICAgIHJ1bigibWVkaWFFbGVtZW50LnBsYXkoKSIp
OworICAgICAgICAgICAgfSAgICAKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisg
ICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICA8cD5UZXN0IHRoYXQgYSAncGxheScgZXZl
bnQgbGlzdGVuZXIgaXMgdHJpZ2dlcmVkIHdoZW4gZmlyZWQgYnkgYSBuZXcgYXVkaW8gZWxlbWVu
dC48L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386516</attachid>
            <date>2019-12-30 01:18:15 -0800</date>
            <delta_ts>2019-12-30 08:10:01 -0800</delta_ts>
            <desc>Update the patch based on comments from Youenn and Eric</desc>
            <filename>bug-205379-20191230011814.patch</filename>
            <type>text/plain</type>
            <size>129396</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZiODI4ODUzZjE4ZTQ0
ZjI5MzZmZWE1YmIyYzQ5ZGIxYjc3YTRkZS4uNmM0NTk4OTU5ODk1NDc4N2U3OGE5MTRiYTNiMDlm
OTM1NTFhOTkyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUgYXJlIHR3byBkZWZpbml0aW9ucyBvZiBT
aG91bGRDb250aW51ZTogV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6U2hvdWxkQ29u
dGludWUKKyAgICAgICAgYW5kIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlLiBUaGlzIHBhdGNoIG1v
dmVzIFdlYkNvcmU6OlNob3VsZENvbnRpbnVlIHRvCisgICAgICAgIFdlYkNvcmU6OlBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlIGluIG9yZGVyIHRvIHN1cHBvcnQgdHJhbnNtaXR0aW5nIGl0
IGluIFhQQyBtZXNzYWdlcy4KKworICAgICAgICBUZXN0czogbWVkaWEvYXVkaW8tcGxheS13aXRo
LXZpZGVvLWVsZW1lbnQuaHRtbAorICAgICAgICAgICAgICAgbWVkaWEvYXVkaW8tcGxheS5odG1s
CisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omxv
YWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3kpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUmVzb3Vy
Y2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIGxvYWRlci9Qb2xpY3lDaGVja2VyLmg6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQ6OnJlc3Bv
bnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJL
aXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwOgorICAgICAgICAoQ2FjaGVkUmVzb3VyY2VTdHJlYW1p
bmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y29jb2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbToKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVO
U1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICgt
W1dlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFzayByZXNvdXJjZTpyZWNlaXZlZFJlc3BvbnNlOmNv
bXBsZXRpb25IYW5kbGVyOl0pOgorCiAyMDE5LTEyLTI5ICBQZW5nIExpdSAgPHBlbmcubGl1NkBh
cHBsZS5jb20+CiAKICAgICAgICAgVHdlYWsgdGhlIGZvcm1hdCBhbmQgY29tbWVudCBpbiB0aGUg
Y29kZSB0byBzdXBwb3J0IG1lZGlhIGluIEdQVSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYwOTNhNDUx
MzA0Yzg4NmIzYTJlMTMxMDJiMDg5MDIzYmJkOGM2YjUuLmNhMWMyY2ZlNGY2MTYyZjIyZTAxMjZh
ZWUyMGYwMzRkYjZhY2MxOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDE5LTEyLTMw
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBt
ZWRpYSByZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gdGhlIEdQVSBwcm9jZXNzLCB0aGUg
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlciBjcmVhdGVzIFJlbW90ZU1lZGlhUmVzb3VyY2Uocyks
CisgICAgICAgIHdoaWNoIHdpbGwgbm90aWZ5IHRoZSBtZWRpYSByZXNvdXJjZSBjbGllbnRzIChX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQpLgorICAgICAgICBUaGVuIHRoZSBkYXRh
IHdpbGwgYmUgZm9yd2FyZGVkIHRvIEFWRm91bmRhdGlvbi4KKworICAgICAgICBJbiB0aGUgV2Vi
IHByb2Nlc3MsIE1laWRhUmVzb3VyY2VMb2FkZXIgY3JlYXRlcyBNZWRpYVJlc291cmNlKHMpLCB3
aGljaCB0YWtlIGNhcmUgb2YKKyAgICAgICAgZG93bmxvYWRpbmcgbWVkaWEgZGF0YSB0aHJvdWdo
IHRoZSBuZXR3b3JrIHByb2Nlc3MuIFRoZSByZWNlaXZlZCBkYXRhIHdpbGwgYmUgZm9yd2FyZGVk
IHRvCisgICAgICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSwgd2hpY2ggd2lsbCBmb3J3YXJk
IHRoZSBkYXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nIFJlbW90ZU1lZGlhUmVzb3VyY2UKKyAgICAg
ICAgdGhyb3VnaCBYUEMgbWVzc2FnZXMuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAg
ICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5o
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBs
YXllclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6cmVx
dWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5
OjptZWRpYVBsYXllckNyZWF0ZVJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckxvZ0lkZW50
aWZpZXIpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpSZW1vdGVN
ZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6flJl
bW90ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
OjpzdG9wKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0Fj
Y2Vzc0NvbnRyb2xDaGVjayBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFS
ZXNvdXJjZTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2U6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZTo6bG9hZEZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVJlc291cmNlLmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpyZWFkeSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6
OnNldFJlYWR5KToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyOjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZUxvYWRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
YWRkTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWNjZXNzQ29udHJvbENoZWNr
RmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Omxv
YWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
bG9hZEZpbmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyLmg6IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAq
IFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlh
L01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6b3JpZ2luc0luTWVk
aWFDYWNoZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xl
YXJNZWRpYUNhY2hlRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVhZHlTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnZvbHVtZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyYXRlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNoYW5n
ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmVuZ2luZUZh
aWxlZFRvTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2Vi
UHJvY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2VQcm94eTo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VQcm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVNlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmFpbGVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojpsb2FkRmluaXNoZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oOiBB
ZGRlZC4KKwogMjAxOS0xMi0yOSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgogCiAg
ICAgICAgIFR3ZWFrIHRoZSBmb3JtYXQgYW5kIGNvbW1lbnQgaW4gdGhlIGNvZGUgdG8gc3VwcG9y
dCBtZWRpYSBpbiBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
aW5kZXggNjM3NWY1MDYyNDE1NmM5ZjQ4YWI3Zjc0YzYxOTZmNTEzZjU5ZjdkZC4uMjJlYjhkMDQz
YjM4MDM3NWNhNWUwZGI1ZjY3ZTFhYzRkODc2NmNkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCkBAIC0xMzgwLDcgKzEzODAsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2Fk
VVJMKEZyYW1lTG9hZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJl
ZgogCiAgICAgaWYgKCF0YXJnZXRGcmFtZSAmJiAhZWZmZWN0aXZlRnJhbWVOYW1lLmlzRW1wdHko
KSkgewogICAgICAgICBhY3Rpb24gPSBhY3Rpb24uY29weVdpdGhTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG1fZnJhbWUsIGZy
YW1lTG9hZFJlcXVlc3QpKTsKLSAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93
UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3Rh
dGUpLCBlZmZlY3RpdmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwsIG9wZW5lclBvbGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNh
bGxlci5yZWxlYXNlKCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8
Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11
dGFibGUgeworICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RG
TW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGVmZmVj
dGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVy
UG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVh
c2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+
JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51
ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250
aW51ZSwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3kpOwogICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICAgICAgfSk7CkBAIC0xNDYzLDcgKzE0NjMs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkKEZyYW1lTG9hZFJlcXVlc3QmJiByZXF1ZXN0KQog
CiAgICAgaWYgKHJlcXVlc3Quc2hvdWxkQ2hlY2tOZXdXaW5kb3dQb2xpY3koKSkgewogICAgICAg
ICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiB7IHJlcXVlc3QucmVxdWVzdGVyKCksIHJlcXVlc3Qu
cmVzb3VyY2VSZXF1ZXN0KCksIEluaXRpYXRlZEJ5TWFpbkZyYW1lOjpVbmtub3duLCBOYXZpZ2F0
aW9uVHlwZTo6T3RoZXIsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpIH07
Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFj
dGlvbiksIFdURk1vdmUocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSksIHsgfSwgcmVxdWVzdC5m
cmFtZU5hbWUoKSwgW3RoaXNdIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQ
dHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUp
IHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUo
YWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9LCByZXF1ZXN0
LmZyYW1lTmFtZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vh
a1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5k
b3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MpOwogICAgICAgICB9KTsKIApAQCAtMzA2Myw3ICszMDYzLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZmUKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQogCi0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3Zl
KGFjdGlvbiksIFdURk1vdmUod29ya2luZ1Jlc291cmNlUmVxdWVzdCksIFdURk1vdmUoZm9ybVN0
YXRlKSwgZnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVu
ZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZv
cm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAg
ICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24pLCBX
VEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGZyYW1l
TmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5LCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVlc3QsIGZvcm1T
dGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBhbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTM1NDEsOSArMzU0MSw5IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlCiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmV3
V2luZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwKLSAgICBGb3JtU3Rh
dGUqIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbiwgU2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3Bl
bmVyUG9saWN5IG9wZW5lclBvbGljeSkKKyAgICBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5IG9wZW5lclBvbGljeSkKIHsKLSAgICBpZiAoc2hvdWxkQ29udGludWUgIT0gU2hvdWxkQ29u
dGludWU6OlllcykKKyAgICBpZiAoc2hvdWxkQ29udGludWUgIT0gUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWU6OlllcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmPEZyYW1lPiBmcmFt
ZShtX2ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggY2UzZWQ2YTU1
MjBiYzRkYzFlMzBlMjc5OTk1MzdhZmQ0ODQ5Y2M4NC4uNzE2MzRjODRjNTYwNTkyOWJlNTRhNTVj
Njg0Y2JlY2ZiMTdmODYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM3
LDYgKzM3LDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiTGF5
b3V0TWlsZXN0b25lLmgiCiAjaW5jbHVkZSAiTWl4ZWRDb250ZW50Q2hlY2tlci5oIgorI2luY2x1
ZGUgIlBvbGljeUNoZWNrZXIuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogI2luY2x1
ZGUgIlJlc291cmNlTG9hZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJPcHRp
b25zLmgiCkBAIC04NCw3ICs4NSw2IEBAIGNsYXNzIFN1YmZyYW1lTG9hZGVyOwogY2xhc3MgU3Vi
c3RpdHV0ZURhdGE7CiAKIGVudW0gY2xhc3MgTmV3TG9hZEluUHJvZ3Jlc3MgOiBib29sOwotZW51
bSBjbGFzcyBTaG91bGRDb250aW51ZTsKIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lz
aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkIDog
Ym9vbDsKIApAQCAtMzU3LDcgKzM1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaFVu
bG9hZEV2ZW50cyhVbmxvYWRFdmVudFBvbGljeSk7CiAKICAgICB2b2lkIGNvbnRpbnVlTG9hZEFm
dGVyTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24sIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCk7Ci0g
ICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYsIFNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkws
IE5ld0ZyYW1lT3BlbmVyUG9saWN5KTsKKyAgICB2b2lkIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2lu
ZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQ
b2xpY3kpOwogICAgIHZvaWQgY29udGludWVGcmFnbWVudFNjcm9sbEFmdGVyTmF2aWdhdGlvblBv
bGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBib29sIHNob3VsZENvbnRpbnVlKTsKIAogICAg
IGJvb2wgc2hvdWxkUGVyZm9ybUZyYWdtZW50TmF2aWdhdGlvbihib29sIGlzRm9ybVN1Ym1pc3Np
b24sIGNvbnN0IFN0cmluZyYgaHR0cE1ldGhvZCwgRnJhbWVMb2FkVHlwZSwgY29uc3QgVVJMJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXgg
MDZlODQ3ZDQ0ODI3NWQ1ZjRhNjI3YzdhNDc3MDg0MWM0ZGNhNDE4Ny4uN2M1MzE4OThkN2JjNzlj
NGI3YzAwOTAwYzc1NzhkNTU5ZGJlNjk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9N
ZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtMTcyLDEwICsxNzIsMTAgQEAgdm9pZCBNZWRpYVJl
c291cmNlOjpyZXNwb25zZVJlY2VpdmVkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSwgY29uc3Qg
UmVzb3VyY2VSZXMKIAogICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IG1fcmVzb3Vy
Y2UtPm9wdGlvbnMoKS5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6Q29yczsKICAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5yZXNwb25zZVJlY2VpdmVkKCp0aGlzLCByZXNw
b25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhh
bmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldIChTaG91bGRDb250aW51
ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIG1fY2xpZW50LT5yZXNwb25zZVJl
Y2VpdmVkKCp0aGlzLCByZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNl
KCldIChhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmIChjb21w
bGV0aW9uSGFuZGxlcikKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAg
ICAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFNob3VsZENvbnRpbnVlOjpObykKKyAgICAg
ICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6Tm8pCiAgICAgICAgICAgICAgICAgc3RvcCgpOwogICAgICAgICB9KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKaW5kZXggMGVmMWU2ZTU3MzFjZmE1Y2I2ZWQ3ZWFlNWIy
N2EyOWM1YzkzYWUyYS4uYzNjZTI2NjI3ZWVkODM0MzQ0ZTRjMjYzNmIzNTBiNThkODEzNjVjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCkBAIC01MiwxMSArNTIsNiBAQCBj
bGFzcyBOYXZpZ2F0aW9uQWN0aW9uOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNzIFJlc291
cmNlUmVzcG9uc2U7CiAKLWVudW0gY2xhc3MgU2hvdWxkQ29udGludWUgewotICAgIFllcywKLSAg
ICBObwotfTsKLQogZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90
IHsKICAgICBDb250aW51ZUxvYWQsCiAgICAgSWdub3JlTG9hZCwKQEAgLTY1LDE1ICs2MCwyMCBA
QCBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3QgewogCiBlbnVt
IGNsYXNzIFBvbGljeURlY2lzaW9uTW9kZSB7IFN5bmNocm9ub3VzLCBBc3luY2hyb25vdXMgfTsK
IAotdXNpbmcgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29u
dGludWUpPjsKLXVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYs
IE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik+OwotCiBjbGFzcyBQb2xpY3lDaGVja2VyIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShQb2xpY3lDaGVja2VyKTsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQb2xpY3lDaGVja2VyKEZyYW1lJik7
CiAKKyAgICBlbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlIHsKKyAgICAgICAgWWVzLAorICAgICAg
ICBObworICAgIH07CisKKyAgICB1c2luZyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYsIFdlYWtQdHI8Rm9y
bVN0YXRlPiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pPjsKKyAgICB1c2luZyBOZXdXaW5k
b3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmLCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBTaG91bGRDb250aW51ZSk+OworCiAgICAg
dm9pZCBjaGVja05hdmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIERvY3VtZW50TG9hZGVyKiwgUmVmUHRyPEZv
cm1TdGF0ZT4mJiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24mJiwgUG9saWN5RGVj
aXNpb25Nb2RlID0gUG9saWN5RGVjaXNpb25Nb2RlOjpBc3luY2hyb25vdXMpOwogICAgIHZvaWQg
Y2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlv
biYmKTsKICAgICB2b2lkIGNoZWNrTmV3V2luZG93UG9saWN5KE5hdmlnYXRpb25BY3Rpb24mJiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIFJlZlB0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwpAQCAtMTEyLDMgKzEx
MiwxNiBAQCBwcml2YXRlOgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisvLyBUbyBz
dXBwb3J0IGVuY29kaW5nIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIGlu
IFhQQyBtZXNzYWdlcworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU+IHsKKyAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSwKKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWU6Ok5vLAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51
ZTo6WWVzCisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKaW5kZXgg
NTE2MTVlZjYwNjVkZDM2ZmE1NTAxOGY2NjY4NDhiMjFjYTliOTc4MC4uYTE0NWYxNjNjNjQzYTM4
NjhlMTk3MTM4YWFlNGVkY2ZkMDQ3NmY5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgK
QEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5QbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQoKSA9IGRlZmF1
bHQ7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIo
U2hvdWxkQ29udGludWU6Olllcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uc2VSZWNlaXZl
ZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWU6Olllcyk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7
IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25n
IGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJT
b3VyY2VHU3RyZWFtZXIuY3BwCmluZGV4IGFlZGJmNjg2ZjA0YmYwOWU3MmQyZDNiNDc0N2M4YmQ5
ZTdmNDllNzAuLjY0MTU0MTc5NzMwNzkwMzAxYWUxNzhlZjg0ZDdmOGFkN2VlZmVkNDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRX
ZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiTWFpblRocmVhZE5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5
ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJQb2xpY3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKQEAgLTY1
LDcgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2ln
bmVkIGJ5dGVzUmVhZCk7CiAKICAgICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgdmly
dHVhbCBtZXRob2RzLgotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChT
aG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGF0YVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNo
YXIqLCBpbnQpIG92ZXJyaWRlOwogICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKICAg
ICB2b2lkIGxvYWRGYWlsZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpIG92ZXJyaWRlOwpAQCAtOTQ0LDcgKzk0NSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VT
dHJlYW1pbmdDbGllbnQ6OmNoZWNrVXBkYXRlQmxvY2tzaXplKHVuc2lnbmVkIGJ5dGVzUmVhZCkK
ICAgICB9CiB9CiAKLXZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNl
UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWUpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9u
c2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRD
b250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViS2l0V2ViU3JjKiBzcmMg
PSBXRUJLSVRfV0VCX1NSQyhtX3NyYy5nZXQoKSk7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSog
cHJpdiA9IHNyYy0+cHJpdjsKQEAgLTk5OCw3ICs5OTksNyBAQCB2b2lkIENhY2hlZFJlc291cmNl
U3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbgogICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJl
Y2VpdmVkICVkIEhUVFAgZXJyb3IgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpLCAo
bnVsbHB0cikpOwogICAgICAgICBwcml2LT5kb2VzSGF2ZUVPUyA9IHRydWU7CiAgICAgICAgIHdl
YktpdFdlYlNyY1N0b3AoR1NUX0JBU0VfU1JDX0NBU1Qoc3JjKSk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTEwMTIsNyArMTAxMyw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdD
bGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAgICAg
ICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihzcmMsIFJFU09VUkNFLCBSRUFELCAoIlJlY2VpdmVk
IHVuZXhwZWN0ZWQgJWQgSFRUUCBzdGF0dXMgY29kZSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2Rl
KCkpLCAobnVsbHB0cikpOwogICAgICAgICAgICAgcHJpdi0+ZG9lc0hhdmVFT1MgPSB0cnVlOwog
ICAgICAgICAgICAgd2ViS2l0V2ViU3JjU3RvcChHU1RfQkFTRV9TUkNfQ0FTVChzcmMpKTsKLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8p
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVChzcmMsICJSYW5nZSByZXF1ZXN0IHN1Y2NlZWRlZCIpOwpAQCAtMTA1OCw3
ICsxMDU5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VS
ZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgcHJpdi0+d2VyZUhl
YWRlcnNSZWNlaXZlZCA9IHRydWU7CiAgICAgICAgIHByaXYtPmhlYWRlcnNDb25kaXRpb24ubm90
aWZ5T25lKCk7CiAgICAgfQotICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpZ
ZXMpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVl
OjpZZXMpOwogfQogCiB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpkYXRhUmVj
ZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQppbmRleCBiYTU1ZjAwNDhiOGU0ZGRjNWIwNzM0ZDk5
M2RjOWIxM2I4Y2IyYjA1Li43OGEwMjc5NThmYjVlOTY5ODEyNmNlZWQ3NGU5YTJiNWVkNDFkZjRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNv
cmVOU1VSTFNlc3Npb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tCkBAIC01Niw3ICs1Niw3IEBAIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiBAcHJvcGVydHkgKGFzc2lnbikgV2ViQ29yZU5TVVJMU2Vzc2lvbiAqIF9O
dWxsYWJsZSBzZXNzaW9uOwogCiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmKXJlc291cmNlIHNlbnRCeXRlczoodW5zaWduZWQgbG9uZyBsb25nKWJ5dGVzU2VudCB0b3Rh
bEJ5dGVzVG9CZVNlbnQ6KHVuc2lnbmVkIGxvbmcgbG9uZyl0b3RhbEJ5dGVzVG9CZVNlbnQ7Ci0t
ICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVk
UmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBsZXRpb25IYW5k
bGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9u
SGFuZGxlcjsKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3Vy
Y2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVyOwogLSAoQk9PTClyZXNvdXJjZTooUGxh
dGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSBzaG91bGRDYWNoZVJlc3BvbnNlOihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZTsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWREYXRhOihjb25zdCBjaGFyKilkYXRhIGxlbmd0
aDooaW50KWxlbmd0aDsKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYp
cmVzb3VyY2UgcmVjZWl2ZWRSZWRpcmVjdDooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9u
c2UgcmVxdWVzdDooUmVzb3VyY2VSZXF1ZXN0JiYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYpY29tcGxldGlvbkhh
bmRsZXI7CkBAIC0zODEsNyArMzgxLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhclRhc2so
KTsKIAotICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250
aW51ZSk+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpIG92ZXJyaWRlOwogICAgIHZv
aWQgcmVkaXJlY3RSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBSZXNvdXJjZVJlcXVl
c3QmJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVz
b3VyY2VSZXF1ZXN0JiYpPiYmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZENhY2hlUmVzcG9u
c2UoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGF0YVNlbnQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQg
bG9uZyBsb25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIG92ZXJyaWRlOwpAQCAtNDEwLDExICs0MTAs
MTEgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmRhdGFTZW50KFBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291
cmNlIHNlbnRCeXRlczpieXRlc1NlbnQgdG90YWxCeXRlc1RvQmVTZW50OnRvdGFsQnl0ZXNUb0Jl
U2VudF07CiB9CiAKLXZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZXNw
b25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRp
bnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFU
YXNrQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzb3Vy
Y2UsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3Rhc2tMb2NrKTsKICAgICBpZiAoIW1fdGFzaykK
LSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpObyk7Cisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZTo6Tm8pOwogCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJjZSByZWNlaXZlZFJlc3Bv
bnNlOnJlc3BvbnNlIGNvbXBsZXRpb25IYW5kbGVyOldURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XTsKIH0KQEAgLTYyNyw3ICs2MjcsNyBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFz
a0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIC8v
IE5vLW9wLgogfQogCi0tICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJl
c291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNl
IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVl
KT4mJiljb21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJl
c291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBB
U1NFUlQocmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3
b3JrIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6RGlz
a0NhY2hlIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6
RGlza0NhY2hlQWZ0ZXJWYWxpZGF0aW9uIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNl
UmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZXNv
dXJjZSwgJnJlc291cmNlID09IF9yZXNvdXJjZSk7CkBAIC02MzgsMTQgKzYzOCwxNCBAQCB2b2lk
IFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYgcmVzbwogICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBzdHJvbmdS
ZXNwb25zZSB7IHJlc3BvbnNlLm5zVVJMUmVzcG9uc2UoKSB9OwogICAgIFJldGFpblB0cjxXZWJD
b3JlTlNVUkxTZXNzaW9uRGF0YVRhc2s+IHN0cm9uZ1NlbGYgeyBzZWxmIH07CiAgICAgaWYgKCFz
ZWxmLnNlc3Npb24pCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250
aW51ZTo6Tm8pOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tl
cjo6U2hvdWxkQ29udGludWU6Ok5vKTsKICAgICBbc2VsZi5zZXNzaW9uIGFkZERlbGVnYXRlT3Bl
cmF0aW9uOltzdHJvbmdTZWxmLCBzdHJvbmdSZXNwb25zZSwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIHN0cm9uZ1Nl
bGYtPl9yZXNwb25zZSA9IHN0cm9uZ1Jlc3BvbnNlLmdldCgpOwogCiAgICAgICAgIGlkPE5TVVJM
U2Vzc2lvbkRhdGFEZWxlZ2F0ZT4gZGF0YURlbGVnYXRlID0gKGlkPE5TVVJMU2Vzc2lvbkRhdGFE
ZWxlZ2F0ZT4pc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uLmRlbGVnYXRlOwogICAgICAgICBpZiAo
IVtkYXRhRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihVUkxTZXNzaW9uOmRh
dGFUYXNrOmRpZFJlY2VpdmVSZXNwb25zZTpjb21wbGV0aW9uSGFuZGxlcjopXSkgewogICAgICAg
ICAgICAgY2FsbE9uTWFpblRocmVhZChbc3Ryb25nU2VsZiwgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNjUzLDEw
ICs2NTMsMTAgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRG
aW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICAgICAgW2RhdGFEZWxlZ2F0
ZSBVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24gZGF0
YVRhc2s6KE5TVVJMU2Vzc2lvbkRhdGFUYXNrICopc3Ryb25nU2VsZi5nZXQoKSBkaWRSZWNlaXZl
UmVzcG9uc2U6c3Ryb25nUmVzcG9uc2UuZ2V0KCkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2Nr
UHRyKFtzdHJvbmdTZWxmLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoTlNVUkxTZXNzaW9uUmVzcG9uc2VEaXNwb3NpdGlvbiBkaXNwb3NpdGlvbikgbXV0
YWJsZSB7CiAgICAgICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBkaXNwb3Np
dGlvbiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lv
blJlc3BvbnNlQ2FuY2VsKQotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
aG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwogICAgICAgICAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZGlzcG9zaXRpb24gPT0gTlNVUkxTZXNz
aW9uUmVzcG9uc2VBbGxvdyk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSkuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDA3ZDMzMDViODIzOTcyZTc4
N2ZmZWU3ZGI4MGUxMTRkMjI1MTEyNjYuLjQzYWY3MGFlZTllMzNiZWE4YWRlMDBmNzNlZTNjYTcy
MmYyYjA0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKQEAgLTE3LDYgKzE3LDcgQEAgJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNz
L0dQVVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvbWFjL2Nv
bS5hcHBsZS5XZWJLaXQuR1BVUHJvY2Vzcy5zYi5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNz
YWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29raWVN
YW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Q
cm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pF
Q1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCU2VydmVyLm1lc3NhZ2VzLmlu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0IGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCA5ODY5Y2YxNzE2MWZlZDk0NDkyYjJlYjY3NmEzMDk2MTE3Y2U2NTJmLi43YmU4OTQ5Y2NhZjIw
OGQyYTM1ZDJlYTBhYmNiMGEyZGU4MmU5MzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyMCw2ICsxMjAsOSBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJNZXNzYWdlc1JlcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktp
dDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVz
LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlcy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VS
ZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMu
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDE3YmRjYjVmMmRhYWE5YmIxYjZhZjRk
NzRhYjU4ZTUwNGE4MTIxODMuLjNjMDc3ZTRmMTdjY2NmMWYzYjgyZGIyYTIwNGQxOTg2YzJmM2Nm
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEzOSw2ICsxMzksNyBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwK
ICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3Rl
T2JqZWN0UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTQ4MDNjYTgwZGFjNDMz
NGVkMmUyNDdmZjcyM2JjMjEyNmZhZmU1NS4uNDljMmI3NTc3ZTllMjMyNGE3N2VmMzMwMTdkYWNm
ZDdkNWY4NmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgIlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKICNpbmNs
dWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xMDksNiArMTExLDE0IEBAIHZvaWQg
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAg
ICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOworfQorCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlm
ICghbV9yZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSkKQEAgLTEzMiw2ICsxNDIsOSBAQCB2
b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5h
bWUoKSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgp
LmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2
ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggODczZGNlYTI5NGQ5NjM4ZTA2MmEwY2Q2
YTA5MTRmMjUzM2RhZWM2MC4uYmMzMzQxY2VkNmQwMjhkNjQxZGJhMDAyMmM3ZjRlZTFjODBjMzEy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3Mg
R1BVUHJvY2VzczsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xhc3Mg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJsaWMg
UmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtNTYsNiArNTcsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbmRTdXNwZW5zaW9uKCk7CiAKICAgICBXZWJDb3JlOjpQcm9jZXNz
SWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViUHJv
Y2Vzc0lkZW50aWZpZXI7IH0KKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKIAogICAgIExvZ2dlciYgbG9nZ2VyKCk7CiAKQEAgLTc4
LDYgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJDb3Jl
OjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAgICAgUEFMOjpTZXNzaW9uSUQg
bV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCA4MzQ2NzNhZjk0ZjExMGQyNTRj
Njg1NTRjNDBlMDA4MTlhNzU2YTRiLi4wNTAzNDA0YTBmMWNiNTk5NzkxZjAwM2MzZjg0YTk2MzUx
ZTRkMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTI5LDEwICsyOSwx
MiBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBAIC00MSw2ICs0Myw3IEBACiAj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hFQ0tf
QkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDE2ZWQ2ZjIwMWRhM2RmY2Vi
YjQ5NDM2MGNjYjVjMDVhM2RjZTk0MjguLmFlNTFmYzBjNTIwMDNlMzUwZGI1ZGRlMmQ2NmQ4MjQ4
NDM3MmU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC0zMCwxNSArMzAsMTYg
QEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7CitjbGFz
cyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyUHJv
eHk7CiBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uOworc3RydWN0IFJlbW90
ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eQogICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwCmluZGV4IDZkZmE3NWY1YzUxZDM4YWJjMWQ1Yjk4MzQ0NTI0Y2E5YWRhNzNlOWUu
Ljg4YzdlNzkxMjk3Njk3MDFkNDdjZmNlYzM1MWNjM2VjMjM1MzQzYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAKQEAgLTI4LDggKzI4LDE2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNp
bmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KQEAgLTUzLDYgKzYxLDEwIEBAIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hCiAgICAg
bV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzLCBtX2VuZ2luZUlkZW50aWZpZXIp
OwogfQogCitSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSgp
Cit7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7CiAg
ICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7CkBAIC0xNDMsNiArMTU1
LDI1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0UHJlc2VydmVzUGl0Y2goYm9v
bCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJlc2Vy
dmVzUGl0Y2gpOwogfQogCitSZWY8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVBs
YXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgUGxh
dGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAgIGF1
dG8mIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbV9tYW5hZ2VyLmdwdUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MoKS5yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOworICAgIGF1dG8gcmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKKyAgICBhdXRvIHJlbW90ZU1lZGlhUmVzb3VyY2UgPSBSZW1vdGVNZWRp
YVJlc291cmNlOjpjcmVhdGUocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsICp0aGlzLCByZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuYWRkTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVtb3Rl
TWVkaWFSZXNvdXJjZSk7CisKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVxdWVzdFJlc291
cmNlKG1faWQsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25z
KSwgW3JlbW90ZU1lZGlhUmVzb3VyY2UgPSByZW1vdGVNZWRpYVJlc291cmNlLmNvcHlSZWYoKV0o
KSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2UtPnNldFJlYWR5KHRydWUpOworICAgIH0p
OworCisgICAgcmV0dXJuIHJlbW90ZU1lZGlhUmVzb3VyY2U7Cit9CisKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZW1vdmVS
ZXNvdXJjZShtX2lkLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciksIDApOworfQorCiAv
LyBNZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBs
YXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewpAQCAtMzg4LDggKzQxOSw3IEBAIENhY2hlZFJl
c291cmNlTG9hZGVyKiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNhY2hlZFJl
c291cmNlTG9hZGVyKCkKIAogUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gUmVt
b3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigpCiB7
Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCp0aGlzKSk7CiB9CiAKIGJv
b2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbVN0
cmluZyYsIEF0b21TdHJpbmcqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggNjAwZGNhZmY5OTgx
ODQyOGVkNGIyODM1ODYxMjE3ZmRhZGY4NjljZC4uY2FmZGQ3NTBlZGM4NzUyMjVjMjU3YTA1Yjkx
NDI0ZTExNzZmNjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yNywzNCArMjcsMzIgQEAKIAogI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxX
ZWJDb3JlL0Nvb2tpZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBJUEMgewot
Y2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVkaWFQ
bGF5ZXI7Ci19CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogCi1jbGFzcyBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Ci0gICAgOiBwdWJsaWMgTWVkaWFQbGF5ZXJDbGllbnQgeworY2xhc3Mg
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAorICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFJlbW90ZU1lZGlhUGxheWVyUHJveHk+CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBN
ZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVy
UHJveHlDb25maWd1cmF0aW9uJiYpOwotICAgIHZpcnR1YWwgflJlbW90ZU1lZGlhUGxheWVyUHJv
eHkoKQotICAgIHsKLSAgICB9CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIs
IFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24mJik7
CisgICAgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgp
OwogCkBAIC02Miw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlcGFyZUZvclBsYXli
YWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxvYWQs
IGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZyk7CiAKLSAgICB2
b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIAogICAgIHZvaWQgcHJlcGFy
ZVRvUGxheSgpOwpAQCAtODAsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2YXRl
QnJvd3NpbmdNb2RlKGJvb2wpOwogICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAK
KyAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3VyY2Uo
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJj
ZUxvYWRlcjo6TG9hZE9wdGlvbnMpOworICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxheWVyQ2xp
ZW50CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKSBmaW5hbDsKQEAg
LTEyNCwzOSArMTI1LDM5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVsbHNj
cmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5QZXJt
aXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNvbnN0
IGZpbmFsOwotICAgIExheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNvbnN0
IGZpbmFsOworICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVj
dCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZvaWQg
bWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclBsYXRmb3JtVm9s
dW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCkgY29uc3QgZmluYWw7Ci0gICAgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKLSAgICBS
ZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291
cmNlTG9hZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIG1l
ZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29y
ZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291cmNl
TG9hZGVyKCkgZmluYWw7CiAgICAgYm9vbCBkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9tU3Ry
aW5nJiwgQXRvbVN0cmluZyogPSBudWxscHRyKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlh
UGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgZmluYWw7CiAgICAgY29uc3Qg
U3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCBmaW5hbDsKIAot
ICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRlJikg
ZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVvVHJhY2so
VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3Zl
QXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5
ZXJEaWRSZW1vdmVUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAg
IHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRlJikg
ZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6QXVk
aW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVGV4dFRy
YWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1l
ZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYpIGZp
bmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKFdlYkNvcmU6OkF1
ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVRl
eHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9p
ZCBtZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZh
dGUmKSBmaW5hbDsKIAotICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHNDaGFu
Z2VkKGNvbnN0IEludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0
aW9uQm91bmRzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgVmVjdG9yPFJl
ZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291cmNlcygpIGZpbmFsOwor
ICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2s+PiBvdXRPZkJhbmRU
cmFja1NvdXJjZXMoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpIGNvbnN0IGZpbmFs
OwotICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3RvcjxD
b29raWU+JikgY29uc3QgZmluYWw7CisgICAgYm9vbCBtZWRpYVBsYXllckdldFJhd0Nvb2tpZXMo
Y29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBjb25zdCBmaW5hbDsKICNlbmRp
ZgogCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyU291cmNlQXBwbGljYXRpb25JZGVudGlmaWVyKCkg
Y29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1Jh
dGUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNj
cmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KCkgY29uc3QgZmluYWw7CiAgICAgVmVjdG9yPFN0cmluZz4gbWVkaWFQbGF5
ZXJQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygpIGNvbnN0IGZpbmFsOwogCkBAIC0xNzYs
OSArMTc3LDkgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIgbV9pZDsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9uOwotICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgUmVmUHRyPFdlYkNv
cmU6Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQ
cm94eSYgbV9tYW5hZ2VyOwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRp
ZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6
TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKICAgICBWZWN0b3I8V2Vi
Q29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiAgICAg
UnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91cGRhdGVDYWNoZWRTdGF0
ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTExZDE2NzlkNTFlNzM2ZjIwN2NjNmQ5YjEyODY0NzZm
NjQ3MjYxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisK
KyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclBy
b3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVtb3RlTWVkaWFSZXNvdXJjZT4gUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6Y3JlYXRlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlciwgcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSwgaWQpKTsKK30KKworUmVtb3RlTWVkaWFS
ZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYg
cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90
ZU1lZGlhUGxheWVyUHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQorICAg
IDogbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cikKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVNZWRp
YVBsYXllclByb3h5KSkKKyAgICAsIG1faWQoaWQpCisgICAgLCBtX3JlYWR5KGZhbHNlKQorewor
fQorCitSZW1vdGVNZWRpYVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNvdXJjZSgpCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdG9wKCk7CisgICAgbV9yZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlci5yZW1vdmVNZWRpYVJlc291cmNlKG1faWQpOworfQorCit2b2lkIFJlbW90
ZU1lZGlhUmVzb3VyY2U6OnN0b3AoKQoreworICAgIGlmIChtX3JlbW90ZU1lZGlhUGxheWVyUHJv
eHkpCisgICAgICAgIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+cmVtb3ZlUmVzb3VyY2UobV9p
ZCk7Cit9CisKK2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xD
aGVjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ss
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250
cm9sQ2hlY2s7CisgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNl
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsK
KyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgaWYgKHNob3VsZENvbnRp
bnVlID09IFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPnN0b3AoKTsKKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRD
b250aW51ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVkaXJl
Y3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5y
ZWRpcmVjdFJlY2VpdmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25zZSwgW10oYXV0
byYmKSB7IH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnNob3VsZENhY2hlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgUmVmUHRyPFJl
bW90ZU1lZGlhUmVzb3VyY2U+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgcmV0dXJuIG1fY2xp
ZW50ID8gbV9jbGllbnQtPnNob3VsZENhY2hlUmVzcG9uc2UoKnRoaXMsIHJlc3BvbnNlKSA6IHRy
dWU7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVNlbnQodWludDY0X3QgYnl0
ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgaWYgKG1fY2xpZW50
KQorICAgICAgICBtX2NsaWVudC0+ZGF0YVNlbnQoKnRoaXMsIGJ5dGVzU2VudCwgdG90YWxCeXRl
c1RvQmVTZW50KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVjZWl2ZWQo
Y29uc3QgY2hhciogZGF0YSwgaW50NjRfdCBsZW5ndGgpCit7CisgICAgaWYgKG1fY2xpZW50KQor
ICAgICAgICBtX2NsaWVudC0+ZGF0YVJlY2VpdmVkKCp0aGlzLCBkYXRhLCBsZW5ndGgpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2sgPSBmYWxzZTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5hY2Nlc3ND
b250cm9sQ2hlY2tGYWlsZWQoKnRoaXMsIGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlOjpsb2FkRmFpbGVkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmxvYWRGYWlsZWQoKnRoaXMsIGVycm9yKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpsb2FkRmluaXNoZWQoKQoreworICAgIGlm
IChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmxvYWRGaW5pc2hlZCgqdGhpcyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmggYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU3YmUz
MDk2ZDk1ZWVhMDAzMTllY2I2OWE2YmQ3Yzk2OTQxMjcxODMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKworI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KKyNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOworCitjbGFz
cyBSZW1vdGVNZWRpYVJlc291cmNlIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW1vdGVNZWRpYVJlc291cmNlPiBjcmVh
dGUoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImLCBSZW1vdGVNZWRpYVBsYXllclByb3h5Jiwg
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNl
KCk7CisKKyAgICBib29sIHJlYWR5KCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeTsgfQorICAgIHZv
aWQgc2V0UmVhZHkoYm9vbCByZWFkeSkgeyBtX3JlYWR5ID0gcmVhZHk7IH0KKworICAgIC8vIFBs
YXRmb3JtTWVkaWFSZXNvdXJjZQorICAgIHZvaWQgc3RvcCgpIGZpbmFsOworICAgIGJvb2wgZGlk
UGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCByZXNwb25z
ZVJlY2VpdmVkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4m
Jik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgYm9vbCBzaG91bGRDYWNo
ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRh
dGFTZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoY29uc3Qg
Y2hhciosIGludDY0X3QpOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGYWlsZWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CisKK3ByaXZh
dGU6CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYs
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7
CisKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbV9yZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjsKKyAgICBXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fcmVtb3RlTWVk
aWFQbGF5ZXJQcm94eTsKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOwor
ICAgIGJvb2wgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fcmVhZHk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjcyOGE1YjQwNzNiMzBkOTRjZTk1YTYz
MGJmZDZjNWYzY2ExYjgxZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KworI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitlbnVtIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRlZWY5MGE1OTA0ZjhiOWZk
YWRkZDAwZDQ4MmYxNTZmZWYwOTQyOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTAsMCAr
MSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNp
bmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVN
ZWRpYVBsYXllclByb3h5KQorICAgIDogbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KG1ha2VXZWFr
UHRyKHJlbW90ZU1lZGlhUGxheWVyUHJveHkpKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpCit7Cit9CisKK1JlZlB0cjxQbGF0
Zm9ybU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNv
dXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBMb2FkT3B0aW9ucyBvcHRpb25zKQorewor
ICAgIGlmICghbV9yZW1vdGVNZWRpYVBsYXllclByb3h5KQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHktPnJlcXVlc3RSZXNvdXJj
ZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRp
YS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWIyYjM3Mjg1MTcxNzA5
NWQzNTIzNTQ5MGRlZDhlMzkxMTE5Mzc5OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVBsYXllclBy
b3h5OworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyIGZpbmFsCisgICAgOiBwdWJs
aWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyIHsKK3B1YmxpYzoKKyAgICBl
eHBsaWNpdCBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKFJlbW90ZU1lZGlhUGxheWVyUHJveHkm
KTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigpOworCitwcml2YXRlOgorICAgIFJl
ZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+IHJlcXVlc3RSZXNvdXJjZShXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgTG9hZE9wdGlvbnMpIGZpbmFsOworICAgIFdlYWtQdHI8
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV9yZW1vdGVNZWRpYVBsYXllclByb3h5OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjlhYzM1OGNiZTkzOTE2ODVjNzBlZWEyMmU3NDc5OWFhMDg3OTg5MAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5jcHAKQEAgLTAsMCArMSwxMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIK
KworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgiCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpCit7Cit9CisK
K1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIo
KQoreworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291
cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlJiByZW1vdGVNZWRpYVJlc291cmNlKQoreworICAg
IEFTU0VSVCghbV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllcikpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuYWRkKHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCAmcmVtb3RlTWVkaWFSZXNvdXJjZSk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7Cisg
ICAgQVNTRVJUKG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMocmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OnJlc3BvbnNlUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIg
aWQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3ND
b250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxk
Q29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHJlc291cmNlID0g
bV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpOworICAgIGlmICghcmVzb3VyY2UgfHwgIXJl
c291cmNlLT5yZWFkeSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCktPnJlc3BvbnNlUmVjZWl2ZWQocmVzcG9uc2Us
IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVkaXJlY3RSZWNlaXZlZChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVt
b3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJj
ZS0+cmVhZHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWRpcmVj
dFJlY2VpdmVkKFdURk1vdmUocmVxdWVzdCksIHJlc3BvbnNlKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudChS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgdWludDY0X3QgYnl0ZXNTZW50LCB1aW50
NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90
ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2Ut
PnJlYWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMu
Z2V0KGlkKS0+ZGF0YVNlbnQoYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworfQorCit2
b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhUmVjZWl2ZWQoUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sK
KyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAg
ICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5kYXRhUmVjZWl2ZWQocmVpbnRl
cnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxl
ZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdl
dChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+YWNjZXNzQ29u
dHJvbENoZWNrRmFpbGVkKGVycm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6bG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1l
ZGlhUmVzb3VyY2VzLmdldChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJl
YWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0
KGlkKS0+bG9hZEZhaWxlZChlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI6OmxvYWRGaW5pc2hlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK3sK
KyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAg
ICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5sb2FkRmluaXNoZWQoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYmE2NzA0ZGI1MzRlOTA3OWIxMTQzMjU1OThkODY1MzMzOTk3MDQ5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BvbGljeUNoZWNrZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
CituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworY2xh
c3MgRGF0YVJlZmVyZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFS
ZXNvdXJjZTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIKKyAgICA6IHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIoKTsKKworICAgIHZvaWQgYWRkTWVkaWFSZXNvdXJjZShSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZSYpOworICAgIHZvaWQg
cmVtb3ZlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdm9p
ZCByZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVk
aXJlY3RSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZGF0YVNlbnQoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIHVpbnQ2NF90LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2
ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5j
ZSYpOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBs
b2FkRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmluaXNoZWQoUmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIpOworCisgICAgSGFzaE1hcDxSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciwgUmVtb3RlTWVkaWFSZXNvdXJjZSo+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYzYjVmZDBjYzQ0Y2Q3ZDAyMGE0ODc2ZTA0YWJm
Yjg3MDEzYjc1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDM4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworbWVzc2FnZXMgLT4g
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgTm90UmVmQ291bnRlZCB7CisgICAgUmVzcG9uc2VS
ZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hl
Y2spIC0+IChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250
aW51ZSkgQXN5bmMKKyAgICBSZWRpcmVjdFJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKSAtPiAoKSBBc3luYworICAgIERhdGFTZW50
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIHVpbnQ2NF90IGJ5dGVz
U2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQorICAgIERhdGFSZWNlaXZlZChXZWJL
aXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBJUEM6OkRhdGFSZWZlcmVuY2Ug
ZGF0YSkKKyAgICBBY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBM
b2FkRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9hZEZpbmlzaGVkKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZjJlOWVkN2FiNTQwMmVmNTExODhmN2U4ZGJl
Mzk2YmE4YWNlMGZhZC4uMjU3YjAwZWI4NjA4ODE1YWM4OWI1NzI1YjVhYjIxNDkzMDc5ZjE4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIw
LDcgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAg
ICAgJ1dlYktpdDo6QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5
ZXJIb3N0aW5nQ29udGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYktpdDo6U3RvcmFnZUFyZWFJbXBsSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDE5MTZkYjNk
NjViNjVlY2RjNWUwMGVhN2VjMDFlZmRjNjU2NjEwZmYuLjc4NTgwY2U3MDMzZTM3OTc3YThkZWU2
ZmZhNDQ1ODEwYzY5ZGQxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dApAQCAtMjQsNiArMjQsMTEgQEAKIEdQVVBy
b2Nlc3MvR1BVUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKy8vR1BV
UHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKy8vR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorLy9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUmVzb3VyY2UuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5jcHAKIAogTmV0d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5j
cHAKIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC01MDIsOCAr
NTA3LDkgQEAgV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9NZWRpYURldmljZVNhbmRib3hFeHRlbnNp
b25zLmNwcAogV2ViUHJvY2Vzcy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXIuY3BwCiAKIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAot
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAotV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwCisvL1dlYlByb2Nlc3MvR1BV
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcAogCiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGE0YWE1NWUyYWExOWExNDY2MjU0
YmJmMWJiYzcyMjg5OWI2YzYyNzguLjAyM2RiZDM5NGQ0NTZmZGRkMTE4YWE5YjY2ZDgyOTIwZjYy
MTYyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTU5LDggKzU5LDYgQEAgTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtSVENTb2NrZXQuY3BwCiAKIEdQVVByb2Nlc3MvaW9zL0dQVVBy
b2Nlc3NJT1MubW0KIEdQVVByb2Nlc3MvbWFjL0dQVVByb2Nlc3NNYWMubW0KLUdQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKLUdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCiBHUFVQcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2Ev
WFBDU2VydmljZS9HUFVTZXJ2aWNlRW50cnlQb2ludC5tbQogCiBQbGF0Zm9ybS9jZi9Nb2R1bGVD
Ri5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGUzYjkxOTIwYzliOGEzZjM2YTBiZDE0OGNhODU4ZGJkZGNiM2EwODcuLmY2NmMxNmJi
ZmNhZTA0ZjM2YzhlNTA4YTkwNzU2ODllYzcwOWJmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA3LDcgKzQwNywyMCBAQAogCQkx
Q0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdD
ODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNC
QkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlF
MTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5
RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OworCQkx
RDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5QjIzQTg0
QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi87IH07CisJCTFEMzJG
ODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUQyM0E4NEM1
QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi87IH07CisJCTFEM0FC
MDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovOyB9
OworCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0JBRjM1
NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi87IH07CisJ
CTFEM0FCMDUyMjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODk5MjNBODQ2
ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTMy
M0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzQUIwNEUyM0FCMDA5QjAw
NUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQkxRDNBQjA1
NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4OUUyM0E4Mjc3
ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTUyM0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMTIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMDIzOUIz
QjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQ0
RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkxRDRENzM3NjIz
QTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3
Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVl
dENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICov
OyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICov
OyB9OwogCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEz
MDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlG
QjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1t
ICovOyB9OwogCQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
TG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERl
bGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTI2MjAsOSArMjYzMywyMiBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJ
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
Ykluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUQyM0E4NEM1QjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzQUIw
NEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2QzIz
QTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM3NTIzQTlF
QjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVTaGVldENhbGxiYWNrSUQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODlF
MjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hl
ZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hl
ZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQz
OUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERTJERkFDMjNB
OTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkExODU4
REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NjMsNyArNDg4OSw3IEBACiAJCURGNThDNjMxMTM3MUFDNTgw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJXaGVl
bEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTE1
QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYg
LyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5pY25zOyBu
YW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTExNCw2ICs1MTQwLDggQEAKIAkJCQkwNzkyMzEzNDIzOUIzQjBDMDA5
NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJMDc5MjMxMzMyMzlC
M0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywK
IAkJCQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5o
ICovLAorCQkJCTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuY3BwICovLAorCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNTEyNyw2ICs1MTU1LDE0IEBACiAJCQkJMDdCQUYzNTcyM0Ey
Q0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovLAogCQkJCTA3QkFG
MzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8sCiAJCQkJ
MDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uLmggKi8sCisJCQkJMUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwICovLAorCQkJCTFEMzJGODk4MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlLmggKi8sCisJCQkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovLAorCQkJCTFEM0FCMDREMjNB
QjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJMURB
NDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTkyODQsNiArOTMyMCw5IEBACiAJCQkJMDc5
MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkwNzkyMzE0NjIzOUNCQ0I3MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTA3OTIzMTQyMjM5
Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVw
bGllcy5oICovLAorCQkJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMUQ0RDczNkMyM0E5REY2
MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxQUMxMzM4MzE4NTkwQzQ2MDBGM0VDMDUgLyogUmVt
b3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQzEzMzg0MTg1
OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggKi8sCiAJCQkJ
MEY1OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEwMTc4LDYgKzEwMjE3LDEwIEBACiAJCQkJMDc5MjMx
NEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTQ4MjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdCM0I0NzAyM0FCMzAyRDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFEQTQwODk1MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0RDczNzEyM0E5RTU2
MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzMkY4OUMy
M0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFCNzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVt
b3RlT2JqZWN0SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFF
NDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTEx
Nzg4LDYgKzExODMxLDcgQEAKIAkJCQkyOTg0RjU3QzE2NEI5MTVGMDA0QkMwQzYgLyogTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDQ5RDkwREEyMUZEQzMwQjAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzc5MjEyQjZBNjEwMEY0OTNGRCAv
KiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU1MjNBQzAxRjMwMDVDMUZG
MCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3ODEyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkyQTc4MjIxMkI2QTcxMDBGNDkzRkQgLyogTWVzc2FnZVNlbmRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3QTIxMkI2QTYxMDBGNDkzRkQgLyogTW9kdWxlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTE4NDQsOCArMTE4ODgsMTYgQEAKIAkJCQkyRDcyQTFGQTIx
MkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNl
cyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMx
OEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNl
cyAqLywKKwkJCQkxRDNBQjA1NjIzQUMwMUY2MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTQ5MjM5Q0JDQjgwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQzQUIwNTAyM0FDMDFBMDAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTRCMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFG
RjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1
MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxRDNBQjA1NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFEMzJGODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNF
QzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNTk0N0E3MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTVCQTgyNjFC
QTI1Q0ZEMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGU4ZGFhZTBmOWJhODVhMjUxYjcwNjdk
ZTM4Y2E0YTc2OTc0MjE1ODAuLmI4ZTQ3NjdmYzAwZDQ5MzFlNGQ4YTEzNGJiYjNjZGU4ZDQ2NzZl
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
CiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IDg1M2NjMTY1NTA5NGJiNTI0MjFmYjZjZmExYzMxOWE5NjQ3MWMwOTQuLjMxYzYxMDQ2
NjlmMmYwMmZmYTQ0MGZlYjg4MDkyNmM3NGFlMjZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTU1LDcgKzU1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAotICAgIC8v
IFRoZSBjb25uZWN0aW9uIGZyb20gYSB3ZWIgcHJvY2VzcyB0byB0aGlzIEdQVSBwcm9jZXNzLgor
ICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBHUFUgcHJv
Y2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzQ4YTBmNWY0OGE3ZWE0OTU5NWVjYjVhYjEy
YzQzZTE1ZTRlYmZmMS4uNzU4ZDdlMjU3NDhiNjFlY2IzNDhiNmY1MWUxMjUyZjM3NWZjNjVkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNjIsNiArNjIsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
JiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VMb2Fk
ZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5lSWRlbnRpZmllcikKICAg
ICAsIG1faWQocGxheWVySWRlbnRpZmllcikKQEAgLTc5OCw2ICs3OTksMjEgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVlc3RS
ZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAg
IEFTU0VSVCghbV9tZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcikpOworICAgIGF1dG8gcmVzb3VyY2UgPSBtX21lZGlhUmVzb3VyY2VMb2FkZXItPnJl
cXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICAvLyBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2Ugb3ducyB0aGUgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50CisgICAg
cmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eT4o
bV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksICpyZXNvdXJjZSwgcmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX21lZGlhUmVzb3VyY2VzLmFkZChyZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXNvdXJjZSkpOworfQorCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgLy8gVGhlIGNs
aWVudChSZW1vdGVNZWRpYVJlc291cmNlUHJveHkpIHdpbGwgYmUgZGVzdHJveWVkIGFzIHdlbGwK
KyAgICBtX21lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cik7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwmIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAppbmRleCA2ODg3MmFlYmNmMGVlMGQ5NWMxZjZhNmE3NjY0MDg3ZjEwZGE4ZjVk
Li5mYWEyZWM5YTMyMWI3ODQ5ZDQ2ODYxNGZjZThiYTk5NzExYTFkNzJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC0z
OSwyMiArNDEsMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSBmaW5hbAogICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZT4KLSAgICAsIHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjZW5kaWYK
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
aWRlbnRpZmllciwgbWFuYWdlciwgY29uZmlndXJhdGlvbik7CiAgICAgfQogCi0gICAgZXhwbGlj
aXQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24mKTsKLSAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsK
KyAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOworCisgICAgfk1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVl
OyB9Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7
IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRl
bnRpZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVy
SXRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIHZvaWQgbmV0d29ya1N0
YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwpAQCAtNjksNiArNzIsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShSZW1vdGVNZWRpYVBsYXllclN0YXRl
JiYpOwogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wg
aGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogCisg
ICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI6OkxvYWRPcHRpb25zKTsKKyAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CiAg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KQEAgLTc3LDE0ICs4MywxNCBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVu
dFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29u
c3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXll
cjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKIAog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFsOworICAgIHZvaWQgbG9hZChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBmaW5hbDsKICNlbmRpZgog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9pZCBsb2FkKE1lZGlhU3RyZWFtUHJpdmF0
ZSYpIGZpbmFsOworICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBm
aW5hbDsKICNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpIGZpbmFsOwogCkBAIC0xMDYsOSAr
MTEyLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVl
bklubGluZUltYWdlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShG
bG9hdFJlY3QpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRp
YVBsYXllcjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bk1vZGUoTWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQg
c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0KSBmaW5hbDsKKyAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlZpZGVv
R3Jhdml0eSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICB2b2lkIHZpZGVv
RnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzEy
NCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVycm9yTG9nKCkgY29uc3QgZmluYWw7CiAjZW5k
aWYKIAotICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQ
b2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c1BpY3R1
cmVJblBpY3R1cmUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigp
IGNvbnN0IGZpbmFsOwpAQCAtMTI2LDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNh
blNhdmVNZWRpYURhdGEoKSBjb25zdCBmaW5hbDsKIAotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNv
bnN0IGZpbmFsOwogCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKQEAgLTE1OSwyOSArMTY1LDI5IEBAIHByaXZhdGU6CiAg
ICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBt
aW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0
ZS5uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlOyB9CisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQorICAgIFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NhY2hlZFN0YXRlLnJlYWR5U3RhdGU7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBmaW5hbDsK
IAogICAgIE1lZGlhVGltZSBtYXhNZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwogICAg
IE1lZGlhVGltZSBtaW5NZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQo
KSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVk
VGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBjb25z
dCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBmaW5hbDsKIAotICAgIHZv
aWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWw7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKIAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBwYWludChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKIAotICAg
IHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JikgZmluYWw7Ci0gICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0Mz
RGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Ci0g
ICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgYm9vbCBjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNE
ZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRQcmVsb2FkKE1l
ZGlhUGxheWVyOjpQcmVsb2FkKSBmaW5hbDsKKyAgICB2b2lkIHNldFByZWxvYWQoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOwogCiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCkgY29uc3QgZmluYWw7CiAKQEAgLTE5MiwxNCArMTk4LDE0IEBAIHByaXZhdGU6CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIFN0cmluZyB3aXJlbGVz
c1BsYXliYWNrVGFyZ2V0TmFtZSgpIGNvbnN0IGZpbmFsOwotICAgIE1lZGlhUGxheWVyOjpXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0
IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0
VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9v
bCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
c2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICBib29s
IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZp
bmFsOworICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8V2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CiAKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KGJvb2wpIGZpbmFsOwogI2VuZGlmCkBAIC0yMTYsOSArMjIyLDkgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdCBmaW5hbDsKLSAgICBPcHRp
b25hbDxib29sPiB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3Qg
ZmluYWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludE9yaWdpbihjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmll
TG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAg
IHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIGZpbmFsOwogCkBAIC0yMzQsMjUgKzI0MCwyNSBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwog
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1Nv
dXJjZVByb3ZpZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlciog
YXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4g
Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmlu
YWw7Ci0gICAgdm9pZCBzZXRDRE1TZXNzaW9uKExlZ2FjeUNETVNlc3Npb24qKSBmaW5hbDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lv
bihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmluYWw7
CisgICAgdm9pZCBzZXRDRE1TZXNzaW9uKFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb24qKSBmaW5h
bDsKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCi0gICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikg
ZmluYWw7Ci0gICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7
Ci0gICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhbmNlJikgZmlu
YWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNlJikg
ZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNl
JikgZmluYWw7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKFdlYkNvcmU6
OkNETUluc3RhbmNlJikgZmluYWw7CiAgICAgYm9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29sIHJlcXVpcmVz
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldFRleHRU
cmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgZmluYWw7CisgICAg
dm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3luY1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwog
ICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCkBAIC0yNzIsNyArMjc4LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZW5kZWQoKSBjb25zdCBmaW5hbDsKIAotICAgIE9wdGlv
bmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6VmlkZW9QbGF5YmFja1F1YWxpdHlN
ZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MoKSBmaW5hbDsKIAogI2lmIEVOQUJM
RShBVkZfQ0FQVElPTlMpCiAgICAgdm9pZCBub3RpZnlUcmFja01vZGVDaGFuZ2VkKCkgZmluYWw7
CkBAIC0yOTMsMTkgKzI5OSwyMiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVJ
bnRyaW5zaWNTaXplKCkgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxs
cHRyIH07Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIG1fbWFuYWdlcjsKLSAgICBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVz
b3VyY2VMb2FkZXI7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIG1fY29uZmlndXJh
dGlvbjsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUgbV9jYWNoZWRTdGF0ZTsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBtX2NhY2hlZEJ1ZmZlcmVkVGltZVJh
bmdlczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBt
X2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBt
X21lZGlhUmVzb3VyY2VzOwogCiAgICAgZG91YmxlIG1fdm9sdW1lIHsgMSB9OwogICAgIGRvdWJs
ZSBtX3JhdGUgeyAxIH07CiAgICAgbG9uZyBtX3BsYXRmb3JtRXJyb3JDb2RlIHsgMCB9OwotICAg
IE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRUeXBlIHsgTWVkaWFQ
bGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9OworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRUeXBlIHsgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9oYXNB
dWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIuaAppbmRleCAzZDU1ZmRhYWE5MmEyNWI2MmI4ZjU3MzhkMmNlOGMyOWMzMGIxM2RkLi4y
NTZiM2M1OWZiZTQyYjZiYzFhMzA2NzFlNzAwYTU3MzRkZGI5ZjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzMsMyArMzUsNSBAQCBl
bnVtIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlPjsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IGFlNzU2ODZk
YWY5MmZkMjI1ODQ5MjRlMmM5NDY5M2JiNzNlMWI0NzkuLjcxYjcxYmZmYTIzOGI5NGFiMzIzYWM0
OTFmYzYxMjA1YjRiNDhjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4
LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkdQVVBy
b2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC00MSw2ICs0Myw3IEBACiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTY1LDcgKzE2OCw3IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7CiB9CiAK
LU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBw
b3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
IHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIC8vIEZJWE1F
OiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0aGVtLgogCkBAIC0xODEsOSAr
MTg0LDkgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzS2V5U3lzdGVt
KE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgp
CitIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAg
IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbkRhdGE7CisgICAgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKICAgICBpZiAoIWdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpPcmlnaW5zSW5NZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgpLCBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Ok9yaWdpbnNJbk1lZGlhQ2Fj
aGU6OlJlcGx5KG9yaWdpbkRhdGEpLCAwKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMTk5
LDcgKzIwMiw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2Fj
aGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVuCiAgICAgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2xl
YXJNZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgsIG1vZGlmaWVkU2luY2Up
LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNo
ZUZvck9yaWdpbnMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMp
CiB7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gV1RGOjptYXAob3JpZ2lucywgW10gKGF1dG8mIG9y
aWdpbikgewogICAgICAgICByZXR1cm4gb3JpZ2luLT5kYXRhKCk7CkBAIC0yMTAsNTUgKzIxMyw1
NSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlRm9yT3Jp
Z2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8g
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQo
V1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0YXRl
KSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVt
ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiB7Ci0gICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBs
YXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnZvbHVtZUNoYW5nZWQo
dm9sdW1lKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRl
KQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZSkKIHsKLSAgICBpZiAoYXV0byBw
bGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+bXV0ZUNoYW5nZWQobXV0ZSk7CiB9
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAg
IHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQog
ewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25z
dCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5kdXJh
dGlvbkNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6cmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUg
cmF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBp
ZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXll
ci0+cmF0ZUNoYW5nZWQocmF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIGJvb2wgcGF1c2VkKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAg
ICAgICAgcGxheWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChwYXVzZWQpOwogfQogCiB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgbG9uZyBwbGF0Zm9ybUVycm9yQ29kZSkK
IHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29u
c3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+ZW5n
aW5lRmFpbGVkVG9Mb2FkKHBsYXRmb3JtRXJyb3JDb2RlKTsKIH0KIApAQCAtMjY3LDYgKzI3MCwy
MCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUgogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZChoYXNB
dWRpbywgaGFzVmlkZW8sIGxvYWRUeXBlKTsKIH0KKyAgICAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBt
X3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5yZXF1ZXN0UmVzb3VyY2UocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnJlbW92ZVJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICAgICAgcGxheWVyLT5yZW1vdmVSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllcik7Cit9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aAppbmRleCBjM2MyNzdhYzg4YzM0ZGM2MDlhY2FjZmVlZDZhZTU5NzgzMjhmMTQyLi4yNDg4MTQ0
MzA5NWU1MTEzMWRlODY2N2FmM2I2MTMxMTBkYWVjMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC01
Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlcikg
eyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsgfQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtODIsNiArODMsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgbG9uZyk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJik7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKKyAgICB2b2lkIHJlcXVl
c3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAKICAg
ICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3Vw
cG9ydGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBkMzFlMDVmYWE0MDEy
YTNkNWUzYTczNjhiN2M4ZjdjOTZkNmQ0ZmYwLi4xODBmMjYzMjM2M2Y1MDZkZWJjMmExZTg3MzY5
NmFmYzllN2Y2NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShWSURFTykKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3Vu
dGVkIHsKICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSBzdGF0ZSkKQEAgLTM1LDYgKzM1LDkgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29k
ZSkKICAgICBVcGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3Rh
dGUpCiAgICAgQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgZW51bTp1
aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2Fk
VHlwZSkKKworICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+
ICgpIEFzeW5jCisgICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk4NjJiZmJiOWNkNGFiZDczZTllNjdiMWQ4YWI2NDFiYWNiNzY5NDcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcGxhdGZvcm1NZWRpYVJlc291cmNlLCBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNv
bm5lY3Rpb24pKQorICAgICwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UocGxhdGZvcm1NZWRpYVJl
c291cmNlKQorICAgICwgbV9pZChpZCkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVzcG9uc2VSZWNlaXZl
ZChtX2lkLCByZXNwb25zZSwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UuZGlkUGFzc0FjY2Vzc0Nv
bnRyb2xDaGVjaygpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzaG91bGRDb250aW51ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OlJlZGlyZWN0UmVjZWl2ZWQobV9pZCwgcmVxdWVzdCwgcmVzcG9uc2UpLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgcmVxdWVzdCA9IFdU
Rk1vdmUocmVxdWVzdCldKCkgbXV0YWJsZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUocmVxdWVzdCkpOworICAgIH0pOworfQorCitib29sIFJlbW90ZU1lZGlhUmVzb3VyY2VQ
cm94eTo6c2hvdWxkQ2FjaGVSZXNwb25zZShXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikKK3sKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFTZW50KFdlYkNvcmU6OlBs
YXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2ln
bmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAgbV9jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6RGF0YVNlbnQobV9pZCwg
Ynl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3Vy
Y2UmLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkRhdGFSZWNlaXZlZCht
X2lkLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
ZGF0YSksIGxlbmd0aCkpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpBY2Nlc3NDb250
cm9sQ2hlY2tGYWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OmxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZhaWxlZCht
X2lkLCBlcnJvciksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9h
ZEZpbmlzaGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpCit7CisgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6TG9hZEZp
bmlzaGVkKG1faWQpLCAwKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94
eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQ2Y2RmOTZhYjIwMDNkNzgxMGZlZGQxOWFkMDU3MGY2MDEzMDQ3OTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9Qb2xpY3lDaGVja2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3Bv
bnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50
IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH5SZW1v
dGVNZWRpYVJlc291cmNlUHJveHkoKTsKKworcHJpdmF0ZToKKyAgICAvLyBQbGF0Zm9ybU1lZGlh
UmVzb3VyY2VDbGllbnQKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZv
cm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CisgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFdl
YkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFS
ZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBmaW5hbDsK
KyAgICB2b2lkIGRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b25zdCBjaGFyKiwgaW50KSBmaW5hbDsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxl
ZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJikgZmluYWw7CisgICAgdm9pZCBsb2FkRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKKyAgICB2
b2lkIGxvYWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKSBmaW5hbDsK
KworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBXZWJDb3JlOjpQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmIG1fcGxhdGZvcm1NZWRpYVJlc291cmNlOworICAgIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIG1faWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDc3MzAyNzZmMDAwNGY2YjJlODQzODM4OGE2Y2I1MzMyOGFh
MmQ2ZS4uODVmODM0MmI4MTBiMjc0ZWJkNTEwNjZjMWM4NjdhNWMyOGVkMjVhZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDE5LTEyLTMwICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXBs
YXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9hdWRpby1wbGF5LXdpdGgt
dmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1ZGlv
LXBsYXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1
ZGlvLXBsYXkuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gQWRkIGEgcHVyZSB2aXJ0dWFsIGJhc2UgY2xh
c3MgZm9yIEdyYXBoaWNzQ29udGV4dDNECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJv
Y2Vzcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA0NzVmYTI4MzJlNmE4NGY5ZGVkMTcxNmQzYTExOGMwODZkODZhZTQ3Li5m
NGNkYTNkNThjY2YyNmFkNzUzOTA5MGFkMzhjYTJkYTEwOWFlZGFhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dw
dS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3OSw2ICsxNzksMTEgQEAgbGVnYWN5LWFu
aW1hdGlvbi1lbmdpbmUvaW1wb3J0ZWQvYmxpbmsvY29tcG9zaXRpbmcvc3F1YXNoaW5nL3JlbW92
ZS1mcm9tLWdyb3VwZWQKIGluc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNv
bnMuaHRtbCBbIFNraXAgXQogCiBtZWRpYSBbIFNraXAgXQorbWVkaWEvdmlkZW8tc3JjLmh0bWwg
WyBQYXNzIF0KK21lZGlhL21lZGlhLWNhbi1wbGF5LW1wZWctYXVkaW8uaHRtbCBbIFBhc3MgXQor
bWVkaWEvbWVkaWEtY2FuLXBsYXktd2F2LWF1ZGlvLmh0bWwgWyBQYXNzIF0KK21lZGlhL2F1ZGlv
LXBsYXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWwgWyBQYXNzIF0KK21lZGlhL2F1ZGlvLXBsYXku
aHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0K
IGZhc3QvYmxvY2svZmxvYXQvbGlzdC1tYXJrZXItaXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAg
XQogZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb24tcmVwbGFjZWQtaW4tdGFibGUtZGlzcGxheS1j
cmFzaC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1w
bGF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXktZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVhNjA3N2M2MGQ4MjcyZThhZDk3ODIxMzI5NjdjMTdiZDllNTI3YWUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhhdCBhICdwbGF5JyBldmVudCBsaXN0ZW5lciBp
cyB0cmlnZ2VyZWQgd2hlbiBmaXJlZCBieSBhIG5ldyBhdWRpbyBlbGVtZW50LgorCitSVU4obWVk
aWFFbGVtZW50LnNyYyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpKQor
UlVOKG1lZGlhRWxlbWVudC5wbGF5KCkpCitFVkVOVChwbGF5KQorRU5EIE9GIFRFU1QKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVs
ZW1lbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExNWQ5MjU2YzNlZGI0NzVjMTgyYTJjMGY3
MzRmYmFhNWRmOTQ3NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRp
by1wbGF5LXdpdGgtdmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
CitUZXN0IHRoYXQgY2FsbGluZyBwbGF5KCkgYW5kIHBhdXNlKCkgdHJpZ2dlcnMgYXN5bmMgcGxh
eSwgbm8gdGltZXVwZGF0ZSBldmVudCBhbmQgcGF1c2UgZXZlbnQuCisKK1JVTihoYW5kbGVQcm9t
aXNlKHZpZGVvLnBsYXkoKSkpCitSVU4odmlkZW8ucGF1c2UoKSkKK1NDUklQVCBET05FCitFVkVO
VChwbGF5KQorRVZFTlQod2FpdGluZykKK0VWRU5UKHBhdXNlKQorRVhQRUNURUQgKHZpZGVvLnBh
dXNlZCA9PSAndHJ1ZScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9hdWRpby1wbGF5LXdpdGgtdmlkZW8tZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMv
bWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YTFh
ZmI5YjQyZTY0NzQyNzFlZDBiOWI5NjVmN2YyZGFmMmFkODAzCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQuaHRtbApAQCAt
MCwwICsxLDI2IEBACis8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzxwPlRlc3QgdGhhdCBjYWxs
aW5nIHBsYXkoKSBhbmQgcGF1c2UoKSB0cmlnZ2VycyBhc3luYyBwbGF5LCBubyB0aW1ldXBkYXRl
IGV2ZW50IGFuZCBwYXVzZSBldmVudC48L3A+Cis8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKzxzY3JpcHQ+Cisg
ICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgiYXVkaW8iLCAiY29udGVudC9zaWxlbmNlIik7
CisKKyAgICB3YWl0Rm9yRXZlbnQoImxvYWRzdGFydCIpOworICAgIHdhaXRGb3JFdmVudCgicmF0
ZWNoYW5nZSIpOworICAgIHdhaXRGb3JFdmVudCgid2FpdGluZyIpOworICAgIHdhaXRGb3JFdmVu
dCgicmF0ZWNoYW5nZSIpOworICAgIHdhaXRGb3JFdmVudCgiZHVyYXRpb25jaGFuZ2UiKTsKKyAg
ICB3YWl0Rm9yRXZlbnQoImxvYWRlZG1ldGFkYXRhIik7CisgICAgd2FpdEZvckV2ZW50KCJsb2Fk
ZWRkYXRhIik7CisgICAgd2FpdEZvckV2ZW50KCJjYW5wbGF5Iik7CisgICAgd2FpdEZvckV2ZW50
KCJjYW5wbGF5dGhyb3VnaCIpOworICAgIHdhaXRGb3JFdmVudCgicGxheSIpOworICAgIHdhaXRG
b3JFdmVudCgidGltZXVwZGF0ZSIpOworICAgIHdhaXRGb3JFdmVudCgncGF1c2UnLCBmdW5jdGlv
biAoKSB7IHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSk7IGVuZFRlc3QoKTsgfSAp
OworCisKKyAgICBydW4oImhhbmRsZVByb21pc2UodmlkZW8ucGxheSgpKSIpOworICAgIHJ1bigi
dmlkZW8ucGF1c2UoKSIpOworICAgIAorICAgIGNvbnNvbGVXcml0ZSgiU0NSSVBUIERPTkUiKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkZDFiOGYw
ZjVkZjM1N2YwNmViYzlkYTdhOWVkYzBlZjM5YzMyOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5Lmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT4ncGxheScgZXZlbnQ8L3RpdGxlPgorICAgICAgICA8
c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12
aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICBm
dW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgbWVkaWFFbGVt
ZW50ID0gbmV3IEF1ZGlvKCk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdsb2FkZWRt
ZXRhZGF0YScpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheScsIGZ1bmN0aW9u
KCkgeyBlbmRUZXN0KCk7IH0pOworICAgICAgICAgICAgICAgIHJ1bigibWVkaWFFbGVtZW50LnNy
YyA9IGZpbmRNZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpIik7CisgICAgICAgICAg
ICAgICAgcnVuKCJtZWRpYUVsZW1lbnQucGxheSgpIik7CisgICAgICAgICAgICB9ICAgIAorICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCki
PgorICAgIDxwPlRlc3QgdGhhdCBhICdwbGF5JyBldmVudCBsaXN0ZW5lciBpcyB0cmlnZ2VyZWQg
d2hlbiBmaXJlZCBieSBhIG5ldyBhdWRpbyBlbGVtZW50LjwvcD4KKyAgICA8L2JvZHk+Cis8L2h0
bWw+CisK
</data>
<flag name="review"
          id="402306"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386549</attachid>
            <date>2019-12-30 20:28:24 -0800</date>
            <delta_ts>2019-12-31 10:07:39 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-205379-20191230202823.patch</filename>
            <type>text/plain</type>
            <size>129560</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZiODI4ODUzZjE4ZTQ0
ZjI5MzZmZWE1YmIyYzQ5ZGIxYjc3YTRkZS4uNzgxMDk2NTMwYTlmMjA4ZmUwNTA4M2MwMjZjNDQ4
ZTgzYWUyYzRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMwICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIGRlZmluaXRpb25zIG9mIFNo
b3VsZENvbnRpbnVlOiBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTaG91bGRDb250
aW51ZQorICAgICAgICBhbmQgV2ViQ29yZTo6U2hvdWxkQ29udGludWUuIFRoaXMgcGF0Y2ggbW92
ZXMgV2ViQ29yZTo6U2hvdWxkQ29udGludWUgdG8KKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWUgaW4gb3JkZXIgdG8gc3VwcG9ydCB0cmFuc21pdHRpbmcgaXQg
aW4gWFBDIG1lc3NhZ2VzLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9hdWRpby1wbGF5LXdpdGgt
dmlkZW8tZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9hdWRpby1wbGF5Lmh0bWwK
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1Bv
bGljeSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVy
L01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZXNvdXJj
ZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudDo6cmVzcG9u
c2VSZWNlaXZlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWlu
Z0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZU5T
VVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKC1b
V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrIHJlc291cmNlOnJlY2VpdmVkUmVzcG9uc2U6Y29t
cGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMTktMTItMjkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFw
cGxlLmNvbT4KIAogICAgICAgICBUd2VhayB0aGUgZm9ybWF0IGFuZCBjb21tZW50IGluIHRoZSBj
b2RlIHRvIHN1cHBvcnQgbWVkaWEgaW4gR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNjA5M2E0NTEz
MDRjODg2YjNhMmUxMzEwMmIwODkwMjNiYmQ4YzZiNS4uOWY4ZGYwN2ViZTU0MWQ0ZWNlNzQ4Y2M3
ZmQ4NGQyYjc2ZGYxNmFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTggQEAKKzIwMTktMTItMzAg
IFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgcmVtb3RlIG1l
ZGlhIHJlc291cmNlIGxvYWRlciBmb3IgdGhlIEdQVSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDUzNzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEluIHRoZSBHUFUgcHJvY2VzcywgdGhlIFJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIgY3JlYXRlcyBSZW1vdGVNZWRpYVJlc291cmNlKHMpLAor
ICAgICAgICB3aGljaCB3aWxsIG5vdGlmeSB0aGUgbWVkaWEgcmVzb3VyY2UgY2xpZW50cyAoV2Vi
Q29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50KS4KKyAgICAgICAgVGhlbiB0aGUgZGF0YSB3
aWxsIGJlIGZvcndhcmRlZCB0byBBVkZvdW5kYXRpb24uCisKKyAgICAgICAgSW4gdGhlIFdlYiBw
cm9jZXNzLCBNZWlkYVJlc291cmNlTG9hZGVyIGNyZWF0ZXMgTWVkaWFSZXNvdXJjZShzKSwgd2hp
Y2ggdGFrZSBjYXJlIG9mCisgICAgICAgIGRvd25sb2FkaW5nIG1lZGlhIGRhdGEgdGhyb3VnaCB0
aGUgbmV0d29yayBwcm9jZXNzLiBUaGUgcmVjZWl2ZWQgZGF0YSB3aWxsIGJlIGZvcndhcmRlZCB0
bworICAgICAgICBSZW1vdGVNZWRpYVJlc291cmNlUHJveHksIHdoaWNoIHdpbGwgZm9yd2FyZCB0
aGUgZGF0YSB0byB0aGUgY29ycmVzcG9uZGluZyBSZW1vdGVNZWRpYVJlc291cmNlCisgICAgICAg
IHRocm91Z2ggWFBDIG1lc3NhZ2VzLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdl
YktpdDo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaDoK
KyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5
ZXJQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnJlcXVl
c3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnJl
bW92ZVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6
bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUGxheWVyUHJveHk6On5SZW1vdGVNZWRpYVBsYXllclByb3h5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJMb2dJZGVudGlm
aWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6UmVtb3RlTWVk
aWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6On5SZW1v
dGVNZWRpYVJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6
c3RvcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmRpZFBhc3NBY2Nl
c3NDb250cm9sQ2hlY2sgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZTo6cmVkaXJlY3RSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2U6OnNob3VsZENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlOjpkYXRhU2VudCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3Vy
Y2U6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6
OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2U6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291
cmNlOjpsb2FkRmluaXNoZWQpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZTo6cmVhZHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpz
ZXRSZWFkeSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVk
aWFSZXNvdXJjZUxvYWRlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6On5SZW1vdGVNZWRpYVJlc291cmNlTG9h
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6cmVxdWVz
dFJlc291cmNlKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXIuaDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFk
ZE1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6cmVtb3ZlTWVkaWFSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVNlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6ZGF0YVJlY2VpdmVkKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFjY2Vzc0NvbnRyb2xDaGVja0Zh
aWxlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2Fk
RmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Omxv
YWRGaW5pc2hlZCk6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBT
b3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3Rl
OjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGU6OnJlbW92ZVJlc291cmNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9N
ZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRp
YS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c1R5cGVBbmRDb2RlY3MpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om9yaWdpbnNJbk1lZGlh
Q2FjaGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFy
TWVkaWFDYWNoZUZvck9yaWdpbnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6Om5ldHdvcmtTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjptdXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dGltZUNoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmR1cmF0aW9uQ2hhbmdlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0ZUNoYW5nZWQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnBsYXliYWNrU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjplbmdpbmVGYWls
ZWRUb0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJl
cXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6cmVtb3ZlUmVzb3VyY2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90
ZU1lZGlhUGxheWVyTWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlBy
b2Nlc3MpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6On5SZW1vdGVNZWRpYVJl
c291cmNlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6
OnJlc3BvbnNlUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNl
UHJveHk6OnJlZGlyZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OnNob3VsZENhY2hlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5OjpkYXRhUmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlUHJveHk6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZhaWxlZCk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6bG9hZEZpbmlzaGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaDogQWRk
ZWQuCisKIDIwMTktMTItMjkgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAg
ICAgICBUd2VhayB0aGUgZm9ybWF0IGFuZCBjb21tZW50IGluIHRoZSBjb2RlIHRvIHN1cHBvcnQg
bWVkaWEgaW4gR1BVIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDYzNzVmNTA2MjQxNTZjOWY0OGFiN2Y3NGM2MTk2ZjUxM2Y1OWY3ZGQuLjIyZWI4ZDA0M2Iz
ODAzNzVjYTVlMGRiNWY2N2UxYWM0ZDg3NjZjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMTM4MCw3ICsxMzgwLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVS
TChGcmFtZUxvYWRSZXF1ZXN0JiYgZnJhbWVMb2FkUmVxdWVzdCwgY29uc3QgU3RyaW5nJiByZWYK
IAogICAgIGlmICghdGFyZ2V0RnJhbWUgJiYgIWVmZmVjdGl2ZUZyYW1lTmFtZS5pc0VtcHR5KCkp
IHsKICAgICAgICAgYWN0aW9uID0gYWN0aW9uLmNvcHlXaXRoU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9BcHBseShtX2ZyYW1lLCBmcmFt
ZUxvYWRSZXF1ZXN0KSk7Ci0gICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1Bv
bGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRl
KSwgZWZmZWN0aXZlRnJhbWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
LCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxs
ZXIucmVsZWFzZSgpXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZv
cm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRh
YmxlIHsKKyAgICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1v
dmUoYWN0aW9uKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBlZmZlY3Rp
dmVGcmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBv
bGljeSwgY29tcGxldGlvbkhhbmRsZXIgPSBjb21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNl
KCldIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYm
IGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rp
b24mIGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUp
IG11dGFibGUgewogICAgICAgICAgICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ko
cmVxdWVzdCwgZm9ybVN0YXRlLmdldCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGlu
dWUsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgICAgIH0pOwpAQCAtMTQ2Myw3ICsxNDYzLDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVxdWVzdCkKIAog
ICAgIGlmIChyZXF1ZXN0LnNob3VsZENoZWNrTmV3V2luZG93UG9saWN5KCkpIHsKICAgICAgICAg
TmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24geyByZXF1ZXN0LnJlcXVlc3RlcigpLCByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biwgTmF2aWdhdGlv
blR5cGU6Ok90aGVyLCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSB9Owot
ICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rp
b24pLCBXVEZNb3ZlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJh
bWVOYW1lKCksIFt0aGlzXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRy
PEZvcm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSB7
CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFj
dGlvbiksIFdURk1vdmUocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSksIHsgfSwgcmVxdWVzdC5m
cmFtZU5hbWUoKSwgW3RoaXNdIChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYWtQ
dHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUg
c2hvdWxkQ29udGludWUpIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93
UG9saWN5KHJlcXVlc3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3Vs
ZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVu
ZXJQb2xpY3k6OlN1cHByZXNzKTsKICAgICAgICAgfSk7CiAKQEAgLTMwNjMsNyArMzA2Myw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRQb3N0UmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0JiYgcmVx
dWVzdCwgY29uc3QgU3RyaW5nJiByZWZlCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
IAotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShh
Y3Rpb24pLCBXVEZNb3ZlKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0
ZSksIGZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3BlbmVy
UG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3Jt
U3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAg
cG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwgV1RG
TW92ZSh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBmcmFtZU5h
bWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRlLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGljeShyZXF1ZXN0LCBmb3JtU3Rh
dGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250aW51ZSwgYWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3kpOwogICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKICAgICAgICAgfSk7CkBAIC0zNTQxLDkgKzM1NDEsOSBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZQogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dp
bmRvd1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCi0gICAgRm9ybVN0YXRl
KiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3Rpb24sIFNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5l
clBvbGljeSBvcGVuZXJQb2xpY3kpCisgICAgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIGNvbnN0IFN0
cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNo
ZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGlj
eSBvcGVuZXJQb2xpY3kpCiB7Ci0gICAgaWYgKHNob3VsZENvbnRpbnVlICE9IFNob3VsZENvbnRp
bnVlOjpZZXMpCisgICAgaWYgKHNob3VsZENvbnRpbnVlICE9IFBvbGljeUNoZWNrZXI6OlNob3Vs
ZENvbnRpbnVlOjpZZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZjxGcmFtZT4gZnJhbWUo
bV9mcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGNlM2VkNmE1NTIw
YmM0ZGMxZTMwZTI3OTk5NTM3YWZkNDg0OWNjODQuLjcxNjM0Yzg0YzU2MDU5MjliZTU0YTU1YzY4
NGNiZWNmYjE3Zjg2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zNyw2
ICszNyw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheW91
dE1pbGVzdG9uZS5oIgogI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIuaCIKKyNpbmNsdWRl
ICJQb2xpY3lDaGVja2VyLmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZUxvYWROb3RpZmllci5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9u
cy5oIgpAQCAtODQsNyArODUsNiBAQCBjbGFzcyBTdWJmcmFtZUxvYWRlcjsKIGNsYXNzIFN1YnN0
aXR1dGVEYXRhOwogCiBlbnVtIGNsYXNzIE5ld0xvYWRJblByb2dyZXNzIDogYm9vbDsKLWVudW0g
Y2xhc3MgU2hvdWxkQ29udGludWU7CiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lv
biA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJv
b2w7CiAKQEAgLTM1Nyw3ICszNTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzcGF0Y2hVbmxv
YWRFdmVudHMoVW5sb2FkRXZlbnRQb2xpY3kpOwogCiAgICAgdm9pZCBjb250aW51ZUxvYWRBZnRl
ck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgTmF2
aWdhdGlvblBvbGljeURlY2lzaW9uLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpOwotICAg
IHZvaWQgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mLCBTaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBO
ZXdGcmFtZU9wZW5lclBvbGljeSk7CisgICAgdm9pZCBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRv
d1BvbGljeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBGb3JtU3RhdGUqLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIFBvbGljeUNoZWNrZXI6OlNob3Vs
ZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5KTsKICAgICB2b2lkIGNvbnRpbnVlRnJhZ21lbnRTY3JvbGxBZnRlck5hdmlnYXRpb25Qb2xp
Y3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBzaG91bGRDb250aW51ZSk7CiAKICAgICBi
b29sIHNob3VsZFBlcmZvcm1GcmFnbWVudE5hdmlnYXRpb24oYm9vbCBpc0Zvcm1TdWJtaXNzaW9u
LCBjb25zdCBTdHJpbmcmIGh0dHBNZXRob2QsIEZyYW1lTG9hZFR5cGUsIGNvbnN0IFVSTCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDA2
ZTg0N2Q0NDgyNzVkNWY0YTYyN2M3YTQ3NzA4NDFjNGRjYTQxODcuLjdjNTMxODk4ZDdiYzc5YzRi
N2MwMDkwMGM3NTc4ZDU1OWRiZTY5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVk
aWFSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTE3MiwxMCArMTcyLDEwIEBAIHZvaWQgTWVkaWFSZXNv
dXJjZTo6cmVzcG9uc2VSZWNlaXZlZChDYWNoZWRSZXNvdXJjZSYgcmVzb3VyY2UsIGNvbnN0IFJl
c291cmNlUmVzCiAKICAgICBtX2RpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2sgPSBtX3Jlc291cmNl
LT5vcHRpb25zKCkubW9kZSA9PSBGZXRjaE9wdGlvbnM6Ok1vZGU6OkNvcnM7CiAgICAgaWYgKG1f
Y2xpZW50KQotICAgICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9u
c2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5k
bGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAoU2hvdWxkQ29udGludWUg
c2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBtX2NsaWVudC0+cmVzcG9uc2VSZWNl
aXZlZCgqdGhpcywgcmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgp
XSAoYXV0byBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoY29tcGxl
dGlvbkhhbmRsZXIpCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAg
ICAgICAgIGlmIChzaG91bGRDb250aW51ZSA9PSBTaG91bGRDb250aW51ZTo6Tm8pCisgICAgICAg
ICAgICBpZiAoc2hvdWxkQ29udGludWUgPT0gUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6
Ok5vKQogICAgICAgICAgICAgICAgIHN0b3AoKTsKICAgICAgICAgfSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUG9saWN5Q2hlY2tlci5oCmluZGV4IDBlZjFlNmU1NzMxY2ZhNWNiNmVkN2VhZTViMjdh
MjljNWM5M2FlMmEuLmMzY2UyNjYyN2VlZDgzNDM0NGU0YzI2MzZiMzUwYjU4ZDgxMzY1Y2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuaApAQCAtNTIsMTEgKzUyLDYgQEAgY2xh
c3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOwogCi1lbnVtIGNsYXNzIFNob3VsZENvbnRpbnVlIHsKLSAgICBZZXMsCi0gICAg
Tm8KLX07Ci0KIGVudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uIDogdWludDhfdCB7
CiAgICAgQ29udGludWVMb2FkLAogICAgIElnbm9yZUxvYWQsCkBAIC02NSwxNSArNjAsMjAgQEAg
ZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1aW50OF90IHsKIAogZW51bSBj
bGFzcyBQb2xpY3lEZWNpc2lvbk1vZGUgeyBTeW5jaHJvbm91cywgQXN5bmNocm9ub3VzIH07CiAK
LXVzaW5nIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIFNob3VsZENvbnRp
bnVlKT47Ci11c2luZyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBO
YXZpZ2F0aW9uUG9saWN5RGVjaXNpb24pPjsKLQogY2xhc3MgUG9saWN5Q2hlY2tlciB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUG9saWN5Q2hlY2tlcik7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUG9saWN5Q2hlY2tlcihGcmFtZSYpOwog
CisgICAgZW51bSBjbGFzcyBTaG91bGRDb250aW51ZSB7CisgICAgICAgIFllcywKKyAgICAgICAg
Tm8KKyAgICB9OworCisgICAgdXNpbmcgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24g
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmLCBXZWFrUHRyPEZvcm1T
dGF0ZT4mJiwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uKT47CisgICAgdXNpbmcgTmV3V2luZG93
UG9saWN5RGVjaXNpb25GdW5jdGlvbiA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiwgV2Vha1B0cjxGb3JtU3RhdGU+JiYsIGNvbnN0IFN0cmluZyYgZnJhbWVO
YW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiwgU2hvdWxkQ29udGludWUpPjsKKwogICAgIHZv
aWQgY2hlY2tOYXZpZ2F0aW9uUG9saWN5KFJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBEb2N1bWVudExvYWRlciosIFJlZlB0cjxGb3Jt
U3RhdGU+JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYsIFBvbGljeURlY2lz
aW9uTW9kZSA9IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNocm9ub3VzKTsKICAgICB2b2lkIGNo
ZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSwgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24m
Jik7CiAgICAgdm9pZCBjaGVja05ld1dpbmRvd1BvbGljeShOYXZpZ2F0aW9uQWN0aW9uJiYsIFJl
c291cmNlUmVxdWVzdCYmLCBSZWZQdHI8Rm9ybVN0YXRlPiYmLCBjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSwgTmV3V2luZG93UG9saWN5RGVjaXNpb25GdW5jdGlvbiYmKTsKQEAgLTExMiwzICsxMTIs
MTYgQEAgcHJpdmF0ZToKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworLy8gVG8gc3Vw
cG9ydCBlbmNvZGluZyBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSBpbiBY
UEMgbWVzc2FnZXMKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hv
dWxkQ29udGludWUsCisgICAgICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRp
bnVlOjpObywKKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6
OlllcworICAgID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oCmluZGV4IDUx
NjE1ZWY2MDY1ZGQzNmZhNTUwMThmNjY2ODQ4YjIxY2E5Yjk3ODAuLmExNDVmMTYzYzY0M2EzODY4
ZTE5NzEzOGFhZTRlZGNmZDA0NzZmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oCkBA
IC00NCw3ICs0NCw3IEBAIGNsYXNzIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+UGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50KCkgPSBkZWZhdWx0
OwogCi0gICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hv
dWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFNo
b3VsZENvbnRpbnVlOjpZZXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQo
UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRp
bnVlOjpZZXMpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVxdWVzdCkpOyB9
CiAgICAgdmlydHVhbCBib29sIHNob3VsZENhY2hlUmVzcG9uc2UoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZGF0YVNlbnQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgdW5zaWduZWQgbG9uZyBs
b25nLCB1bnNpZ25lZCBsb25nIGxvbmcpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291
cmNlR1N0cmVhbWVyLmNwcAppbmRleCBhZWRiZjY4NmYwNGJmMDllNzJkMmQzYjQ3NDdjOGJkOWU3
ZjQ5ZTcwLi42NDE1NDE3OTczMDc5MDMwMWFlMTc4ZWY4NGQ3ZjhhZDdlZWZlZDQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2Vi
U291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogI2luY2x1ZGUgIk1haW5UaHJlYWROb3RpZmllci5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVy
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
UG9saWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCkBAIC02NSw3
ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGVja1VwZGF0ZUJsb2Nrc2l6ZSh1bnNpZ25l
ZCBieXRlc1JlYWQpOwogCiAgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50IHZpcnR1
YWwgbWV0aG9kcy4KLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hv
dWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxh
dGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRhdGFSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFy
KiwgaW50KSBvdmVycmlkZTsKICAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBsb2FkRmFpbGVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlRXJy
b3ImKSBvdmVycmlkZTsKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3Ry
ZWFtaW5nQ2xpZW50OjpjaGVja1VwZGF0ZUJsb2Nrc2l6ZSh1bnNpZ25lZCBieXRlc1JlYWQpCiAg
ICAgfQogfQogCi12b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJl
Y2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNl
UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29u
dGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYktpdFdlYlNyYyogc3JjID0g
V0VCS0lUX1dFQl9TUkMobV9zcmMuZ2V0KCkpOwogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHBy
aXYgPSBzcmMtPnByaXY7CkBAIC05OTgsNyArOTk5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0
cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBj
b24KICAgICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSZWNl
aXZlZCAlZCBIVFRQIGVycm9yIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKSwgKG51
bGxwdHIpKTsKICAgICAgICAgcHJpdi0+ZG9lc0hhdmVFT1MgPSB0cnVlOwogICAgICAgICB3ZWJL
aXRXZWJTcmNTdG9wKEdTVF9CQVNFX1NSQ19DQVNUKHNyYykpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQ
b2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMDEyLDcgKzEwMTMsNyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xp
ZW50OjpyZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgogICAgICAg
ICAgICAgR1NUX0VMRU1FTlRfRVJST1Ioc3JjLCBSRVNPVVJDRSwgUkVBRCwgKCJSZWNlaXZlZCB1
bmV4cGVjdGVkICVkIEhUVFAgc3RhdHVzIGNvZGUiLCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgp
KSwgKG51bGxwdHIpKTsKICAgICAgICAgICAgIHByaXYtPmRvZXNIYXZlRU9TID0gdHJ1ZTsKICAg
ICAgICAgICAgIHdlYktpdFdlYlNyY1N0b3AoR1NUX0JBU0VfU1JDX0NBU1Qoc3JjKSk7Ci0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1Qoc3JjLCAiUmFuZ2UgcmVxdWVzdCBzdWNjZWVkZWQiKTsKQEAgLTEwNTgsNyAr
MTA1OSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OnJlc3BvbnNlUmVj
ZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAgICAgICAgIHByaXYtPndlcmVIZWFk
ZXJzUmVjZWl2ZWQgPSB0cnVlOwogICAgICAgICBwcml2LT5oZWFkZXJzQ29uZGl0aW9uLm5vdGlm
eU9uZSgpOwogICAgIH0KLSAgICBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZTo6WWVz
KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6
WWVzKTsKIH0KIAogdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6ZGF0YVJlY2Vp
dmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dlYkNv
cmVOU1VSTFNlc3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KaW5kZXggYmE1NWYwMDQ4YjhlNGRkYzViMDczNGQ5OTNk
YzliMTNiOGNiMmIwNS4uNzhhMDI3OTU4ZmI1ZTk2OTgxMjZjZWVkNzRlOWEyYjVlZDQxZGY0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbQpAQCAtNTYsNyArNTYsNyBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogQHByb3BlcnR5IChhc3NpZ24pIFdlYkNvcmVOU1VSTFNlc3Npb24gKiBfTnVs
bGFibGUgc2Vzc2lvbjsKIAogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNl
JilyZXNvdXJjZSBzZW50Qnl0ZXM6KHVuc2lnbmVkIGxvbmcgbG9uZylieXRlc1NlbnQgdG90YWxC
eXRlc1RvQmVTZW50Oih1bnNpZ25lZCBsb25nIGxvbmcpdG90YWxCeXRlc1RvQmVTZW50OwotLSAo
dm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSByZWNlaXZlZFJl
c3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxl
cjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+JiYpY29tcGxldGlvbkhh
bmRsZXI7CistICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJlc291cmNl
IHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNlIGNvbXBs
ZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3Vs
ZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIC0gKEJPT0wpcmVzb3VyY2U6KFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2Ugc2hvdWxkQ2FjaGVSZXNwb25zZTooY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpcmVzcG9uc2U7CiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmKXJlc291cmNlIHJlY2VpdmVkRGF0YTooY29uc3QgY2hhciopZGF0YSBsZW5ndGg6
KGludClsZW5ndGg7CiAtICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKXJl
c291cmNlIHJlY2VpdmVkUmVkaXJlY3Q6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3BvbnNl
IHJlcXVlc3Q6KFJlc291cmNlUmVxdWVzdCYmKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVzb3VyY2VSZXF1ZXN0JiYpPiYmKWNvbXBsZXRpb25IYW5k
bGVyOwpAQCAtMzgxLDcgKzM4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2xlYXJUYXNrKCk7
CiAKLSAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGlu
dWUpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRp
YVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKSBvdmVycmlkZTsKICAgICB2b2lk
IHJlZGlyZWN0UmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgUmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291
cmNlUmVxdWVzdCYmKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNl
KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxv
bmcgbG9uZywgdW5zaWduZWQgbG9uZyBsb25nKSBvdmVycmlkZTsKQEAgLTQxMCwxMSArNDEwLDEx
IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpkYXRhU2VudChQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNlCiAgICAgW21fdGFzayByZXNvdXJjZTpyZXNvdXJj
ZSBzZW50Qnl0ZXM6Ynl0ZXNTZW50IHRvdGFsQnl0ZXNUb0JlU2VudDp0b3RhbEJ5dGVzVG9CZVNl
bnRdOwogfQogCi12b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6cmVzcG9u
c2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51
ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFz
a0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc291cmNl
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90YXNrTG9jayk7CiAgICAgaWYgKCFtX3Rhc2spCi0g
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRDb250aW51ZTo6Tm8pOworICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGlu
dWU6Ok5vKTsKIAogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2UgcmVjZWl2ZWRSZXNwb25z
ZTpyZXNwb25zZSBjb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV07
CiB9CkBAIC02MjcsNyArNjI3LDcgQEAgdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tD
bGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIHJlc28KICAgICAvLyBO
by1vcC4KIH0KIAotLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNv
dXJjZSByZWNlaXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBj
b21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+
JiYpY29tcGxldGlvbkhhbmRsZXIKKy0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
cmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgQVNT
RVJUKHJlc3BvbnNlLnNvdXJjZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29y
ayB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OkRpc2tD
YWNoZSB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OkRp
c2tDYWNoZUFmdGVyVmFsaWRhdGlvbiB8fCByZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJl
c3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpOwogICAgIEFTU0VSVF9VTlVTRUQocmVzb3Vy
Y2UsICZyZXNvdXJjZSA9PSBfcmVzb3VyY2UpOwpAQCAtNjM4LDE0ICs2MzgsMTQgQEAgdm9pZCBX
ZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OmxvYWRGaW5pc2hlZChQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmIHJlc28KICAgICBSZXRhaW5QdHI8TlNVUkxSZXNwb25zZT4gc3Ryb25nUmVz
cG9uc2UgeyByZXNwb25zZS5uc1VSTFJlc3BvbnNlKCkgfTsKICAgICBSZXRhaW5QdHI8V2ViQ29y
ZU5TVVJMU2Vzc2lvbkRhdGFUYXNrPiBzdHJvbmdTZWxmIHsgc2VsZiB9OwogICAgIGlmICghc2Vs
Zi5zZXNzaW9uKQotICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGlu
dWU6Ok5vKTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6
OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAgW3NlbGYuc2Vzc2lvbiBhZGREZWxlZ2F0ZU9wZXJh
dGlvbjpbc3Ryb25nU2VsZiwgc3Ryb25nUmVzcG9uc2UsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICBzdHJvbmdTZWxm
LT5fcmVzcG9uc2UgPSBzdHJvbmdSZXNwb25zZS5nZXQoKTsKIAogICAgICAgICBpZDxOU1VSTFNl
c3Npb25EYXRhRGVsZWdhdGU+IGRhdGFEZWxlZ2F0ZSA9IChpZDxOU1VSTFNlc3Npb25EYXRhRGVs
ZWdhdGU+KXN0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lvbi5kZWxlZ2F0ZTsKICAgICAgICAgaWYgKCFb
ZGF0YURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoVVJMU2Vzc2lvbjpkYXRh
VGFzazpkaWRSZWNlaXZlUmVzcG9uc2U6Y29tcGxldGlvbkhhbmRsZXI6KV0pIHsKICAgICAgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1NlbGYsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpZZXMpOworICAgICAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZZXMpOwogICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTY1MywxMCAr
NjUzLDEwIEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmlu
aXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvCiAgICAgICAgIFtkYXRhRGVsZWdhdGUg
VVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc3Ryb25nU2VsZi5nZXQoKS5zZXNzaW9uIGRhdGFU
YXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKXN0cm9uZ1NlbGYuZ2V0KCkgZGlkUmVjZWl2ZVJl
c3BvbnNlOnN0cm9uZ1Jlc3BvbnNlLmdldCgpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0
cihbc3Ryb25nU2VsZiwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKE5TVVJMU2Vzc2lvblJlc3BvbnNlRGlzcG9zaXRpb24gZGlzcG9zaXRpb24pIG11dGFi
bGUgewogICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbc3Ryb25nU2VsZiwgZGlzcG9zaXRp
b24sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Npb25S
ZXNwb25zZUNhbmNlbCkKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hv
dWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsKICAgICAgICAgICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKGRpc3Bvc2l0aW9uID09IE5TVVJMU2Vzc2lv
blJlc3BvbnNlQWxsb3cpOwotICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihT
aG91bGRDb250aW51ZTo6WWVzKTsKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pLmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCAwN2QzMzA1YjgyMzk3MmU3ODdm
ZmVlN2RiODBlMTE0ZDIyNTExMjY2Li40M2FmNzBhZWU5ZTMzYmVhOGFkZTAwZjczZWUzY2E3MjJm
MmIwNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CkBAIC0xNyw2ICsxNyw3IEBAICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9H
UFVQcm9jZXNzLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21hYy9jb20u
YXBwbGUuV2ViS2l0LkdQVVByb2Nlc3Muc2IuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKyQoUFJPSkVD
VF9ESVIpL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL05ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFu
YWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJv
dG9jb2xzL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNU
X0RJUikvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQlNlcnZlci5tZXNzYWdlcy5pbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXgg
OTg2OWNmMTcxNjFmZWQ5NDQ5MmIyZWI2NzZhMzA5NjExN2NlNjUyZi4uN2JlODk0OWNjYWYyMDhk
MmEzNWQyZWEwYWJjYjBhMmRlODJlOTMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC0xMjAsNiArMTIwLDkgQEAgJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
TWVzc2FnZXNSZXAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9S
ZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXNSZXBsaWVzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxN2JkY2I1ZjJkYWFhOWJiMWI2YWY0ZDc0
YWI1OGU1MDRhODEyMTgzLi4zYzA3N2U0ZjE3Y2NjZjFmM2I4MmRiMmEyMDRkMTk4NmMyZjNjZjMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzksNiArMTM5LDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCiAg
ICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIFwKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSBcCisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgXAogICAgIFJlbW90ZU9i
amVjdFJlZ2lzdHJ5IFwKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvciBcCiAgICAgUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDU0ODAzY2E4MGRhYzQzMzRl
ZDJlMjQ3ZmY3MjNiYzIxMjZmYWZlNTUuLjQ5YzJiNzU3N2U5ZTIzMjRhNzdlZjMzMDE3ZGFjZmQ3
ZDVmODZlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmgiCiAjaW5jbHVk
ZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgpAQCAtMTA5LDYgKzExMSwxNCBAQCB2b2lkIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lYwogICAgIENSQVNIKCk7CiB9CiAKK1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyJiBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcigpCit7CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKQorICAgICAg
ICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcj4oKTsKKworICAgIHJldHVybiAqbV9yZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjsKK30KKwogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KCkKIHsKICAgICBpZiAo
IW1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkpCkBAIC0xMzIsNiArMTQyLDkgQEAgdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIEkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkpIHsKICAgICAgICAgcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKS5k
aWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAg
ICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUo
KSA9PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgeworICAgICAgICByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpLmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CiAgICAgfQog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVy
TmFtZSgpID09IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDg3M2RjZWEyOTRkOTYzOGUwNjJhMGNkNmEw
OTE0ZjI1MzNkYWVjNjAuLmJjMzM0MWNlZDZkMDI4ZDY0MWRiYTAwMjJjN2Y0ZWUxYzgwYzMxMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIEdQ
VVByb2Nlc3M7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIGNsYXNzIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk7CitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjsKIAogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcwogICAgIDogcHVibGljIFJl
ZkNvdW50ZWQ8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4KQEAgLTU2LDYgKzU3LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgZW5kU3VzcGVuc2lvbigpOwogCiAgICAgV2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3dlYlByb2Nl
c3NJZGVudGlmaWVyOyB9CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyKCk7CiAKICAgICBMb2dnZXImIGxvZ2dlcigpOwogCkBAIC03OCw2
ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9u
OwogICAgIFJlZjxHUFVQcm9jZXNzPiBtX2dwdVByb2Nlc3M7CiAgICAgY29uc3QgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aWZpZXIgbV93ZWJQcm9jZXNzSWRlbnRpZmllcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI+IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5
PiBtX3JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKaW5kZXggODM0NjczYWY5NGYxMTBkMjU0YzY4
NTU0YzQwZTAwODE5YTc1NmE0Yi4uMDUwMzQwNGEwZjFjYjU5OTc5MWYwMDNjM2Y4NGE5NjM1MWU0
ZDIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSwxMCArMjksMTIg
QEAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKICNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgpAQCAtNDEsNiArNDMsNyBAQAogI2Rl
ZmluZSBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChpZGVudGlmaWVyKSBNRVNTQUdFX0NIRUNLX0JB
U0UobV9wcm94aWVzLmlzVmFsaWRLZXkoaWRlbnRpZmllciksICZtX2dwdUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY29ubmVjdGlvbigpKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKKwogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OjpSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAppbmRleCAxNmVkNmYyMDFkYTNkZmNlYmI0
OTQzNjBjY2I1YzA1YTNkY2U5NDI4Li5hZTUxZmMwYzUyMDAzZTM1MGRiNWRkZTJkNjZkODI0ODQz
NzJlNDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
bWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaApAQCAtMzAsMTUgKzMwLDE2IEBA
CiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRl
ICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOworY2xhc3Mg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllclByb3h5
Owogc3RydWN0IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbjsKIAogY2xhc3MgUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyUHJveHkKICAgICA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclBy
b3h5LmNwcAppbmRleCA2ZGZhNzVmNWM1MWQzOGFiYzFkNWI5ODM0NDUyNGNhOWFkYTczZTllLi44
OGM3ZTc5MTI5NzY5NzAxZDQ3Y2ZjZWMzNTFjYzNlYzIzNTM0M2M0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHku
Y3BwCkBAIC0yOCw4ICsyOCwxNiBAQAogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCisjaW5j
bHVkZSAiR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlv
bi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCIKKyNpbmNsdWRlICJSZW1v
dGVNZWRpYVJlc291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAi
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CkBAIC01Myw2ICs2MSwxMCBAQCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjpSZW1vdGVN
ZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiBtYQogICAgIG1f
cGxheWVyID0gTWVkaWFQbGF5ZXI6OmNyZWF0ZSgqdGhpcywgbV9lbmdpbmVJZGVudGlmaWVyKTsK
IH0KIAorUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkoKQor
eworfQorCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmludmFsaWRhdGUoKQogewogICAg
IG1fdXBkYXRlQ2FjaGVkU3RhdGVNZXNzYWdlVGltZXIuc3RvcCgpOwpAQCAtMTQzLDYgKzE1NSwy
NSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnNldFByZXNlcnZlc1BpdGNoKGJvb2wg
cHJlc2VydmVzUGl0Y2gpCiAgICAgbV9wbGF5ZXItPnNldFByZXNlcnZlc1BpdGNoKHByZXNlcnZl
c1BpdGNoKTsKIH0KIAorUmVmPFBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eTo6cmVxdWVzdFJlc291cmNlKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBsYXRm
b3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBhdXRv
JiByZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciA9IG1fbWFuYWdlci5ncHVDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzKCkucmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKyAgICBhdXRvIHJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyID0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCk7CisgICAgYXV0byByZW1vdGVNZWRpYVJlc291cmNlID0gUmVtb3RlTWVkaWFS
ZXNvdXJjZTo6Y3JlYXRlKHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCAqdGhpcywgcmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
LmFkZE1lZGlhUmVzb3VyY2UocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIHJlbW90ZU1l
ZGlhUmVzb3VyY2UpOworCisgICAgbV93ZWJQcm9jZXNzQ29ubmVjdGlvbi0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OlJlcXVlc3RSZXNvdXJj
ZShtX2lkLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucyks
IFtyZW1vdGVNZWRpYVJlc291cmNlID0gcmVtb3RlTWVkaWFSZXNvdXJjZS5jb3B5UmVmKCldKCkg
eworICAgICAgICByZW1vdGVNZWRpYVJlc291cmNlLT5zZXRSZWFkeSh0cnVlKTsKKyAgICB9KTsK
KworICAgIHJldHVybiByZW1vdGVNZWRpYVJlc291cmNlOworfQorCit2b2lkIFJlbW90ZU1lZGlh
UGxheWVyUHJveHk6OnJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
IHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIG1fd2ViUHJvY2Vzc0Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVtb3ZlUmVz
b3VyY2UobV9pZCwgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpLCAwKTsKK30KKwogLy8g
TWVkaWFQbGF5ZXJDbGllbnQKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5
ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKQEAgLTM4OCw4ICs0MTksNyBAQCBDYWNoZWRSZXNv
dXJjZUxvYWRlciogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDYWNoZWRSZXNv
dXJjZUxvYWRlcigpCiAKIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI+IFJlbW90
ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKQogewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcigqdGhpcykpOwogfQogCiBib29s
IFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OmRvZXNIYXZlQXR0cmlidXRlKGNvbnN0IEF0b21TdHJp
bmcmLCBBdG9tU3RyaW5nKikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCmluZGV4IDYwMGRjYWZmOTk4MTg0
MjhlZDRiMjgzNTg2MTIxN2ZkYWRmODY5Y2QuLmNhZmRkNzUwZWRjODc1MjI1YzI1N2EwNWI5MTQy
NGUxMTc2ZjY4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaApAQCAtMjcsMzQgKzI3LDMyIEBACiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAi
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1l
ZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJv
eHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Db29raWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYv
TG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgSVBDIHsKLWNs
YXNzIENvbm5lY3Rpb247Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE1lZGlhUGxh
eWVyOwotfQorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTsKIAotY2xhc3MgUmVtb3RlTWVk
aWFQbGF5ZXJQcm94eQotICAgIDogcHVibGljIE1lZGlhUGxheWVyQ2xpZW50IHsKK2NsYXNzIFJl
bW90ZU1lZGlhUGxheWVyUHJveHkgZmluYWwKKyAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxS
ZW1vdGVNZWRpYVBsYXllclByb3h5PgorICAgICwgcHVibGljIFdlYkNvcmU6Ok1lZGlhUGxheWVy
Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZW1v
dGVNZWRpYVBsYXllclByb3h5KFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5JiwgTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgTWVk
aWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclBy
b3h5Q29uZmlndXJhdGlvbiYmKTsKLSAgICB2aXJ0dWFsIH5SZW1vdGVNZWRpYVBsYXllclByb3h5
KCkKLSAgICB7Ci0gICAgfQorICAgIFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHkmLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVu
Z2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uJiYpOwor
ICAgIH5SZW1vdGVNZWRpYVBsYXllclByb3h5KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGUoKTsK
IApAQCAtNjIsNyArNjAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpQcmVsb2FkLCBi
b29sIHByZXNlcnZlc1BpdGNoLCBib29sIHByZXBhcmVGb3JSZW5kZXJpbmcpOwogCi0gICAgdm9p
ZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRUeXBlJiwgY29u
c3QgU3RyaW5nJik7CiAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CiAKICAgICB2b2lkIHByZXBhcmVU
b1BsYXkoKTsKQEAgLTgwLDYgKzc4LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJpdmF0ZUJy
b3dzaW5nTW9kZShib29sKTsKICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwogCisg
ICAgUmVmPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI6OkxvYWRPcHRpb25zKTsKKyAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICAvLyBNZWRpYVBsYXllckNsaWVu
dAogICAgIHZvaWQgbWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKCkgZmluYWw7CkBAIC0x
MjQsMzkgKzEyNSwzOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3Jl
ZW4oKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNGdWxsc2NyZWVuUGVybWl0
dGVkKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW8oKSBjb25zdCBm
aW5hbDsKLSAgICBMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3QoKSBjb25zdCBm
aW5hbDsKKyAgICBXZWJDb3JlOjpMYXlvdXRSZWN0IG1lZGlhUGxheWVyQ29udGVudEJveFJlY3Qo
KSBjb25zdCBmaW5hbDsKICAgICBmbG9hdCBtZWRpYVBsYXllckNvbnRlbnRzU2NhbGUoKSBjb25z
dCBmaW5hbDsKICAgICB2b2lkIG1lZGlhUGxheWVyUGF1c2UoKSBmaW5hbDsKICAgICB2b2lkIG1l
ZGlhUGxheWVyUGxheSgpIGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJQbGF0Zm9ybVZvbHVt
ZUNvbmZpZ3VyYXRpb25SZXF1aXJlZCgpIGNvbnN0IGZpbmFsOwotICAgIENhY2hlZFJlc291cmNl
TG9hZGVyKiBtZWRpYVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkgZmluYWw7Ci0gICAgUmVm
UHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJj
ZUxvYWRlcigpIGZpbmFsOworICAgIFdlYkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyKiBtZWRp
YVBsYXllckNhY2hlZFJlc291cmNlTG9hZGVyKCkgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxv
YWRlcigpIGZpbmFsOwogICAgIGJvb2wgZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRvbVN0cmlu
ZyYsIEF0b21TdHJpbmcqID0gbnVsbHB0cikgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBs
YXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpIGNvbnN0IGZpbmFsOwogICAgIGNvbnN0IFN0
cmluZyYgbWVkaWFQbGF5ZXJNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZp
bmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRWaWRlb1RyYWNrKFZp
ZGVvVHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZUF1
ZGlvVHJhY2soQXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVy
RGlkUmVtb3ZlVGV4dFRyYWNrKEluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2
b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlVmlkZW9UcmFjayhWaWRlb1RyYWNrUHJpdmF0ZSYpIGZp
bmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKFdlYkNvcmU6OkF1ZGlv
VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFj
ayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRp
YVBsYXllckRpZEFkZFZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUmKSBmaW5h
bDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVtb3ZlQXVkaW9UcmFjayhXZWJDb3JlOjpBdWRp
b1RyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVUZXh0
VHJhY2soV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOworICAgIHZvaWQg
bWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFdlYkNvcmU6OlZpZGVvVHJhY2tQcml2YXRl
JikgZmluYWw7CiAKLSAgICB2b2lkIHRleHRUcmFja1JlcHJlc2VudGF0aW9uQm91bmRzQ2hhbmdl
ZChjb25zdCBJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCB0ZXh0VHJhY2tSZXByZXNlbnRhdGlv
bkJvdW5kc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKSAmJiBFTkFCTEUoQVZGX0NBUFRJT05TKQotICAgIFZlY3RvcjxSZWZQ
dHI8UGxhdGZvcm1UZXh0VHJhY2s+PiBvdXRPZkJhbmRUcmFja1NvdXJjZXMoKSBmaW5hbDsKKyAg
ICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtVGV4dFRyYWNrPj4gb3V0T2ZCYW5kVHJh
Y2tTb3VyY2VzKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgU3RyaW5nIG1lZGlhUGxheWVyTmV0d29ya0ludGVyZmFjZU5hbWUoKSBjb25zdCBmaW5hbDsK
LSAgICBib29sIG1lZGlhUGxheWVyR2V0UmF3Q29va2llcyhjb25zdCBVUkwmLCBWZWN0b3I8Q29v
a2llPiYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNv
bnN0IFVSTCYsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+JikgY29uc3QgZmluYWw7CiAjZW5kaWYK
IAogICAgIFN0cmluZyBtZWRpYVBsYXllclNvdXJjZUFwcGxpY2F0aW9uSWRlbnRpZmllcigpIGNv
bnN0IGZpbmFsOwogCiAgICAgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRl
KCkgY29uc3QgZmluYWw7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSBtZWRpYVBsYXllckZ1bGxzY3JlZW5Nb2RlKCkgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtZWRpYVBsYXllckZ1bGxzY3Jl
ZW5Nb2RlKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllcklzVmlkZW9GdWxsc2Ny
ZWVuU3RhbmRieSgpIGNvbnN0IGZpbmFsOwogICAgIFZlY3RvcjxTdHJpbmc+IG1lZGlhUGxheWVy
UHJlZmVycmVkQXVkaW9DaGFyYWN0ZXJpc3RpY3MoKSBjb25zdCBmaW5hbDsKIApAQCAtMTc2LDkg
KzE3Nyw5IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV93ZWJQcm9jZXNzQ29ubmVjdGlv
bjsKLSAgICBSZWZQdHI8TWVkaWFQbGF5ZXI+IG1fcGxheWVyOworICAgIFJlZlB0cjxXZWJDb3Jl
OjpNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHkmIG1fbWFuYWdlcjsKLSAgICBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgbV9lbmdpbmVJZGVudGlmaWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CiAgICAgVmVjdG9yPFdlYkNv
cmU6OkNvbnRlbnRUeXBlPiBtX3R5cGVzUmVxdWlyaW5nSGFyZHdhcmVTdXBwb3J0OwogICAgIFJ1
bkxvb3A6OlRpbWVyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fdXBkYXRlQ2FjaGVkU3RhdGVN
ZXNzYWdlVGltZXI7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSBtX2NhY2hlZFN0YXRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3OTMzNDdlMjg0MWFlM2MyYmM2YjQxOWEyY2MwODQ1ZWFi
YjkxOWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAKQEAgLTAsMCArMSwxMjMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZS5oIgorCisj
aWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IFJlbW90ZU1l
ZGlhUmVzb3VyY2U6OmNyZWF0ZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90ZU1lZGlhUGxh
eWVyUHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFJlbW90ZU1lZGlhUmVzb3VyY2UocmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIsIHJlbW90ZU1lZGlhUGxheWVyUHJveHksIGlkKSk7Cit9CisKK1JlbW90ZU1lZGlhUmVz
b3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIHJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLCBSZW1vdGVNZWRpYVBsYXllclByb3h5JiByZW1vdGVN
ZWRpYVBsYXllclByb3h5LCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6
IG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIp
CisgICAgLCBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdlYWtQdHIocmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eSkpCisgICAgLCBtX2lkKGlkKQoreworfQorCitSZW1vdGVNZWRpYVJlc291cmNl
Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
KyAgICBzdG9wKCk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5yZW1vdmVNZWRp
YVJlc291cmNlKG1faWQpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OnN0b3AoKQor
eworICAgIGlmIChtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgICAgIG1fcmVtb3RlTWVk
aWFQbGF5ZXJQcm94eS0+cmVtb3ZlUmVzb3VyY2UobV9pZCk7Cit9CisKK2Jvb2wgUmVtb3RlTWVk
aWFSZXNvdXJjZTo6ZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlOjpyZXNwb25zZVJlY2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBib29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGlmICghbV9jbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlkUGFzc0FjY2Vz
c0NvbnRyb2xDaGVjayA9IGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2s7CisgICAgbV9jbGllbnQt
PnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XShhdXRvIHNob3VsZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICAgICAgaWYgKHNob3VsZENvbnRpbnVlID09IFBvbGljeUNoZWNrZXI6OlNo
b3VsZENvbnRpbnVlOjpObykKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPnN0b3AoKTsKKwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzaG91bGRDb250aW51ZSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVkaXJlY3RSZWNlaXZlZChSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+cmVkaXJlY3RSZWNlaXZlZCgq
dGhpcywgV1RGTW92ZShyZXF1ZXN0KSwgcmVzcG9uc2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhU2VudCh1aW50NjRfdCBi
eXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0JlU2VudCkKK3sKKyAgICBpZiAobV9jbGll
bnQpCisgICAgICAgIG1fY2xpZW50LT5kYXRhU2VudCgqdGhpcywgYnl0ZXNTZW50LCB0b3RhbEJ5
dGVzVG9CZVNlbnQpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFSZWNlaXZl
ZChjb25zdCBjaGFyKiBkYXRhLCBpbnQ2NF90IGxlbmd0aCkKK3sKKyAgICBpZiAobV9jbGllbnQp
CisgICAgICAgIG1fY2xpZW50LT5kYXRhUmVjZWl2ZWQoKnRoaXMsIGRhdGEsIGxlbmd0aCk7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xD
aGVjayA9IGZhbHNlOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmFjY2Vz
c0NvbnRyb2xDaGVja0ZhaWxlZCgqdGhpcywgZXJyb3IpOworfQorCit2b2lkIFJlbW90ZU1lZGlh
UmVzb3VyY2U6OmxvYWRGYWlsZWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bG9hZEZhaWxlZCgqdGhpcywgZXJyb3Ip
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmxvYWRGaW5pc2hlZCgpCit7CisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+bG9hZEZpbmlzaGVkKCp0aGlzKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDVi
YTFjYWFjMmFkZjJlZDY4MDIxZGYyN2ZlYjEzNzZlNmQzMzQyMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmgKQEAg
LTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQ
VV9QUk9DRVNTKQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVN
ZWRpYVBsYXllclByb3h5OworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7CisKK2Ns
YXNzIFJlbW90ZU1lZGlhUmVzb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJl
c291cmNlIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlbW90ZU1lZGlhUmVzb3VyY2U+IGNy
ZWF0ZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkm
LCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgflJlbW90ZU1lZGlhUmVzb3Vy
Y2UoKTsKKworICAgIGJvb2wgcmVhZHkoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5OyB9CisgICAg
dm9pZCBzZXRSZWFkeShib29sIHJlYWR5KSB7IG1fcmVhZHkgPSByZWFkeTsgfQorCisgICAgLy8g
UGxhdGZvcm1NZWRpYVJlc291cmNlCisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisgICAgYm9vbCBk
aWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkgY29uc3QgZmluYWw7CisKKyAgICB2b2lkIHJlc3Bv
bnNlUmVjZWl2ZWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUp
PiYmKTsKKyAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJik7CisgICAgdm9pZCBkYXRhU2VudCh1
aW50NjRfdCwgdWludDY0X3QpOworICAgIHZvaWQgZGF0YVJlY2VpdmVkKGNvbnN0IGNoYXIqLCBp
bnQ2NF90KTsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBsb2FkRmFpbGVkKGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZCgpOworCitwcml2YXRlOgorICAg
IFJlbW90ZU1lZGlhUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImLCBSZW1vdGVN
ZWRpYVBsYXllclByb3h5JiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCisgICAg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXImIG1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI7
CisgICAgV2Vha1B0cjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVy
UHJveHk7CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgbV9pZDsKKyAgICBib29s
IG1fZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjayB7IGZhbHNlIH07CisgICAgYm9vbCBtX3JlYWR5
IHsgZmFsc2UgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzI4YTViNDA3M2IzMGQ5NGNlOTVh
NjMwYmZkNmM1ZjNjYTFiODFmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2VudW0gUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5n
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGVlZjkwYTU5MDRmOGI5
ZmRhZGRkMDBkNDgyZjE1NmZlZjA5NDI5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
OjpSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJlbW90
ZU1lZGlhUGxheWVyUHJveHkpCisgICAgOiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkobWFrZVdl
YWtQdHIocmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3Vy
Y2VMb2FkZXI6On5SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCkKK3sKK30KKworUmVmUHRyPFBs
YXRmb3JtTWVkaWFSZXNvdXJjZT4gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFJl
c291cmNlKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIExvYWRPcHRpb25zIG9wdGlvbnMpCit7
CisgICAgaWYgKCFtX3JlbW90ZU1lZGlhUGxheWVyUHJveHkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eS0+cmVxdWVzdFJlc291
cmNlKFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEv
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjJiMzcyODUxNzE3
MDk1ZDM1MjM1NDkwZGVkOGUzOTExMTkzNzk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtMCww
ICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk7CisKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIgZmluYWwKKyAgICA6IHB1
YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIgeworcHVibGljOgorICAg
IGV4cGxpY2l0IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eSYpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCk7CisKK3ByaXZhdGU6CisgICAg
UmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZT4gcmVxdWVzdFJlc291cmNlKFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBMb2FkT3B0aW9ucykgZmluYWw7CisgICAgV2Vha1B0
cjxSZW1vdGVNZWRpYVBsYXllclByb3h5PiBtX3JlbW90ZU1lZGlhUGxheWVyUHJveHk7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iYjI5ZTMzM2E3YWIxMWQ1YjUwY2Y4ZmUyYTcxZTUxNjBkODQ2YTkzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDEzMiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5o
IgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgor
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkKK3sKK30K
KworUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6On5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cigpCit7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmFkZE1lZGlhUmVz
b3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2UmIHJlbW90ZU1lZGlhUmVzb3VyY2UpCit7Cisg
ICAgQVNTRVJUKCFtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKHJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5hZGQocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsICZyZW1vdGVNZWRpYVJlc291cmNlKTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6cmVtb3ZlTWVkaWFSZXNvdXJjZShSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKK3sK
KyAgICBBU1NFUlQobV9yZW1vdGVNZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllcikpOworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMucmVtb3ZlKHJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjo6cmVzcG9uc2VSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ciBpZCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vz
c0NvbnRyb2xDaGVjaywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byogcmVzb3VyY2Ug
PSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7CisgICAgaWYgKCFyZXNvdXJjZSB8fCAh
cmVzb3VyY2UtPnJlYWR5KCkpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVzcG9uc2VSZWNlaXZlZChyZXNwb25z
ZSwgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZWRpcmVjdFJlY2VpdmVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7Cisg
ICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpIHsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+cmVkaXJlY3RSZWNlaXZlZChXVEZNb3ZlKHJlcXVlc3Qp
LCByZXNwb25zZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpkYXRhU2VudChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciBpZCwgdWludDY0X3QgYnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzVG9CZVNlbnQp
Cit7CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7
CisgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+ZGF0YVNlbnQoYnl0ZXNT
ZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyOjpkYXRhUmVjZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1f
cmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNv
dXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZW1vdGVNZWRpYVJlc291
cmNlcy5nZXQoaWQpLT5kYXRhUmVjZWl2ZWQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4o
ZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgYXV0byogcmVz
b3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7CisgICAgaWYgKCFyZXNvdXJj
ZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVtb3Rl
TWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGVycm9yKTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZChSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7
CisgICAgYXV0byogcmVzb3VyY2UgPSBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmdldChpZCk7Cisg
ICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPnJlYWR5KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKS0+bG9hZEZhaWxlZChlcnJvcik7
Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmxvYWRGaW5pc2hlZChSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1f
cmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNv
dXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZW1vdGVNZWRpYVJlc291
cmNlcy5nZXQoaWQpLT5sb2FkRmluaXNoZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1Jl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGZkZTQyOTIxM2Iy
YTg3YzgzMmU4Nzg3NjUyNDMxZDhlMDQ0YTYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgKQEAgLTAs
MCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BvbGljeUNoZWNr
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNz
IENvbm5lY3Rpb247CitjbGFzcyBEZWNvZGVyOworY2xhc3MgRGF0YVJlZmVyZW5jZTsKK30KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZTsKKworY2xhc3MgUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXIKKyAgICA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIoKTsKKyAgICB+UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKKwor
ICAgIHZvaWQgYWRkTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwg
UmVtb3RlTWVkaWFSZXNvdXJjZSYpOworICAgIHZvaWQgcmVtb3ZlTWVkaWFSZXNvdXJjZShSZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
cgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiwgYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpT
aG91bGRDb250aW51ZSk+JiYpOworICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmKT4mJik7CisgICAgdm9pZCBkYXRhU2VudChSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciwgdWludDY0X3QsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGRhdGFSZWNl
aXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJik7CisgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lk
IGxvYWRGYWlsZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZChSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllcik7CisKKyAgICBIYXNoTWFwPFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVJlc291cmNlKj4gbV9yZW1vdGVNZWRpYVJlc291cmNlczsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlci5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDRhMzg2YmYwYTJiZjMwMDM5MDg0YjE3ZjBi
NTU2Y2QxYzI4YTNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorCittZXNzYWdlcyAt
PiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBOb3RSZWZDb3VudGVkIHsKKyAgICBSZXNwb25z
ZVJlY2VpdmVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xD
aGVjaykgLT4gKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENv
bnRpbnVlKSBBc3luYworICAgIFJlZGlyZWN0UmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpIC0+IChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QgcmV0dXJuUmVxdWVzdCkgQXN5bmMKKyAgICBEYXRhU2VudChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRv
dGFsQnl0ZXNUb0JlU2VudCkKKyAgICBEYXRhUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJl
c291cmNlSWRlbnRpZmllciBpZCwgSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEpCisgICAgQWNjZXNz
Q29udHJvbENoZWNrRmFpbGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIg
aWQsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCisgICAgTG9hZEZhaWxlZChXZWJLaXQ6
OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
IGVycm9yKQorICAgIExvYWRGaW5pc2hlZChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CmluZGV4IGYyZTllZDdhYjU0MDJlZjUxMTg4ZjdlOGRiZTM5NmJhOGFjZTBmYWQuLjI1
N2IwMGViODYwODgxNWFjODliNTcyNWI1YWIyMTQ5MzA3OWYxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjIwLDYgKzIyMCw3IEBAIGRlZiB0eXBlc190
aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJLaXQ6OkFjdGl2
aXR5U3RhdGVDaGFuZ2VJRCcsCiAgICAgICAgICdXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHRJ
RCcsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIn
LAorICAgICAgICAnV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcicsCiAgICAg
ICAgICdXZWJLaXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlN0
b3JhZ2VBcmVhSW1wbElkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllcicsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIv
U291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAxOTE2ZGIzZDY1YjY1ZWNkYzVlMDBlYTdl
YzAxZWZkYzY1NjYxMGZmLi43ODU4MGNlNzAzM2UzNzk3N2E4ZGVlNmZmYTQ0NTgxMGM2OWRkMThk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvU291cmNlcy50eHQKQEAgLTI0LDYgKzI0LDExIEBACiBHUFVQcm9jZXNzL0dQVVByb2Nlc3Mu
Y3BwCiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCiBHUFVQcm9jZXNz
L0dQVVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291
cmNlLmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3Bw
CisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCiAKIE5l
dHdvcmtQcm9jZXNzL0FkQ2xpY2tBdHRyaWJ1dGlvbk1hbmFnZXIuY3BwCiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQWN0aXZpdHlUcmFja2VyLmNwcApAQCAtNTAyLDggKzUwNyw5IEBAIFdlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vTWVkaWFEZXZpY2VTYW5kYm94RXh0ZW5zaW9ucy5jcHAKIFdlYlByb2Nl
c3MvTWVkaWFTdHJlYW0vVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAogCiBX
ZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5jcHAKLVdlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKLVdlYlByb2Nlc3MvR1BVL21lZGlhL1Jl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlLmNwcAorLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRp
YVBsYXllck1hbmFnZXIuY3BwCisvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHAKIAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5jcHAKIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCBhNGFhNTVlMmFhMTlhMTQ2NjI1NGJiZjFiYmM3MjI4OTliNmM2
Mjc4Li4wMjNkYmQzOTRkNDU2ZmRkZDExOGFhOWI2NmQ4MjkyMGY2MjE2MmRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC01OSw4ICs1OSw2IEBAIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDU29ja2V0LmNwcAogCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNzSU9TLm1tCiBHUFVQ
cm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCi1HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwCi1HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcAogR1BVUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvR1BVU2Vy
dmljZUVudHJ5UG9pbnQubW0KIAogUGxhdGZvcm0vY2YvTW9kdWxlQ0YuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlM2I5MTkyMGM5
YjhhM2YzNmEwYmQxNDhjYTg1OGRiZGRjYjNhMDg3Li5mNjZjMTZiYmZjYWUwNGYzNmM4ZTUwOGE5
MDc1Njg5ZWM3MDliZjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQwNyw3ICs0MDcsMjAgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAw
NTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBX
ZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZC
N0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEg
LyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5
QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgx
IC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQzMkY4OUMyM0E4NEJBNjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovOyB9OworCQkxRDMyRjg5RTIzQTg0QzVCMDBCMUVB
NkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuY3BwICovOyB9OworCQkxRDNBQjA1MDIzQUMwMUEwMDA1QzFG
RjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDcyNUVGQUQyMzlCMDI0NTAwQTUzOEE5IC8q
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcCAqLzsgfTsKKwkJMUQzQUIwNTEyM0FD
MDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdCQUYzNTcyM0EyQ0MxOTAwNDQyNTdF
IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovOyB9OworCQkxRDNBQjA1MjIzQUMwMUFF
MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZS5jcHAgKi87IH07CisJCTFEM0FCMDUzMjNBQzAxQjMwMDVDMUZGMCAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEM0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTQyM0FDMDFCNzAwNUMxRkYw
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQTQwODlFMjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0FCMDU1MjNBQzAxRjMwMDVD
MUZGMCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxMzEyMzlCM0IwQzAwOTU5OEUyIC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgKi87IH07CisJCTFEM0FCMDU2MjNBQzAxRjYwMDVD
MUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDc5MjMxMzAyMzlCM0IwQzAwOTU5OEUyIC8qIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgKi87IH07CisJCTFENEQ3MzcwMjNBOUU1NDcwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlE
RjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OworCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKKwkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdB
MjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsK
IAkJMUQ2N0IzMzkyMTJFMUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDY3QjMzODIxMkUx
RjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAqLzsgfTsKKwkJMURBNDA4OTUy
M0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREE0MDg5NDIzQTgwQTNFMDA1
OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCAqLzsgfTsKIAkJMURCMDE5NDMy
MTFDRjAwMjAwOUZCM0U4IC8qIFdLU2hhcmVTaGVldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURFMEQwOTUyMTFDQzIxMzAwNDM5QjVGIC8qIFdLU2hh
cmVTaGVldC5oICovOyB9OwogCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTggLyogV0tTaGFyZVNo
ZWV0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURC
QkIwNjEyMTFDQzNDQjAwNTAyRUNDIC8qIFdLU2hhcmVTaGVldC5tbSAqLzsgfTsKIAkJMUYzMzVC
QzAxODVCODRGMDAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUYzMzVCQkYxODVC
ODREODAwMUEyMDFBIC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNjIwLDkgKzI2MzMs
MjIgQEAKIAkJMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yUHJv
eHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JQ
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFD
QkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3Bl
Y3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJ
UjsgfTsKIAkJMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSW5zcGVjdG9yVUlNZXNz
YWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9XZWJJbnNwZWN0b3JVSU1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTFEMzJGODk4MjNB
ODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJl
bW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4
OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4QTYyM0E4
NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxRDNBQjA0RDIzQUIwMDcyMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDRFMjNBQjAwOUIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
bW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQy
L1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQ2N0IzMzgyMTJF
MUY2MTAwRkFBNzg2IC8qIFNoYXJlU2hlZXRDYWxsYmFja0lELmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNoYXJlU2hlZXRDYWxsYmFja0lELmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTaGFyZVNoZWV0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFyZVNo
ZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLU2hhcmVTaGVldC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREUyREZBQzIzQTk1OUY4MDAzRTAxM0EgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYw
MTgxNjkxODU4REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZBMTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxRjAxODE2QjE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
RnJhbWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlBy
b2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00ODYzLDcgKzQ4ODksNyBAQAogCQlERjU4QzYzMTEzNzFBQzU4MDBGOUEzN0MgLyogTmF0aXZl
V2ViV2hlZWxFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXRpdmVX
ZWJXaGVlbEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNThDNjM1MTM3
MUFDQTAwMEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50TWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmF0aXZlV2ViV2hlZWxFdmVudE1hYy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEwNUZFNTMxOEQ3QjlERTAwOEY1N0E4IC8qIEVk
aXRpbmdSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0aW5nUmFu
Z2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTExNUM3MTUxOTBGOEEyNTAwRUND
NTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUg
PSBjb20uYXBwbGUuV2ViS2l0LlN0b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL2NvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKKwkJRTExNUM3MTUxOTBGOEEyNTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJL
aXQuU3RvcmFnZS5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBjb20uYXBwbGUuV2ViS2l0LlN0
b3JhZ2Uuc2I7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL2NvbS5hcHBsZS5XZWJLaXQu
U3RvcmFnZS5zYjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRTEzM0ZE
ODkxNDIzREQ3RjAwRkM3QkZCIC8qIFdlYktpdC5pY25zICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UuaWNuczsgbmFtZSA9IFdlYktpdC5pY25z
OyBwYXRoID0gUmVzb3VyY2VzL1dlYktpdC5pY25zOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMTRBOTU0NzE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29y
a1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMTRBOTU0ODE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0
cmF0ZWdpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUx
MTQsNiArNTE0MCw4IEBACiAJCQkJMDc5MjMxMzQyMzlCM0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5oICovLAogCQkJCTA3OTIzMTMzMjM5QjNCMEMwMDk1OThFMiAvKiBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMDdCM0I0NkYyM0FC
MkNCMzAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUuaCAqLywKKwkJCQkxRDMyRjg5
RDIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCAqLywKKwkJ
CQkxRDMyRjg5QjIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmgg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTUxMjcsNiArNTE1NSwxNCBAQAogCQkJCTA3QkFGMzU3MjNBMkNDMTkwMDQ0MjU3RSAvKiBS
ZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcCAqLywKIAkJCQkwN0JBRjM1NjIzQTJDQzE3MDA0NDI1
N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oICovLAogCQkJCTA3QjNCNDc1MjNBRDg5MDQw
MEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5Q29uZmlndXJhdGlvbi5oICovLAorCQkJ
CTFEMzJGODk5MjNBODQ2ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLywK
KwkJCQkxRDMyRjg5ODIzQTg0NjVBMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5oICov
LAorCQkJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllci5oICovLAorCQkJCTFEM0FCMDRFMjNBQjAwOUIwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmNwcCAqLywKKwkJCQkxRDNBQjA0RDIzQUIwMDcyMDA1QzFGRjAgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oICovLAorCQkJCTFEQTQwODlFMjNBODI3NzgwMDU4
Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8sCisJCQkJMURBNDA4OTQy
M0E4MEEzRTAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8sCisJCQkJ
MUQzMkY4QTYyM0E4NjAxOTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1l
c3NhZ2VzLmluICovLAogCQkJKTsKIAkJCXBhdGggPSBtZWRpYTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC05Mjg0LDYgKzkzMjAsOSBAQAogCQkJCTA3OTIzMTQ1MjM5Q0JDQjcwMDk1
OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCiAJCQkJMDc5MjMxNDYyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5TWVzc2FnZXMuaCAqLywKIAkJCQkwNzkyMzE0MjIzOUNCQ0I1MDA5NTk4RTIgLyog
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQkx
RDRENzM2QjIzQTlERjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJMUQ0RDczNzUyM0E5RUI2
ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgg
Ki8sCiAJCQkJMUFDMTMzODMxODU5MEM0NjAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQUMxMzM4NDE4NTkwQzQ2MDBGM0VDMDUgLyog
UmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oICovLAogCQkJCTBGNTk0N0E1MTg3QjUxNzYw
MDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCkBAIC0xMDE3OCw2ICsxMDIxNywxMCBAQAogCQkJCTA3OTIzMTRDMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzkyMzE0ODIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyUHJveHlNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3QjNCNDcwMjNB
QjMwMkQwMEJBNUIxMiAvKiBSZW1vdGVNZWRpYVBsYXllclN0YXRlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDRE
NzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
c1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEMzJGODlDMjNBODRCQTYwMEIxRUE2QSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQjc4NDcx
MTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE1NzA0RkMxQkUxNzUxMTAwODc0QUYxIC8qIFJlbW90ZU9iamVjdEludm9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQzEzMzgwMTg1OTBBRTQwMEYzRUMwNSAvKiBSZW1v
dGVPYmplY3RSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTc4OCw2ICsxMTgzMSw3IEBA
CiAJCQkJMjk4NEY1N0MxNjRCOTE1RjAwNEJDMEM2IC8qIExlZ2FjeUN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0OUQ5MERB
MjFGREMzMEIwMEY2NzdDMCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU29mdExpbmsubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyRDkyQTc3OTIxMkI2QTYxMDBGNDkzRkQgLyogTG9nZ2luZy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDNBQjA1NTIzQUMwMUYzMDA1QzFGRjAgLyogTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzgxMjEyQjZBNzEwMEY0
OTNGRCAvKiBNZXNzYWdlUmVjZWl2ZXJNYXAuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MkE3
ODIyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VTZW5kZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkQ5MkE3N0EyMTJCNkE2MTAwRjQ5M0ZEIC8qIE1vZHVsZS5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTExODQ0LDggKzExODg4LDE2IEBACiAJCQkJMkQ3MkExRkEyMTJCRjQ2RTAwNTE3QTIwIC8q
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjRB
MkQxODc5RTRCQzAwM0FCRjBDIC8qIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRDMThGQjQyMThBNkU5RTAwMjVB
ODhEIC8qIFJlbW90ZUxheWVyVHJlZVZpZXdzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIw
NTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwNzkyMzE0OTIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDUw
MjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzkyMzE0QjIzOUNCQ0I4MDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
MUQzQUIwNTEyM0FDMDFBQTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTIyM0FDMDFBRTAwNUMxRkYwIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQzQUIwNTMyM0FDMDFCMzAwNUMxRkYw
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQz
QUIwNTQyM0FDMDFCNzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTFENEQ3MzcwMjNBOUU1NDcwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkx
RDMyRjg5RTIzQTg0QzVCMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTFBQzEzMzg1MTg1OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmpl
Y3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjU5NDdB
NzE4N0I1MTc2MDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTU1QkE4MjYxQkEyNUNGRDAwN0NEMzNEIC8q
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCBlOGRhYWUwZjliYTg1YTI1MWI3MDY3ZGUzOGNhNGE3Njk3NDIxNTgw
Li5iOGU0NzY3ZmMwMGQ0OTMxZTRkOGExMzRiYmIzY2RlOGQ0Njc2ZTgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcApA
QCAtNjUsNyArNjUsNyBAQCB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbgogdm9pZCBHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9u
LCBJUEM6OkRlY29kZXImIGRlY29kZXIpCiB7CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2Vp
dmVyTmFtZSgpID09IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSkgewotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVt
ZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2Vi
UHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuc3VwcGxlbWVudDxSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI+KCktPmRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUdQVVByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA4NTNjYzE2NTUw
OTRiYjUyNDIxZmI2Y2ZhMWMzMTlhOTY0NzFjMDk0Li4zMWM2MTA0NjY5ZjJmMDJmZmE0NDBmZWI4
ODA5MjZjNzRhZTI2YWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBm
aW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1Jl
ZmVyZW5jZSBtZXNzYWdlTmFtZSkgb3ZlcnJpZGU7CiAKLSAgICAvLyBUaGUgY29ubmVjdGlvbiBm
cm9tIGEgd2ViIHByb2Nlc3MgdG8gdGhpcyBHUFUgcHJvY2Vzcy4KKyAgICAvLyBUaGUgY29ubmVj
dGlvbiBmcm9tIHRoZSB3ZWIgcHJvY2VzcyB0byB0aGUgR1BVIHByb2Nlc3MuCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGUuY3BwCmluZGV4IDM0OGEwZjVmNDhhN2VhNDk1OTVlY2I1YWIxMmM0M2UxNWU0ZWJmZjEuLjc1
OGQ3ZTI1NzQ4YjYxZWNiMzQ4YjZmNTFlMTI1MmYzNzVmYzY1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAKQEAgLTYyLDYgKzYyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1l
ZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmll
ciBlbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBs
YXllcklkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbWFuYWdlciwgY29uc3Qg
UmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIDogbV9w
bGF5ZXIocGxheWVyKQorICAgICwgbV9tZWRpYVJlc291cmNlTG9hZGVyKHBsYXllci0+Y3JlYXRl
UmVzb3VyY2VMb2FkZXIoKSkKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9yZW1v
dGVFbmdpbmVJZGVudGlmaWVyKGVuZ2luZUlkZW50aWZpZXIpCiAgICAgLCBtX2lkKHBsYXllcklk
ZW50aWZpZXIpCkBAIC03OTgsNiArNzk5LDIxIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlOjpzaG91bGRJZ25vcmVJbnRyaW5zaWNTaXplKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucykKK3sKKyAgICBBU1NFUlQoIW1fbWVkaWFS
ZXNvdXJjZXMuY29udGFpbnMocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBh
dXRvIHJlc291cmNlID0gbV9tZWRpYVJlc291cmNlTG9hZGVyLT5yZXF1ZXN0UmVzb3VyY2UoV1RG
TW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7CisgICAgLy8gUGxhdGZvcm1NZWRpYVJlc291cmNlIG93
bnMgdGhlIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudAorICAgIHJlc291cmNlLT5zZXRDbGll
bnQobWFrZVVuaXF1ZTxSZW1vdGVNZWRpYVJlc291cmNlUHJveHk+KG1fbWFuYWdlci5ncHVQcm9j
ZXNzQ29ubmVjdGlvbigpLCAqcmVzb3VyY2UsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
KSk7CisgICAgbV9tZWRpYVJlc291cmNlcy5hZGQocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIFdURk1vdmUocmVzb3VyY2UpKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OnJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyKQoreworICAgIC8vIFRoZSBjbGllbnQoUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5KSB3aWxsIGJlIGRlc3Ryb3llZCBhcyB3ZWxsCisgICAgbV9tZWRpYVJlc291
cmNlcy5yZW1vdmUocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCiAjaWYgIVJF
TEVBU0VfTE9HX0RJU0FCTEVECiBXVEZMb2dDaGFubmVsJiBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGU6OmxvZ0NoYW5uZWwoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgKaW5kZXgg
Njg4NzJhZWJjZjBlZTBkOTVjMWY2YTZhNzY2NDA4N2YxMGRhOGY1ZC4uZmFhMmVjOWEzMjFiNzg0
OWQ0Njg2MTRmY2U4YmE5OTcxMWExZDcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oCkBA
IC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9u
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVBsYXllclByaXZhdGUuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVs
cGVyLmg+CiAjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgpAQCAtMzksMjIgKzQxLDIzIEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUgZmluYWwK
ICAgICA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+Ci0g
ICAgLCBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisgICAgLCBwdWJsaWMgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgLCBwcml2YXRlIExvZ2dlckhlbHBlcgogI2VuZGlmCiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXllclByaXZhdGVSZW1vdGU+IGNyZWF0ZShN
ZWRpYVBsYXllciogcGxheWVyLCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZp
ZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImIG1hbmFnZXIsIGNvbnN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZT4gY3JlYXRlKFdlYkNv
cmU6Ok1lZGlhUGxheWVyKiBwbGF5ZXIsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlh
RW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYg
bWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1cmF0
aW9uKQogICAgIHsKICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlPihwbGF5ZXIsIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGlkZW50aWZpZXIsIG1hbmFn
ZXIsIGNvbmZpZ3VyYXRpb24pOwogICAgIH0KIAotICAgIGV4cGxpY2l0IE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZShNZWRpYVBsYXllciosIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciwgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyJiwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJik7Ci0g
ICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKCk7CisgICAgTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlKFdlYkNvcmU6Ok1lZGlhUGxheWVyKiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXll
ckNvbmZpZ3VyYXRpb24mKTsKKworICAgIH5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsKIAog
ICAgIHZvaWQgaW52YWxpZGF0ZSgpIHsgbV9pbnZhbGlkID0gdHJ1ZTsgfQotICAgIE1lZGlhUGxh
eWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9yZW1vdGVFbmdpbmVJZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6
TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7IH0KICAgICBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIHBsYXllckl0ZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CiAKICAgICB2b2lkIG5ldHdvcmtTdGF0ZUNoYW5nZWQoUmVtb3Rl
TWVkaWFQbGF5ZXJTdGF0ZSYmKTsKQEAgLTY5LDYgKzcyLDkgQEAgcHVibGljOgogICAgIHZvaWQg
dXBkYXRlQ2FjaGVkU3RhdGUoUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmKTsKICAgICB2b2lkIGNo
YXJhY3RlcmlzdGljQ2hhbmdlZChib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBXZWJDb3Jl
OjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKIAorICAgIHZvaWQgcmVxdWVzdFJl
c291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9u
cyk7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cik7CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBjb25zdCBMb2dnZXImIGxvZ2dl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICptX2xvZ2dlcjsgfQogICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGUiOyB9CkBAIC03NywxNCArODMsMTQgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6
Ci0gICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IENvbnRlbnRUeXBlJiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7Ci0gICAgdm9pZCBwcmVwYXJlRm9yUGxheWJhY2soYm9vbCBwcml2YXRlTW9k
ZSwgTWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFy
ZSkgZmluYWw7CisgICAgdm9pZCBsb2FkKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRl
bnRUeXBlJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgdm9pZCBwcmVwYXJlRm9yUGxheWJh
Y2soYm9vbCBwcml2YXRlTW9kZSwgV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlByZWxvYWQsIGJvb2wg
cHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZSkgZmluYWw7CiAKICNpZiBFTkFCTEUoTUVESUFf
U09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVD
bGllbnQqKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVk
aWFTb3VyY2VQcml2YXRlQ2xpZW50KikgZmluYWw7CiAjZW5kaWYKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotICAgIHZvaWQgbG9hZChNZWRpYVN0cmVhbVByaXZhdGUmKSBmaW5hbDsKKyAgICB2
b2lkIGxvYWQoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlJikgZmluYWw7CiAjZW5kaWYKICAg
ICB2b2lkIGNhbmNlbExvYWQoKSBmaW5hbDsKIApAQCAtMTA2LDkgKzExMiw5IEBAIHByaXZhdGU6
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkxheWVy
KFBsYXRmb3JtTGF5ZXIqLCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVWaWRlb0Z1bGxzY3JlZW5JbmxpbmVJbWFnZSgpIGZp
bmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0KSBmaW5hbDsK
LSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoTWVkaWFQbGF5ZXI6OlZpZGVvR3Jh
dml0eSkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKE1lZGlhUGxheWVy
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bkZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxz
Y3JlZW5HcmF2aXR5KFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpWaWRlb0dyYXZpdHkpIGZpbmFsOwor
ICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuTW9kZShXZWJDb3JlOjpNZWRpYVBsYXllcjo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAgICAgdm9pZCB2aWRlb0Z1bGxzY3JlZW5TdGFuZGJ5
Q2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKQEAgLTExOCw3ICsxMjQsNyBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBlcnJvckxvZygpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHNl
dEJ1ZmZlcmluZ1BvbGljeShNZWRpYVBsYXllcjo6QnVmZmVyaW5nUG9saWN5KSBmaW5hbDsKKyAg
ICB2b2lkIHNldEJ1ZmZlcmluZ1BvbGljeShXZWJDb3JlOjpNZWRpYVBsYXllcjo6QnVmZmVyaW5n
UG9saWN5KSBmaW5hbDsKIAogICAgIGJvb2wgc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oKSBjb25zdCBmaW5hbDsKQEAg
LTEyNiw3ICsxMzIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBjYW5TYXZlTWVkaWFEYXRhKCkg
Y29uc3QgZmluYWw7CiAKLSAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbDsK
KyAgICBXZWJDb3JlOjpGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBmaW5hbDsKIAogICAg
IGJvb2wgaGFzVmlkZW8oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Qg
ZmluYWw7CkBAIC0xNTksMjkgKzE2NSwyOSBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtYXhGYXN0
Rm9yd2FyZFJhdGUoKSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgbWluRmFzdFJldmVyc2VSYXRl
KCkgY29uc3QgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtT
dGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY2FjaGVkU3RhdGUubmV0d29ya1N0YXRlOyB9
Ci0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fY2FjaGVkU3RhdGUucmVhZHlTdGF0ZTsgfQorICAgIFdlYkNvcmU6Ok1lZGlhUGxh
eWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
YWNoZWRTdGF0ZS5uZXR3b3JrU3RhdGU7IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5y
ZWFkeVN0YXRlOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBz
ZWVrYWJsZSgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0
Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CiAKICAgICBNZWRpYVRpbWUg
bWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKICAgICBNZWRpYVRpbWUgbWluTWVk
aWFUaW1lU2Vla2FibGUoKSBjb25zdCBmaW5hbDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZv
cm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgZmluYWw7CiAg
ICAgZG91YmxlIHNlZWthYmxlVGltZVJhbmdlc0xhc3RNb2RpZmllZFRpbWUoKSBjb25zdCBmaW5h
bDsKICAgICBkb3VibGUgbGl2ZVVwZGF0ZUludGVydmFsKCkgY29uc3QgZmluYWw7CiAKICAgICB1
bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZGlk
TG9hZGluZ1Byb2dyZXNzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIGZpbmFsOworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JikgZmluYWw7CiAKLSAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYpIGZpbmFsOworICAgIHZvaWQgcGFpbnQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jiwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CiAKLSAgICB2b2lkIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFs
OwotICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1UZXh0dXJlKEdyYXBoaWNzQ29u
dGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0sIEdDM0RpbnQsIEdDM0RlbnVtLCBH
QzNEZW51bSwgR0MzRGVudW0sIGJvb2wsIGJvb2wpIGZpbmFsOwotICAgIE5hdGl2ZUltYWdlUHRy
IG5hdGl2ZUltYWdlRm9yQ3VycmVudFRpbWUoKSBmaW5hbDsKKyAgICB2b2lkIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIGJvb2wgY29weVZpZGVvVGV4dHVyZVRvUGxhdGZvcm1U
ZXh0dXJlKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEKiwgUGxhdGZvcm0zRE9iamVjdCwgR0Mz
RGVudW0sIEdDM0RpbnQsIEdDM0RlbnVtLCBHQzNEZW51bSwgR0MzRGVudW0sIGJvb2wsIGJvb2wp
IGZpbmFsOworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVu
dFRpbWUoKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0UHJlbG9hZChNZWRpYVBsYXllcjo6UHJlbG9h
ZCkgZmluYWw7CisgICAgdm9pZCBzZXRQcmVsb2FkKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpQcmVs
b2FkKSBmaW5hbDsKIAogICAgIGJvb2wgaGFzQXZhaWxhYmxlVmlkZW9GcmFtZSgpIGNvbnN0IGZp
bmFsOwogCkBAIC0xOTIsMTQgKzE5OCwxNCBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICBTdHJpbmcgd2lyZWxlc3NQbGF5YmFja1RhcmdldE5h
bWUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1Rhcmdl
dFR5cGUgd2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllcjo6V2lyZWxlc3NQbGF5YmFja1RhcmdldFR5cGUgd2lyZWxlc3NQbGF5
YmFja1RhcmdldFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgd2lyZWxlc3NWaWRlb1Bs
YXliYWNrRGlzYWJsZWQoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFdpcmVsZXNzVmlkZW9Q
bGF5YmFja0Rpc2FibGVkKGJvb2wpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5QbGF5VG9XaXJlbGVz
c1BsYXliYWNrVGFyZ2V0KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBpc0N1cnJlbnRQbGF5YmFj
a1RhcmdldFdpcmVsZXNzKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRXaXJlbGVzc1BsYXli
YWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYmKSBmaW5hbDsKKyAgICB2b2lkIHNl
dFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXQ+
JiYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29s
KSBmaW5hbDsKICNlbmRpZgpAQCAtMjE2LDkgKzIyMiw5IEBAIHByaXZhdGU6CiAKICAgICBib29s
IGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBkaWRQYXNz
Q09SU0FjY2Vzc0NoZWNrKCkgY29uc3QgZmluYWw7Ci0gICAgT3B0aW9uYWw8Ym9vbD4gd291bGRU
YWludE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOworICAgIE9wdGlv
bmFsPGJvb2w+IHdvdWxkVGFpbnRPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
KSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9h
ZFR5cGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllcjo6TW92aWVMb2Fk
VHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHByZXBhcmVGb3JS
ZW5kZXJpbmcoKSBmaW5hbDsKIApAQCAtMjM0LDI1ICsyNDAsMjUgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJf
QVVESU8pCi0gICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIGZp
bmFsOworICAgIFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlk
ZXIoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEp
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPExlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29u
c3QgU3RyaW5nJiwgTGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOwotICAgIHZvaWQgc2V0
Q0RNU2Vzc2lvbihMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lvbkNsaWVudCopIGZpbmFsOworICAgIHZvaWQgc2V0Q0RN
U2Vzc2lvbihXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uKikgZmluYWw7CiAgICAgdm9pZCBrZXlB
ZGRlZCgpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQotICAg
IHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwotICAgIHZvaWQg
Y2RtSW5zdGFuY2VEZXRhY2hlZChDRE1JbnN0YW5jZSYpIGZpbmFsOwotICAgIHZvaWQgYXR0ZW1w
dFRvRGVjcnlwdFdpdGhJbnN0YW5jZShDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIHZvaWQgY2Rt
SW5zdGFuY2VBdHRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIHZvaWQg
Y2RtSW5zdGFuY2VEZXRhY2hlZChXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZpbmFsOworICAgIHZv
aWQgYXR0ZW1wdFRvRGVjcnlwdFdpdGhJbnN0YW5jZShXZWJDb3JlOjpDRE1JbnN0YW5jZSYpIGZp
bmFsOwogICAgIGJvb2wgd2FpdGluZ0ZvcktleSgpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgYm9vbCByZXF1aXJlc1RleHRUcmFja1JlcHJlc2Vu
dGF0aW9uKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlv
bihUZXh0VHJhY2tSZXByZXNlbnRhdGlvbiopIGZpbmFsOworICAgIHZvaWQgc2V0VGV4dFRyYWNr
UmVwcmVzZW50YXRpb24oV2ViQ29yZTo6VGV4dFRyYWNrUmVwcmVzZW50YXRpb24qKSBmaW5hbDsK
ICAgICB2b2lkIHN5bmNUZXh0VHJhY2tCb3VuZHMoKSBmaW5hbDsKICAgICB2b2lkIHRyYWNrc0No
YW5nZWQoKSBmaW5hbDsKICNlbmRpZgpAQCAtMjcyLDcgKzI3OCw3IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIGVuZGVkKCkgY29uc3QgZmluYWw7CiAKLSAgICBPcHRpb25hbDxWaWRlb1BsYXliYWNr
UXVhbGl0eU1ldHJpY3M+IHZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcygpIGZpbmFsOworICAg
IE9wdGlvbmFsPFdlYkNvcmU6OlZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5
YmFja1F1YWxpdHlNZXRyaWNzKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQog
ICAgIHZvaWQgbm90aWZ5VHJhY2tNb2RlQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMjkzLDE5ICsyOTks
MjIgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSWdub3JlSW50cmluc2ljU2l6ZSgpIGZp
bmFsOwogCi0gICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OwotICAgIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlciBtX21hbmFnZXI7Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIG1fcmVtb3RlRW5naW5lSWRlbnRpZmllcjsKKyAgICBXZWJDb3Jl
OjpNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CisgICAgUmVmUHRyPFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4gbV9tZWRpYVJlc291cmNlTG9hZGVyOworICAg
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciBtX3JlbW90ZUVuZ2luZUlkZW50aWZp
ZXI7CiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBtX2lkOwogICAgIFJl
bW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247CiAKICAgICBSZW1v
dGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3RhdGU7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRpbWVSYW5nZXM7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gbV9jYWNoZWRCdWZmZXJlZFRp
bWVSYW5nZXM7CisKKyAgICBIYXNoTWFwPFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBS
ZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPj4gbV9tZWRpYVJlc291cmNlczsK
IAogICAgIGRvdWJsZSBtX3ZvbHVtZSB7IDEgfTsKICAgICBkb3VibGUgbV9yYXRlIHsgMSB9Owog
ICAgIGxvbmcgbV9wbGF0Zm9ybUVycm9yQ29kZSB7IDAgfTsKLSAgICBNZWRpYVBsYXllckVudW1z
OjpNb3ZpZUxvYWRUeXBlIG1fbW92aWVMb2FkVHlwZSB7IE1lZGlhUGxheWVyRW51bXM6Ok1vdmll
TG9hZFR5cGU6OlVua25vd24gfTsKKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3Zp
ZUxvYWRUeXBlIG1fbW92aWVMb2FkVHlwZSB7IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1v
dmllTG9hZFR5cGU6OlVua25vd24gfTsKICAgICBib29sIG1faGFzQXVkaW8geyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9oYXNWaWRlbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX211dGVkIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKaW5kZXggM2Q1
NWZkYWFhOTJhMjViNjJiOGY1NzM4ZDJjZThjMjljMzBiMTNkZC4uMjU2YjNjNTlmYmU0MmI2YmMx
YTMwNjcxZTcwMGE1NzM0ZGRiOWY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgKQEAgLTI1LDYgKzI1LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisKICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTMzLDMgKzM1LDUgQEAgZW51bSBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyVHlwZSB7IH07CiB1c2luZyBNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyVHlwZT47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAppbmRleCBhZTc1Njg2ZGFmOTJmZDIyNTg0OTI0ZTJj
OTQ2OTNiYjczZTFiNDc5Li43MWI3MWJmZmEyMzhiOTRhYjMyM2FjNDkxZmM2MTIwNWI0YjQ4YzEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5o
IgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJv
eHlNZXNzYWdlcy5oIgpAQCAtNDEsNiArNDMsNyBAQAogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2luZyBuYW1lc3BhY2UgUEFMOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE2NSw3ICsxNjgsNyBAQCB2b2lkIFJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6Z2V0U3VwcG9ydGVkVHlwZXMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFF
bmdpbmVJZAogICAgICAgICByZXN1bHQuYWRkKHR5cGUpOwogfQogCi1NZWRpYVBsYXllcjo6U3Vw
cG9ydHNUeXBlIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNz
KE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJh
bWV0ZXJzKQorTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnN1cHBvcnRzVHlwZUFuZENvZGVjcyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlk
ZW50aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0
UGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICAvLyBGSVhNRTogc3VwcG9ydGVkIHR5cGVz
IGRvbid0IGNoYW5nZSwgY2FjaGUgdGhlbS4KIApAQCAtMTgxLDkgKzE4NCw5IEBAIGJvb2wgUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBwb3J0c0tleVN5c3RlbShNZWRpYVBsYXllckVudW1z
OjpNZWRpYUVuZ2luZUlkCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1IYXNoU2V0PFJlZlB0cjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6b3JpZ2lu
c0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgcmVt
b3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoKQorSGFzaFNldDxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+PiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om9yaWdpbnNJbk1lZGlh
Q2FjaGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2lu
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBWZWN0b3I8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiBvcmlnaW5EYXRhOworICAgIFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdGE+IG9yaWdpbkRhdGE7CiAgICAgaWYgKCFncHVQcm9jZXNzQ29ubmVjdGlvbigpLnNlbmRT
eW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6T3JpZ2luc0luTWVk
aWFDYWNoZShyZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBwYXRoKSwgTWVzc2FnZXM6OlJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlclByb3h5OjpPcmlnaW5zSW5NZWRpYUNhY2hlOjpSZXBseShvcmlnaW5E
YXRhKSwgMCkpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE5OSw3ICsyMDIsNyBAQCB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbgogICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkuc2VuZChNZXNz
YWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OkNsZWFyTWVkaWFDYWNoZShyZW1v
dGVFbmdpbmVJZGVudGlmaWVyLCBwYXRoLCBtb2RpZmllZFNpbmNlKSwgMCk7CiB9CiAKLXZvaWQg
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKE1lZGlh
UGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPj4mIG9yaWdpbnMpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xl
YXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBI
YXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zKQogewogICAgIGF1dG8gb3Jp
Z2luRGF0YSA9IFdURjo6bWFwKG9yaWdpbnMsIFtdIChhdXRvJiBvcmlnaW4pIHsKICAgICAgICAg
cmV0dXJuIG9yaWdpbi0+ZGF0YSgpOwpAQCAtMjEwLDU1ICsyMTMsNTUgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoTWVkaWFQbGF5ZXJF
bnVtczo6TWVkaWEKIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om5ldHdvcmtTdGF0
ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVk
aWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVy
cy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlk
KSkKICAgICAgICAgcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKFdURk1vdmUoc3RhdGUpKTsK
IH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlYWR5U3RhdGVDaGFuZ2VkKE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAg
IHBsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCi12b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCit2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1lQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJ
ZGVudGlmaWVyIGlkLCBkb3VibGUgdm9sdW1lKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkKSkKICAgICAgICAgcGxheWVyLT52b2x1bWVDaGFuZ2VkKHZvbHVtZSk7CiB9CiAKLXZv
aWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjptdXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZSkKK3ZvaWQgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyOjptdXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkLCBib29sIG11dGUpCiB7Ci0gICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJz
LmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQp
KQogICAgICAgICBwbGF5ZXItPm11dGVDaGFuZ2VkKG11dGUpOwogfQogCiB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6dGltZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0g
ICAgaWYgKGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1
dG8mIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnRpbWVDaGFu
Z2VkKFdURk1vdmUoc3RhdGUpKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OmR1cmF0aW9uQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAoYXV0byBw
bGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+ZHVyYXRpb25DaGFuZ2VkKFdURk1v
dmUoc3RhdGUpKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJhdGVDaGFu
Z2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91Ymxl
IHJhdGUpCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmF0ZUNoYW5nZWQoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHJhdGUpCiB7Ci0gICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBs
YXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnJhdGVDaGFuZ2VkKHJh
dGUpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cGxheWJhY2tTdGF0ZUNo
YW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29s
IHBhdXNlZCkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpwbGF5YmFja1N0YXRlQ2hh
bmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBib29sIHBhdXNlZCkK
IHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29u
c3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+cGxh
eWJhY2tTdGF0ZUNoYW5nZWQocGF1c2VkKTsKIH0KIAogdm9pZCBSZW1vdGVNZWRpYVBsYXllck1h
bmFnZXI6OmVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIGxvbmcgcGxhdGZvcm1FcnJvckNvZGUpCiB7Ci0gICAgaWYgKGF1dG8g
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPmVuZ2luZUZhaWxlZFRvTG9hZChw
bGF0Zm9ybUVycm9yQ29kZSk7CiB9CiAKQEAgLTI2Nyw2ICsyNzAsMjAgQEAgdm9pZCBSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXI6OmNoYXJhY3RlcmlzdGljQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVIKICAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAg
ICAgICAgcGxheWVyLT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQoaGFzQXVkaW8sIGhhc1ZpZGVvLCBs
b2FkVHlwZSk7CiB9CisgICAgCit2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVxdWVz
dFJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRP
cHRpb25zIG9wdGlvbnMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkp
CisgICAgICAgIHBsYXllci0+cmVxdWVzdFJlc291cmNlKHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyLCBXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKworICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZW1vdmVSZXNvdXJj
ZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBSZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcikKK3sKKyAgICBpZiAo
Y29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgICAgIHBsYXllci0+
cmVtb3ZlUmVzb3VyY2UocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworfQogCiB2b2lk
IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgU2V0dGlu
Z3MmIHNldHRpbmdzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmgKaW5kZXggYzNjMjc3YWM4
OGMzNGRjNjA5YWNhY2ZlZWQ2YWU1OTc4MzI4ZjE0Mi4uMjQ4ODE0NDMwOTVlNTExMzFkZTg2Njdh
ZjNiNjEzMTEwZGFlYzBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVy
U3RhdGUuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgpAQCAtNTcsNyArNTgsNyBAQCBwdWJs
aWM6CiAKICAgICBJUEM6OkNvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uKCkgY29uc3Q7
CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJv
bUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRl
Y29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7IH0KIAogICAg
IHZvaWQgZGVsZXRlUmVtb3RlTWVkaWFQbGF5ZXIoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllcik7CiAKQEAgLTgyLDYgKzgzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuZ2luZUZh
aWxlZFRvTG9hZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIGxv
bmcpOwogICAgIHZvaWQgdXBkYXRlQ2FjaGVkU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwogICAgIHZvaWQg
Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJFbnVtczo6TW92aWVMb2FkVHlwZSk7CisgICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoTWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVz
b3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwor
ICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmll
ciwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgZnJpZW5kIGNsYXNzIE1l
ZGlhUGxheWVyUmVtb3RlRmFjdG9yeTsKICAgICB2b2lkIGdldFN1cHBvcnRlZFR5cGVzKFdlYkNv
cmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciwgSGFzaFNldDxTdHJp
bmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggZDMxZTA1ZmFhNDAxMmEzZDVlM2E3MzY4YjdjOGY3
Yzk2ZDZkNGZmMC4uMTgwZjI2MzIzNjNmNTA2ZGViYzJhMWU4NzM2OTZhZmM5ZTdmNjc4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBs
YXllck1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIx
LDcgQEAKICMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgogIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAKLSNpZiBFTkFCTEUoVklERU8pCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogCiBtZXNzYWdl
cyAtPiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgTm90UmVmQ291bnRlZCB7CiAgICAgTmV0d29y
a1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3RhdGUpCkBAIC0zNSw2
ICszNSw5IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3Vu
dGVkIHsKICAgICBFbmdpbmVGYWlsZWRUb0xvYWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkLCBpbnQgcGxhdGZvcm1FcnJvckNvZGUpCiAgICAgVXBkYXRlQ2Fj
aGVkU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBz
dHJ1Y3QgV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclN0YXRlIHN0YXRlKQogICAgIENoYXJhY3Rl
cmlzdGljQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIGJvb2wgaGFzQXVkaW8sIGJvb2wgaGFzVmlkZW8sIGVudW06dWludDhfdCBXZWJDb3JlOjpN
ZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUpCisKKyAgICBSZXF1
ZXN0UmVzb3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIG1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKSAtPiAoKSBBc3luYworICAgIFJl
bW92ZVJlc291cmNlKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBt
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKQogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MDk2ZTI1MDBhOGEz
M2Y3ZTM1NmQyYjNjZWY5NDQ5ODdkZDA3N2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCkBA
IC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1Mp
CisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5o
IgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpSZW1vdGVNZWRpYVJlc291cmNlUHJveHko
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmIHBsYXRmb3JtTWVkaWFSZXNvdXJjZSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIgaWQpCisgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAs
IG1fcGxhdGZvcm1NZWRpYVJlc291cmNlKHBsYXRmb3JtTWVkaWFSZXNvdXJjZSkKKyAgICAsIG1f
aWQoaWQpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6flJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eSgpCit7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNw
b25zZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OlJlc3BvbnNlUmVjZWl2ZWQobV9pZCwgcmVzcG9uc2Us
IG1fcGxhdGZvcm1NZWRpYVJlc291cmNlLmRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSksIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHNob3Vs
ZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc2hvdWxkQ29u
dGludWUpOworICAgIH0pOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6cmVk
aXJlY3RSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpSZWRpcmVj
dFJlY2VpdmVkKG1faWQsIHJlcXVlc3QsIHJlc3BvbnNlKSwgW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiByZXF1ZXN0KSBtdXRhYmxlIHsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgfSk7Cit9CisK
K2Jvb2wgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRDYWNoZVJlc3BvbnNlKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKQoreworICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlY2sgV2ViQ29yZU5TVVJMU2Vzc2lvbkRh
dGFUYXNrQ2xpZW50OjpzaG91bGRDYWNoZVJlc3BvbnNlKCkKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpkYXRhU2VudChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcgYnl0ZXNTZW50LCB1bnNpZ25l
ZCBsb25nIGxvbmcgdG90YWxCeXRlc1RvQmVTZW50KQoreworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkRhdGFTZW50KG1faWQsIGJ5
dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5OjpkYXRhUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNl
JiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpEYXRhUmVjZWl2ZWQobV9p
ZCwgSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRh
dGEpLCBsZW5ndGgpKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Ojph
Y2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6QWNjZXNzQ29udHJv
bENoZWNrRmFpbGVkKG1faWQsIGVycm9yKSwgMCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5Ojpsb2FkRmFpbGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIG1fY29ubmVjdGlvbi0+
c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkxvYWRGYWlsZWQobV9p
ZCwgZXJyb3IpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmxvYWRG
aW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmKQoreworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OkxvYWRGaW5p
c2hlZChtX2lkKSwgMCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNmNkZjk2YWIyMDAzZDc4MTBmZWRkMTlhZDA1NzBmNjAxMzA0NzkyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlUHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUG9saWN5Q2hlY2tlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZVBy
b3h5IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB+UmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5KCk7CisKK3ByaXZhdGU6CisgICAgLy8gUGxhdGZvcm1NZWRpYVJl
c291cmNlQ2xpZW50CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4m
JikgZmluYWw7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVk
aWFSZXNvdXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmJik+JiYpIGZpbmFsOworICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJikgZmluYWw7CisgICAgdm9pZCBkYXRhU2VudChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmLCB1bnNpZ25lZCBsb25nIGxvbmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgZmluYWw7Cisg
ICAgdm9pZCBkYXRhUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29u
c3QgY2hhciosIGludCkgZmluYWw7CisgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpIGZpbmFsOworICAgIHZvaWQgbG9hZEZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlh
UmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgdm9p
ZCBsb2FkRmluaXNoZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJikgZmluYWw7CisK
KyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAgV2ViQ29yZTo6UGxh
dGZvcm1NZWRpYVJlc291cmNlJiBtX3BsYXRmb3JtTWVkaWFSZXNvdXJjZTsKKyAgICBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGQ3NzMwMjc2ZjAwMDRmNmIyZTg0MzgzODhhNmNiNTMzMjhhYTJk
NmUuLmFjYzFjYzI2YWI5ZTgyZDM0NTc3ZmEwMDUyNTVlZDdhYzIwMTFlMmQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxOS0xMi0zMCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCByZW1vdGUgbWVkaWEgcmVzb3VyY2UgbG9hZGVyIGZvciB0aGUgR1BVIHBy
b2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTM3OQorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBn
cHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXBsYXkt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS9hdWRpby1wbGF5LXdpdGgtdmlk
ZW8tZWxlbWVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1ZGlvLXBs
YXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1ZGlv
LXBsYXkuaHRtbDogQWRkZWQuCisKIDIwMTktMTItMjcgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gQWRkIGEgcHVyZSB2aXJ0dWFsIGJhc2UgY2xhc3Mg
Zm9yIEdyYXBoaWNzQ29udGV4dDNECmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9ncHUtcHJvY2Vz
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA0NzVmYTI4MzJlNmE4NGY5ZGVkMTcxNmQzYTExOGMwODZkODZhZTQ3Li5mNGNk
YTNkNThjY2YyNmFkNzUzOTA5MGFkMzhjYTJkYTEwOWFlZGFhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9ncHUtcHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL2dwdS1w
cm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3OSw2ICsxNzksMTEgQEAgbGVnYWN5LWFuaW1h
dGlvbi1lbmdpbmUvaW1wb3J0ZWQvYmxpbmsvY29tcG9zaXRpbmcvc3F1YXNoaW5nL3JlbW92ZS1m
cm9tLWdyb3VwZWQKIGluc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNvbnMu
aHRtbCBbIFNraXAgXQogCiBtZWRpYSBbIFNraXAgXQorbWVkaWEvdmlkZW8tc3JjLmh0bWwgWyBQ
YXNzIF0KK21lZGlhL21lZGlhLWNhbi1wbGF5LW1wZWctYXVkaW8uaHRtbCBbIFBhc3MgXQorbWVk
aWEvbWVkaWEtY2FuLXBsYXktd2F2LWF1ZGlvLmh0bWwgWyBQYXNzIF0KK21lZGlhL2F1ZGlvLXBs
YXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWwgWyBQYXNzIF0KK21lZGlhL2F1ZGlvLXBsYXkuaHRt
bCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS9tZWRpYS1lbGVtZW50Lmh0bWwgWyBTa2lwIF0KIGZh
c3QvYmxvY2svZmxvYXQvbGlzdC1tYXJrZXItaXMtZmxvYXQtY3Jhc2guaHRtbCBbIFNraXAgXQog
ZmFzdC9jc3MvcmVsYXRpdmUtcG9zaXRpb24tcmVwbGFjZWQtaW4tdGFibGUtZGlzcGxheS1jcmFz
aC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcyNWQ5MTU1NGYzNTY1NzEyZGI5MTM2ZjE3ZjEyNjliNTFiMWM0N2UKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgdGhhdCBhICdwbGF5JyBldmVudCBpcyBmaXJlZCB3aGVu
IGFuIGF1ZGlvIGVsZW1lbnQgcGxheXMuCisKK1JVTihtZWRpYUVsZW1lbnQuc3JjID0gZmluZE1l
ZGlhRmlsZSgnYXVkaW8nLCAnY29udGVudC90ZXN0JykpCitSVU4obWVkaWFFbGVtZW50LnBsYXko
KSkKK0VWRU5UKHBsYXkpCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9hdWRpby1wbGF5LXdpdGgtdmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9hdWRpby1wbGF5LXdpdGgtdmlkZW8tZWxlbWVudC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTVjZmQ3ZWNkYmQ3MmIwNzZhMDk4ZDY3ZjU1YzY1NDA3N2FkNDE0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXktd2l0aC12aWRlby1lbGVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IHRoYXQgY2FsbGluZyBwbGF5
KCkgYW5kIHBhdXNlKCkgb24gYSB2aWRlbyBlbGVtZW50IHdpdGggYXVkaW8gc291cmNlIHRyaWdn
ZXJzIHBsYXkgYW5kIHBhdXNlIGV2ZW50cy4KKworCitSVU4odmlkZW8uc3JjID0gZmluZE1lZGlh
RmlsZSgiYXVkaW8iLCAiY29udGVudC9zaWxlbmNlIikpCitSVU4oaGFuZGxlUHJvbWlzZSh2aWRl
by5wbGF5KCkpKQorUlVOKHZpZGVvLnBhdXNlKCkpCitFVkVOVChwbGF5KQorRVZFTlQod2FpdGlu
ZykKK0VWRU5UKHBhdXNlKQorRVhQRUNURUQgKHZpZGVvLnBhdXNlZCA9PSAndHJ1ZScpIE9LCitF
TkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5LXdp
dGgtdmlkZW8tZWxlbWVudC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRo
LXZpZGVvLWVsZW1lbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWQ4NTdiYjQxN2RlMDRhOGM5MGYwMmNl
NmQ0ODE5MjBlMGEyNDkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVk
aW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgZmluZE1lZGlhRWxlbWVu
dCgpOworICAgICAgICBydW4oJ3ZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoImF1ZGlvIiwgImNv
bnRlbnQvc2lsZW5jZSIpJyk7CisKKyAgICAgICAgd2FpdEZvckV2ZW50KCJsb2Fkc3RhcnQiKTsK
KyAgICAgICAgd2FpdEZvckV2ZW50KCJyYXRlY2hhbmdlIik7CisgICAgICAgIHdhaXRGb3JFdmVu
dCgid2FpdGluZyIpOworICAgICAgICB3YWl0Rm9yRXZlbnQoInJhdGVjaGFuZ2UiKTsKKyAgICAg
ICAgd2FpdEZvckV2ZW50KCJkdXJhdGlvbmNoYW5nZSIpOworICAgICAgICB3YWl0Rm9yRXZlbnQo
ImxvYWRlZG1ldGFkYXRhIik7CisgICAgICAgIHdhaXRGb3JFdmVudCgibG9hZGVkZGF0YSIpOwor
ICAgICAgICB3YWl0Rm9yRXZlbnQoImNhbnBsYXkiKTsKKyAgICAgICAgd2FpdEZvckV2ZW50KCJj
YW5wbGF5dGhyb3VnaCIpOworICAgICAgICB3YWl0Rm9yRXZlbnQoInBsYXkiKTsKKyAgICAgICAg
d2FpdEZvckV2ZW50KCJ0aW1ldXBkYXRlIik7CisgICAgICAgIHdhaXRGb3JFdmVudCgncGF1c2Un
LCBmdW5jdGlvbiAoKSB7IHRlc3RFeHBlY3RlZCgidmlkZW8ucGF1c2VkIiwgdHJ1ZSk7IGVuZFRl
c3QoKTsgfSApOworCisgICAgICAgIHJ1bigiaGFuZGxlUHJvbWlzZSh2aWRlby5wbGF5KCkpIik7
CisgICAgICAgIHJ1bigidmlkZW8ucGF1c2UoKSIpOworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3QgdGhhdCBjYWxs
aW5nIHBsYXkoKSBhbmQgcGF1c2UoKSBvbiBhIHZpZGVvIGVsZW1lbnQgd2l0aCBhdWRpbyBzb3Vy
Y2UgdHJpZ2dlcnMgcGxheSBhbmQgcGF1c2UgZXZlbnRzLjwvcD4KKyAgICA8dmlkZW8gY29udHJv
bHM+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL2F1ZGlvLXBsYXkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42MjVjYzI5NDg0NThhMDM5MzNiM2M3OTBjODNhNTI3ZTJjZmU5YTc4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS5odG1sCkBAIC0wLDAg
KzEsMjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+J3Bs
YXknIGV2ZW50PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0
PgorICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgIG1lZGlhRWxlbWVudCA9
IG5ldyBBdWRpbygpOworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdsb2FkZWRtZXRhZGF0YScp
OworICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdwbGF5JywgZnVuY3Rpb24oKSB7IGVuZFRlc3Qo
KTsgfSk7CisgICAgICAgICAgICBydW4oIm1lZGlhRWxlbWVudC5zcmMgPSBmaW5kTWVkaWFGaWxl
KCdhdWRpbycsICdjb250ZW50L3Rlc3QnKSIpOworICAgICAgICAgICAgcnVuKCJtZWRpYUVsZW1l
bnQucGxheSgpIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkg
b25sb2FkPSJzdGFydCgpIj4KKyAgICA8cD5UZXN0IHRoYXQgYSAncGxheScgZXZlbnQgaXMgZmly
ZWQgd2hlbiBhbiBhdWRpbyBlbGVtZW50IHBsYXlzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386563</attachid>
            <date>2019-12-31 10:06:27 -0800</date>
            <delta_ts>2019-12-31 18:27:09 -0800</delta_ts>
            <desc>Patch for landing (rebased)</desc>
            <filename>bug-205379-20191231100627.patch</filename>
            <type>text/plain</type>
            <size>129105</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzExZjQ1ZmRhMDJmMWVi
NTMyYTNkMjJiNjkwZjkzMDIxMjM3MDcyZC4uYzgwNzE5ZmRmZDIxZDUwY2Y5ZmQyZDg5NGVlOTRi
ODE3NTJmYTllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE5LTEyLTMxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSBy
ZXNvdXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
WW91ZW5uIEZhYmxldC4KKworICAgICAgICBUaGVyZSBhcmUgdHdvIGRlZmluaXRpb25zIG9mIFNo
b3VsZENvbnRpbnVlOiBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTaG91bGRDb250
aW51ZQorICAgICAgICBhbmQgV2ViQ29yZTo6U2hvdWxkQ29udGludWUuIFRoaXMgcGF0Y2ggbW92
ZXMgV2ViQ29yZTo6U2hvdWxkQ29udGludWUgdG8KKyAgICAgICAgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWUgaW4gb3JkZXIgdG8gc3VwcG9ydCB0cmFuc21pdHRpbmcgaXQg
aW4gWFBDIG1lc3NhZ2VzLgorCisgICAgICAgIFRlc3RzOiBtZWRpYS9hdWRpby1wbGF5LXdpdGgt
dmlkZW8tZWxlbWVudC5odG1sCisgICAgICAgICAgICAgICBtZWRpYS9hdWRpby1wbGF5Lmh0bWwK
KworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlcjo6bG9hZFVSTCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9h
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFBvc3RSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1Bv
bGljeSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVy
L01lZGlhUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZXNvdXJj
ZTo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogbG9hZGVyL1BvbGljeUNoZWNrZXIuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudDo6cmVzcG9u
c2VSZWNlaXZlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChDYWNoZWRSZXNvdXJjZVN0cmVhbWlu
Z0NsaWVudDo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9j
b2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZU5T
VVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKC1b
V2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrIHJlc291cmNlOnJlY2VpdmVkUmVzcG9uc2U6Y29t
cGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMTktMTItMzEgIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFN0eWxlUnVsZSBhY2Nlc3NvciBpbiBSdWxlRGF0YSBzaG91
bGQgcmV0dXJuIGEgY29uc3QgcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc5ODE2MDQ2ZGQ4YWIwMmZl
YTM5YmIyYjcyN2VjNDRhNzQzOGVjM2EuLjNhODEyNmI0ZDliNDVkNzU1YjBkNWYwMTI1NGIyNjQz
NDUxZDM1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTA4IEBACisyMDE5LTEyLTMxICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNv
dXJjZSBsb2FkZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91
ZW5uIEZhYmxldC4KKworICAgICAgICBJbiB0aGUgR1BVIHByb2Nlc3MsIHRoZSBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyIGNyZWF0ZXMgUmVtb3RlTWVkaWFSZXNvdXJjZShzKSwKKyAgICAgICAg
d2hpY2ggd2lsbCBub3RpZnkgdGhlIG1lZGlhIHJlc291cmNlIGNsaWVudHMgKFdlYkNvcmVOU1VS
TFNlc3Npb25EYXRhVGFza0NsaWVudCkuCisgICAgICAgIFRoZW4gdGhlIGRhdGEgd2lsbCBiZSBm
b3J3YXJkZWQgdG8gQVZGb3VuZGF0aW9uLgorCisgICAgICAgIEluIHRoZSBXZWIgcHJvY2Vzcywg
TWVpZGFSZXNvdXJjZUxvYWRlciBjcmVhdGVzIE1lZGlhUmVzb3VyY2UocyksIHdoaWNoIHRha2Ug
Y2FyZSBvZgorICAgICAgICBkb3dubG9hZGluZyBtZWRpYSBkYXRhIHRocm91Z2ggdGhlIG5ldHdv
cmsgcHJvY2Vzcy4gVGhlIHJlY2VpdmVkIGRhdGEgd2lsbCBiZSBmb3J3YXJkZWQgdG8KKyAgICAg
ICAgUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LCB3aGljaCB3aWxsIGZvcndhcmQgdGhlIGRhdGEg
dG8gdGhlIGNvcnJlc3BvbmRpbmcgUmVtb3RlTWVkaWFSZXNvdXJjZQorICAgICAgICB0aHJvdWdo
IFhQQyBtZXNzYWdlcy4KKworICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpyZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OkdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6flJlbW90ZU1lZGlhUGxheWVyUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclByb3h5OjpyZW1vdmVSZXNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVy
Q3JlYXRlUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllclBy
b3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6Om1lZGlhUGxheWVyTG9nSWRlbnRpZmllcik6IERlbGV0
ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OlJlbW90ZU1lZGlhUmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjp+UmVtb3RlTWVkaWFSZXNv
dXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnN0b3ApOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJvbENo
ZWNrIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6cmVzcG9u
c2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlZGly
ZWN0UmVjZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpzaG91
bGRDYWNoZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6
ZGF0YVNlbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjpkYXRhUmVj
ZWl2ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250
cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlOjps
b2FkRmFpbGVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZp
bmlzaGVkKToKKyAgICAgICAgKiBHUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
aDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2U6OnJlYWR5IGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZTo6c2V0UmVhZHkpOgor
ICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TG9hZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVNZWRpYVJlc291cmNlTG9hZGVyOjp+UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcik6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6
CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmg6
IEFkZGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6On5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphZGRNZWRpYVJlc291
cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlbW92
ZU1lZGlhUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjo6cmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyOjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFSZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjphY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZhaWxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmluaXNoZWQp
OgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIu
aDogQWRkZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlci5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BV
UHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGU6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVSZXNvdXJjZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
Zmllci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6
c3VwcG9ydHNUeXBlQW5kQ29kZWNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZWFkeVN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6dm9sdW1l
Q2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6bXV0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnRp
bWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpk
dXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnJhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyOjpwbGF5YmFja1N0YXRlQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnJlbW92ZVJlc291cmNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuaDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21H
UFVQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpk
aWRSZWNlaXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6UmVt
b3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZXNwb25zZVJlY2VpdmVkKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpzaG91bGRDYWNoZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjpkYXRhU2VudCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eTo6ZGF0YVJlY2VpdmVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5OjphY2Nlc3NDb250
cm9sQ2hlY2tGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJv
eHk6OmxvYWRGYWlsZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlUHJv
eHk6OmxvYWRGaW5pc2hlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
TWVkaWFSZXNvdXJjZVByb3h5Lmg6IEFkZGVkLgorCiAyMDE5LTEyLTMxICB5b3Vlbm4gZmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgUlRDIFZUQiBkZWNvZGVy
cyBpbiBHUFVQcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA2
Mzc1ZjUwNjI0MTU2YzlmNDhhYjdmNzRjNjE5NmY1MTNmNTlmN2RkLi4yMmViOGQwNDNiMzgwMzc1
Y2E1ZTBkYjVmNjdlMWFjNGQ4NzY2Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTEzODAsNyArMTM4MCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRVUkwoRnJh
bWVMb2FkUmVxdWVzdCYmIGZyYW1lTG9hZFJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcmVmCiAKICAg
ICBpZiAoIXRhcmdldEZyYW1lICYmICFlZmZlY3RpdmVGcmFtZU5hbWUuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIGFjdGlvbiA9IGFjdGlvbi5jb3B5V2l0aFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3koc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHkobV9mcmFtZSwgZnJhbWVMb2Fk
UmVxdWVzdCkpOwotICAgICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3ko
V1RGTW92ZShhY3Rpb24pLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGZvcm1TdGF0ZSksIGVm
ZmVjdGl2ZUZyYW1lTmFtZSwgW3RoaXMsIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgb3Bl
bmVyUG9saWN5LCBjb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJl
bGVhc2UoKV0gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3Rh
dGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7
CisgICAgICAgIHBvbGljeUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFj
dGlvbiksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZWZmZWN0aXZlRnJh
bWVOYW1lLCBbdGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ks
IGNvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXJDYWxsZXIucmVsZWFzZSgpXSAo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiBmb3Jt
U3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBh
Y3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3VsZENvbnRpbnVlKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KHJlcXVl
c3QsIGZvcm1TdGF0ZS5nZXQoKSwgZnJhbWVOYW1lLCBhY3Rpb24sIHNob3VsZENvbnRpbnVlLCBh
bGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGljeSk7CiAgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICB9KTsKQEAgLTE0NjMsNyArMTQ2Myw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmxvYWQoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3QpCiAKICAgICBp
ZiAocmVxdWVzdC5zaG91bGRDaGVja05ld1dpbmRvd1BvbGljeSgpKSB7CiAgICAgICAgIE5hdmln
YXRpb25BY3Rpb24gYWN0aW9uIHsgcmVxdWVzdC5yZXF1ZXN0ZXIoKSwgcmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSwgSW5pdGlhdGVkQnlNYWluRnJhbWU6OlVua25vd24sIE5hdmlnYXRpb25UeXBl
OjpPdGhlciwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkgfTsKLSAgICAg
ICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9uKSwg
V1RGTW92ZShyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSwgeyB9LCByZXF1ZXN0LmZyYW1lTmFt
ZSgpLCBbdGhpc10gKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3Jt
U3RhdGU+JiYgZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgeworICAg
ICAgICBwb2xpY3lDaGVja2VyKCkuY2hlY2tOZXdXaW5kb3dQb2xpY3koV1RGTW92ZShhY3Rpb24p
LCBXVEZNb3ZlKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpLCB7IH0sIHJlcXVlc3QuZnJhbWVO
YW1lKCksIFt0aGlzXSAoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWFrUHRyPEZv
cm1TdGF0ZT4mJiBmb3JtU3RhdGUsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiBhY3Rpb24sIFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlIHNob3Vs
ZENvbnRpbnVlKSB7CiAgICAgICAgICAgICBjb250aW51ZUxvYWRBZnRlck5ld1dpbmRvd1BvbGlj
eShyZXF1ZXN0LCBmb3JtU3RhdGUuZ2V0KCksIGZyYW1lTmFtZSwgYWN0aW9uLCBzaG91bGRDb250
aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpTdXBwcmVzcyk7CiAgICAgICAgIH0pOwogCkBAIC0zMDYzLDcgKzMwNjMsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdCYmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgcmVmZQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAg
ICAgICAgcG9saWN5Q2hlY2tlcigpLmNoZWNrTmV3V2luZG93UG9saWN5KFdURk1vdmUoYWN0aW9u
KSwgV1RGTW92ZSh3b3JraW5nUmVzb3VyY2VSZXF1ZXN0KSwgV1RGTW92ZShmb3JtU3RhdGUpLCBm
cmFtZU5hbWUsIFt0aGlzLCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwsIG9wZW5lclBvbGlj
eSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vha1B0cjxGb3JtU3RhdGU+JiYgZm9ybVN0YXRl
LCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9u
LCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSkgbXV0YWJsZSB7CisgICAgICAgIHBvbGlj
eUNoZWNrZXIoKS5jaGVja05ld1dpbmRvd1BvbGljeShXVEZNb3ZlKGFjdGlvbiksIFdURk1vdmUo
d29ya2luZ1Jlc291cmNlUmVxdWVzdCksIFdURk1vdmUoZm9ybVN0YXRlKSwgZnJhbWVOYW1lLCBb
dGhpcywgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBvcGVuZXJQb2xpY3ksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildIChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmIGZvcm1TdGF0ZSwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgUG9saWN5Q2hl
Y2tlcjo6U2hvdWxkQ29udGludWUgc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAg
ICAgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3kocmVxdWVzdCwgZm9ybVN0YXRlLmdl
dCgpLCBmcmFtZU5hbWUsIGFjdGlvbiwgc2hvdWxkQ29udGludWUsIGFsbG93TmF2aWdhdGlvblRv
SW52YWxpZFVSTCwgb3BlbmVyUG9saWN5KTsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiAgICAgICAgIH0pOwpAQCAtMzU0MSw5ICszNTQxLDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6
Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWUKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQ
b2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAotICAgIEZvcm1TdGF0ZSogZm9y
bVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYg
YWN0aW9uLCBTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xp
Y3kgb3BlbmVyUG9saWN5KQorICAgIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBQb2xpY3lDaGVja2Vy
OjpTaG91bGRDb250aW51ZSBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJhbWVPcGVuZXJQb2xpY3kgb3Bl
bmVyUG9saWN5KQogewotICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBTaG91bGRDb250aW51ZTo6
WWVzKQorICAgIGlmIChzaG91bGRDb250aW51ZSAhPSBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZTo6WWVzKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWY8RnJhbWU+IGZyYW1lKG1fZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBjZTNlZDZhNTUyMGJjNGRj
MWUzMGUyNzk5OTUzN2FmZDQ4NDljYzg0Li43MTYzNGM4NGM1NjA1OTI5YmU1NGE1NWM2ODRjYmVj
ZmIxN2Y4NjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzcsNiArMzcs
NyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxl
c3RvbmUuaCIKICNpbmNsdWRlICJNaXhlZENvbnRlbnRDaGVja2VyLmgiCisjaW5jbHVkZSAiUG9s
aWN5Q2hlY2tlci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VMb2FkTm90aWZpZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIK
QEAgLTg0LDcgKzg1LDYgQEAgY2xhc3MgU3ViZnJhbWVMb2FkZXI7CiBjbGFzcyBTdWJzdGl0dXRl
RGF0YTsKIAogZW51bSBjbGFzcyBOZXdMb2FkSW5Qcm9ncmVzcyA6IGJvb2w7Ci1lbnVtIGNsYXNz
IFNob3VsZENvbnRpbnVlOwogZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24gOiB1
aW50OF90OwogZW51bSBjbGFzcyBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgOiBib29sOwog
CkBAIC0zNTcsNyArMzU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoVW5sb2FkRXZl
bnRzKFVubG9hZEV2ZW50UG9saWN5KTsKIAogICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJOYXZp
Z2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIEZvcm1TdGF0ZSosIE5hdmlnYXRp
b25Qb2xpY3lEZWNpc2lvbiwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMKTsKLSAgICB2b2lk
IGNvbnRpbnVlTG9hZEFmdGVyTmV3V2luZG93UG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYs
IEZvcm1TdGF0ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiwgU2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgTmV3RnJh
bWVPcGVuZXJQb2xpY3kpOworICAgIHZvaWQgY29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xp
Y3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgRm9ybVN0YXRlKiwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMLCBOZXdGcmFtZU9wZW5lclBvbGljeSk7
CiAgICAgdm9pZCBjb250aW51ZUZyYWdtZW50U2Nyb2xsQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYsIGJvb2wgc2hvdWxkQ29udGludWUpOwogCiAgICAgYm9vbCBz
aG91bGRQZXJmb3JtRnJhZ21lbnROYXZpZ2F0aW9uKGJvb2wgaXNGb3JtU3VibWlzc2lvbiwgY29u
c3QgU3RyaW5nJiBodHRwTWV0aG9kLCBGcmFtZUxvYWRUeXBlLCBjb25zdCBVUkwmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9NZWRpYVJlc291cmNlTG9hZGVyLmNwcAppbmRleCAwNmU4NDdk
NDQ4Mjc1ZDVmNGE2MjdjN2E0NzcwODQxYzRkY2E0MTg3Li43YzUzMTg5OGQ3YmM3OWM0YjdjMDA5
MDBjNzU3OGQ1NTlkYmU2OTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTWVk
aWFSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL01lZGlhUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xNzIsMTAgKzE3MiwxMCBAQCB2b2lkIE1lZGlhUmVzb3VyY2U6
OnJlc3BvbnNlUmVjZWl2ZWQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb25zdCBSZXNvdXJj
ZVJlcwogCiAgICAgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrID0gbV9yZXNvdXJjZS0+b3B0
aW9ucygpLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpDb3JzOwogICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQoKnRoaXMsIHJlc3BvbnNlLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9
IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKFNob3VsZENvbnRpbnVlIHNob3Vs
ZENvbnRpbnVlKSBtdXRhYmxlIHsKKyAgICAgICAgbV9jbGllbnQtPnJlc3BvbnNlUmVjZWl2ZWQo
KnRoaXMsIHJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
b21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyQ2FsbGVyLnJlbGVhc2UoKV0gKGF1
dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKGNvbXBsZXRpb25I
YW5kbGVyKQogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgICAgICAg
ICBpZiAoc2hvdWxkQ29udGludWUgPT0gU2hvdWxkQ29udGludWU6Ok5vKQorICAgICAgICAgICAg
aWYgKHNob3VsZENvbnRpbnVlID09IFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObykK
ICAgICAgICAgICAgICAgICBzdG9wKCk7CiAgICAgICAgIH0pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuaAppbmRleCAwZWYxZTZlNTczMWNmYTVjYjZlZDdlYWU1YjI3YTI5YzVj
OTNhZTJhLi5jM2NlMjY2MjdlZWQ4MzQzNDRlNGMyNjM2YjM1MGI1OGQ4MTM2NWNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmgKQEAgLTUyLDExICs1Miw2IEBAIGNsYXNzIE5h
dmlnYXRpb25BY3Rpb247CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXNw
b25zZTsKIAotZW51bSBjbGFzcyBTaG91bGRDb250aW51ZSB7Ci0gICAgWWVzLAotICAgIE5vCi19
OwotCiBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbiA6IHVpbnQ4X3QgewogICAg
IENvbnRpbnVlTG9hZCwKICAgICBJZ25vcmVMb2FkLApAQCAtNjUsMTUgKzYwLDIwIEBAIGVudW0g
Y2xhc3MgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uIDogdWludDhfdCB7CiAKIGVudW0gY2xhc3Mg
UG9saWN5RGVjaXNpb25Nb2RlIHsgU3luY2hyb25vdXMsIEFzeW5jaHJvbm91cyB9OwogCi11c2lu
ZyBOZXdXaW5kb3dQb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mLCBTaG91bGRDb250aW51ZSk+
OwotdXNpbmcgTmF2aWdhdGlvblBvbGljeURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmLCBXZWFrUHRyPEZvcm1TdGF0ZT4mJiwgTmF2aWdh
dGlvblBvbGljeURlY2lzaW9uKT47Ci0KIGNsYXNzIFBvbGljeUNoZWNrZXIgewogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFBvbGljeUNoZWNrZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IFBvbGljeUNoZWNrZXIoRnJhbWUmKTsKIAorICAg
IGVudW0gY2xhc3MgU2hvdWxkQ29udGludWUgeworICAgICAgICBZZXMsCisgICAgICAgIE5vCisg
ICAgfTsKKworICAgIHVzaW5nIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJlcXVlc3QmJiwgV2Vha1B0cjxGb3JtU3RhdGU+
JiYsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbik+OworICAgIHVzaW5nIE5ld1dpbmRvd1BvbGlj
eURlY2lzaW9uRnVuY3Rpb24gPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFdlYWtQdHI8Rm9ybVN0YXRlPiYmLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIFNob3VsZENvbnRpbnVlKT47CisKICAgICB2b2lkIGNo
ZWNrTmF2aWdhdGlvblBvbGljeShSZXNvdXJjZVJlcXVlc3QmJiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSwgRG9jdW1lbnRMb2FkZXIqLCBSZWZQdHI8Rm9ybVN0YXRl
PiYmLCBOYXZpZ2F0aW9uUG9saWN5RGVjaXNpb25GdW5jdGlvbiYmLCBQb2xpY3lEZWNpc2lvbk1v
ZGUgPSBQb2xpY3lEZWNpc2lvbk1vZGU6OkFzeW5jaHJvbm91cyk7CiAgICAgdm9pZCBjaGVja05h
dmlnYXRpb25Qb2xpY3koUmVzb3VyY2VSZXF1ZXN0JiYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UsIE5hdmlnYXRpb25Qb2xpY3lEZWNpc2lvbkZ1bmN0aW9uJiYpOwog
ICAgIHZvaWQgY2hlY2tOZXdXaW5kb3dQb2xpY3koTmF2aWdhdGlvbkFjdGlvbiYmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgUmVmUHRyPEZvcm1TdGF0ZT4mJiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24mJik7CkBAIC0xMTIsMyArMTEyLDE2IEBA
IHByaXZhdGU6CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKy8vIFRvIHN1cHBvcnQg
ZW5jb2RpbmcgV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgaW4gWFBDIG1l
c3NhZ2VzCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZT4geworICAgIHVzaW5nIHZhbHVl
cyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENv
bnRpbnVlLAorICAgICAgICBXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6
Tm8sCisgICAgICAgIFdlYkNvcmU6OlBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZZXMK
KyAgICA+OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1MTYxNWVm
NjA2NWRkMzZmYTU1MDE4ZjY2Njg0OGIyMWNhOWI5NzgwLi5hMTQ1ZjE2M2M2NDNhMzg2OGUxOTcx
MzhhYWU0ZWRjZmQwNDc2ZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQs
NyArNDQsNyBAQCBjbGFzcyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQgewogcHVibGljOgog
ICAgIHZpcnR1YWwgflBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCgpID0gZGVmYXVsdDsKIAot
ICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENv
bnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihTaG91bGRD
b250aW51ZTo6WWVzKTsgfQorICAgIHZpcnR1YWwgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRm
b3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6
WWVzKTsgfQogICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFBsYXRmb3JtTWVkaWFS
ZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsgfQogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRDYWNoZVJlc3BvbnNlKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCB2
b2lkIGRhdGFTZW50KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywg
dW5zaWduZWQgbG9uZyBsb25nKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKaW5kZXggYWVkYmY2ODZmMDRiZjA5ZTcyZDJkM2I0NzQ3YzhiZDllN2Y0OWU3
MC4uNjQxNTQxNzk3MzA3OTAzMDFhZTE3OGVmODRkN2Y4YWQ3ZWVmZWQ0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJj
ZUdTdHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlICJNYWluVGhyZWFkTm90aWZpZXIuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIlBvbGlj
eUNoZWNrZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgpAQCAtNjUsNyArNjYs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tVcGRhdGVCbG9ja3NpemUodW5zaWduZWQgYnl0
ZXNSZWFkKTsKIAogICAgIC8vIFBsYXRmb3JtTWVkaWFSZXNvdXJjZUNsaWVudCB2aXJ0dWFsIG1l
dGhvZHMuCi0gICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENv
bnRpbnVlKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3Jt
TWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkYXRhUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgY2hhciosIGlu
dCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBhY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJyaWRlOwogICAgIHZvaWQg
bG9hZEZhaWxlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZUVycm9yJikg
b3ZlcnJpZGU7CkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWlu
Z0NsaWVudDo6Y2hlY2tVcGRhdGVCbG9ja3NpemUodW5zaWduZWQgYnl0ZXNSZWFkKQogICAgIH0K
IH0KIAotdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6cmVzcG9uc2VSZWNlaXZl
ZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2Vp
dmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJLaXRXZWJTcmMqIHNyYyA9IFdFQktJ
VF9XRUJfU1JDKG1fc3JjLmdldCgpKTsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0g
c3JjLT5wcml2OwpAQCAtOTk4LDcgKzk5OSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1p
bmdDbGllbnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uCiAg
ICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiUmVjZWl2ZWQg
JWQgSFRUUCBlcnJvciBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSksIChudWxscHRy
KSk7CiAgICAgICAgIHByaXYtPmRvZXNIYXZlRU9TID0gdHJ1ZTsKICAgICAgICAgd2ViS2l0V2Vi
U3JjU3RvcChHU1RfQkFTRV9TUkNfQ0FTVChzcmMpKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5
Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Ok5vKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMTAxMiw3ICsxMDEzLDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVN0cmVhbWluZ0NsaWVudDo6
cmVzcG9uc2VSZWNlaXZlZChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb24KICAgICAgICAgICAg
IEdTVF9FTEVNRU5UX0VSUk9SKHNyYywgUkVTT1VSQ0UsIFJFQUQsICgiUmVjZWl2ZWQgdW5leHBl
Y3RlZCAlZCBIVFRQIHN0YXR1cyBjb2RlIiwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSksIChu
dWxscHRyKSk7CiAgICAgICAgICAgICBwcml2LT5kb2VzSGF2ZUVPUyA9IHRydWU7CiAgICAgICAg
ICAgICB3ZWJLaXRXZWJTcmNTdG9wKEdTVF9CQVNFX1NSQ19DQVNUKHNyYykpOwotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBHU1RfREVCVUdf
T0JKRUNUKHNyYywgIlJhbmdlIHJlcXVlc3Qgc3VjY2VlZGVkIik7CkBAIC0xMDU4LDcgKzEwNTks
NyBAQCB2b2lkIENhY2hlZFJlc291cmNlU3RyZWFtaW5nQ2xpZW50OjpyZXNwb25zZVJlY2VpdmVk
KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbgogICAgICAgICBwcml2LT53ZXJlSGVhZGVyc1Jl
Y2VpdmVkID0gdHJ1ZTsKICAgICAgICAgcHJpdi0+aGVhZGVyc0NvbmRpdGlvbi5ub3RpZnlPbmUo
KTsKICAgICB9Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Olllcyk7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWU6Olllcyk7
CiB9CiAKIHZvaWQgQ2FjaGVkUmVzb3VyY2VTdHJlYW1pbmdDbGllbnQ6OmRhdGFSZWNlaXZlZChQ
bGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9XZWJD
b3JlTlNVUkxTZXNzaW9uLm1tCmluZGV4IGJhNTVmMDA0OGI4ZTRkZGM1YjA3MzRkOTkzZGM5YjEz
YjhjYjJiMDUuLjc4YTAyNzk1OGZiNWU5Njk4MTI2Y2VlZDc0ZTlhMmI1ZWQ0MWRmNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1dl
YkNvcmVOU1VSTFNlc3Npb24ubW0KQEAgLTU2LDcgKzU2LDcgQEAgTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIEBwcm9wZXJ0eSAoYXNzaWduKSBXZWJDb3JlTlNVUkxTZXNzaW9uICogX051bGxhYmxl
IHNlc3Npb247CiAKIC0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVz
b3VyY2Ugc2VudEJ5dGVzOih1bnNpZ25lZCBsb25nIGxvbmcpYnl0ZXNTZW50IHRvdGFsQnl0ZXNU
b0JlU2VudDoodW5zaWduZWQgbG9uZyBsb25nKXRvdGFsQnl0ZXNUb0JlU2VudDsKLS0gKHZvaWQp
cmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2UgcmVjZWl2ZWRSZXNwb25z
ZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWUpPiYmKWNvbXBsZXRpb25IYW5kbGVy
OworLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJjZSByZWNl
aXZlZFJlc3BvbnNlOihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSBjb21wbGV0aW9u
SGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSk+JiYpY29tcGxldGlvbkhhbmRsZXI7CiAtIChCT09MKXJlc291cmNlOihQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmKXJlc291cmNlIHNob3VsZENhY2hlUmVzcG9uc2U6KGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKXJlc3BvbnNlOwogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291
cmNlJilyZXNvdXJjZSByZWNlaXZlZERhdGE6KGNvbnN0IGNoYXIqKWRhdGEgbGVuZ3RoOihpbnQp
bGVuZ3RoOwogLSAodm9pZClyZXNvdXJjZTooUGxhdGZvcm1NZWRpYVJlc291cmNlJilyZXNvdXJj
ZSByZWNlaXZlZFJlZGlyZWN0Oihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJilyZXNwb25zZSByZXF1
ZXN0OihSZXNvdXJjZVJlcXVlc3QmJilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiljb21wbGV0aW9uSGFuZGxlcjsK
QEAgLTM4MSw3ICszODEsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyVGFzaygpOwogCi0g
ICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFNob3VsZENvbnRpbnVlKT4m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXNwb25zZVJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWRp
cmVjdFJlY2VpdmVkKFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIFJlc291cmNlUmVxdWVzdCYmLCBj
b25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChSZXNvdXJjZVJl
cXVlc3QmJik+JiYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxkQ2FjaGVSZXNwb25zZShQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkYXRhU2VudChQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCB1bnNpZ25lZCBsb25nIGxv
bmcsIHVuc2lnbmVkIGxvbmcgbG9uZykgb3ZlcnJpZGU7CkBAIC00MTAsMTEgKzQxMCwxMSBAQCB2
b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6ZGF0YVNlbnQoUGxhdGZvcm1N
ZWRpYVJlc291cmNlJiByZXNvdXJjZQogICAgIFttX3Rhc2sgcmVzb3VyY2U6cmVzb3VyY2Ugc2Vu
dEJ5dGVzOmJ5dGVzU2VudCB0b3RhbEJ5dGVzVG9CZVNlbnQ6dG90YWxCeXRlc1RvQmVTZW50XTsK
IH0KIAotdm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OnJlc3BvbnNlUmVj
ZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvdXJjZSwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJDb3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGll
bnQ6OnJlc3BvbnNlUmVjZWl2ZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvdXJjZSwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUG9s
aWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fdGFza0xvY2spOwogICAgIGlmICghbV90YXNrKQotICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoU2hvdWxkQ29udGludWU6Ok5vKTsKKyAgICAgICAg
cmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFBvbGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpO
byk7CiAKICAgICBbbV90YXNrIHJlc291cmNlOnJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6cmVz
cG9uc2UgY29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildOwogfQpA
QCAtNjI3LDcgKzYyNyw3IEBAIHZvaWQgV2ViQ29yZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50
Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJlc291cmNlJiByZXNvCiAgICAgLy8gTm8tb3Au
CiB9CiAKLS0gKHZvaWQpcmVzb3VyY2U6KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYpcmVzb3VyY2Ug
cmVjZWl2ZWRSZXNwb25zZTooY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpcmVzcG9uc2UgY29tcGxl
dGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU2hvdWxkQ29udGludWUpPiYmKWNv
bXBsZXRpb25IYW5kbGVyCistICh2b2lkKXJlc291cmNlOihQbGF0Zm9ybU1lZGlhUmVzb3VyY2Um
KXJlc291cmNlIHJlY2VpdmVkUmVzcG9uc2U6KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKXJlc3Bv
bnNlIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlKT4mJiljb21wbGV0aW9uSGFuZGxlcgogewogICAgIEFTU0VSVChy
ZXNwb25zZS5zb3VyY2UoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmsgfHwg
cmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpEaXNrQ2FjaGUg
fHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpEaXNrQ2Fj
aGVBZnRlclZhbGlkYXRpb24gfHwgcmVzcG9uc2Uuc291cmNlKCkgPT0gUmVzb3VyY2VSZXNwb25z
ZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlc291cmNlLCAm
cmVzb3VyY2UgPT0gX3Jlc291cmNlKTsKQEAgLTYzOCwxNCArNjM4LDE0IEBAIHZvaWQgV2ViQ29y
ZU5TVVJMU2Vzc2lvbkRhdGFUYXNrQ2xpZW50Ojpsb2FkRmluaXNoZWQoUGxhdGZvcm1NZWRpYVJl
c291cmNlJiByZXNvCiAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHN0cm9uZ1Jlc3BvbnNl
IHsgcmVzcG9uc2UubnNVUkxSZXNwb25zZSgpIH07CiAgICAgUmV0YWluUHRyPFdlYkNvcmVOU1VS
TFNlc3Npb25EYXRhVGFzaz4gc3Ryb25nU2VsZiB7IHNlbGYgfTsKICAgICBpZiAoIXNlbGYuc2Vz
c2lvbikKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENvbnRpbnVlOjpO
byk7CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91
bGRDb250aW51ZTo6Tm8pOwogICAgIFtzZWxmLnNlc3Npb24gYWRkRGVsZWdhdGVPcGVyYXRpb246
W3N0cm9uZ1NlbGYsIHN0cm9uZ1Jlc3BvbnNlLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgc3Ryb25nU2VsZi0+X3Jl
c3BvbnNlID0gc3Ryb25nUmVzcG9uc2UuZ2V0KCk7CiAKICAgICAgICAgaWQ8TlNVUkxTZXNzaW9u
RGF0YURlbGVnYXRlPiBkYXRhRGVsZWdhdGUgPSAoaWQ8TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRl
PilzdHJvbmdTZWxmLmdldCgpLnNlc3Npb24uZGVsZWdhdGU7CiAgICAgICAgIGlmICghW2RhdGFE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKFVSTFNlc3Npb246ZGF0YVRhc2s6
ZGlkUmVjZWl2ZVJlc3BvbnNlOmNvbXBsZXRpb25IYW5kbGVyOildKSB7CiAgICAgICAgICAgICBj
YWxsT25NYWluVGhyZWFkKFtzdHJvbmdTZWxmLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihTaG91bGRDb250aW51ZTo6WWVzKTsKKyAgICAgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6WWVzKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC02NTMsMTAgKzY1Mywx
MCBAQCB2b2lkIFdlYkNvcmVOU1VSTFNlc3Npb25EYXRhVGFza0NsaWVudDo6bG9hZEZpbmlzaGVk
KFBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcmVzbwogICAgICAgICBbZGF0YURlbGVnYXRlIFVSTFNl
c3Npb246KE5TVVJMU2Vzc2lvbiAqKXN0cm9uZ1NlbGYuZ2V0KCkuc2Vzc2lvbiBkYXRhVGFzazoo
TlNVUkxTZXNzaW9uRGF0YVRhc2sgKilzdHJvbmdTZWxmLmdldCgpIGRpZFJlY2VpdmVSZXNwb25z
ZTpzdHJvbmdSZXNwb25zZS5nZXQoKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW3N0
cm9uZ1NlbGYsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChOU1VSTFNlc3Npb25SZXNwb25zZURpc3Bvc2l0aW9uIGRpc3Bvc2l0aW9uKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3N0cm9uZ1NlbGYsIGRpc3Bvc2l0aW9uLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgICAgICAgICBpZiAoZGlzcG9zaXRpb24gPT0gTlNVUkxTZXNzaW9uUmVzcG9u
c2VDYW5jZWwpCi0gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFNob3VsZENv
bnRpbnVlOjpObyk7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpObyk7CiAgICAgICAgICAgICAgICAgZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVChkaXNwb3NpdGlvbiA9PSBOU1VSTFNlc3Npb25SZXNw
b25zZUFsbG93KTsKLSAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoU2hvdWxk
Q29udGludWU6Olllcyk7CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFBv
bGljeUNoZWNrZXI6OlNob3VsZENvbnRpbnVlOjpZZXMpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9KS5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZjM3ZjNiZDFmMWZkNGI4MjdhYTg5YTMz
MTQxNDkyMGQ3YTExM2FjMC4uNzk5NGUzY2E3Nzc2MzI5ZDZmNzVkN2FhZjBjOTNmZDlhYTA1OWUx
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApA
QCAtMTcsNiArMTcsNyBAQCAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL0dQVVByb2Nlc3MvR1BVUHJv
Y2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvR1BVUHJvY2Vzcy9tYWMvY29tLmFwcGxl
LldlYktpdC5HUFVQcm9jZXNzLnNiLmluCiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCiskKFBST0pFQ1RfRElS
KS9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3NhZ2VzLmlu
CiAkKFBST0pFQ1RfRElSKS9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvQ29va2llcy9XZWJDb29r
aWVNYW5hZ2VyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9DdXN0
b21Qcm90b2NvbHMvTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLm1lc3NhZ2VzLmluCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA3MGFl
YjdiM2VmNmUwZTFjNTM1MDM1MzNhYjI5MDgwYmI4YWM3N2FjLi4wY2QyM2UwMWJiYWNkMmVjNGEw
YmRjM2JkZmYyYmUwZDdiNjBiMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTEyOSw2ICsxMjksOSBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNz
YWdlc1JlcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2FnZXNSZXBsaWVzLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVz
b3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VSZWNlaXZl
ci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90
ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlc1JlcGxpZXMuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDM4NTAyNzc0MzJlMTg5M2U2NGNkMjMxOTQwMjRm
N2NiZGQ3NzBlYzcuLjlkM2UyYTkwYzdiNGQ5MGE0MjZjNzZhNGUwNWU2YjJmODFjYzBlOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0Myw2ICsxNDMsNyBAQCBNRVNTQUdFX1JF
Q0VJVkVSUyA9IFwKICAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKICAgICBS
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXIgXAogICAgIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5IFwKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciBcCiAgICAgUmVtb3RlT2JqZWN0
UmVnaXN0cnkgXAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yIFwKICAgICBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggOGQ2ZTc4ZjcwZDE5NzgyNzI1NjU2
YTk5NTY2ZThiZmEzYjM5ZTcwNS4uNTJhOTVjZTBkZWQ3MDNkNjFkMzRhOWQxN2YwYzhiNDJlNjY0
ZmRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMzksNiArMzksOCBAQAogI2luY2x1ZGUgIlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlh
UGxheWVyTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmgi
CisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC0xMTEsNiArMTEzLDE0IEBAIHZvaWQgR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjCiAgICAgQ1JBU0goKTsKIH0KIAorUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXImIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
KCkKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIpCisgICAgICAgIG1f
cmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIgPSBtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyPigpOworCisgICAgcmV0dXJuICptX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
OworfQorCiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSYgR1BVQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6cmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkoKQogewogICAgIGlmICghbV9y
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSkKQEAgLTE0NCw2ICsxNTQsOSBAQCB2b2lkIEdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgSQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9
PSBNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewogICAgICAgICByZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eSgpLmRpZFJl
Y2VpdmVNZXNzYWdlRnJvbVdlYlByb2Nlc3MoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAg
IHJldHVybjsKKyAgICB9IGVsc2UgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09
IE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyKCkuZGlkUmVjZWl2ZU1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOGZiMjBmMjk2NzAzN2Y1NDk5ZDhlMTAxM2M0OTU2
OGYzMDk5ZjJlYS4uYWM3MTI1ZDczOGQ4Njg4OGVlYThiNGE5MjUxNWY5ZGU0ZDFmNmIwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIEdQVVByb2Nlc3M7CiBjbGFzcyBMaWJXZWJS
VENDb2RlY3NQcm94eTsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTsKK2NsYXNzIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyOwogCiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzCiAgICAgOiBwdWJs
aWMgUmVmQ291bnRlZDxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPgpAQCAtNTcsNiArNTgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBlbmRTdXNwZW5zaW9uKCk7CiAKICAgICBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
UHJvY2Vzc0lkZW50aWZpZXI7IH0KKyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgcmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKTsKIAogICAgIExvZ2dlciYgbG9nZ2VyKCk7CiAKQEAg
LTgyLDYgKzg0LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CiAgICAgUmVmPEdQVVByb2Nlc3M+IG1fZ3B1UHJvY2VzczsKICAgICBjb25zdCBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX3dlYlByb2Nlc3NJZGVudGlmaWVyOworICAgIHN0ZDo6
dW5pcXVlX3B0cjxSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcj4gbV9yZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
UHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk7CiAgICAgUEFMOjpTZXNzaW9u
SUQgbV9zZXNzaW9uSUQ7CiAjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5LmNwcAppbmRleCA4MzQ2NzNhZjk0ZjExMGQy
NTRjNjg1NTRjNDBlMDA4MTlhNzU2YTRiLi4wNTAzNDA0YTBmMWNiNTk5NzkxZjAwM2MzZjg0YTk2
MzUxZTRkMjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKQEAgLTI5LDEwICsy
OSwxMiBAQAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorI2luY2x1
ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllci5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXJQcml2YXRlLmg+CkBAIC00MSw2ICs0Myw3IEBA
CiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGlkZW50aWZpZXIpIE1FU1NBR0VfQ0hF
Q0tfQkFTRShtX3Byb3hpZXMuaXNWYWxpZEtleShpZGVudGlmaWVyKSwgJm1fZ3B1Q29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgeworCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCmluZGV4IDE2ZWQ2ZjIwMWRhM2Rm
Y2ViYjQ5NDM2MGNjYjVjMDVhM2RjZTk0MjguLmFlNTFmYzBjNTIwMDNlMzUwZGI1ZGRlMmQ2NmQ4
MjQ4NDM3MmU0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5oCkBAIC0zMCwxNSArMzAs
MTYgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2lu
Y2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9NZWRpYVBsYXllci5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M7Citj
bGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVy
UHJveHk7CiBzdHJ1Y3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uOworc3RydWN0IFJl
bW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1cmF0aW9uOwogCiBjbGFzcyBSZW1vdGVNZWRpYVBs
YXllck1hbmFnZXJQcm94eQogICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxh
eWVyUHJveHkuY3BwCmluZGV4IDZkZmE3NWY1YzUxZDM4YWJjMWQ1Yjk4MzQ0NTI0Y2E5YWRhNzNl
OWUuLjg4YzdlNzkxMjk3Njk3MDFkNDdjZmNlYzM1MWNjM2VjMjM1MzQzYzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAKQEAgLTI4LDggKzI4LDE2IEBACiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAK
KyNpbmNsdWRlICJHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUg
IlJlbW90ZU1lZGlhUmVzb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNs
dWRlICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KQEAgLTUzLDYgKzYxLDEwIEBAIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlJl
bW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmIG1hCiAg
ICAgbV9wbGF5ZXIgPSBNZWRpYVBsYXllcjo6Y3JlYXRlKCp0aGlzLCBtX2VuZ2luZUlkZW50aWZp
ZXIpOwogfQogCitSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp+UmVtb3RlTWVkaWFQbGF5ZXJQcm94
eSgpCit7Cit9CisKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6aW52YWxpZGF0ZSgpCiB7
CiAgICAgbV91cGRhdGVDYWNoZWRTdGF0ZU1lc3NhZ2VUaW1lci5zdG9wKCk7CkBAIC0xNDMsNiAr
MTU1LDI1IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6c2V0UHJlc2VydmVzUGl0Y2go
Ym9vbCBwcmVzZXJ2ZXNQaXRjaCkKICAgICBtX3BsYXllci0+c2V0UHJlc2VydmVzUGl0Y2gocHJl
c2VydmVzUGl0Y2gpOwogfQogCitSZWY8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1vdGVNZWRp
YVBsYXllclByb3h5OjpyZXF1ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAg
IGF1dG8mIHJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyID0gbV9tYW5hZ2VyLmdwdUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKS5yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigpOworICAgIGF1dG8g
cmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllcjo6Z2VuZXJhdGUoKTsKKyAgICBhdXRvIHJlbW90ZU1lZGlhUmVzb3VyY2UgPSBSZW1vdGVN
ZWRpYVJlc291cmNlOjpjcmVhdGUocmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsICp0aGlzLCBy
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisgICAgcmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuYWRkTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgcmVt
b3RlTWVkaWFSZXNvdXJjZSk7CisKKyAgICBtX3dlYlByb2Nlc3NDb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6UmVxdWVzdFJl
c291cmNlKG1faWQsIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRp
b25zKSwgW3JlbW90ZU1lZGlhUmVzb3VyY2UgPSByZW1vdGVNZWRpYVJlc291cmNlLmNvcHlSZWYo
KV0oKSB7CisgICAgICAgIHJlbW90ZU1lZGlhUmVzb3VyY2UtPnNldFJlYWR5KHRydWUpOworICAg
IH0pOworCisgICAgcmV0dXJuIHJlbW90ZU1lZGlhUmVzb3VyY2U7Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFQbGF5ZXJQcm94eTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgbV93ZWJQcm9jZXNz
Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpSZW1v
dmVSZXNvdXJjZShtX2lkLCByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciksIDApOworfQor
CiAvLyBNZWRpYVBsYXllckNsaWVudAogdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRp
YVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKQogewpAQCAtMzg4LDggKzQxOSw3IEBAIENhY2hl
ZFJlc291cmNlTG9hZGVyKiBSZW1vdGVNZWRpYVBsYXllclByb3h5OjptZWRpYVBsYXllckNhY2hl
ZFJlc291cmNlTG9hZGVyKCkKIAogUmVmUHRyPFBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcj4g
UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6bWVkaWFQbGF5ZXJDcmVhdGVSZXNvdXJjZUxvYWRlcigp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyKCp0aGlzKSk7CiB9CiAK
IGJvb2wgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6ZG9lc0hhdmVBdHRyaWJ1dGUoY29uc3QgQXRv
bVN0cmluZyYsIEF0b21TdHJpbmcqKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmgKaW5kZXggNjAwZGNhZmY5
OTgxODQyOGVkNGIyODM1ODYxMjE3ZmRhZGY4NjljZC4uY2FmZGQ3NTBlZGM4NzUyMjVjMjU3YTA1
YjkxNDI0ZTExNzZmNjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oCkBAIC0yNywzNCArMjcsMzIgQEAKIAog
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiUmVt
b3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRl
LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0Nvb2tpZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5ZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBJUEMg
ewotY2xhc3MgQ29ubmVjdGlvbjsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTWVk
aWFQbGF5ZXI7Ci19CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5OwogCi1jbGFzcyBSZW1v
dGVNZWRpYVBsYXllclByb3h5Ci0gICAgOiBwdWJsaWMgTWVkaWFQbGF5ZXJDbGllbnQgeworY2xh
c3MgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSBmaW5hbAorICAgIDogcHVibGljIENhbk1ha2VXZWFr
UHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+CisgICAgLCBwdWJsaWMgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFJlbW90ZU1lZGlhUGxheWVyUHJveHkoUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkmLCBN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZWY8SVBDOjpDb25uZWN0aW9uPiYm
LCBNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxh
eWVyUHJveHlDb25maWd1cmF0aW9uJiYpOwotICAgIHZpcnR1YWwgflJlbW90ZU1lZGlhUGxheWVy
UHJveHkoKQotICAgIHsKLSAgICB9CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eShSZW1vdGVN
ZWRpYVBsYXllck1hbmFnZXJQcm94eSYsIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZp
ZXIsIFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvbmZpZ3VyYXRpb24m
Jik7CisgICAgflJlbW90ZU1lZGlhUGxheWVyUHJveHkoKTsKIAogICAgIHZvaWQgaW52YWxpZGF0
ZSgpOwogCkBAIC02Miw3ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlcGFyZUZvclBs
YXliYWNrKGJvb2wgcHJpdmF0ZU1vZGUsIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6OlByZWxv
YWQsIGJvb2wgcHJlc2VydmVzUGl0Y2gsIGJvb2wgcHJlcGFyZUZvclJlbmRlcmluZyk7CiAKLSAg
ICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcm
KTsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFR5cGUm
LCBjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGNhbmNlbExvYWQoKTsKIAogICAgIHZvaWQgcHJl
cGFyZVRvUGxheSgpOwpAQCAtODAsNiArNzgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcml2
YXRlQnJvd3NpbmdNb2RlKGJvb2wpOwogICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7
CiAKKyAgICBSZWY8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3Vy
Y2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMpOworICAgIHZvaWQgcmVtb3ZlUmVzb3VyY2UoUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIC8vIE1lZGlhUGxheWVy
Q2xpZW50CiAgICAgdm9pZCBtZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoKSBmaW5hbDsK
QEAgLTEyNCwzOSArMTI1LDM5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtZWRpYVBsYXllcklzRnVs
bHNjcmVlbigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWVkaWFQbGF5ZXJJc0Z1bGxzY3JlZW5Q
ZXJtaXR0ZWQoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlbygpIGNv
bnN0IGZpbmFsOwotICAgIExheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpIGNv
bnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkxheW91dFJlY3QgbWVkaWFQbGF5ZXJDb250ZW50Qm94
UmVjdCgpIGNvbnN0IGZpbmFsOwogICAgIGZsb2F0IG1lZGlhUGxheWVyQ29udGVudHNTY2FsZSgp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbWVkaWFQbGF5ZXJQYXVzZSgpIGZpbmFsOwogICAgIHZv
aWQgbWVkaWFQbGF5ZXJQbGF5KCkgZmluYWw7CiAgICAgYm9vbCBtZWRpYVBsYXllclBsYXRmb3Jt
Vm9sdW1lQ29uZmlndXJhdGlvblJlcXVpcmVkKCkgY29uc3QgZmluYWw7Ci0gICAgQ2FjaGVkUmVz
b3VyY2VMb2FkZXIqIG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKLSAg
ICBSZWZQdHI8UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJl
c291cmNlTG9hZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXIq
IG1lZGlhUGxheWVyQ2FjaGVkUmVzb3VyY2VMb2FkZXIoKSBmaW5hbDsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtZWRpYVBsYXllckNyZWF0ZVJlc291
cmNlTG9hZGVyKCkgZmluYWw7CiAgICAgYm9vbCBkb2VzSGF2ZUF0dHJpYnV0ZShjb25zdCBBdG9t
U3RyaW5nJiwgQXRvbVN0cmluZyogPSBudWxscHRyKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1l
ZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3QgZmluYWw7CiAgICAgY29u
c3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCBmaW5hbDsK
IAotICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRBZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2tQcml2YXRl
JikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFRleHRUcmFjayhJbmJhbmRUZXh0
VHJhY2tQcml2YXRlJikgZmluYWw7Ci0gICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZFZpZGVvVHJh
Y2soVmlkZW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKLSAgICB2b2lkIG1lZGlhUGxheWVyRGlkUmVt
b3ZlQXVkaW9UcmFjayhBdWRpb1RyYWNrUHJpdmF0ZSYpIGZpbmFsOwotICAgIHZvaWQgbWVkaWFQ
bGF5ZXJEaWRSZW1vdmVUZXh0VHJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZSYpIGZpbmFsOwot
ICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVWaWRlb1RyYWNrKFZpZGVvVHJhY2tQcml2YXRl
JikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2soV2ViQ29yZTo6
QXVkaW9UcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lkIG1lZGlhUGxheWVyRGlkQWRkVGV4
dFRyYWNrKFdlYkNvcmU6OkluYmFuZFRleHRUcmFja1ByaXZhdGUmKSBmaW5hbDsKKyAgICB2b2lk
IG1lZGlhUGxheWVyRGlkQWRkVmlkZW9UcmFjayhXZWJDb3JlOjpWaWRlb1RyYWNrUHJpdmF0ZSYp
IGZpbmFsOworICAgIHZvaWQgbWVkaWFQbGF5ZXJEaWRSZW1vdmVBdWRpb1RyYWNrKFdlYkNvcmU6
OkF1ZGlvVHJhY2tQcml2YXRlJikgZmluYWw7CisgICAgdm9pZCBtZWRpYVBsYXllckRpZFJlbW92
ZVRleHRUcmFjayhXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlJikgZmluYWw7CisgICAg
dm9pZCBtZWRpYVBsYXllckRpZFJlbW92ZVZpZGVvVHJhY2soV2ViQ29yZTo6VmlkZW9UcmFja1By
aXZhdGUmKSBmaW5hbDsKIAotICAgIHZvaWQgdGV4dFRyYWNrUmVwcmVzZW50YXRpb25Cb3VuZHND
aGFuZ2VkKGNvbnN0IEludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHRleHRUcmFja1JlcHJlc2Vu
dGF0aW9uQm91bmRzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CiAKICNp
ZiBFTkFCTEUoVklERU9fVFJBQ0spICYmIEVOQUJMRShBVkZfQ0FQVElPTlMpCi0gICAgVmVjdG9y
PFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4+IG91dE9mQmFuZFRyYWNrU291cmNlcygpIGZpbmFs
OworICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1UZXh0VHJhY2s+PiBvdXRPZkJh
bmRUcmFja1NvdXJjZXMoKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBTdHJpbmcgbWVkaWFQbGF5ZXJOZXR3b3JrSW50ZXJmYWNlTmFtZSgpIGNvbnN0IGZp
bmFsOwotICAgIGJvb2wgbWVkaWFQbGF5ZXJHZXRSYXdDb29raWVzKGNvbnN0IFVSTCYsIFZlY3Rv
cjxDb29raWU+JikgY29uc3QgZmluYWw7CisgICAgYm9vbCBtZWRpYVBsYXllckdldFJhd0Nvb2tp
ZXMoY29uc3QgVVJMJiwgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4mKSBjb25zdCBmaW5hbDsKICNl
bmRpZgogCiAgICAgU3RyaW5nIG1lZGlhUGxheWVyU291cmNlQXBwbGljYXRpb25JZGVudGlmaWVy
KCkgY29uc3QgZmluYWw7CiAKICAgICBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFj
a1JhdGUoKSBjb25zdCBmaW5hbDsKLSAgICBNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIG1lZGlhUGxheWVyRnVsbHNjcmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKKyAgICBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1lZGlhUGxheWVyRnVs
bHNjcmVlbk1vZGUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1lZGlhUGxheWVySXNWaWRlb0Z1
bGxzY3JlZW5TdGFuZGJ5KCkgY29uc3QgZmluYWw7CiAgICAgVmVjdG9yPFN0cmluZz4gbWVkaWFQ
bGF5ZXJQcmVmZXJyZWRBdWRpb0NoYXJhY3RlcmlzdGljcygpIGNvbnN0IGZpbmFsOwogCkBAIC0x
NzYsOSArMTc3LDkgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgbV9pZDsKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX3dlYlByb2Nlc3NDb25u
ZWN0aW9uOwotICAgIFJlZlB0cjxNZWRpYVBsYXllcj4gbV9wbGF5ZXI7CisgICAgUmVmUHRyPFdl
YkNvcmU6Ok1lZGlhUGxheWVyPiBtX3BsYXllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXJQcm94eSYgbV9tYW5hZ2VyOwotICAgIE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWRl
bnRpZmllciBtX2VuZ2luZUlkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fZW5naW5lSWRlbnRpZmllcjsKICAgICBWZWN0b3I8
V2ViQ29yZTo6Q29udGVudFR5cGU+IG1fdHlwZXNSZXF1aXJpbmdIYXJkd2FyZVN1cHBvcnQ7CiAg
ICAgUnVuTG9vcDo6VGltZXI8UmVtb3RlTWVkaWFQbGF5ZXJQcm94eT4gbV91cGRhdGVDYWNoZWRT
dGF0ZU1lc3NhZ2VUaW1lcjsKICAgICBSZW1vdGVNZWRpYVBsYXllclN0YXRlIG1fY2FjaGVkU3Rh
dGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVk
aWFSZXNvdXJjZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc5MzM0N2UyODQxYWUzYzJiYzZiNDE5YTJjYzA4
NDVlYWJiOTE5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlLmNwcApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlLmgi
CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXll
clByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitSZWY8UmVtb3RlTWVkaWFSZXNvdXJjZT4gUmVt
b3RlTWVkaWFSZXNvdXJjZTo6Y3JlYXRlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiByZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlciwgUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYgcmVtb3RlTWVk
aWFQbGF5ZXJQcm94eSwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQpCit7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVtb3RlTWVkaWFSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlciwgcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSwgaWQpKTsKK30KKworUmVtb3RlTWVk
aWFSZXNvdXJjZTo6UmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ciYgcmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIsIFJlbW90ZU1lZGlhUGxheWVyUHJveHkmIHJl
bW90ZU1lZGlhUGxheWVyUHJveHksIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQor
ICAgIDogbV9yZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcihyZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcikKKyAgICAsIG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eShtYWtlV2Vha1B0cihyZW1vdGVN
ZWRpYVBsYXllclByb3h5KSkKKyAgICAsIG1faWQoaWQpCit7Cit9CisKK1JlbW90ZU1lZGlhUmVz
b3VyY2U6On5SZW1vdGVNZWRpYVJlc291cmNlKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIHN0b3AoKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLnJlbW92
ZU1lZGlhUmVzb3VyY2UobV9pZCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6c3Rv
cCgpCit7CisgICAgaWYgKG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICAgICAgbV9yZW1v
dGVNZWRpYVBsYXllclByb3h5LT5yZW1vdmVSZXNvdXJjZShtX2lkKTsKK30KKworYm9vbCBSZW1v
dGVNZWRpYVJlc291cmNlOjpkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrOworfQorCit2b2lkIFJlbW90ZU1l
ZGlhUmVzb3VyY2U6OnJlc3BvbnNlUmVjZWl2ZWQoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UsIGJvb2wgZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjaywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChQb2xpY3lDaGVja2VyOjpTaG91bGRDb250aW51ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgaWYgKCFtX2NsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kaWRQYXNz
QWNjZXNzQ29udHJvbENoZWNrID0gZGlkUGFzc0FjY2Vzc0NvbnRyb2xDaGVjazsKKyAgICBtX2Ns
aWVudC0+cmVzcG9uc2VSZWNlaXZlZCgqdGhpcywgcmVzcG9uc2UsIFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOworICAgICAgICBpZiAoc2hvdWxkQ29udGludWUgPT0gUG9saWN5Q2hlY2tl
cjo6U2hvdWxkQ29udGludWU6Ok5vKQorICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+c3RvcCgp
OworCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNob3VsZENvbnRpbnVlKTsKKyAgICB9KTsK
K30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjpyZWRpcmVjdFJlY2VpdmVkKFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5yZWRpcmVjdFJlY2Vp
dmVkKCp0aGlzLCBXVEZNb3ZlKHJlcXVlc3QpLCByZXNwb25zZSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2U6OmRhdGFTZW50KHVpbnQ2
NF90IGJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc1RvQmVTZW50KQoreworICAgIGlmICht
X2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFTZW50KCp0aGlzLCBieXRlc1NlbnQsIHRv
dGFsQnl0ZXNUb0JlU2VudCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6ZGF0YVJl
Y2VpdmVkKGNvbnN0IGNoYXIqIGRhdGEsIGludDY0X3QgbGVuZ3RoKQoreworICAgIGlmIChtX2Ns
aWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRhdGFSZWNlaXZlZCgqdGhpcywgZGF0YSwgbGVuZ3Ro
KTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlOjphY2Nlc3NDb250cm9sQ2hlY2tGYWls
ZWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgbV9kaWRQYXNzQWNjZXNzQ29u
dHJvbENoZWNrID0gZmFsc2U7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+
YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKCp0aGlzLCBlcnJvcik7Cit9CisKK3ZvaWQgUmVtb3Rl
TWVkaWFSZXNvdXJjZTo6bG9hZEZhaWxlZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sK
KyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5sb2FkRmFpbGVkKCp0aGlzLCBl
cnJvcik7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZTo6bG9hZEZpbmlzaGVkKCkKK3sK
KyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5sb2FkRmluaXNoZWQoKnRoaXMp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZS5oIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2UuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NWJhMWNhYWMyYWRmMmVkNjgwMjFkZjI3ZmViMTM3NmU2ZDMzNDIxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2Uu
aApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFJl
bW90ZU1lZGlhUGxheWVyUHJveHk7CitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjsK
KworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVtb3RlTWVkaWFSZXNvdXJj
ZT4gY3JlYXRlKFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyJiwgUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eSYsIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB+UmVtb3RlTWVkaWFS
ZXNvdXJjZSgpOworCisgICAgYm9vbCByZWFkeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHk7IH0K
KyAgICB2b2lkIHNldFJlYWR5KGJvb2wgcmVhZHkpIHsgbV9yZWFkeSA9IHJlYWR5OyB9CisKKyAg
ICAvLyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2UKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKKyAgICBi
b29sIGRpZFBhc3NBY2Nlc3NDb250cm9sQ2hlY2soKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQg
cmVzcG9uc2VSZWNlaXZlZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpTaG91bGRDb250
aW51ZSk+JiYpOworICAgIHZvaWQgcmVkaXJlY3RSZWNlaXZlZChXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmKTsKKyAgICB2b2lkIGRhdGFT
ZW50KHVpbnQ2NF90LCB1aW50NjRfdCk7CisgICAgdm9pZCBkYXRhUmVjZWl2ZWQoY29uc3QgY2hh
ciosIGludDY0X3QpOworICAgIHZvaWQgYWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIGxvYWRGYWlsZWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKCk7CisKK3ByaXZhdGU6
CisgICAgUmVtb3RlTWVkaWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYsIFJl
bW90ZU1lZGlhUGxheWVyUHJveHkmLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CisK
KyAgICBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlciYgbV9yZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlcjsKKyAgICBXZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fcmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTsKKyAgICBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBtX2lkOworICAg
IGJvb2wgbV9kaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
cmVhZHkgeyBmYWxzZSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MjhhNWI0MDczYjMwZDk0
Y2U5NWE2MzBiZmQ2YzVmM2NhMWI4MWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaApAQCAtMCww
ICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCisKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworZW51bSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllclR5cGUgeyB9Owor
dXNpbmcgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyVHlwZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9S
ZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZWVmOTBhNTkw
NGY4YjlmZGFkZGQwMGQ0ODJmMTU2ZmVmMDk0Mjk0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oIgorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNT
KQorCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1JlbW90ZU1lZGlhUmVzb3VyY2VM
b2FkZXI6OlJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoUmVtb3RlTWVkaWFQbGF5ZXJQcm94eSYg
cmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICA6IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSht
YWtlV2Vha1B0cihyZW1vdGVNZWRpYVBsYXllclByb3h5KSkKK3sKK30KKworUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKQoreworfQorCitSZWZQ
dHI8UGxhdGZvcm1NZWRpYVJlc291cmNlPiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyOjpyZXF1
ZXN0UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgTG9hZE9wdGlvbnMgb3B0aW9u
cykKK3sKKyAgICBpZiAoIW1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9yZW1vdGVNZWRpYVBsYXllclByb3h5LT5yZXF1ZXN0
UmVzb3VyY2UoV1RGTW92ZShyZXF1ZXN0KSwgb3B0aW9ucyk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9t
ZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMmIzNzI4
NTE3MTcwOTVkMzUyMzU0OTBkZWQ4ZTM5MTExOTM3OTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5oCkBA
IC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9h
ZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTsKKworY2xhc3MgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlciBmaW5hbAorICAg
IDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlciB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlcihSZW1vdGVNZWRpYVBsYXll
clByb3h5Jik7CisgICAgflJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIoKTsKKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlPiByZXF1ZXN0UmVzb3Vy
Y2UoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIExvYWRPcHRpb25zKSBmaW5hbDsKKyAgICBX
ZWFrUHRyPFJlbW90ZU1lZGlhUGxheWVyUHJveHk+IG1fcmVtb3RlTWVkaWFQbGF5ZXJQcm94eTsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJiMjllMzMzYTdhYjExZDViNTBjZjhmZTJhNzFlNTE2MGQ4NDZh
OTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMTMyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyLmgiCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxh
eWVyTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUmVtb3RlTWVkaWFSZXNvdXJjZS5oIgor
I2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3Qu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIoKQor
eworfQorCitSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6flJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyKCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6YWRkTWVk
aWFSZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291
cmNlSWRlbnRpZmllciwgUmVtb3RlTWVkaWFSZXNvdXJjZSYgcmVtb3RlTWVkaWFSZXNvdXJjZSkK
K3sKKyAgICBBU1NFUlQoIW1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuY29udGFpbnMocmVtb3RlTWVk
aWFSZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmFkZChy
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgJnJlbW90ZU1lZGlhUmVzb3VyY2UpOworfQor
Cit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpyZW1vdmVNZWRpYVJlc291cmNlKFJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVy
KQoreworICAgIEFTU0VSVChtX3JlbW90ZU1lZGlhUmVzb3VyY2VzLmNvbnRhaW5zKHJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyKSk7CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5yZW1v
dmUocmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpOworfQorCit2b2lkIFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyOjpyZXNwb25zZVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVu
dGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBkaWRQYXNz
QWNjZXNzQ29udHJvbENoZWNrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUNoZWNrZXI6
OlNob3VsZENvbnRpbnVlKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiByZXNv
dXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAgICBpZiAoIXJlc291cmNl
IHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihQb2xp
Y3lDaGVja2VyOjpTaG91bGRDb250aW51ZTo6Tm8pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZXNwb25zZVJlY2VpdmVkKHJl
c3BvbnNlLCBkaWRQYXNzQWNjZXNzQ29udHJvbENoZWNrLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OnJlZGlyZWN0UmVj
ZWl2ZWQoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlk
KTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5yZWRpcmVjdFJlY2VpdmVkKFdURk1vdmUocmVx
dWVzdCksIHJlc3BvbnNlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQg
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6OmRhdGFTZW50KFJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyIGlkLCB1aW50NjRfdCBieXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNUb0Jl
U2VudCkKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0
KGlkKTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5kYXRhU2VudChi
eXRlc1NlbnQsIHRvdGFsQnl0ZXNUb0JlU2VudCk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXI6OmRhdGFSZWNlaXZlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBp
ZCwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQoreworICAgIGF1dG8qIHJlc291cmNl
ID0gbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpOworICAgIGlmICghcmVzb3VyY2UgfHwg
IXJlc291cmNlLT5yZWFkeSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmdldChpZCktPmRhdGFSZWNlaXZlZChyZWludGVycHJldF9jYXN0PGNvbnN0IGNo
YXIqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlcjo6YWNjZXNzQ29udHJvbENoZWNrRmFpbGVkKFJlbW90ZU1lZGlhUmVzb3Vy
Y2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBhdXRv
KiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlkKTsKKyAgICBpZiAoIXJl
c291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9y
ZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5hY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoZXJy
b3IpOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyOjpsb2FkRmFpbGVkKFJl
bW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKK3sKKyAgICBhdXRvKiByZXNvdXJjZSA9IG1fcmVtb3RlTWVkaWFSZXNvdXJjZXMuZ2V0KGlk
KTsKKyAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+cmVhZHkoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpLT5sb2FkRmFpbGVkKGVy
cm9yKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6bG9hZEZpbmlzaGVk
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkKQoreworICAgIGF1dG8qIHJlc291cmNl
ID0gbV9yZW1vdGVNZWRpYVJlc291cmNlcy5nZXQoaWQpOworICAgIGlmICghcmVzb3VyY2UgfHwg
IXJlc291cmNlLT5yZWFkeSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3JlbW90ZU1lZGlh
UmVzb3VyY2VzLmdldChpZCktPmxvYWRGaW5pc2hlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVk
aWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4ZmRlNDI5
MjEzYjJhODdjODMyZTg3ODc2NTI0MzFkOGUwNDRhNjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuaApA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCisKKyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUG9saWN5
Q2hlY2tlci5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBJUEMgewor
Y2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7CitjbGFzcyBEYXRhUmVmZXJlbmNlOwor
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1vdGVNZWRpYVJlc291cmNlOworCitjbGFzcyBS
ZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcgorICAgIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlcigpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcigp
OworCisgICAgdm9pZCBhZGRNZWRpYVJlc291cmNlKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVJlc291cmNlJik7CisgICAgdm9pZCByZW1vdmVNZWRpYVJlc291cmNl
KFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIC8vIElQQzo6TWVzc2FnZVJl
Y2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQo
UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUNoZWNr
ZXI6OlNob3VsZENvbnRpbnVlKT4mJik7CisgICAgdm9pZCByZWRpcmVjdFJlY2VpdmVkKFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpPiYmKTsKKyAgICB2b2lkIGRhdGFTZW50KFJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdCwgdWludDY0X3QpOworICAgIHZvaWQgZGF0
YVJlY2VpdmVkKFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmKTsKKyAgICB2b2lkIGFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAg
IHZvaWQgbG9hZEZhaWxlZChSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgbG9hZEZpbmlzaGVkKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKKworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIsIFJlbW90ZU1lZGlhUmVzb3VyY2UqPiBtX3JlbW90ZU1lZGlhUmVzb3VyY2VzOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNGEzODZiZjBhMmJmMzAwMzkwODRi
MTdmMGI1NTZjZDFjMjhhM2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisKK21lc3Nh
Z2VzIC0+IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyIE5vdFJlZkNvdW50ZWQgeworICAgIFJl
c3BvbnNlUmVjZWl2ZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBkaWRQYXNzQWNjZXNzQ29u
dHJvbENoZWNrKSAtPiAoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUgc2hv
dWxkQ29udGludWUpIEFzeW5jCisgICAgUmVkaXJlY3RSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkgLT4gKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXR1cm5SZXF1ZXN0KSBBc3luYworICAgIERhdGFTZW50KFdlYktpdDo6UmVt
b3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIHVpbnQ2NF90IGJ5dGVzU2VudCwgdWludDY0
X3QgdG90YWxCeXRlc1RvQmVTZW50KQorICAgIERhdGFSZWNlaXZlZChXZWJLaXQ6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VJZGVudGlmaWVyIGlkLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBB
Y2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQoV2ViS2l0OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciBpZCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBMb2FkRmFpbGVkKFdl
YktpdDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IpCisgICAgTG9hZEZpbmlzaGVkKFdlYktpdDo6UmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIgaWQpCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggNzUzZWE5N2UyZmIzMTJhZmFhNzc1ZmZlY2ZmOTY2YjdiZDk1MmQy
OC4uNjkwNjMxMDZjYWI1NDAyMWM0Mjg5NmNkY2I3NjNhNzU2Zjc4YWY4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yMjAsNiArMjIwLDcgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6
QWN0aXZpdHlTdGF0ZUNoYW5nZUlEJywKICAgICAgICAgJ1dlYktpdDo6TGF5ZXJIb3N0aW5nQ29u
dGV4dElEJywKICAgICAgICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllcicsCisgICAgICAgICdXZWJLaXQ6OlJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYktpdDo6UlRDRGVjb2RlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0
OjpTdG9yYWdlQXJlYUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGxJZGVudGlmaWVyJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGFjZjQ5YzcxYzc2NDMwMzQwYjFhNTVmZDQ0
ZWVlMTQ1MmI0NThiMzcuLmIyZWZkMWEzMTZiNjZlNDIxNDYzMTI2M2YxYTBlYzY2NDE0OGViOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dApAQCAtMjQsNiArMjQsMTEgQEAKIEdQVVByb2Nlc3MvR1BVUHJvY2Vzcy5j
cHAKIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKIEdQVVByb2Nlc3Mv
R1BVUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAKKy8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVN
ZWRpYVBsYXllclByb3h5LmNwcAorLy9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUmVzb3Vy
Y2UuY3BwCisvL0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAK
Ky8vR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAKIAogTmV0
d29ya1Byb2Nlc3MvQWRDbGlja0F0dHJpYnV0aW9uTWFuYWdlci5jcHAKIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtBY3Rpdml0eVRyYWNrZXIuY3BwCkBAIC01MDIsOCArNTA3LDkgQEAgV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9NZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmNwcAogV2ViUHJvY2Vz
cy9NZWRpYVN0cmVhbS9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCiAKIFdl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcAotV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorLy9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBs
YXllclByaXZhdGVSZW1vdGUuY3BwCisvL1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyTWFuYWdlci5jcHAKKy8vV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAK
IAogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291
cmNlc0NvY29hLnR4dAppbmRleCBjNzEzYmFlMzg4N2FjZWY3OWQ0MzllOTAxZWE3YTgyODU2MDRi
OWQxLi4yZWRlNGRlMzhkODQwODAwYmRlNzYxMzFhY2Y2MDI2ZjNmNWM4YTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC01OSw4ICs1OSw2IEBAIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDU29ja2V0LmNwcAogCiBHUFVQcm9jZXNzL2lvcy9HUFVQcm9jZXNzSU9TLm1tCiBHUFVQ
cm9jZXNzL21hYy9HUFVQcm9jZXNzTWFjLm1tCi1HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlh
UGxheWVyUHJveHkuY3BwCi1HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdl
clByb3h5LmNwcAogR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KIEdQ
VVByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL0dQVVNlcnZpY2VFbnRyeVBvaW50
Lm1tCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDdhMmU4MWU0MjFlNGM4NDVkMDU3ZmVkZGU3ZmNmYWY3MmU1ZGU4Y2YuLjFhNzhkZDg4
NzUyNGE0OTExYWFlMzY4ZjE0MGU5NjRlMTE5MTQyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDA3LDcgKzQwNywyMCBAQAogCQkx
Q0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdD
ODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNC
QkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlF
MTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87
IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5
RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oICovOyB9OworCQkx
RDMyRjg5QzIzQTg0QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDMyRjg5QjIzQTg0
QkE2MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5LmggKi87IH07CisJCTFEMzJG
ODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzMkY4OUQyM0E4NEM1
QjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi87IH07CisJCTFEM0FC
MDUwMjNBQzAxQTAwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI1RUZBRDIz
OUIwMjQ1MDBBNTM4QTkgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHkuY3BwICovOyB9
OworCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwN0JBRjM1
NzIzQTJDQzE5MDA0NDI1N0UgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAgKi87IH07CisJ
CTFEM0FCMDUyMjNBQzAxQUUwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEMzJGODk5MjNBODQ2
ODAwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmNwcCAqLzsgfTsKKwkJMUQzQUIwNTMy
M0FDMDFCMzAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQzQUIwNEUyM0FCMDA5QjAw
NUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovOyB9OworCQkxRDNBQjA1
NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBNDA4OUUyM0E4Mjc3
ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTUyM0FDMDFGMzAwNUMxRkYwIC8qIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMTIzOUIz
QjBDMDA5NTk4RTIgLyogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcCAqLzsgfTsKKwkJMUQz
QUIwNTYyM0FDMDFGNjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzkyMzEzMDIzOUIz
QjBDMDA5NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJMUQ0
RDczNzAyM0E5RTU0NzAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyog
UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQkxRDRENzM3NjIz
QTlFRDE4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3
Mzc1MjNBOUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2Vz
UmVwbGllcy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVl
dENhbGxiYWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFENjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICov
OyB9OworCQkxREE0MDg5NTIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QTQwODk0MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICov
OyB9OwogCQkxREIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEz
MDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlG
QjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1t
ICovOyB9OwogCQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0lu
TG9hZERlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERl
bGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTI2MjEsOSArMjYzNCwyMiBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJL
aXQyL1dlYkluc3BlY3RvclByb3h5TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJMUNCQkU0OUUxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJ
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFdlYkluc3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYktpdDIvV2ViSW5zcGVjdG9yVUlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
ZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dl
Ykluc3BlY3RvclVJTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzMkY4OUQyM0E4NEM1QjAw
QjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZG
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1l
ZGlhUmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUQzQUIw
NEUyM0FCMDA5QjAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJl
bW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM2QzIz
QTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9
IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdl
cy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkxRDRENzM3NTIzQTlF
QjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFu
YWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDY3QjMzODIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhcmVTaGVldENhbGxiYWNrSUQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMURBNDA4OTQyM0E4MEEzRTAwNThDOTUwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlh
UmVzb3VyY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQTQwODlF
MjNBODI3NzgwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hl
ZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hl
ZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQz
OUI1RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tTaGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFERTJERkFDMjNB
OTU5RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxRjAxODE2OTE4NThEQzE1MDBGOTI4ODQgLyogV0tXZWJQcm9jZXNzUGx1
Z0luRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tXZWJQcm9jZXNz
UGx1Z0luRnJhbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUYwMTgxNkExODU4
REMxNTAwRjkyODg0IC8qIFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJQcm9jZXNzUGx1Z0luRnJhbWUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFGMDE4MTZCMTg1OERDMTUwMEY5Mjg4NCAvKiBX
S1dlYlByb2Nlc3NQbHVnSW5GcmFtZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ4NzEsNyArNDg5Nyw3IEBACiAJCURGNThDNjMxMTM3MUFDNTgw
MEY5QTM3QyAvKiBOYXRpdmVXZWJXaGVlbEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJREY1OEM2MzUxMzcxQUNBMDAwRjlBMzdDIC8qIE5hdGl2ZVdlYldoZWVsRXZlbnRNYWMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOYXRpdmVXZWJXaGVl
bEV2ZW50TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTA1RkU1MzE4RDdC
OURFMDA4RjU3QTggLyogRWRpdGluZ1JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEVkaXRpbmdSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTE1
QzcxNTE5MEY4QTI1MDBFQ0M1MTYgLyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgbmFtZSA9IGNvbS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERl
cml2ZWRTb3VyY2VzL1dlYktpdDIvY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQlFMTE1QzcxNTE5MEY4QTI1MDBFQ0M1MTYg
LyogY29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IGNv
bS5hcHBsZS5XZWJLaXQuU3RvcmFnZS5zYjsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIv
Y29tLmFwcGxlLldlYktpdC5TdG9yYWdlLnNiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQlFMTMzRkQ4OTE0MjNERDdGMDBGQzdCRkIgLyogV2ViS2l0LmljbnMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5pY25zOyBu
YW1lID0gV2ViS2l0LmljbnM7IHBhdGggPSBSZXNvdXJjZXMvV2ViS2l0LmljbnM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ3MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxNEE5NTQ4MTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3b3Jr
UHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNTEyMiw2ICs1MTQ4LDggQEAKIAkJCQkwNzkyMzEzNDIzOUIzQjBDMDA5
NTk4RTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmggKi8sCiAJCQkJMDc5MjMxMzMyMzlC
M0IwQzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbiAqLywK
IAkJCQkwN0IzQjQ2RjIzQUIyQ0IzMDBCQTVCMTIgLyogUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5o
ICovLAorCQkJCTFEMzJGODlEMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuY3BwICovLAorCQkJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHkuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWVkaWE7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNTEzNSw2ICs1MTYzLDE0IEBACiAJCQkJMDdCQUYzNTcyM0Ey
Q0MxOTAwNDQyNTdFIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwICovLAogCQkJCTA3QkFG
MzU2MjNBMkNDMTcwMDQ0MjU3RSAvKiBSZW1vdGVNZWRpYVBsYXllclByb3h5LmggKi8sCiAJCQkJ
MDdCM0I0NzUyM0FEODkwNDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb25maWd1
cmF0aW9uLmggKi8sCisJCQkJMUQzMkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlh
UmVzb3VyY2UuY3BwICovLAorCQkJCTFEMzJGODk4MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlLmggKi8sCisJCQkJMURFMkRGQUMyM0E5NTlGODAwM0UwMTNBIC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyLmggKi8sCisJCQkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovLAorCQkJCTFEM0FCMDREMjNB
QjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmggKi8sCisJCQkJMURB
NDA4OUUyM0E4Mjc3ODAwNThDOTUwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyLmNwcCAq
LywKKwkJCQkxREE0MDg5NDIzQTgwQTNFMDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXIuaCAqLywKKwkJCQkxRDMyRjhBNjIzQTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFS
ZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1lZGlhOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTkzMTUsNiArOTM1MSw5IEBACiAJCQkJMDc5
MjMxNDUyMzlDQkNCNzAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkwNzkyMzE0NjIzOUNCQ0I3MDA5NTk4RTIgLyogUmVt
b3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTA3OTIzMTQyMjM5
Q0JDQjUwMDk1OThFMiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVw
bGllcy5oICovLAorCQkJCTFENEQ3MzZCMjNBOURGNTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJMUQ0RDczNkMyM0E5REY2
MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJ
CQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkxQUMxMzM4MzE4NTkwQzQ2MDBGM0VDMDUgLyogUmVt
b3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBQzEzMzg0MTg1
OTBDNDYwMEYzRUMwNSAvKiBSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmggKi8sCiAJCQkJ
MEY1OTQ3QTUxODdCNTE3NjAwNDM3ODU3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEwMjA5LDYgKzEwMjQ4LDEwIEBACiAJCQkJMDc5MjMx
NEMyMzlDQkNCODAwOTU5OEUyIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OTIzMTQ4MjM5Q0JDQjgwMDk1OThFMiAvKiBSZW1v
dGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdCM0I0NzAyM0FCMzAyRDAwQkE1QjEyIC8qIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCTFEQTQwODk1MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQ0RDczNzEyM0E5RTU2
MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzMkY4OUMy
M0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTFCNzg0NzExNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU3MDRGQzFCRTE3NTExMDA4NzRBRjEgLyogUmVt
b3RlT2JqZWN0SW52b2NhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFDMTMzODAxODU5MEFF
NDAwRjNFQzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTEx
ODE5LDYgKzExODYyLDcgQEAKIAkJCQkyOTg0RjU3QzE2NEI5MTVGMDA0QkMwQzYgLyogTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNDQ5RDkwREEyMUZEQzMwQjAwRjY3N0MwIC8qIExvY2FsQXV0aGVudGljYXRpb25T
b2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTJBNzc5MjEyQjZBNjEwMEY0OTNGRCAv
KiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0FCMDU1MjNBQzAxRjMwMDVDMUZG
MCAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5
MkE3ODEyMTJCNkE3MTAwRjQ5M0ZEIC8qIE1lc3NhZ2VSZWNlaXZlck1hcC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDkyQTc4MjIxMkI2QTcxMDBGNDkzRkQgLyogTWVzc2FnZVNlbmRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc3QTIxMkI2QTYxMDBGNDkzRkQgLyogTW9kdWxlLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMTE4NzUsOCArMTE5MTksMTYgQEAKIAkJCQkyRDcyQTFGQTIx
MkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNl
cyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMx
OEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNl
cyAqLywKKwkJCQkxRDNBQjA1NjIzQUMwMUY2MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTQ5MjM5Q0JDQjgwMDk1OThFMiAv
KiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQzQUIwNTAyM0FDMDFBMDAwNUMxRkYwIC8qIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OTIzMTRCMjM5Q0JDQjgwMDk1OThF
MiAvKiBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkxRDNBQjA1MTIzQUMwMUFBMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1MjIzQUMwMUFFMDA1QzFG
RjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNBQjA1
MzIzQUMwMUIzMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQkxRDNBQjA1NDIzQUMwMUI3MDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMUQ0RDczNzAyM0E5RTU0NzAwNzE3
QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTFEMzJGODlFMjNBODRDNUIwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFDMTMzODUxODU5MEM0NjAwRjNF
QzA1IC8qIFJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGNTk0N0E3MTg3QjUxNzYwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTVCQTgyNjFC
QTI1Q0ZEMDA3Q0QzM0QgLyogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDY0YTRiNGY3ZGVjYTM4NmI1Mjc1OWFm
YjQ3NmNlZjlmODhkZjgyZjAuLjE4ZTkzNmRlMzIzMDc3MGYyNDM2MWI2YWJhYThlMTdlNGQyZTVh
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgR1BVUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmlu
CiB2b2lkIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBpZiAoZGVj
b2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnN1cHBsZW1lbnQ8UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyPigpLT5kaWRSZWNl
aXZlTWVzc2FnZUZyb21XZWJQcm9jZXNzKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cj4oKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2Vzcyhjb25uZWN0aW9uLCBkZWNvZGVy
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IDg1M2NjMTY1NTA5NGJiNTI0MjFmYjZjZmExYzMxOWE5NjQ3MWMwOTQuLjMxYzYxMDQ2
NjlmMmYwMmZmYTQ0MGZlYjg4MDkyNmM3NGFlMjZhY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTU1LDcgKzU1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VSZWNlaXZlck5h
bWUsIElQQzo6U3RyaW5nUmVmZXJlbmNlIG1lc3NhZ2VOYW1lKSBvdmVycmlkZTsKIAotICAgIC8v
IFRoZSBjb25uZWN0aW9uIGZyb20gYSB3ZWIgcHJvY2VzcyB0byB0aGlzIEdQVSBwcm9jZXNzLgor
ICAgIC8vIFRoZSBjb25uZWN0aW9uIGZyb20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBHUFUgcHJv
Y2Vzcy4KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKaW5kZXggMzQ4YTBmNWY0OGE3ZWE0OTU5NWVjYjVhYjEy
YzQzZTE1ZTRlYmZmMS4uNzU4ZDdlMjU3NDhiNjFlY2IzNDhiNmY1MWUxMjUyZjM3NWZjNjVkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNjIsNiArNjIsNyBAQCB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKIAogTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUoTWVkaWFQbGF5ZXIqIHBsYXllciwgTWVkaWFQbGF5ZXJFbnVtczo6TWVk
aWFFbmdpbmVJZGVudGlmaWVyIGVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
JiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCisgICAgLCBtX21lZGlhUmVzb3VyY2VMb2Fk
ZXIocGxheWVyLT5jcmVhdGVSZXNvdXJjZUxvYWRlcigpKQogICAgICwgbV9tYW5hZ2VyKG1hbmFn
ZXIpCiAgICAgLCBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXIoZW5naW5lSWRlbnRpZmllcikKICAg
ICAsIG1faWQocGxheWVySWRlbnRpZmllcikKQEAgLTc5OCw2ICs3OTksMjEgQEAgYm9vbCBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU6OnNob3VsZElnbm9yZUludHJpbnNpY1NpemUoKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlcXVlc3RS
ZXNvdXJjZShSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNl
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6
UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyOjpMb2FkT3B0aW9ucyBvcHRpb25zKQoreworICAg
IEFTU0VSVCghbV9tZWRpYVJlc291cmNlcy5jb250YWlucyhyZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllcikpOworICAgIGF1dG8gcmVzb3VyY2UgPSBtX21lZGlhUmVzb3VyY2VMb2FkZXItPnJl
cXVlc3RSZXNvdXJjZShXVEZNb3ZlKHJlcXVlc3QpLCBvcHRpb25zKTsKKyAgICAvLyBQbGF0Zm9y
bU1lZGlhUmVzb3VyY2Ugb3ducyB0aGUgUGxhdGZvcm1NZWRpYVJlc291cmNlQ2xpZW50CisgICAg
cmVzb3VyY2UtPnNldENsaWVudChtYWtlVW5pcXVlPFJlbW90ZU1lZGlhUmVzb3VyY2VQcm94eT4o
bV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksICpyZXNvdXJjZSwgcmVtb3RlTWVkaWFS
ZXNvdXJjZUlkZW50aWZpZXIpKTsKKyAgICBtX21lZGlhUmVzb3VyY2VzLmFkZChyZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShyZXNvdXJjZSkpOworfQorCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlUmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlk
ZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIpCit7CisgICAgLy8gVGhlIGNs
aWVudChSZW1vdGVNZWRpYVJlc291cmNlUHJveHkpIHdpbGwgYmUgZGVzdHJveWVkIGFzIHdlbGwK
KyAgICBtX21lZGlhUmVzb3VyY2VzLnJlbW92ZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmll
cik7Cit9CisKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKIFdURkxvZ0NoYW5uZWwmIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTo6bG9nQ2hhbm5lbCgpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZh
dGVSZW1vdGUuaAppbmRleCA2ODg3MmFlYmNmMGVlMGQ5NWMxZjZhNmE3NjY0MDg3ZjEwZGE4ZjVk
Li5mYWEyZWM5YTMyMWI3ODQ5ZDQ2ODYxNGZjZThiYTk5NzExYTFkNzJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5ZXJQ
cml2YXRlUmVtb3RlLmgKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBs
YXllckNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclN0YXRlLmgiCisjaW5jbHVkZSAiUmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyUHJpdmF0ZS5oPgogI2luY2x1
ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CkBAIC0z
OSwyMiArNDEsMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSBmaW5hbAogICAgIDogcHVibGljIENhbk1ha2VXZWFrUHRyPE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZT4KLSAgICAsIHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKICNpZiAh
UkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICAsIHByaXZhdGUgTG9nZ2VySGVscGVyCiAjZW5kaWYK
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZT4gY3JlYXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIsIE1lZGlhUGxheWVyRW51bXM6Ok1l
ZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
ciYgbWFuYWdlciwgY29uc3QgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uJiBjb25maWd1
cmF0aW9uKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlPiBjcmVhdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqIHBsYXllciwgV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVuZ2luZUlkZW50aWZpZXIs
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVk
aWFQbGF5ZXJNYW5hZ2VyJiBtYW5hZ2VyLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNvbmZpZ3Vy
YXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgewogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxN
ZWRpYVBsYXllclByaXZhdGVSZW1vdGU+KHBsYXllciwgcmVtb3RlRW5naW5lSWRlbnRpZmllciwg
aWRlbnRpZmllciwgbWFuYWdlciwgY29uZmlndXJhdGlvbik7CiAgICAgfQogCi0gICAgZXhwbGlj
aXQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlKE1lZGlhUGxheWVyKiwgTWVkaWFQbGF5ZXJFbnVt
czo6TWVkaWFFbmdpbmVJZGVudGlmaWVyLCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyLCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXImLCBjb25zdCBSZW1vdGVNZWRpYVBsYXllckNv
bmZpZ3VyYXRpb24mKTsKLSAgICB2aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVSZW1vdGUoKTsK
KyAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGUoV2ViQ29yZTo6TWVkaWFQbGF5ZXIqLCBXZWJD
b3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciYsIGNvbnN0
IFJlbW90ZU1lZGlhUGxheWVyQ29uZmlndXJhdGlvbiYpOworCisgICAgfk1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZSgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgeyBtX2ludmFsaWQgPSB0cnVl
OyB9Ci0gICAgTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90ZUVu
Z2luZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUVuZ2luZUlkZW50aWZpZXI7
IH0KKyAgICBXZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIg
cmVtb3RlRW5naW5lSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVtb3RlRW5naW5lSWRl
bnRpZmllcjsgfQogICAgIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgcGxheWVy
SXRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIHZvaWQgbmV0d29ya1N0
YXRlQ2hhbmdlZChSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYpOwpAQCAtNjksNiArNzIsOSBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShSZW1vdGVNZWRpYVBsYXllclN0YXRl
JiYpOwogICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNDaGFuZ2VkKGJvb2wgaGFzQXVkaW8sIGJvb2wg
aGFzVmlkZW8sIFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUpOwogCisg
ICAgdm9pZCByZXF1ZXN0UmVzb3VyY2UoUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI6OkxvYWRPcHRpb25zKTsKKyAgICB2b2lkIHJlbW92ZVJlc291cmNlKFJlbW90ZU1lZGlh
UmVzb3VyY2VJZGVudGlmaWVyKTsKKwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIGNv
bnN0IExvZ2dlciYgbG9nZ2VyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gKm1fbG9nZ2VyOyB9CiAg
ICAgY29uc3QgY2hhciogbG9nQ2xhc3NOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIk1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZSI7IH0KQEAgLTc3LDE0ICs4MywxNCBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogcHJpdmF0ZToKLSAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29uc3QgQ29udGVu
dFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICB2b2lkIHByZXBhcmVGb3JQbGF5YmFj
ayhib29sIHByaXZhdGVNb2RlLCBNZWRpYVBsYXllcjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKKyAgICB2b2lkIGxvYWQoY29uc3QgVVJMJiwgY29u
c3QgV2ViQ29yZTo6Q29udGVudFR5cGUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICB2b2lk
IHByZXBhcmVGb3JQbGF5YmFjayhib29sIHByaXZhdGVNb2RlLCBXZWJDb3JlOjpNZWRpYVBsYXll
cjo6UHJlbG9hZCwgYm9vbCBwcmVzZXJ2ZXNQaXRjaCwgYm9vbCBwcmVwYXJlKSBmaW5hbDsKIAog
I2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1l
ZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIGZpbmFsOworICAgIHZvaWQgbG9hZChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBmaW5hbDsKICNlbmRpZgog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgdm9pZCBsb2FkKE1lZGlhU3RyZWFtUHJpdmF0
ZSYpIGZpbmFsOworICAgIHZvaWQgbG9hZChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGUmKSBm
aW5hbDsKICNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpIGZpbmFsOwogCkBAIC0xMDYsOSAr
MTEyLDkgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0o
TUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogICAgIHZvaWQgc2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciosIFdURjo6RnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVZpZGVvRnVsbHNjcmVl
bklubGluZUltYWdlKCkgZmluYWw7Ci0gICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShG
bG9hdFJlY3QpIGZpbmFsOwotICAgIHZvaWQgc2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eShNZWRp
YVBsYXllcjo6VmlkZW9HcmF2aXR5KSBmaW5hbDsKLSAgICB2b2lkIHNldFZpZGVvRnVsbHNjcmVl
bk1vZGUoTWVkaWFQbGF5ZXI6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQg
c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0KSBmaW5hbDsKKyAgICB2
b2lkIHNldFZpZGVvRnVsbHNjcmVlbkdyYXZpdHkoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OlZpZGVv
R3Jhdml0eSkgZmluYWw7CisgICAgdm9pZCBzZXRWaWRlb0Z1bGxzY3JlZW5Nb2RlKFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICB2b2lkIHZpZGVv
RnVsbHNjcmVlblN0YW5kYnlDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKIApAQCAtMTE4LDcgKzEy
NCw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGVycm9yTG9nKCkgY29uc3QgZmluYWw7CiAjZW5k
aWYKIAotICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KE1lZGlhUGxheWVyOjpCdWZmZXJpbmdQ
b2xpY3kpIGZpbmFsOworICAgIHZvaWQgc2V0QnVmZmVyaW5nUG9saWN5KFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpCdWZmZXJpbmdQb2xpY3kpIGZpbmFsOwogCiAgICAgYm9vbCBzdXBwb3J0c1BpY3R1
cmVJblBpY3R1cmUoKSBjb25zdCBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigp
IGNvbnN0IGZpbmFsOwpAQCAtMTI2LDcgKzEzMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGNh
blNhdmVNZWRpYURhdGEoKSBjb25zdCBmaW5hbDsKIAotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNv
bnN0IGZpbmFsOwogCiAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aGFzQXVkaW8oKSBjb25zdCBmaW5hbDsKQEAgLTE1OSwyOSArMTY1LDI5IEBAIHByaXZhdGU6CiAg
ICAgZG91YmxlIG1heEZhc3RGb3J3YXJkUmF0ZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBt
aW5GYXN0UmV2ZXJzZVJhdGUoKSBjb25zdCBmaW5hbDsKIAotICAgIE1lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0
ZS5uZXR3b3JrU3RhdGU7IH0KLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9jYWNoZWRTdGF0ZS5yZWFkeVN0YXRlOyB9CisgICAg
V2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2NhY2hlZFN0YXRlLm5ldHdvcmtTdGF0ZTsgfQorICAgIFdlYkNvcmU6
Ok1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX2NhY2hlZFN0YXRlLnJlYWR5U3RhdGU7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3QgZmluYWw7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBmaW5hbDsK
IAogICAgIE1lZGlhVGltZSBtYXhNZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwogICAg
IE1lZGlhVGltZSBtaW5NZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0IGZpbmFsOwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgZmluYWw7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQo
KSBjb25zdCBmaW5hbDsKICAgICBkb3VibGUgc2Vla2FibGVUaW1lUmFuZ2VzTGFzdE1vZGlmaWVk
VGltZSgpIGNvbnN0IGZpbmFsOwogICAgIGRvdWJsZSBsaXZlVXBkYXRlSW50ZXJ2YWwoKSBjb25z
dCBmaW5hbDsKIAogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBmaW5hbDsKIAotICAgIHZv
aWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWw7CisgICAgdm9pZCBzZXRTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBmaW5hbDsKIAotICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisgICAgdm9pZCBwYWludChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKIAotICAg
IHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3Qg
RmxvYXRSZWN0JikgZmluYWw7Ci0gICAgYm9vbCBjb3B5VmlkZW9UZXh0dXJlVG9QbGF0Zm9ybVRl
eHR1cmUoR3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0Mz
RGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7Ci0g
ICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOworICAg
IHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgYm9vbCBjb3B5VmlkZW9U
ZXh0dXJlVG9QbGF0Zm9ybVRleHR1cmUoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqLCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgR0MzRGludCwgR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNE
ZW51bSwgYm9vbCwgYm9vbCkgZmluYWw7CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbmF0
aXZlSW1hZ2VGb3JDdXJyZW50VGltZSgpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRQcmVsb2FkKE1l
ZGlhUGxheWVyOjpQcmVsb2FkKSBmaW5hbDsKKyAgICB2b2lkIHNldFByZWxvYWQoV2ViQ29yZTo6
TWVkaWFQbGF5ZXI6OlByZWxvYWQpIGZpbmFsOwogCiAgICAgYm9vbCBoYXNBdmFpbGFibGVWaWRl
b0ZyYW1lKCkgY29uc3QgZmluYWw7CiAKQEAgLTE5MiwxNCArMTk4LDE0IEBAIHByaXZhdGU6CiAK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIFN0cmluZyB3aXJlbGVz
c1BsYXliYWNrVGFyZ2V0TmFtZSgpIGNvbnN0IGZpbmFsOwotICAgIE1lZGlhUGxheWVyOjpXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0
IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpXaXJlbGVzc1BsYXliYWNrVGFyZ2V0
VHlwZSB3aXJlbGVzc1BsYXliYWNrVGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9v
bCB3aXJlbGVzc1ZpZGVvUGxheWJhY2tEaXNhYmxlZCgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQg
c2V0V2lyZWxlc3NWaWRlb1BsYXliYWNrRGlzYWJsZWQoYm9vbCkgZmluYWw7CiAKICAgICBib29s
IGNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSBjb25zdCBmaW5hbDsKICAgICBib29s
IGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IHNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYpIGZp
bmFsOworICAgIHZvaWQgc2V0V2lyZWxlc3NQbGF5YmFja1RhcmdldChSZWY8V2ViQ29yZTo6TWVk
aWFQbGF5YmFja1RhcmdldD4mJikgZmluYWw7CiAKICAgICB2b2lkIHNldFNob3VsZFBsYXlUb1Bs
YXliYWNrVGFyZ2V0KGJvb2wpIGZpbmFsOwogI2VuZGlmCkBAIC0yMTYsOSArMjIyLDkgQEAgcHJp
dmF0ZToKIAogICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBmaW5hbDsK
ICAgICBib29sIGRpZFBhc3NDT1JTQWNjZXNzQ2hlY2soKSBjb25zdCBmaW5hbDsKLSAgICBPcHRp
b25hbDxib29sPiB3b3VsZFRhaW50T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3Qg
ZmluYWw7CisgICAgT3B0aW9uYWw8Ym9vbD4gd291bGRUYWludE9yaWdpbihjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYpIGNvbnN0IGZpbmFsOwogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmll
TG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBmaW5hbDsKIAogICAg
IHZvaWQgcHJlcGFyZUZvclJlbmRlcmluZygpIGZpbmFsOwogCkBAIC0yMzQsMjUgKzI0MCwyNSBA
QCBwcml2YXRlOgogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IGZpbmFsOwog
CiAjaWYgRU5BQkxFKFdFQl9BVURJTykKLSAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1Nv
dXJjZVByb3ZpZGVyKCkgZmluYWw7CisgICAgV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlciog
YXVkaW9Tb3VyY2VQcm92aWRlcigpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTEVHQUNZ
X0VOQ1JZUFRFRF9NRURJQSkKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8TGVnYWN5Q0RNU2Vzc2lvbj4g
Y3JlYXRlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmlu
YWw7Ci0gICAgdm9pZCBzZXRDRE1TZXNzaW9uKExlZ2FjeUNETVNlc3Npb24qKSBmaW5hbDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TGVnYWN5Q0RNU2Vzc2lvbj4gY3JlYXRlU2Vzc2lv
bihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpMZWdhY3lDRE1TZXNzaW9uQ2xpZW50KikgZmluYWw7
CisgICAgdm9pZCBzZXRDRE1TZXNzaW9uKFdlYkNvcmU6OkxlZ2FjeUNETVNlc3Npb24qKSBmaW5h
bDsKICAgICB2b2lkIGtleUFkZGVkKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShFTkNS
WVBURURfTUVESUEpCi0gICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKENETUluc3RhbmNlJikg
ZmluYWw7Ci0gICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKENETUluc3RhbmNlJikgZmluYWw7
Ci0gICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKENETUluc3RhbmNlJikgZmlu
YWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZUF0dGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNlJikg
ZmluYWw7CisgICAgdm9pZCBjZG1JbnN0YW5jZURldGFjaGVkKFdlYkNvcmU6OkNETUluc3RhbmNl
JikgZmluYWw7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKFdlYkNvcmU6
OkNETUluc3RhbmNlJikgZmluYWw7CiAgICAgYm9vbCB3YWl0aW5nRm9yS2V5KCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBib29sIHJlcXVpcmVz
VGV4dFRyYWNrUmVwcmVzZW50YXRpb24oKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHNldFRleHRU
cmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1JlcHJlc2VudGF0aW9uKikgZmluYWw7CisgICAg
dm9pZCBzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihXZWJDb3JlOjpUZXh0VHJhY2tSZXByZXNl
bnRhdGlvbiopIGZpbmFsOwogICAgIHZvaWQgc3luY1RleHRUcmFja0JvdW5kcygpIGZpbmFsOwog
ICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCkBAIC0yNzIsNyArMjc4LDcg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZW5kZWQoKSBjb25zdCBmaW5hbDsKIAotICAgIE9wdGlv
bmFsPFZpZGVvUGxheWJhY2tRdWFsaXR5TWV0cmljcz4gdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRy
aWNzKCkgZmluYWw7CisgICAgT3B0aW9uYWw8V2ViQ29yZTo6VmlkZW9QbGF5YmFja1F1YWxpdHlN
ZXRyaWNzPiB2aWRlb1BsYXliYWNrUXVhbGl0eU1ldHJpY3MoKSBmaW5hbDsKIAogI2lmIEVOQUJM
RShBVkZfQ0FQVElPTlMpCiAgICAgdm9pZCBub3RpZnlUcmFja01vZGVDaGFuZ2VkKCkgZmluYWw7
CkBAIC0yOTMsMTkgKzI5OSwyMiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRJZ25vcmVJ
bnRyaW5zaWNTaXplKCkgZmluYWw7CiAKLSAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxs
cHRyIH07Ci0gICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyIG1fbWFuYWdlcjsKLSAgICBNZWRp
YVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50aWZpZXIgbV9yZW1vdGVFbmdpbmVJZGVudGlm
aWVyOworICAgIFdlYkNvcmU6Ok1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVyPiBtX21lZGlhUmVz
b3VyY2VMb2FkZXI7CisgICAgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyJiBtX21hbmFnZXI7Cisg
ICAgV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIG1fcmVt
b3RlRW5naW5lSWRlbnRpZmllcjsKICAgICBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIG1faWQ7CiAgICAgUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uIG1fY29uZmlndXJh
dGlvbjsKIAogICAgIFJlbW90ZU1lZGlhUGxheWVyU3RhdGUgbV9jYWNoZWRTdGF0ZTsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBtX2NhY2hlZEJ1ZmZlcmVkVGltZVJh
bmdlczsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1UaW1lUmFuZ2VzPiBt
X2NhY2hlZEJ1ZmZlcmVkVGltZVJhbmdlczsKKworICAgIEhhc2hNYXA8UmVtb3RlTWVkaWFSZXNv
dXJjZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2U+PiBt
X21lZGlhUmVzb3VyY2VzOwogCiAgICAgZG91YmxlIG1fdm9sdW1lIHsgMSB9OwogICAgIGRvdWJs
ZSBtX3JhdGUgeyAxIH07CiAgICAgbG9uZyBtX3BsYXRmb3JtRXJyb3JDb2RlIHsgMCB9OwotICAg
IE1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRUeXBlIHsgTWVkaWFQ
bGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9OworICAgIFdlYkNvcmU6Ok1lZGlh
UGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbV9tb3ZpZUxvYWRUeXBlIHsgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJFbnVtczo6TW92aWVMb2FkVHlwZTo6VW5rbm93biB9OwogICAgIGJvb2wgbV9oYXNB
dWRpbyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKICAgICBib29s
IG1fbXV0ZWQgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9NZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50
aWZpZXIuaAppbmRleCAzZDU1ZmRhYWE5MmEyNWI2MmI4ZjU3MzhkMmNlOGMyOWMzMGIxM2RkLi4y
NTZiM2M1OWZiZTQyYjZiYzFhMzA2NzFlNzAwYTU3MzRkZGI5ZjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwogI2luY2x1ZGUgPHd0Zi9PYmpl
Y3RJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzMsMyArMzUsNSBAQCBl
bnVtIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlIHsgfTsKIHVzaW5nIE1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXJUeXBlPjsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9t
ZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIuY3BwCmluZGV4IGFlNzU2ODZk
YWY5MmZkMjI1ODQ5MjRlMmM5NDY5M2JiNzNlMWI0NzkuLjcxYjcxYmZmYTIzOGI5NGFiMzIzYWM0
OTFmYzYxMjA1YjRiNDhjMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5jcHAKQEAgLTI4
LDYgKzI4LDggQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAorI2luY2x1ZGUgIkdQVVBy
b2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlLmgi
CiAjaW5jbHVkZSAiUmVtb3RlTWVkaWFQbGF5ZXJDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRp
YVBsYXllck1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCkBAIC00MSw2ICs0Myw3IEBACiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CisKIHVzaW5nIG5hbWVz
cGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTY1LDcgKzE2OCw3IEBA
IHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpnZXRTdXBwb3J0ZWRUeXBlcyhNZWRpYVBs
YXllckVudW1zOjpNZWRpYUVuZ2luZUlkCiAgICAgICAgIHJlc3VsdC5hZGQodHlwZSk7CiB9CiAK
LU1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpzdXBw
b3J0c1R5cGVBbmRDb2RlY3MoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVy
IHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhRW5naW5lU3VwcG9y
dFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCitNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIFJlbW90
ZU1lZGlhUGxheWVyTWFuYWdlcjo6c3VwcG9ydHNUeXBlQW5kQ29kZWNzKE1lZGlhUGxheWVyRW51
bXM6Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBN
ZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIC8vIEZJWE1F
OiBzdXBwb3J0ZWQgdHlwZXMgZG9uJ3QgY2hhbmdlLCBjYWNoZSB0aGVtLgogCkBAIC0xODEsOSAr
MTg0LDkgQEAgYm9vbCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OnN1cHBvcnRzS2V5U3lzdGVt
KE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5naW5lSWQKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LUhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPj4gUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKE1lZGlhUGxheWVyRW51bXM6Ok1lZGlhRW5n
aW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHBhdGgp
CitIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdl
cjo6b3JpZ2luc0luTWVkaWFDYWNoZShNZWRpYVBsYXllckVudW1zOjpNZWRpYUVuZ2luZUlkZW50
aWZpZXIgcmVtb3RlRW5naW5lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAg
IFZlY3RvcjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IG9yaWdpbkRhdGE7CisgICAgVmVj
dG9yPFNlY3VyaXR5T3JpZ2luRGF0YT4gb3JpZ2luRGF0YTsKICAgICBpZiAoIWdwdVByb2Nlc3ND
b25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyTWFuYWdlclBy
b3h5OjpPcmlnaW5zSW5NZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgpLCBN
ZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyUHJveHk6Ok9yaWdpbnNJbk1lZGlhQ2Fj
aGU6OlJlcGx5KG9yaWdpbkRhdGEpLCAwKSkKICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMTk5
LDcgKzIwMiw3IEBAIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2Fj
aGUoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVuCiAgICAgZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVBsYXllck1hbmFnZXJQcm94eTo6Q2xl
YXJNZWRpYUNhY2hlKHJlbW90ZUVuZ2luZUlkZW50aWZpZXIsIHBhdGgsIG1vZGlmaWVkU2luY2Up
LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6OmNsZWFyTWVkaWFDYWNo
ZUZvck9yaWdpbnMoTWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlmaWVyIHJlbW90
ZUVuZ2luZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQ
dHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgUmVtb3RlTWVkaWFQ
bGF5ZXJNYW5hZ2VyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKE1lZGlhUGxheWVyRW51bXM6
Ok1lZGlhRW5naW5lSWRlbnRpZmllciByZW1vdGVFbmdpbmVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMp
CiB7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gV1RGOjptYXAob3JpZ2lucywgW10gKGF1dG8mIG9y
aWdpbikgewogICAgICAgICByZXR1cm4gb3JpZ2luLT5kYXRhKCk7CkBAIC0yMTAsNTUgKzIxMyw1
NSBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2xlYXJNZWRpYUNhY2hlRm9yT3Jp
Z2lucyhNZWRpYVBsYXllckVudW1zOjpNZWRpYQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFu
YWdlcjo6bmV0d29ya1N0YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlm
aWVyIGlkLCBSZW1vdGVNZWRpYVBsYXllclN0YXRlJiYgc3RhdGUpCiB7Ci0gICAgaWYgKGF1dG8g
cGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBsYXllciA9
IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQo
V1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6cmVh
ZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVt
b3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1f
cGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMu
Z2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZChXVEZNb3ZlKHN0YXRl
KSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKFdl
YktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgZG91YmxlIHZvbHVt
ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp2b2x1bWVDaGFuZ2VkKE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGRvdWJsZSB2b2x1bWUpCiB7Ci0gICAgaWYg
KGF1dG8gcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCisgICAgaWYgKGNvbnN0IGF1dG8mIHBs
YXllciA9IG1fcGxheWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPnZvbHVtZUNoYW5nZWQo
dm9sdW1lKTsKIH0KIAotdm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBtdXRl
KQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6Om11dGVDaGFuZ2VkKE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZSkKIHsKLSAgICBpZiAoYXV0byBw
bGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0g
bV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+bXV0ZUNoYW5nZWQobXV0ZSk7CiB9
CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp0aW1lQ2hhbmdlZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJiBzdGF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICBpZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAg
IHBsYXllci0+dGltZUNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCiB2b2lkIFJlbW90ZU1l
ZGlhUGxheWVyTWFuYWdlcjo6ZHVyYXRpb25DaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgUmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZSYmIHN0YXRlKQog
ewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQoaWQpKQorICAgIGlmIChjb25z
dCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAgICAgICAgcGxheWVyLT5kdXJh
dGlvbkNoYW5nZWQoV1RGTW92ZShzdGF0ZSkpOwogfQogCi12b2lkIFJlbW90ZU1lZGlhUGxheWVy
TWFuYWdlcjo6cmF0ZUNoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVu
dGlmaWVyIGlkLCBkb3VibGUgcmF0ZSkKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjpy
YXRlQ2hhbmdlZChNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkLCBkb3VibGUg
cmF0ZSkKIHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBp
ZiAoY29uc3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXll
ci0+cmF0ZUNoYW5nZWQocmF0ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2Vy
OjpwbGF5YmFja1N0YXRlQ2hhbmdlZChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWQsIGJvb2wgcGF1c2VkKQordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFnZXI6
OnBsYXliYWNrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIg
aWQsIGJvb2wgcGF1c2VkKQogewotICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxheWVycy5nZXQo
aWQpKQorICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKICAg
ICAgICAgcGxheWVyLT5wbGF5YmFja1N0YXRlQ2hhbmdlZChwYXVzZWQpOwogfQogCiB2b2lkIFJl
bW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6ZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQ
bGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZCwgbG9uZyBwbGF0Zm9ybUVycm9yQ29kZSkK
IHsKLSAgICBpZiAoYXV0byBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkKKyAgICBpZiAoY29u
c3QgYXV0byYgcGxheWVyID0gbV9wbGF5ZXJzLmdldChpZCkpCiAgICAgICAgIHBsYXllci0+ZW5n
aW5lRmFpbGVkVG9Mb2FkKHBsYXRmb3JtRXJyb3JDb2RlKTsKIH0KIApAQCAtMjY3LDYgKzI3MCwy
MCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlcjo6Y2hhcmFjdGVyaXN0aWNDaGFuZ2Vk
KFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUgogICAgIGlmIChhdXRvIHBsYXllciA9IG1fcGxh
eWVycy5nZXQoaWQpKQogICAgICAgICBwbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZChoYXNB
dWRpbywgaGFzVmlkZW8sIGxvYWRUeXBlKTsKIH0KKyAgICAKK3ZvaWQgUmVtb3RlTWVkaWFQbGF5
ZXJNYW5hZ2VyOjpyZXF1ZXN0UmVzb3VyY2UoTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRp
ZmllciBpZCwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJj
ZUlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFBsYXRmb3JtTWVkaWFSZXNv
dXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMgb3B0aW9ucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBt
X3BsYXllcnMuZ2V0KGlkKSkKKyAgICAgICAgcGxheWVyLT5yZXF1ZXN0UmVzb3VyY2UocmVtb3Rl
TWVkaWFSZXNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUocmVxdWVzdCksIG9wdGlvbnMpOworCisg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVBsYXllck1hbmFn
ZXI6OnJlbW92ZVJlc291cmNlKE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQs
IFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIHJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlm
aWVyKQoreworICAgIGlmIChjb25zdCBhdXRvJiBwbGF5ZXIgPSBtX3BsYXllcnMuZ2V0KGlkKSkK
KyAgICAgICAgcGxheWVyLT5yZW1vdmVSZXNvdXJjZShyZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
Zmllcik7Cit9CiAKIHZvaWQgUmVtb3RlTWVkaWFQbGF5ZXJNYW5hZ2VyOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBTZXR0aW5ncyYgc2V0dGluZ3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXllck1hbmFnZXIu
aAppbmRleCBjM2MyNzdhYzg4YzM0ZGM2MDlhY2FjZmVlZDZhZTU5NzgzMjhmMTQyLi4yNDg4MTQ0
MzA5NWU1MTEzMWRlODY2N2FmM2I2MTMxMTBkYWVjMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJNYW5h
Z2VyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAi
UmVtb3RlTWVkaWFQbGF5ZXJTdGF0ZS5oIgorI2luY2x1ZGUgIlJlbW90ZU1lZGlhUmVzb3VyY2VJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWVyLmg+CkBAIC01
Nyw3ICs1OCw3IEBAIHB1YmxpYzoKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24oKSBjb25zdDsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tV2ViUHJv
Y2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlcikg
eyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQorICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBk
ZWNvZGVyKTsgfQogCiAgICAgdm9pZCBkZWxldGVSZW1vdGVNZWRpYVBsYXllcihNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyKTsKIApAQCAtODIsNiArODMsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZW5naW5lRmFpbGVkVG9Mb2FkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVt
b3RlSWRlbnRpZmllciwgbG9uZyk7CiAgICAgdm9pZCB1cGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6
Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFJlbW90ZU1lZGlhUGxheWVyU3Rh
dGUmJik7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoV2ViS2l0OjpNZWRpYVBsYXll
clByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBib29sIGhhc0F1ZGlvLCBib29sIGhhc1ZpZGVvLCBX
ZWJDb3JlOjpNZWRpYVBsYXllckVudW1zOjpNb3ZpZUxvYWRUeXBlKTsKKyAgICB2b2lkIHJlcXVl
c3RSZXNvdXJjZShNZWRpYVBsYXllclByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZUxvYWRlcjo6TG9hZE9wdGlvbnMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCByZW1vdmVSZXNvdXJjZShNZWRpYVBsYXllclByaXZh
dGVSZW1vdGVJZGVudGlmaWVyLCBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllcik7CiAKICAg
ICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJSZW1vdGVGYWN0b3J5OwogICAgIHZvaWQgZ2V0U3Vw
cG9ydGVkVHlwZXMoV2ViQ29yZTo6TWVkaWFQbGF5ZXJFbnVtczo6TWVkaWFFbmdpbmVJZGVudGlm
aWVyLCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVBsYXll
ck1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCBkMzFlMDVmYWE0MDEy
YTNkNWUzYTczNjhiN2M4ZjdjOTZkNmQ0ZmYwLi4xODBmMjYzMjM2M2Y1MDZkZWJjMmExZTg3MzY5
NmFmYzllN2Y2NzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAjIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotI2lmIEVOQUJMRShWSURFTykKKyNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZU1lZGlhUGxheWVyTWFuYWdlciBOb3RSZWZDb3Vu
dGVkIHsKICAgICBOZXR3b3JrU3RhdGVDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgc3RydWN0IFdlYktpdDo6UmVtb3RlTWVkaWFQbGF5ZXJTdGF0
ZSBzdGF0ZSkKQEAgLTM1LDYgKzM1LDkgQEAgbWVzc2FnZXMgLT4gUmVtb3RlTWVkaWFQbGF5ZXJN
YW5hZ2VyIE5vdFJlZkNvdW50ZWQgewogICAgIEVuZ2luZUZhaWxlZFRvTG9hZChXZWJLaXQ6Ok1l
ZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWQsIGludCBwbGF0Zm9ybUVycm9yQ29k
ZSkKICAgICBVcGRhdGVDYWNoZWRTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJlbW90
ZUlkZW50aWZpZXIgaWQsIHN0cnVjdCBXZWJLaXQ6OlJlbW90ZU1lZGlhUGxheWVyU3RhdGUgc3Rh
dGUpCiAgICAgQ2hhcmFjdGVyaXN0aWNDaGFuZ2VkKFdlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZCwgYm9vbCBoYXNBdWRpbywgYm9vbCBoYXNWaWRlbywgZW51bTp1
aW50OF90IFdlYkNvcmU6Ok1lZGlhUGxheWVyRW51bXM6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2Fk
VHlwZSkKKworICAgIFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0ZVJl
bW90ZUlkZW50aWZpZXIgbWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgV2ViS2l0
OjpSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllciByZW1vdGVNZWRpYVJlc291cmNlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIGVudW06dWludDhfdCBXZWJD
b3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2VMb2FkZXI6OkxvYWRPcHRpb25zIG9wdGlvbnMpIC0+
ICgpIEFzeW5jCisgICAgUmVtb3ZlUmVzb3VyY2UoV2ViS2l0OjpNZWRpYVBsYXllclByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIG1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIsIFdlYktp
dDo6UmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZpZXIgcmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50
aWZpZXIpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVNZWRpYVJlc291cmNlUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjkwOTZlMjUwMGE4YTMzZjdlMzU2ZDJiM2NlZjk0NDk4N2RkMDc3ZDkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eS5jcHAKQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlUHJveHkuaCIKKworI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKKworI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OlJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYgcGxhdGZvcm1NZWRpYVJlc291cmNlLCBSZW1vdGVN
ZWRpYVJlc291cmNlSWRlbnRpZmllciBpZCkKKyAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNv
bm5lY3Rpb24pKQorICAgICwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UocGxhdGZvcm1NZWRpYVJl
c291cmNlKQorICAgICwgbV9pZChpZCkKK3sKK30KKworUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5
Ojp+UmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5KCkKK3sKK30KKwordm9pZCBSZW1vdGVNZWRpYVJl
c291cmNlUHJveHk6OnJlc3BvbnNlUmVjZWl2ZWQoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291
cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6U2hvdWxkQ29udGludWUpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6UmVzcG9uc2VSZWNlaXZl
ZChtX2lkLCByZXNwb25zZSwgbV9wbGF0Zm9ybU1lZGlhUmVzb3VyY2UuZGlkUGFzc0FjY2Vzc0Nv
bnRyb2xDaGVjaygpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKGF1dG8gc2hvdWxkQ29udGludWUpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihzaG91bGRDb250aW51ZSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUmVtb3RlTWVkaWFS
ZXNvdXJjZVByb3h5OjpyZWRpcmVjdFJlY2VpdmVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNv
dXJjZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2Nv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXI6OlJlZGlyZWN0UmVjZWl2ZWQobV9pZCwgcmVxdWVzdCwgcmVzcG9uc2UpLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIHJlcXVl
c3QpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVlc3Qp
KTsKKyAgICB9KTsKK30KKworYm9vbCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OnNob3VsZENh
Y2hlUmVzcG9uc2UoV2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgLy8gVE9ETzogbmVlZCB0byBjaGVjayBXZWJD
b3JlTlNVUkxTZXNzaW9uRGF0YVRhc2tDbGllbnQ6OnNob3VsZENhY2hlUmVzcG9uc2UoKQorICAg
IHJldHVybiBmYWxzZTsKK30KKwordm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFT
ZW50KFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZyBi
eXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpCit7CisgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlcjo6
RGF0YVNlbnQobV9pZCwgYnl0ZXNTZW50LCB0b3RhbEJ5dGVzVG9CZVNlbnQpLCAwKTsKK30KKwor
dm9pZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0
Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQoreworICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXI6
OkRhdGFSZWNlaXZlZChtX2lkLCBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oZGF0YSksIGxlbmd0aCkpLCAwKTsKK30KKwordm9pZCBSZW1vdGVNZWRp
YVJlc291cmNlUHJveHk6OmFjY2Vzc0NvbnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9y
bU1lZGlhUmVzb3VyY2UmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sK
KyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUmVzb3VyY2VNYW5h
Z2VyOjpBY2Nlc3NDb250cm9sQ2hlY2tGYWlsZWQobV9pZCwgZXJyb3IpLCAwKTsKK30KKwordm9p
ZCBSZW1vdGVNZWRpYVJlc291cmNlUHJveHk6OmxvYWRGYWlsZWQoV2ViQ29yZTo6UGxhdGZvcm1N
ZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCit7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdl
cjo6TG9hZEZhaWxlZChtX2lkLCBlcnJvciksIDApOworfQorCit2b2lkIFJlbW90ZU1lZGlhUmVz
b3VyY2VQcm94eTo6bG9hZEZpbmlzaGVkKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYp
Cit7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlcjo6TG9hZEZpbmlzaGVkKG1faWQpLCAwKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlTWVkaWFSZXNv
dXJjZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2Y2RmOTZhYjIwMDNkNzgxMGZlZGQxOWFk
MDU3MGY2MDEzMDQ3OTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL21lZGlhL1JlbW90ZU1lZGlhUmVzb3VyY2VQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKwor
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVNZWRpYVJlc291cmNlSWRl
bnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1NZWRpYVJlc291cmNlTG9hZGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qb2xpY3lDaGVja2VyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBSZW1v
dGVNZWRpYVJlc291cmNlUHJveHkgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1NZWRp
YVJlc291cmNlQ2xpZW50IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBSZW1vdGVNZWRpYVJlc291cmNlUHJveHkoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgUmVtb3RlTWVkaWFSZXNvdXJjZUlkZW50aWZp
ZXIpOworICAgIH5SZW1vdGVNZWRpYVJlc291cmNlUHJveHkoKTsKKworcHJpdmF0ZToKKyAgICAv
LyBQbGF0Zm9ybU1lZGlhUmVzb3VyY2VDbGllbnQKKyAgICB2b2lkIHJlc3BvbnNlUmVjZWl2ZWQo
V2ViQ29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UG9saWN5Q2hlY2tlcjo6
U2hvdWxkQ29udGludWUpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZGlyZWN0UmVjZWl2ZWQoV2Vi
Q29yZTo6UGxhdGZvcm1NZWRpYVJlc291cmNlJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmKT4mJikgZmluYWw7CisgICAgYm9vbCBzaG91bGRD
YWNoZVJlc3BvbnNlKFdlYkNvcmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFTZW50KFdlYkNvcmU6
OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIHVuc2lnbmVkIGxvbmcgbG9uZywgdW5zaWduZWQgbG9u
ZyBsb25nKSBmaW5hbDsKKyAgICB2b2lkIGRhdGFSZWNlaXZlZChXZWJDb3JlOjpQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2UmLCBjb25zdCBjaGFyKiwgaW50KSBmaW5hbDsKKyAgICB2b2lkIGFjY2Vzc0Nv
bnRyb2xDaGVja0ZhaWxlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgdm9pZCBsb2FkRmFpbGVkKFdlYkNv
cmU6OlBsYXRmb3JtTWVkaWFSZXNvdXJjZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KSBmaW5hbDsKKyAgICB2b2lkIGxvYWRGaW5pc2hlZChXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVz
b3VyY2UmKSBmaW5hbDsKKworICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
KyAgICBXZWJDb3JlOjpQbGF0Zm9ybU1lZGlhUmVzb3VyY2UmIG1fcGxhdGZvcm1NZWRpYVJlc291
cmNlOworICAgIFJlbW90ZU1lZGlhUmVzb3VyY2VJZGVudGlmaWVyIG1faWQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjkwM2Y1NjAwNjQwZWY2NDM5Njc1
OGMyOWM1ZmFhZDEyY2M1ZjIzMC4uMDM4N2E1Y2MyN2U5NDA2MmYyNDQxMWZmYzIxODgyMzcyOGU5
ZjdkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE5LTEyLTMxICBQZW5nIExpdSAgPHBlbmcu
bGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHJlbW90ZSBtZWRpYSByZXNvdXJjZSBsb2Fk
ZXIgZm9yIHRoZSBHUFUgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA1Mzc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxl
dC4KKworICAgICAgICAqIGdwdS1wcm9jZXNzL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
bWVkaWEvYXVkaW8tcGxheS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL2F1
ZGlvLXBsYXktd2l0aC12aWRlby1lbGVtZW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogbWVkaWEvYXVkaW8tcGxheS5odG1sOiBBZGRlZC4KKwogMjAxOS0xMi0zMSAgeW91ZW5u
IGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFJUQyBWVEIg
ZGVjb2RlcnMgaW4gR1BVUHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZ3B1LXByb2Nl
c3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL2dwdS1wcm9jZXNzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggNDc1ZmEyODMyZTZhODRmOWRlZDE3MTZkM2ExMThjMDg2ZDg2YWU0Ny4uZjRj
ZGEzZDU4Y2NmMjZhZDc1MzkwOTBhZDM4Y2EyZGExMDlhZWRhYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZ3B1LXByb2Nlc3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9ncHUt
cHJvY2Vzcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzksNiArMTc5LDExIEBAIGxlZ2FjeS1hbmlt
YXRpb24tZW5naW5lL2ltcG9ydGVkL2JsaW5rL2NvbXBvc2l0aW5nL3NxdWFzaGluZy9yZW1vdmUt
ZnJvbS1ncm91cGVkCiBpbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1jb21wb3NpdGluZy1yZWFzb25z
Lmh0bWwgWyBTa2lwIF0KIAogbWVkaWEgWyBTa2lwIF0KK21lZGlhL3ZpZGVvLXNyYy5odG1sIFsg
UGFzcyBdCittZWRpYS9tZWRpYS1jYW4tcGxheS1tcGVnLWF1ZGlvLmh0bWwgWyBQYXNzIF0KK21l
ZGlhL21lZGlhLWNhbi1wbGF5LXdhdi1hdWRpby5odG1sIFsgUGFzcyBdCittZWRpYS9hdWRpby1w
bGF5LXdpdGgtdmlkZW8tZWxlbWVudC5odG1sIFsgUGFzcyBdCittZWRpYS9hdWRpby1wbGF5Lmh0
bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvbWVkaWEtZWxlbWVudC5odG1sIFsgU2tpcCBdCiBm
YXN0L2Jsb2NrL2Zsb2F0L2xpc3QtbWFya2VyLWlzLWZsb2F0LWNyYXNoLmh0bWwgWyBTa2lwIF0K
IGZhc3QvY3NzL3JlbGF0aXZlLXBvc2l0aW9uLXJlcGxhY2VkLWluLXRhYmxlLWRpc3BsYXktY3Jh
c2guaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxh
eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43MjVkOTE1NTRmMzU2NTcxMmRiOTEzNmYxN2YxMjY5YjUxYjFjNDdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitUZXN0IHRoYXQgYSAncGxheScgZXZlbnQgaXMgZmlyZWQgd2hl
biBhbiBhdWRpbyBlbGVtZW50IHBsYXlzLgorCitSVU4obWVkaWFFbGVtZW50LnNyYyA9IGZpbmRN
ZWRpYUZpbGUoJ2F1ZGlvJywgJ2NvbnRlbnQvdGVzdCcpKQorUlVOKG1lZGlhRWxlbWVudC5wbGF5
KCkpCitFVkVOVChwbGF5KQorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13aXRoLXZpZGVvLWVsZW1lbnQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk1Y2ZkN2VjZGJkNzJiMDc2YTA5OGQ2N2Y1NWM2NTQwNzdhZDQxNDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5LXdpdGgtdmlkZW8tZWxl
bWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdCB0aGF0IGNhbGxpbmcgcGxh
eSgpIGFuZCBwYXVzZSgpIG9uIGEgdmlkZW8gZWxlbWVudCB3aXRoIGF1ZGlvIHNvdXJjZSB0cmln
Z2VycyBwbGF5IGFuZCBwYXVzZSBldmVudHMuCisKKworUlVOKHZpZGVvLnNyYyA9IGZpbmRNZWRp
YUZpbGUoImF1ZGlvIiwgImNvbnRlbnQvc2lsZW5jZSIpKQorUlVOKGhhbmRsZVByb21pc2Uodmlk
ZW8ucGxheSgpKSkKK1JVTih2aWRlby5wYXVzZSgpKQorRVZFTlQocGxheSkKK0VWRU5UKHdhaXRp
bmcpCitFVkVOVChwYXVzZSkKK0VYUEVDVEVEICh2aWRlby5wYXVzZWQgPT0gJ3RydWUnKSBPSwor
RU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvYXVkaW8tcGxheS13
aXRoLXZpZGVvLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXktd2l0
aC12aWRlby1lbGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFkODU3YmI0MTdkZTA0YThjOTBmMDJj
ZTZkNDgxOTIwZTBhMjQ5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2F1
ZGlvLXBsYXktd2l0aC12aWRlby1lbGVtZW50Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGZpbmRNZWRpYUVsZW1l
bnQoKTsKKyAgICAgICAgcnVuKCd2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJhdWRpbyIsICJj
b250ZW50L3NpbGVuY2UiKScpOworCisgICAgICAgIHdhaXRGb3JFdmVudCgibG9hZHN0YXJ0Iik7
CisgICAgICAgIHdhaXRGb3JFdmVudCgicmF0ZWNoYW5nZSIpOworICAgICAgICB3YWl0Rm9yRXZl
bnQoIndhaXRpbmciKTsKKyAgICAgICAgd2FpdEZvckV2ZW50KCJyYXRlY2hhbmdlIik7CisgICAg
ICAgIHdhaXRGb3JFdmVudCgiZHVyYXRpb25jaGFuZ2UiKTsKKyAgICAgICAgd2FpdEZvckV2ZW50
KCJsb2FkZWRtZXRhZGF0YSIpOworICAgICAgICB3YWl0Rm9yRXZlbnQoImxvYWRlZGRhdGEiKTsK
KyAgICAgICAgd2FpdEZvckV2ZW50KCJjYW5wbGF5Iik7CisgICAgICAgIHdhaXRGb3JFdmVudCgi
Y2FucGxheXRocm91Z2giKTsKKyAgICAgICAgd2FpdEZvckV2ZW50KCJwbGF5Iik7CisgICAgICAg
IHdhaXRGb3JFdmVudCgidGltZXVwZGF0ZSIpOworICAgICAgICB3YWl0Rm9yRXZlbnQoJ3BhdXNl
JywgZnVuY3Rpb24gKCkgeyB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIHRydWUpOyBlbmRU
ZXN0KCk7IH0gKTsKKworICAgICAgICBydW4oImhhbmRsZVByb21pc2UodmlkZW8ucGxheSgpKSIp
OworICAgICAgICBydW4oInZpZGVvLnBhdXNlKCkiKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8
L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0IHRoYXQgY2Fs
bGluZyBwbGF5KCkgYW5kIHBhdXNlKCkgb24gYSB2aWRlbyBlbGVtZW50IHdpdGggYXVkaW8gc291
cmNlIHRyaWdnZXJzIHBsYXkgYW5kIHBhdXNlIGV2ZW50cy48L3A+CisgICAgPHZpZGVvIGNvbnRy
b2xzPjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS9hdWRpby1wbGF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9hdWRpby1wbGF5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjI1Y2MyOTQ4NDU4YTAzOTMzYjNjNzkwYzgzYTUyN2UyY2ZlOWE3OAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL2F1ZGlvLXBsYXkuaHRtbApAQCAtMCww
ICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPidw
bGF5JyBldmVudDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorCisgICAgPHNjcmlw
dD4KKyAgICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgICAgICBtZWRpYUVsZW1lbnQg
PSBuZXcgQXVkaW8oKTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnbG9hZGVkbWV0YWRhdGEn
KTsKKyAgICAgICAgICAgIHdhaXRGb3JFdmVudCgncGxheScsIGZ1bmN0aW9uKCkgeyBlbmRUZXN0
KCk7IH0pOworICAgICAgICAgICAgcnVuKCJtZWRpYUVsZW1lbnQuc3JjID0gZmluZE1lZGlhRmls
ZSgnYXVkaW8nLCAnY29udGVudC90ZXN0JykiKTsKKyAgICAgICAgICAgIHJ1bigibWVkaWFFbGVt
ZW50LnBsYXkoKSIpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5
IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPHA+VGVzdCB0aGF0IGEgJ3BsYXknIGV2ZW50IGlzIGZp
cmVkIHdoZW4gYW4gYXVkaW8gZWxlbWVudCBwbGF5cy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>