<?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>194651</bug_id>
          
          <creation_ts>2019-02-14 07:53:40 -0800</creation_ts>
          <short_desc>Make ServiceWorkerClientFetch closer to WebResourceLoader</short_desc>
          <delta_ts>2019-02-15 13:18:54 -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>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>194716</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1506147</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-14 07:53:40 -0800</bug_when>
    <thetext>Now that service worker registrations are in the network process, we could consider serve service worker content through the regular network process loading code path.
The first step is to make ServiceWorkerClientFetch closer to WebResourceLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506157</commentid>
    <comment_count>1</comment_count>
      <attachid>362019</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-14 08:33:10 -0800</bug_when>
    <thetext>Created attachment 362019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506393</commentid>
    <comment_count>2</comment_count>
      <attachid>362067</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-14 15:02:53 -0800</bug_when>
    <thetext>Created attachment 362067
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506640</commentid>
    <comment_count>3</comment_count>
      <attachid>362067</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-15 10:49:12 -0800</bug_when>
    <thetext>Comment on attachment 362067
Patch

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

&gt; Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:220
&gt; +    }, WorkerRunLoop::defaultMode());

Could we make this a default parameter?

&gt; Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.h:65
&gt; +    void didReceiveRedirectResponse(WebCore::ResourceResponse&amp;&amp;);

Do we want to just inform that a redirect happened, or will we in the future have a need for the service worker to be able to reject the redirect?

&gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:201
&gt; +        auto formData = WTFMove(m_formData);
&gt; +        didReceiveFormDataAndFinish(formData.releaseNonNull());

Could we just call m_formData.releaseNonNull() without WTFMove?

&gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:86
&gt; +    RefPtr&lt;WebCore::SharedBuffer&gt; m_buffer;
&gt; +    RefPtr&lt;FormData&gt; m_formData;

Can these be a Variant, or could we have more than one of these?

&gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:88
&gt; +    Optional&lt;ResourceError&gt; m_error;

Making this a std::unique_ptr would save memory in the common case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506698</commentid>
    <comment_count>4</comment_count>
      <attachid>362140</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-15 11:54:49 -0800</bug_when>
    <thetext>Created attachment 362140
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506699</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-15 11:56:39 -0800</bug_when>
    <thetext>
Thanks for the review.

(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 362067 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=362067&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/context/ServiceWorkerThreadProxy.cpp:220
&gt; &gt; +    }, WorkerRunLoop::defaultMode());
&gt; 
&gt; Could we make this a default parameter?

Sure, could be done as a separate patch.

&gt; &gt; Source/WebKit/WebProcess/Storage/ServiceWorkerClientFetch.h:65
&gt; &gt; +    void didReceiveRedirectResponse(WebCore::ResourceResponse&amp;&amp;);
&gt; 
&gt; Do we want to just inform that a redirect happened, or will we in the future
&gt; have a need for the service worker to be able to reject the redirect?

When fetch event respondWith is called, there is no way back.
A DocumentLoader may trigger another service worker fetch which will be treated as another fetch event.

&gt; &gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:201
&gt; &gt; +        auto formData = WTFMove(m_formData);
&gt; &gt; +        didReceiveFormDataAndFinish(formData.releaseNonNull());
&gt; 
&gt; Could we just call m_formData.releaseNonNull() without WTFMove?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:86
&gt; &gt; +    RefPtr&lt;WebCore::SharedBuffer&gt; m_buffer;
&gt; &gt; +    RefPtr&lt;FormData&gt; m_formData;
&gt; 
&gt; Can these be a Variant, or could we have more than one of these?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:88
&gt; &gt; +    Optional&lt;ResourceError&gt; m_error;
&gt; 
&gt; Making this a std::unique_ptr would save memory in the common case.

I updated the patch to make all of these a Variant with proper Ref&lt;&gt;, UniqueRef&lt;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506712</commentid>
    <comment_count>6</comment_count>
      <attachid>362140</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-15 12:25:08 -0800</bug_when>
    <thetext>Comment on attachment 362140
Patch for landing

Clearing flags on attachment: 362140

Committed r241603: &lt;https://trac.webkit.org/changeset/241603&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506713</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-15 12:25:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506714</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-15 12:26:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/48120172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506716</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-15 12:42:36 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506717</commentid>
    <comment_count>10</comment_count>
      <attachid>362146</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-15 12:42:37 -0800</bug_when>
    <thetext>Created attachment 362146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506731</commentid>
    <comment_count>11</comment_count>
      <attachid>362146</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-15 13:18:52 -0800</bug_when>
    <thetext>Comment on attachment 362146
Patch

Clearing flags on attachment: 362146

Committed r241609: &lt;https://trac.webkit.org/changeset/241609&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1506732</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-15 13:18:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362019</attachid>
            <date>2019-02-14 08:33:10 -0800</date>
            <delta_ts>2019-02-14 15:02:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194651-20190214083309.patch</filename>
            <type>text/plain</type>
            <size>52521</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM4M2NiYzg5YTY3Yjk3
OWVjNTI1YzZkZGExOWQ4YzlmZjI1NTU0MC4uMjJhNGI5NDY5MWY3NmQ4OGVjYjZkZjgyZGZjZGZh
MGQ5NWFjZTY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaCBjbG9zZXIgdG8gV2ViUmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoZWNrIGZvciByZWRpcmVjdGlvbiBy
ZXNwb25zZSBhbmQgaWYgc28gY2FsbCBhIHNwZWNpZmljIGNsaWVudCBBUEkuCisgICAgICAgIEVu
c3VyZSBTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudCBnZXRzIGNhbGxlZCBpbiB0aGUgc2Vydmlj
ZSB3b3JrZXIgdGhyZWFkIHByb3h5CisgICAgICAgIHNvIHRoYXQgaXRzIG1fY29ubmVjdGlvbiBp
cyBvbmx5IGFjY2Vzc2VkIG9uIHRoYXQgdGhyZWFkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2g6OnByb2Nlc3NSZXNwb25zZSk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y2FuY2VsRmV0Y2gp
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb250aW51ZURp
ZFJlY2VpdmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAxOS0wMi0xMyAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4gYW5kIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIGdldFVzZXJNZWRpYSB3aXRoIGFuIGlkZWFsIGRldmljZUlkIGNv
bnN0cmFpbnQgZG9lc24ndCBhbHdheXMgc2VsZWN0IHRoZSBjb3JyZWN0IGRldmljZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA0Yjk3YzBmZjhiODczMGU5ZjIwN2I3ZjdlYWYxY2ZiMjVkNDIyYTUxLi42NTI4MmZhMWMx
NmQwMGYzMjVlOWQyMTY2MTI5NjgwYjA0NGJhOGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBA
CisyMDE5LTAyLTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaCBjbG9zZXIgdG8gV2ViUmVzb3VyY2VMb2Fk
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY1
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBn
b2FsIG9mIHRoaXMgcmVmYWN0b3JpbmcgaXMgdG8sIGF0IHNvbWUgcG9pbnQgdXNlIHRoZSByZWd1
bGFyIG5ldHdvcmsgcHJvY2VzcyBsb2FkIHBhdGggZm9yIHNlcnZpY2Ugd29ya2VyIGxvYWRzLgor
ICAgICAgICBUaGlzIHNob3VsZCBzaW1wbGlmeSB0aGluZ3MgYW5kIGFsbG93IGxlc3MgSVBDIGV4
Y2hhbmdlcywgZm9yIGluc3RhbmNlIGluIHRoZSBjYXNlIG9mIGZldGNoIG5vdCBoYW5kbGVkIGJ5
IHNlcnZpY2Ugd29ya2VyLgorCisgICAgICAgIEludHJvZHVjZSB0d28gSVBDIG1lc3NhZ2VzIGZv
ciBzdXBwb3J0aW5nIHJlZGlyZWN0IHJlc3BvbnNlcyBhbmQgYWxsb3cgdGhlIGRpZFJlY2VpdmVS
ZXNwb25zZS9jb250aW51ZURpZFJlY2VpdmVSZXNwb25zZQorICAgICAgICBoYW5kc2hha2UgZm9y
IG5hdmlnYXRpb24gbG9hZHMuCisKKyAgICAgICAgVGhpcyBtYWtlcyBTZXJ2aWNlV29ya2VyIGhh
dmluZyB0byBidWZmZXIgbG9hZCBpbmZvcm1hdGlvbiBmb3IgdGhpcyBwYXJ0aWN1bGFyIGNhc2Uu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtl
ckNsaWVudEZldGNoLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNsaWVudEZl
dGNoOjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6
ZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29y
a2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6
OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkRmFpbCk6CisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkTm90SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6
U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpjYW5jZWwpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
U3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0RmV0Y2gpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OmNhbmNlbEZldGNoKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNl
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVSZWRpcmVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRp
ZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZp
bmlzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOgorCiAyMDE5LTAyLTEzICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXggLVdm
b3JtYXQgd2FybmluZyBmcm9tIHIyNDE0MDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvRm9ybURhdGEuaAppbmRleCAzYjUwZTczMzgxMmU1NWUyODRkYjY3NzdjYjMzOGUyYTE3ZTY2
NjEzLi5jMDBhMTk5ODY2Mjg5N2E3OGI4MTZlNmY1MGYzNDMyNTE0ZDU5YzkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5oCkBAIC0yMTAsNyArMjEwLDcgQEAg
cHVibGljOgogICAgIC8vIEZJWE1FOiBCb3RoIHRoZXNlIGZ1bmN0aW9ucyBwZXJmb3JtIGEgZGVl
cCBjb3B5IG9mIG1fZWxlbWVudHMsIGJ1dCBkaWZmZXIgaW4gaGFuZGxpbmcgb2Ygb3RoZXIgZGF0
YSBtZW1iZXJzLgogICAgIC8vIEhvdyBtdWNoIG9mIHRoYXQgaXMgaW50ZW50aW9uYWw/IFdlIG5l
ZWQgYmV0dGVyIG5hbWVzIHRoYXQgZXhwbGFpbiB0aGUgZGlmZmVyZW5jZS4KICAgICBSZWY8Rm9y
bURhdGE+IGNvcHkoKSBjb25zdDsKLSAgICBSZWY8Rm9ybURhdGE+IGlzb2xhdGVkQ29weSgpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxGb3JtRGF0YT4gaXNvbGF0ZWRDb3B5KCkgY29u
c3Q7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVyPgogICAgIHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VFcnJvckJhc2UuaAppbmRleCBlMGJmMDRiOGFjOGYwMGIzOTM5NzkxZWJmZDAwODdl
Y2I5MGRiNzk5Li5hOTg0M2Y1MGU1YTQzNDAzZDhmNTJmMGE5NjdmOTAyNzg2NWU4ZDU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFz
ZS5oCkBAIC0zOCw3ICszOCw3IEBAIFdFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBj
b25zdCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQKIAogY2xhc3MgUmVz
b3VyY2VFcnJvckJhc2UgewogcHVibGljOgotICAgIFJlc291cmNlRXJyb3IgaXNvbGF0ZWRDb3B5
KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVzb3VyY2VFcnJvciBpc29sYXRlZENvcHko
KSBjb25zdDsKIAogICAgIGNvbnN0IFN0cmluZyYgZG9tYWluKCkgY29uc3QgeyBsYXp5SW5pdCgp
OyByZXR1cm4gbV9kb21haW47IH0KICAgICBpbnQgZXJyb3JDb2RlKCkgY29uc3QgeyBsYXp5SW5p
dCgpOyByZXR1cm4gbV9lcnJvckNvZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCmluZGV4
IGY2Mjk1OWQ4MGRhNTI2YzU2ZTQxYzJkYzc2ODdiYTMxNjM2OGY4ZTYuLjFlNjhhOThlOWVhNzY3
MDk1YjA5ZDU0NGY5OWU2NDYzMjQ1OGMxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcApA
QCAtNTEsNyArNTEsMTMgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc1Jlc3BvbnNlKFJlZjxDbGllbnQ+
JiYgY2xpZW50LCBFeHBlY3RlZDxSZWY8RmV0Y2hSZXNwb25zZT4sIFIKICAgICB9CiAgICAgYXV0
byByZXNwb25zZSA9IFdURk1vdmUocmVzdWx0LnZhbHVlKCkpOwogCi0gICAgY2xpZW50LT5kaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UtPnJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgYXV0byBy
ZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2UtPnJlc291cmNlUmVzcG9uc2UoKTsKKyAgICBpZiAo
cmVzb3VyY2VSZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkgJiYgcmVzb3VyY2VSZXNwb25zZS5odHRw
SGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRlck5hbWU6OkxvY2F0aW9uKSkgeworICAg
ICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZWRpcmVjdGlvbihyZXNvdXJjZVJlc3BvbnNlKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJl
c291cmNlUmVzcG9uc2UpOwogCiAgICAgYXV0byBsb2FkaW5nRXJyb3IgPSByZXNwb25zZS0+bG9h
ZGluZ0Vycm9yKCk7CiAgICAgaWYgKCFsb2FkaW5nRXJyb3IuaXNOdWxsKCkpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJG
ZXRjaC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckZldGNoLmgKaW5kZXggMDk4MzQyNTE1OWQ3MzFjN2I0ZDBkMzI0Nzg5MjUzYmE0N2M0ODZk
MS4uMzE1NWQ1NmU5ZmQ2ZTkyYmQ2MjA4MGE3NmE0NzQ1YjM4N2VhNDkxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNo
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlckZldGNoLmgKQEAgLTQ0LDEwICs0NCwxMSBAQCBjbGFzcyBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiAKIG5hbWVzcGFjZSBTZXJ2aWNlV29ya2VyRmV0
Y2ggewotY2xhc3MgQ2xpZW50IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENsaWVudD4g
eworY2xhc3MgQ2xpZW50IDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPENsaWVudCwgV1RG
OjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4gewogcHVibGljOgogICAgIHZpcnR1YWwgfkNsaWVu
dCgpID0gZGVmYXVsdDsKIAorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3Rpb24o
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFJlZjxTaGFyZWRCdWZmZXI+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mJikgPSAwOwpAQCAt
NTUsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaCgpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWwoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
KCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiwgT3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXI+LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9u
cyYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IGZlOGU1M2Zl
N2ZhNGZlNmVkMTE1YTIzMjdlMmJlYjJjZGEwYzllOTMuLmY2ZmM4YmVhYzdiNDk5ODk3NmJhOWQ3
YzZkZjEwNTA5OWQxMjlhZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNw
cApAQCAtMjAwLDggKzIwMCwyNCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c3Rh
cnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3RpbwogCiB2b2lkIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllcikKIHsKLSAgICBpZiAoYXV0byBjbGllbnQgPSBtX29uZ29pbmdGZXRjaFRhc2tzLnRha2Uo
c3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcikpKQot
ICAgICAgICBjbGllbnQudmFsdWUoKS0+Y2FuY2VsKCk7CisgICAgYXV0byBjbGllbnQgPSBtX29u
Z29pbmdGZXRjaFRhc2tzLnRha2Uoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIs
IGZldGNoSWRlbnRpZmllcikpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFtjbGllbnQgPSBXVEZNb3Zl
KGNsaWVudC52YWx1ZSgpKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgIGNs
aWVudC0+Y2FuY2VsKCk7CisgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb250aW51ZURpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit7CisgICAgYXV0byBjbGllbnQg
PSBtX29uZ29pbmdGZXRjaFRhc2tzLmdldChzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRp
ZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVy
bjsKKworICAgIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW2NsaWVudCA9IG1h
a2VSZWYoKmNsaWVudCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAgICBjbGll
bnQtPmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCk7CisgICAgfSwgV29ya2VyUnVuTG9vcDo6
ZGVmYXVsdE1vZGUoKSk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpyZW1v
dmVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVy
LCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaAppbmRleCBlNWZmYTkzNjIwYTIwNjZmOGZkZjQzOGVkMjcyZjlkMDQ0N2VlMzBj
Li5mNDZjZmQxNDc4YWVhMjc0ZDIxOTAzNjIzMjM1YzM2M2QzMjNmZDg3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIE9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3Qm
JiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAzY2VmNmE1NzRhMGVi
ODgzZmRkYWQ0ODA4NmZkZTBhM2ExYzEzMzkyLi42MDI0ZGQ3ZTA5ZjVmMmE5MTIwNzQyNTYwNWNk
NDA1ODhjNmFmYTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcApAQCAtMjE3MCwxMCArMjE3MCwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjpkaWROb3RIYW5kbGVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lYwogICAgICAgICBjb25uZWN0aW9uLT5kaWROb3RIYW5kbGVGZXRjaChmZXRjaElkZW50aWZp
ZXIpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJl
ZGlyZWN0UmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5l
Y3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKSkKLSAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoZmV0Y2hJ
ZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRj
aFJlZGlyZWN0UmVzcG9uc2UoZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSk7Cit9CisKK3ZvaWQg
TmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNl
LCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQoreworICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJl
c3BvbnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZl
dGNoRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNGFlNGM2NjVkMzgxMzRm
MDBkY2M3NDhkNTY4ZWRiYWNmMzcwYTYzYi4uMzk5MWJjZDFiYWViODJlYjhiN2U0YWJlNTQyZDM2
M2MzMGY4NGQ3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaApAQCAtNDAzLDcgKzQwMyw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZvaWQgZGlkUmVjZWl2
ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZU1lc3NhZ2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwogICAg
IHZvaWQgZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJik7CiAgICAgdm9pZCBkaWRGaW5pc2hGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggZmM2NWEyNzg4OTlkYTIwYmRlNzI3ODE1MDdjOGYxNTM3ZWFkYmU5MC4uMWY2YjIy
YmMxOWRiODQwZjBiYjliM2ZmZjY5ZDFlMTMyY2M1ZGQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0x
NDksNyArMTQ5LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBEaWROb3RIYW5kbGVGZXRjaChXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogICAgIERpZEZh
aWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQotICAgIERpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAgRGlkUmVjZWl2ZUZldGNoUmVk
aXJlY3RSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIERpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElk
ZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UsIGJvb2wgbmVlZHND
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiAgICAgRGlkUmVjZWl2ZUZldGNoRGF0
YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6
OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0
aCkKICAgICBEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIGRhdGEpCiAg
ICAgRGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXgg
YjM3NWM2ZjEzZjMyODFjNjAzZWRmZTEyNjY3NGJhNzYxNzY0YTRlOS4uNWFhYzdmZDlkZDA5MjBl
YjZmOGU1NmFmOGY5MDE4MGM3ODQ4YTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAKQEAgLTEzOSw2ICsxMzksMTkgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OmNhbmNlbEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnYK
ICAgICB9KTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNvbnRpbnVlRGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElk
ZW50aWZpZXIpCit7CisgICAgYXV0byogd29ya2VyID0gc2VydmVyKCkuYWN0aXZlV29ya2VyRnJv
bVJlZ2lzdHJhdGlvbklEKHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAg
ICBpZiAoIXdvcmtlciB8fCAhd29ya2VyLT5pc1J1bm5pbmcoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHdvcmtlci0+aWRlbnRpZmllcigp
OworICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyksIHRoaXMsIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXJdKGF1dG8qIGNvbnRleHRDb25uZWN0aW9u
KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzICYmIGNvbnRleHRDb25uZWN0aW9uKQor
ICAgICAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoKmNvbnRleHRDb25uZWN0aW9uLCBNZXNz
YWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UgeyB0aGlzLT5pZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIgfSk7CisgICAgfSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRp
b25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgZm9ybURhdGEsIFN0cmluZyYmIHJlZmVycmVy
KQogewogICAgIGF1dG8qIHdvcmtlciA9IHNlcnZlcigpLmFjdGl2ZVdvcmtlckZyb21SZWdpc3Ry
YXRpb25JRChzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CkBAIC0yMzAsOSAr
MjQzLDE0IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVy
KFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICBzZXJ2ZXIoKS5zY2hlZHVsZUpv
YihXVEZNb3ZlKGpvYkRhdGEpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRp
ZFJlY2VpdmVGZXRjaFJlc3BvbnNlKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OmRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgbV9j
b250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNo
OjpEaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKK30KKwordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2VNZXNzYWdlKQogewotICAgIG1fY29udGVudENvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6
OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2Ug
fSwgZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIG1fY29udGVudENvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVjZWl2ZVJlc3Bv
bnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0s
IGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmRpZFJlY2VpdmVGZXRjaERhdGEoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
ciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVu
Z3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IGU5NmRhMjA4ZGNm
YWI5NGEyYmYwNDExNzNhZGQwOWZlZDQ4ODZlODUuLjJiNGFlZTYzYjU0YWM2OWZkYjRhZGZkN2My
OTFmMTAwMDAxNjVmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAg
LTYzLDcgKzYzLDggQEAgcHVibGljOgogCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIAotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCBuZWVkc0NvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRh
KFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0
YShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
KTsKICAgICB2b2lkIGRpZEZpbmlzaEZldGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CkBA
IC05MSw2ICs5Miw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2goV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYm
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKICAgICB2b2lk
IGNhbmNlbEZldGNoKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRp
b24odWludDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
KTsKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hS
ZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BP
cmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGY3NTQzZmY4Mjk1N2YyNzQ1ZmZiOTNm
YWM1NjRiZTE2YWNkZDE5ODcuLjllMmQ1ZWY4MDYwYTY1MWI2NGNiYTM0MzJhNGUwZjVhNGJmOWQ5
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgpAQCAtMzEsNiArMzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24g
ewogCiAgICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgU3RyaW5nIHJlZmVycmVyKQogICAgIENhbmNlbEZldGNo
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyKQorICAgIENvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIp
CiAKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbiwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIg
c291cmNlKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcAppbmRleCAzMGYwMzIyZmFjYjFhYWI3
NTJjMWFjMzg2NWFmM2MyNGQwYWRiMjdmLi5mMDc0NzNjODU1YmNmMTIxNzI2NWZjODIxNTVjMjkx
Y2RjYjU3MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAKQEAgLTcwLDE3ICs3MCwxMiBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6c3RhcnQoKQogCiAgICAgYXV0byByZWZl
cnJlciA9IHJlcXVlc3QuaHR0cFJlZmVycmVyKCk7CiAKLSAgICBtX2RpZEZhaWwgPSBmYWxzZTsK
LSAgICBtX2RpZEZpbmlzaCA9IGZhbHNlOwotCiAgICAgLy8gV2UgYXJlIGludGVyY2VwdGluZyBm
ZXRjaCBjYWxscyBhZnRlciBnb2luZyB0aHJvdWdoIHRoZSBIVFRQIGxheWVyLCB3aGljaCBtYXkg
YWRkIHNvbWUgc3BlY2lmaWMgaGVhZGVycy4KICAgICBjbGVhbkhUVFBSZXF1ZXN0SGVhZGVyc0Zv
ckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgb3B0aW9ucy5odHRwSGVhZGVyc1RvS2VlcCk7CiAKICAg
ICBBU1NFUlQob3B0aW9ucy5zZXJ2aWNlV29ya2Vyc01vZGUgIT0gU2VydmljZVdvcmtlcnNNb2Rl
OjpOb25lKTsKICAgICBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyID0gb3B0
aW9ucy5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllci52YWx1ZSgpOwogICAgIG1f
Y29ubmVjdGlvbi0+c3RhcnRGZXRjaChtX2lkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIHJlZmVycmVyKTsKLQotICAgIG1f
cmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6Tm9uZTsKIH0KIAogLy8gaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtZmV0Y2ggc3RlcCAzLjMKQEAgLTEwNCw0
MiArOTksNTMgQEAgT3B0aW9uYWw8UmVzb3VyY2VFcnJvcj4gU2VydmljZVdvcmtlckNsaWVudEZl
dGNoOjp2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFJlc291cmMKICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVu
dEZldGNoOjpkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVz
cG9uc2UpCiB7Ci0gICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSB0cnVlOwogICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVzcG9uc2Ug
PSBXVEZNb3ZlKHJlc3BvbnNlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKCFtX2xvYWRlcikg
ewotICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBmYWxzZTsKKyAgICAgICAgaWYg
KCFtX2xvYWRlcikKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQogCiAgICAgICAgIGlm
IChhdXRvIGVycm9yID0gdmFsaWRhdGVSZXNwb25zZShyZXNwb25zZSkpIHsKLSAgICAgICAgICAg
IG1faXNDaGVja2luZ1Jlc3BvbnNlID0gZmFsc2U7CiAgICAgICAgICAgICBtX2xvYWRlci0+ZGlk
RmFpbChlcnJvci52YWx1ZSgpKTsKICAgICAgICAgICAgIEFTU0VSVCghbV9sb2FkZXIpOwogICAg
ICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQogICAgICAg
ICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKKwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAgICAgICAgIHJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3Bv
bnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpOwogCi0gICAgICAgIGlmIChyZXNwb25zZS5pc1Jl
ZGlyZWN0aW9uKCkgJiYgcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpLmNvbnRhaW5zKEhUVFBI
ZWFkZXJOYW1lOjpMb2NhdGlvbikpIHsKLSAgICAgICAgICAgIG1faXNDaGVja2luZ1Jlc3BvbnNl
ID0gZmFsc2U7Ci0gICAgICAgICAgICBjb250aW51ZUxvYWRpbmdBZnRlckNoZWNraW5nUmVzcG9u
c2UoKTsKLSAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1
czo6UmVjZWl2aW5nOwotICAgICAgICAgICAgbV9sb2FkZXItPndpbGxTZW5kUmVxdWVzdChtX2xv
YWRlci0+cmVxdWVzdCgpLnJlZGlyZWN0ZWRSZXF1ZXN0KHJlc3BvbnNlLCBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpLCByZXNwb25zZSwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgdGhpc10oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkgewotICAg
ICAgICAgICAgICAgIGlmIChyZXF1ZXN0LmlzTnVsbCgpIHx8ICFtX2NhbGxiYWNrKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgICAgICAgICBBU1NFUlQocmVxdWVzdCA9
PSBtX2xvYWRlci0+cmVxdWVzdCgpKTsKLSAgICAgICAgICAgICAgICBpZiAobV9yZWRpcmVjdGlv
blN0YXR1cyA9PSBSZWRpcmVjdGlvblN0YXR1czo6UmVjZWl2ZWQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgc3RhcnQoKTsKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25T
dGF0dXM6OkZvbGxvd2luZzsKLSAgICAgICAgICAgIH0pOworICAgICAgICBtX2xvYWRlci0+d2ls
bFNlbmRSZXF1ZXN0KG1fbG9hZGVyLT5yZXF1ZXN0KCkucmVkaXJlY3RlZFJlcXVlc3QocmVzcG9u
c2UsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCksIHJlc3BvbnNl
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB0aGlzXShSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0KSB7CisgICAgICAgICAgICBpZiAoIW1fbG9hZGVyIHx8IHJlcXVlc3QuaXNOdWxs
KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxs
YmFjaykpCisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsK
KyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBBU1NF
UlQocmVxdWVzdCA9PSBtX2xvYWRlci0+cmVxdWVzdCgpKTsKKyAgICAgICAgICAgIHN0YXJ0KCk7
CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKK3sKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlc3BvbnNlID0g
V1RGTW92ZShyZXNwb25zZSksIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
XSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fbG9hZGVyKQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmIChhdXRvIGVycm9yID0gdmFsaWRhdGVSZXNwb25zZShyZXNwb25zZSkp
IHsKKyAgICAgICAgICAgIG1fbG9hZGVyLT5kaWRGYWlsKGVycm9yLnZhbHVlKCkpOworICAgICAg
ICAgICAgQVNTRVJUKCFtX2xvYWRlcik7CisgICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9
IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpT
dWNjZWVkZWQpOworCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgcmVz
cG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcik7
CisgICAgICAgIEFTU0VSVCghcmVzcG9uc2UuaXNSZWRpcmVjdGlvbigpIHx8ICFyZXNwb25zZS5o
dHRwSGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRlck5hbWU6OkxvY2F0aW9uKSk7CisK
KyAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQorICAgICAg
ICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOwogCiAgICAgICAgIC8vIEluIGNhc2Ug
b2YgbWFpbiByZXNvdXJjZSBhbmQgbWltZSB0eXBlIGlzIHRoZSBkZWZhdWx0IG9uZSwgd2Ugc2V0
IGl0IHRvIHRleHQvaHRtbCB0byBwYXNzIG1vcmUgc2VydmljZSB3b3JrZXIgV1BUIHRlc3RzLgog
ICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlZmluZSBvdXIgTUlNRSB0eXBlIHNuaWZmaW5n
IHN0cmF0ZWd5IGZvciBzeW50aGV0aWMgcmVzcG9uc2VzLgpAQCAtMTU0LDExICsxNjAsMTYgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVzcG9uc2UpCiAgICAgICAgIGlmIChyZXNwb25zZS51cmwoKS5pc051bGwo
KSkKICAgICAgICAgICAgIHJlc3BvbnNlLnNldFVSTChtX2xvYWRlci0+cmVxdWVzdCgpLnVybCgp
KTsKIAorICAgICAgICBpZiAoIW5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
KSB7CisgICAgICAgICAgICBtX2xvYWRlci0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlLCBb
XSB7IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKICAgICAgICAgbV9sb2Fk
ZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpXSB7Ci0gICAgICAgICAgICBtX2lzQ2hlY2tpbmdSZXNwb25z
ZSA9IGZhbHNlOwotICAgICAgICAgICAgY29udGludWVMb2FkaW5nQWZ0ZXJDaGVja2luZ1Jlc3Bv
bnNlKCk7Ci0gICAgICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFj
aykpCi0gICAgICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOworICAgICAg
ICAgICAgaWYgKCFtX2xvYWRlcikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIG1fY29ubmVjdGlvbi0+Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShtX2lkZW50
aWZpZXIsIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0KQEAgLTE2NiwyMyArMTc3LDEzIEBAIHZvaWQgU2VydmljZVdvcmtlckNs
aWVudEZldGNoOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNl
KQogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0
aCkKIHsKICAgICBhdXRvKiBkYXRhID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0
YVJlZmVyZW5jZS5kYXRhKCkpOwotICAgIGlmICghbV9idWZmZXIpIHsKLSAgICAgICAgbV9idWZm
ZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7Ci0g
ICAgICAgIG1fZW5jb2RlZERhdGFMZW5ndGggPSBlbmNvZGVkRGF0YUxlbmd0aDsKLSAgICB9IGVs
c2UgewotICAgICAgICBtX2J1ZmZlci0+YXBwZW5kKGRhdGEsIGRhdGFSZWZlcmVuY2Uuc2l6ZSgp
KTsKLSAgICAgICAgbV9lbmNvZGVkRGF0YUxlbmd0aCArPSBlbmNvZGVkRGF0YUxlbmd0aDsKLSAg
ICB9Ci0KLSAgICBpZiAobV9pc0NoZWNraW5nUmVzcG9uc2UpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KV0gewotICAgICAgICBpZiAoIW1fbG9hZGVyIHx8ICFtX2VuY29kZWREYXRhTGVuZ3RoKQorICAg
IGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
ZW5jb2RlZERhdGFMZW5ndGgsIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGRh
dGFSZWZlcmVuY2Uuc2l6ZSgpKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX2xvYWRlcikK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBtX2xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZl
cihtX2J1ZmZlci5yZWxlYXNlTm9uTnVsbCgpLCBtX2VuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5
bG9hZEJ5dGVzKTsKLSAgICAgICAgbV9lbmNvZGVkRGF0YUxlbmd0aCA9IDA7CisgICAgICAgIG1f
ZW5jb2RlZERhdGFMZW5ndGggKz0gZW5jb2RlZERhdGFMZW5ndGg7CisKKyAgICAgICAgbV9sb2Fk
ZXItPmRpZFJlY2VpdmVCdWZmZXIoV1RGTW92ZShidWZmZXIpLCBtX2VuY29kZWREYXRhTGVuZ3Ro
LCBEYXRhUGF5bG9hZEJ5dGVzKTsKICAgICB9KTsKIH0KIApAQCAtMTkzLDI5ICsxOTQsMTAgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJikKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6
OmRpZEZpbmlzaCgpCiB7Ci0gICAgbV9kaWRGaW5pc2ggPSB0cnVlOwotCi0gICAgaWYgKG1faXND
aGVja2luZ1Jlc3BvbnNlKQotICAgICAgICByZXR1cm47Ci0KICAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgaWYgKCFt
X2xvYWRlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBzd2l0Y2ggKG1fcmVkaXJl
Y3Rpb25TdGF0dXMpIHsKLSAgICAgICAgY2FzZSBSZWRpcmVjdGlvblN0YXR1czo6Tm9uZToKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZp
bmc6Ci0gICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25TdGF0dXM6
OlJlY2VpdmVkOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBjYXNlIFJlZGlyZWN0aW9u
U3RhdHVzOjpGb2xsb3dpbmc6Ci0gICAgICAgICAgICBzdGFydCgpOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZlZDoKLSAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1
cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOwotICAgICAgICB9Ci0KICAgICAgICAgQVNTRVJU
KCFtX2NhbGxiYWNrKTsKIAogICAgICAgICBtX2xvYWRlci0+ZGlkRmluaXNoTG9hZGluZyhOZXR3
b3JrTG9hZE1ldHJpY3MgeyB9KTsKQEAgLTIyNSwyNCArMjA3LDE4IEBAIHZvaWQgU2VydmljZVdv
cmtlckNsaWVudEZldGNoOjpkaWRGaW5pc2goKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaDo6ZGlkRmFpbChSZXNvdXJjZUVycm9yJiYgZXJyb3IpCiB7Ci0gICAgbV9kaWRGYWlsID0g
dHJ1ZTsKLSAgICBtX2Vycm9yID0gV1RGTW92ZShlcnJvcik7Ci0KLSAgICBpZiAobV9pc0NoZWNr
aW5nUmVzcG9uc2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZXJyb3IgPSBXVEZNb3Zl
KGVycm9yKV0gewogICAgICAgICBpZiAoIW1fbG9hZGVyKQogICAgICAgICAgICAgcmV0dXJuOwog
CiAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gbV9sb2FkZXItPmZyYW1lKCkgPyBtX2xvYWRlci0+
ZnJhbWUoKS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7CiAgICAgICAgIGlmIChkb2N1bWVudCkgewot
ICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtX2Vycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwor
ICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKICAg
ICAgICAgICAgIGlmIChtX2xvYWRlci0+b3B0aW9ucygpLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0
aW9uczo6RGVzdGluYXRpb246OkVtcHR5U3RyaW5nKQotICAgICAgICAgICAgICAgIGRvY3VtZW50
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgbWFrZVN0cmluZygiQ2Fubm90IGxvYWQgIiwgbV9lcnJvci5mYWlsaW5nVVJMKCkuc3RyaW5n
KCksICIuIikpOworICAgICAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiQ2Fubm90
IGxvYWQgIiwgZXJyb3IuZmFpbGluZ1VSTCgpLnN0cmluZygpLCAiLiIpKTsKICAgICAgICAgfQog
Ci0gICAgICAgIG1fbG9hZGVyLT5kaWRGYWlsKG1fZXJyb3IpOworICAgICAgICBtX2xvYWRlci0+
ZGlkRmFpbChlcnJvcik7CiAKICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1f
Y2FsbGJhY2spKQogICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOwpAQCAt
MjUzLDggKzIyOSw2IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRGYWlsKFJl
c291cmNlRXJyb3ImJiBlcnJvcikKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRp
ZE5vdEhhbmRsZSgpCiB7Ci0gICAgQVNTRVJUKCFtX2lzQ2hlY2tpbmdSZXNwb25zZSk7Ci0KICAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKICAgICAgICAgaWYgKCFtX2xvYWRlcikKICAgICAgICAgICAgIHJldHVybjsKQEAgLTI3MSwz
NiArMjQ1LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNhbmNlbCgpCiAgICAg
aWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQogICAgICAgICBjYWxsYmFj
ayhSZXN1bHQ6OkNhbmNlbGxlZCk7CiAKLSAgICBpZiAoIW1fZGlkRmluaXNoICYmICFtX2RpZEZh
aWwpIHsKLSAgICAgICAgbV9jb25uZWN0aW9uLT5jYW5jZWxGZXRjaChtX2lkZW50aWZpZXIsIG1f
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwotCi0gICAgfQorICAgIG1fY29u
bmVjdGlvbi0+Y2FuY2VsRmV0Y2gobV9pZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyKTsKICAgICBtX2xvYWRlciA9IG51bGxwdHI7Ci0gICAgbV9idWZmZXIg
PSBudWxscHRyOwotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6Y29udGludWVM
b2FkaW5nQWZ0ZXJDaGVja2luZ1Jlc3BvbnNlKCkKLXsKLSAgICBBU1NFUlQoIW1faXNDaGVja2lu
Z1Jlc3BvbnNlKTsKLSAgICBpZiAoIW1fbG9hZGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBp
ZiAobV9lbmNvZGVkRGF0YUxlbmd0aCkgewotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAgICAgICAgICAgIGlmICghbV9s
b2FkZXIgfHwgIW1fZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgbV9sb2FkZXItPmRpZFJlY2VpdmVCdWZmZXIobV9idWZmZXIucmVsZWFzZU5v
bk51bGwoKSwgbV9lbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRCeXRlcyk7Ci0gICAgICAg
ICAgICBtX2VuY29kZWREYXRhTGVuZ3RoID0gMDsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAg
aWYgKG1fZGlkRmFpbCkgewotICAgICAgICBkaWRGYWlsKFdURk1vdmUobV9lcnJvcikpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG1fZGlkRmluaXNoKQotICAgICAgICBkaWRG
aW5pc2goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5o
CmluZGV4IDczNmIzYWMwM2JjNzIyOWJlOWU0ZWFkMzY1YWQ5YzcyNTVjYzQxMjUuLmM2NjdhYzc1
N2ZkZDcxMDg4OGI4YjJkNGVlZTk0NDk5MGYwYjBkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5o
CkBAIC02MSwzMCArNjEsMjIgQEAgcHJpdmF0ZToKIAogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlJl
c291cmNlRXJyb3I+IHZhbGlkYXRlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Up
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZv
cm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKICAgICB2b2lkIGRpZEZpbmlz
aCgpOwogICAgIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogICAgIHZv
aWQgZGlkTm90SGFuZGxlKCk7CiAKLSAgICB2b2lkIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tp
bmdSZXNwb25zZSgpOwotCiAgICAgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyJiBtX3NlcnZpY2VX
b3JrZXJQcm92aWRlcjsKICAgICBSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI+IG1fbG9h
ZGVyOwogICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVm
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIENhbGxiYWNrIG1fY2Fs
bGJhY2s7Ci0gICAgZW51bSBjbGFzcyBSZWRpcmVjdGlvblN0YXR1cyB7IE5vbmUsIFJlY2Vpdmlu
ZywgRm9sbG93aW5nLCBSZWNlaXZlZCB9OwotICAgIFJlZGlyZWN0aW9uU3RhdHVzIG1fcmVkaXJl
Y3Rpb25TdGF0dXMgeyBSZWRpcmVjdGlvblN0YXR1czo6Tm9uZSB9OwogICAgIGJvb2wgbV9zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0IHsgdHJ1ZSB9OwotICAgIFJlZlB0
cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IG1fYnVmZmVyOwogICAgIGludDY0X3QgbV9lbmNvZGVk
RGF0YUxlbmd0aCB7IDAgfTsKLSAgICBib29sIG1faXNDaGVja2luZ1Jlc3BvbnNlIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKICAgICBib29sIG1fZGlkRmFpbCB7
IGZhbHNlIH07Ci0gICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBtX2Vycm9yOwotCiAgICAgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aC5tZXNzYWdlcy5pbgppbmRleCBlMDE1M2QzNmZjNzlmMzMxYzI0NWNkMTg5MmI1MjIyNGI2N2Rh
MWZjLi4zZDNiYzc0MDRiZmI0N2Q2MWUwZDE1ODhlMWE1ZjJhOWMwNmExNjYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2gubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw4IEBACiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiBtZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2ggewotICAgIERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IHJlc3BvbnNlKQorICAgIERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
KQorICAgIERpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UgcmVzcG9uc2UpCiAgICAgRGlkUmVjZWl2ZURhdGEoSVBDOjpEYXRhUmVmZXJlbmNlIGRhdGEs
IGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiAgICAgRGlkUmVjZWl2ZUZvcm1EYXRhKElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBEaWRGaW5pc2goKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKaW5kZXggYTU1NWNhM2MwMDA4M2JkOTVlYWVkMDMyM2Q1MmJiM2U2MDM5ODZiYi4uNTA3Yjk5
MDc2NWNhMWY4ZDU0NmY5YzA3Y2NhODljN2Q4YzdiMTJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
CkBAIC0xOTgsMTYgKzE5OCwyMSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVn
aXN0cmF0aW9ucyhTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbgogICAgIH0pOwog
fQogCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRGZXRjaChXZWJDb3JlOjpGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCit2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6c3RhcnRGZXRjaChGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBG
ZXRjaE9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpCiB7CiAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTdGFydEZldGNoIHsgc2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0
aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IHJlcXVlc3QuaHR0cEJvZHkoKSB9LCByZWZl
cnJlciB9KTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmNhbmNlbEZldGNoKFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyKQordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmNhbmNlbEZldGNoKEZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQogewogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyIH0pOwogfQogCit2b2lkIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkNvbnRpbnVlRGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UgeyBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVu
dGlmaWVyIH0pOworfQorCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4
dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdv
cmtlckRhdGEmJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIFNX
Q2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGlu
YXRpb25Db250ZXh0SWRlbnRpZmllciwgV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShzb3VyY2Up
LCBzb3VyY2VPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBjYjFhMTBjYmIxN2QzZDdiMjM0
MTUyNjJlMTg0MTUxNjY4NGFmMzU5Li41OGQ2OWRhYzhkYTAzZjU1MTJiMDBhMzBmZTE4MGQ1MTlk
MGU0ODg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNjMsNiArNjMsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzdGFydEZldGNo
KFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpOwogICAgIHZvaWQg
Y2FuY2VsRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVG
ZXRjaFJlc3BvbnNlKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25D
b250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IGU0NmNmODBl
YTc5YzIzMGY0ZjJmMGYyYTliNDQ0OTBjODNhODBhOGEuLjViZDgyM2Y3Nzc0ZDM5NmM0Mzg5ZDQ3
YjRkYzYxMDVmYWJlYmIyM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
QEAgLTIxNSw2ICsyMTUsMTIgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
Y2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXIKICAgICAgICAgc2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LT5jYW5jZWxGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dD
b250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSkKKyAgICAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5j
b250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIpOworfQorCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgZm9ybURhdGEsIFN0cmluZyYmIHJlZmVycmVyKQogewogICAgIGF1dG8qIHNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CkBAIC0yMjgsNyArMjM0LDcg
QEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnYKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y3JlYXRlKG1f
Y29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MuY29weVJlZigpLCBzZXJ2aWNlV29ya2VySWRlbnRp
Zmllciwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7CisgICAg
YXV0byBjbGllbnQgPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjcmVhdGUobV9j
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy5jb3B5UmVmKCksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0
LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpNYWluKTsKICAgICBP
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWQ7CiAgICAgaWYg
KG9wdGlvbnMuY2xpZW50SWRlbnRpZmllcikKICAgICAgICAgY2xpZW50SWQgPSBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBvcHRpb25z
LmNsaWVudElkZW50aWZpZXIudmFsdWUoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmgKaW5kZXggMGQyNDE0NDk4MjMyNGYyZWNjODY2YzBmYjQxNjVmNTc2OTdkMTUzOC4uOTQ2MGYw
ZTJjOWNjMTk4OWI3ZTMwM2YwN2RlMzg1YTQxMzM3MzliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oCkBAIC03OSw2ICs3OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBpbnN0YWxs
U2VydmljZVdvcmtlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQ
QUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50KTsKICAgICB2b2lkIHN0YXJ0RmV0Y2go
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYsIFN0cmluZyYmIHJlZmVycmVyKTsKICAgICB2b2lkIGNhbmNlbEZldGNoKFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgY29udGludWVEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYm
IHNvdXJjZURhdGEpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGRmZTVhMzhlMTZlY2U4YmZjYjA2MmZjY2Q4YzRlNjBl
Y2RmMjFjMTMuLmEzMWY1NGE1MzU1YjQyMjkxY2ExNTM0MzEyNDM1NDk2OTZkNjVkYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNiw2
ICsyNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKICAg
ICBJbnN0YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRl
eHREYXRhIGNvbnRleHREYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyB1c2Vy
QWdlbnQpCiAgICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVj
dCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBy
ZXF1ZXN0Qm9keSwgU3RyaW5nIHJlZmVycmVyKQogICAgIENhbmNlbEZldGNoKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQorICAgIENvbnRpbnVlRGlk
UmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdv
cmtlck9yQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVF
dmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAppbmRleCA2ZjQzMDA2NzgxMDVlYjM0YzQ1
NmRkNDhlNGM1MGNlMWNlMDA0NDlhLi40ZjhhOGE0YTRiNGUxNTBiMjYzMzU4NjJmOWMxZGI5M2Ez
MDI1NzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcApAQCAtNDIs
MzEgKzQyLDQ0IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCi1XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojp+V2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudCgpCi17Ci0gICAgaWYgKG1fY29ubmVjdGlvbikKLSAgICAgICAgUnVuTG9v
cDo6bWFpbigpLmRpc3BhdGNoKFtjb25uZWN0aW9uID0gV1RGTW92ZShtX2Nvbm5lY3Rpb24pXSB7
IH0pOwotfQotCi1XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCitXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Up
CiAgICAgOiBtX2Nvbm5lY3Rpb24oV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgLCBt
X3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogICAgICwg
bV9mZXRjaElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKQorICAgICwgbV9uZWVkc0NvbnRpbnVl
RGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZShuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
TWVzc2FnZSkKK3sKK30KKwordm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpk
aWRSZWNlaXZlUmVkaXJlY3Rpb24oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiB7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRj
aElkZW50aWZpZXIsIHJlc3BvbnNlIH0sIDApOworCisgICAgY2xlYW51cCgpOwogfQogCiB2b2lk
IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25zZShjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlIH0sIDApOworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJl
c3BvbnNlLCBtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIDApOwog
fQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRh
KFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQog
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9uZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSkgeworICAgICAgICBpZiAoIW1fYnVmZmVyKQorICAgICAgICAgICAgbV9idWZm
ZXIgPSBidWZmZXItPmNvcHkoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9idWZmZXIt
PmFwcGVuZChXVEZNb3ZlKGJ1ZmZlcikpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZl
dGNoRGF0YSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVy
LCB7IGJ1ZmZlciB9LCBzdGF0aWNfY2FzdDxpbnQ2NF90PihidWZmZXItPnNpemUoKSkgfSwgMCk7
CiB9CiAKQEAgLTc1LDYgKzg4LDExIEBAIHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudDo6ZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNoKFJlZjxGb3JtRGF0YT4mCiAgICAgaWYg
KCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX25lZWRzQ29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKSB7CisgICAgICAgIG1fZm9ybURhdGEgPSBmb3Jt
RGF0YS0+aXNvbGF0ZWRDb3B5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHNlbmQgdGhpcyBmb3JtIGRhdGEgdG8gdGhlIG90aGVyIHByb2Nlc3Mg
YW5kIGNvbnN1bWUgaXQgdGhlcmUuCiAgICAgLy8gRm9yIG5vdyBhbmQgZm9yIHRoZSBjYXNlIG9m
IGJsb2JzLCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRoZSBkYXRhIHRocm91Z2ggSVBDLgog
ICAgIFVSTCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVSTCgpOwpAQCAtMTIyLDYgKzE0MCwx
MSBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmIChtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdl
KSB7CisgICAgICAgIG1fZXJyb3IgPSBlcnJvci5pc29sYXRlZENvcHkoKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkRpZEZhaWxGZXRjaCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0
Y2hJZGVudGlmaWVyLCBlcnJvciB9LCAwKTsKIAogICAgIGNsZWFudXAoKTsKQEAgLTEzMiw2ICsx
NTUsMTEgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2go
KQogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV9u
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkgeworICAgICAgICBtX2RpZEZp
bmlzaCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRGaW5pc2hGZXRjaCB7IG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0sIDApOwogCiAgICAgY2xl
YW51cCgpOwpAQCAtMTUyLDYgKzE4MCwzMyBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmNhbmNlbCgpCiAgICAgbV9jb25uZWN0aW9uID0gbnVsbHB0cjsKIH0KIAordm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSgpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgPSBmYWxzZTsKKworICAg
IGlmIChtX2Vycm9yKSB7CisgICAgICAgIGRpZEZhaWwoKm1fZXJyb3IpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKG1fZm9ybURhdGEpIHsKKyAgICAgICAgYXV0byBmb3JtRGF0
YSA9IFdURk1vdmUobV9mb3JtRGF0YSk7CisgICAgICAgIGRpZFJlY2VpdmVGb3JtRGF0YUFuZEZp
bmlzaChmb3JtRGF0YS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChtX2J1ZmZlcikgeworICAgICAgICBhdXRvIGJ1ZmZlciA9IFdURk1vdmUobV9i
dWZmZXIpOworICAgICAgICBkaWRSZWNlaXZlRGF0YShidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgfQorCisgICAgaWYgKG1fZGlkRmluaXNoKQorICAgICAgICBkaWRGaW5pc2goKTsKK30K
Kwogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjbGVhbnVwKCkKIHsKICAg
ICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5oCmluZGV4IDUzMzAzYzhkYTZjMTRmMDMxNjk5NmZkMTNhYTU3YWFhZWY2NDc4ZTguLmIyNzI2
YThiODg2MmQ1MzlhOTVkYTYyOGYwNWJkMDgyMDkwMWUxMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmgKQEAgLTM4LDIzICszOCwyMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCBmaW5hbCA6IHB1YmxpYyBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBjcmVhdGUoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciBmZXRjaFRhc2tJZGVudGlmaWVyKQorICAgIHN0YXRpYyBSZWY8V2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudD4gY3JlYXRlKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
ICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hUYXNrSWRlbnRpZmllciwg
Ym9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQo
V1RGTW92ZShjb25uZWN0aW9uKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBmZXRjaFRhc2tJZGVudGlmaWVyKSk7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoV1RGTW92ZShjb25u
ZWN0aW9uKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBmZXRjaFRhc2tJZGVudGlmaWVyLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
TWVzc2FnZSkpOwogICAgIH0KIAotICAgIH5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
KCk7Ci0KIHByaXZhdGU6Ci0gICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8
SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2Vi
Q29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyKTsKKyAgICBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGJvb2wg
bmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpOwogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZvcm1EYXRhQW5kRmluaXNo
KFJlZjxXZWJDb3JlOjpGb3JtRGF0YT4mJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaCgpIGZp
bmFsOwogICAgIHZvaWQgZGlkTm90SGFuZGxlKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWwoKSBm
aW5hbDsKKyAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgZmluYWw7CiAKICAg
ICB2b2lkIGNsZWFudXAoKTsKICAgICAKQEAgLTc5LDYgKzc5LDExIEBAIHByaXZhdGU6CiAgICAg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmll
cjsKICAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9mZXRjaElkZW50aWZpZXI7CiAgICAg
T3B0aW9uYWw8QmxvYkxvYWRlcj4gbV9ibG9iTG9hZGVyOworICAgIGJvb2wgbV9uZWVkc0NvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB7IGZhbHNlIH07CisgICAgUmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4gbV9idWZmZXI7CisgICAgUmVmUHRyPEZvcm1EYXRhPiBtX2Zvcm1E
YXRhOworICAgIGJvb2wgbV9kaWRGaW5pc2ggeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPFJlc291
cmNlRXJyb3I+IG1fZXJyb3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGNlMDU0MGNmZDkxNzQwMWRmM2MwZDIxZWExNzk5OTVj
NjNiMGJhOTIuLjllZDQ3ZTgwYWRmOGNmNjJmMTA2NGIxZmYxNTFjZmM3ZTU0NzljMjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTAyLTE0ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaCBjbG9zZXIgdG8gV2ViUmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY1MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVjb3ZlcnkuaHR0cHMtZXhw
ZWN0ZWQudHh0OgorCiAyMDE5LTAyLTEyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgQWxpZ24gd2l0aCBGZXRjaCBvbiBkYXRhOiBVUkxzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci91cGRhdGUtcmVjb3ZlcnkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3Y2Jh
YzFjZjY5YmQ1YzBjYWI3ZmU1NjUxMDQyMzJhOWVjZTU4MTNmLi5mZmJkNzM5OTNjYjRhYWJkY2Vk
MjIxNDc5Njk5ZTdjMzFhZDIxMzFiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtcmVjb3ZlcnkuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3Vw
ZGF0ZS1yZWNvdmVyeS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNSArMSwzIEBACi1DT05TT0xF
IE1FU1NBR0U6IEZldGNoRXZlbnQucmVzcG9uZFdpdGggcmVjZWl2ZWQgYW4gZXJyb3I6IHVuZGVm
aW5lZAotQ09OU09MRSBNRVNTQUdFOiBDYW5ub3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo5NDQz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZXNvdXJjZXMvc2ltcGxlLnR4dC4KIAog
UEFTUyBSZWNvdmVyIGZyb20gYSBiYWQgc2VydmljZSB3b3JrZXIgYnkgdXBkYXRpbmcgYWZ0ZXIg
YSBmYWlsZWQgbmF2aWdhdGlvbi4gCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362067</attachid>
            <date>2019-02-14 15:02:53 -0800</date>
            <delta_ts>2019-02-15 11:54:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194651-20190214150252.patch</filename>
            <type>text/plain</type>
            <size>51629</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM2ZjUxMzZiNDM3ODM5
Y2ZlZGRiYTFiNWRiNGUwZTEyMDBiMjJmMC4uYjJmOTFkNzUzZjlhYjBiMTkxYTkwYjUzMTBmZThm
OWE4OWYwMzMzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaCBjbG9zZXIgdG8gV2ViUmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoZWNrIGZvciByZWRpcmVjdGlvbiBy
ZXNwb25zZSBhbmQgaWYgc28gY2FsbCBhIHNwZWNpZmljIGNsaWVudCBBUEkuCisgICAgICAgIEVu
c3VyZSBTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudCBnZXRzIGNhbGxlZCBpbiB0aGUgc2Vydmlj
ZSB3b3JrZXIgdGhyZWFkIHByb3h5CisgICAgICAgIHNvIHRoYXQgaXRzIG1fY29ubmVjdGlvbiBp
cyBvbmx5IGFjY2Vzc2VkIG9uIHRoYXQgdGhyZWFkLgorCisgICAgICAgIENvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2g6OnByb2Nlc3NSZXNwb25zZSk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y2FuY2VsRmV0Y2gp
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb250aW51ZURp
ZFJlY2VpdmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAxOS0wMi0xNCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBuYXZpZ2F0b3IubWVkaWFEZXZp
Y2VzIFNlY3VyZUNvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmZkOTRiM2FmMDcxYTJmZGMwYzg3ZDNlZDE1
NWIzODBjOTBjNThkMi4uYWZjMjA5OTIxN2U0MDRkNDUwOTk5MTdlNDQ0NDY3NGFlODA4ZWYwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxOS0wMi0xNCAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gg
Y2xvc2VyIHRvIFdlYlJlc291cmNlTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ2NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgZ29hbCBvZiB0aGlzIHJlZmFjdG9yaW5nIGlzIHRvLCBh
dCBzb21lIHBvaW50IHVzZSB0aGUgcmVndWxhciBuZXR3b3JrIHByb2Nlc3MgbG9hZCBwYXRoIGZv
ciBzZXJ2aWNlIHdvcmtlciBsb2Fkcy4KKyAgICAgICAgVGhpcyBzaG91bGQgc2ltcGxpZnkgdGhp
bmdzIGFuZCBhbGxvdyBsZXNzIElQQyBleGNoYW5nZXMsIGZvciBpbnN0YW5jZSBpbiB0aGUgY2Fz
ZSBvZiBmZXRjaCBub3QgaGFuZGxlZCBieSBzZXJ2aWNlIHdvcmtlci4KKworICAgICAgICBJbnRy
b2R1Y2UgdHdvIElQQyBtZXNzYWdlcyBmb3Igc3VwcG9ydGluZyByZWRpcmVjdCByZXNwb25zZXMg
YW5kIGFsbG93IHRoZSBkaWRSZWNlaXZlUmVzcG9uc2UvY29udGludWVEaWRSZWNlaXZlUmVzcG9u
c2UKKyAgICAgICAgaGFuZHNoYWtlIGZvciBuYXZpZ2F0aW9uIGxvYWRzLgorCisgICAgICAgIFRo
aXMgbWFrZXMgU2VydmljZVdvcmtlciBoYXZpbmcgdG8gYnVmZmVyIGxvYWQgaW5mb3JtYXRpb24g
Zm9yIHRoaXMgcGFydGljdWxhciBjYXNlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZGlkUmVj
ZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25z
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVzcG9u
c2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2Vp
dmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRG
aW5pc2gpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZEZh
aWwpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZE5vdEhh
bmRsZSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6Y2FuY2Vs
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNo
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpz
dGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpjYW5j
ZWxGZXRjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y29udGlu
dWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0
RmV0Y2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpkaWRSZWNlaXZlUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRGF0YSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2Vp
dmVGb3JtRGF0YUFuZEZpbmlzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Ojpjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaDoKKwogMjAxOS0wMi0xNCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MTQ4Ni4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaAppbmRleCAzYjUwZTczMzgxMmU1NWUy
ODRkYjY3NzdjYjMzOGUyYTE3ZTY2NjEzLi5jMDBhMTk5ODY2Mjg5N2E3OGI4MTZlNmY1MGYzNDMy
NTE0ZDU5YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zv
cm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5o
CkBAIC0yMTAsNyArMjEwLDcgQEAgcHVibGljOgogICAgIC8vIEZJWE1FOiBCb3RoIHRoZXNlIGZ1
bmN0aW9ucyBwZXJmb3JtIGEgZGVlcCBjb3B5IG9mIG1fZWxlbWVudHMsIGJ1dCBkaWZmZXIgaW4g
aGFuZGxpbmcgb2Ygb3RoZXIgZGF0YSBtZW1iZXJzLgogICAgIC8vIEhvdyBtdWNoIG9mIHRoYXQg
aXMgaW50ZW50aW9uYWw/IFdlIG5lZWQgYmV0dGVyIG5hbWVzIHRoYXQgZXhwbGFpbiB0aGUgZGlm
ZmVyZW5jZS4KICAgICBSZWY8Rm9ybURhdGE+IGNvcHkoKSBjb25zdDsKLSAgICBSZWY8Rm9ybURh
dGE+IGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJlZjxGb3JtRGF0
YT4gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
PgogICAgIHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaAppbmRleCBlMGJmMDRiOGFj
OGYwMGIzOTM5NzkxZWJmZDAwODdlY2I5MGRiNzk5Li5hOTg0M2Y1MGU1YTQzNDAzZDhmNTJmMGE5
NjdmOTAyNzg2NWU4ZDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCkBAIC0zOCw3ICszOCw3IEBAIFdFQkNPUkVfRVhQT1JU
IGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXI7
IC8vIFVzZWQKIAogY2xhc3MgUmVzb3VyY2VFcnJvckJhc2UgewogcHVibGljOgotICAgIFJlc291
cmNlRXJyb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVzb3Vy
Y2VFcnJvciBpc29sYXRlZENvcHkoKSBjb25zdDsKIAogICAgIGNvbnN0IFN0cmluZyYgZG9tYWlu
KCkgY29uc3QgeyBsYXp5SW5pdCgpOyByZXR1cm4gbV9kb21haW47IH0KICAgICBpbnQgZXJyb3JD
b2RlKCkgY29uc3QgeyBsYXp5SW5pdCgpOyByZXR1cm4gbV9lcnJvckNvZGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJG
ZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyRmV0Y2guY3BwCmluZGV4IGY2Mjk1OWQ4MGRhNTI2YzU2ZTQxYzJkYzc2ODdiYTMxNjM2
OGY4ZTYuLmI4ZDRkMTIzYTlmMDhmZjg5YTlkOTU2YzJkNTQzMDNmZTRiODE3NTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJG
ZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlckZldGNoLmNwcApAQCAtNTEsMTQgKzUxLDIwIEBAIHN0YXRpYyB2b2lkIHByb2Nl
c3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNsaWVudCwgRXhwZWN0ZWQ8UmVmPEZldGNoUmVzcG9u
c2U+LCBSCiAgICAgfQogICAgIGF1dG8gcmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgp
KTsKIAotICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlLT5yZXNvdXJjZVJl
c3BvbnNlKCkpOwotCiAgICAgYXV0byBsb2FkaW5nRXJyb3IgPSByZXNwb25zZS0+bG9hZGluZ0Vy
cm9yKCk7CiAgICAgaWYgKCFsb2FkaW5nRXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgY2xpZW50
LT5kaWRGYWlsKGxvYWRpbmdFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBh
dXRvIHJlc291cmNlUmVzcG9uc2UgPSByZXNwb25zZS0+cmVzb3VyY2VSZXNwb25zZSgpOworICAg
IGlmIChyZXNvdXJjZVJlc3BvbnNlLmlzUmVkaXJlY3Rpb24oKSAmJiByZXNvdXJjZVJlc3BvbnNl
Lmh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucyhIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24pKSB7
CisgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJlZGlyZWN0aW9uKHJlc291cmNlUmVzcG9uc2Up
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2xpZW50LT5kaWRSZWNlaXZlUmVzcG9u
c2UocmVzb3VyY2VSZXNwb25zZSk7CisKICAgICBpZiAocmVzcG9uc2UtPmlzQm9keVJlY2VpdmVk
QnlDaHVuaygpKSB7CiAgICAgICAgIHJlc3BvbnNlLT5jb25zdW1lQm9keVJlY2VpdmVkQnlDaHVu
ayhbY2xpZW50ID0gV1RGTW92ZShjbGllbnQpXSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCmluZGV4IDA5ODM0MjUxNTlkNzMxYzdiNGQwZDMyNDc4OTI1M2JhNDdjNDg2ZDEuLjMxNTVk
NTZlOWZkNmU5MmJkNjIwODBhNzZhNDc0NWIzODdlYTQ5MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCkBAIC00NCwxMCArNDQsMTEgQEAgY2xhc3MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwog
Y2xhc3MgU2hhcmVkQnVmZmVyOwogCiBuYW1lc3BhY2UgU2VydmljZVdvcmtlckZldGNoIHsKLWNs
YXNzIENsaWVudCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDbGllbnQ+IHsKK2NsYXNz
IENsaWVudCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxDbGllbnQsIFdURjo6RGVzdHJ1
Y3Rpb25UaHJlYWQ6Ok1haW4+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5DbGllbnQoKSA9IGRl
ZmF1bHQ7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlZGlyZWN0aW9uKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25z
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlRGF0YShSZWY8U2hhcmVkQnVmZmVyPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JiYpID0gMDsKQEAgLTU1LDYgKzU2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2goKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEhhbmRsZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKCkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpID0gMDsK
IH07CiAKIHZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYsIFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSYsIE9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBmZThlNTNmZTdmYTRmZTZl
ZDExNWEyMzI3ZTJiZWIyY2RhMGM5ZTkzLi5mNmZjOGJlYWM3YjQ5OTg5NzZiYTlkN2M2ZGYxMDUw
OTlkMTI5YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTIw
MCw4ICsyMDAsMjQgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2go
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW8KIAogdm9pZCBTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHk6OmNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiB7
Ci0gICAgaWYgKGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy50YWtlKHN0ZDo6bWFr
ZV9wYWlyKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpKSkKLSAgICAgICAg
Y2xpZW50LnZhbHVlKCktPmNhbmNlbCgpOworICAgIGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0
Y2hUYXNrcy50YWtlKHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElk
ZW50aWZpZXIpKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9z
dFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbY2xpZW50ID0gV1RGTW92ZShjbGllbnQu
dmFsdWUoKSldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgICAgICBjbGllbnQtPmNh
bmNlbCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworfQorCit2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRj
aElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIGF1dG8gY2xpZW50ID0gbV9vbmdv
aW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcikpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAg
ICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFtjbGllbnQgPSBtYWtlUmVmKCpj
bGllbnQpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICAgICAgY2xpZW50LT5jb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRN
b2RlKCkpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cmVtb3ZlRmV0Y2go
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJ
ZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmgKaW5kZXggZTVmZmE5MzYyMGEyMDY2ZjhmZGY0MzhlZDI3MmY5ZDA0NDdlZTMwYy4uZjQ2Y2Zk
MTQ3OGFlYTI3NGQyMTkwMzYyMzIzNWMzNjNkMzIzZmQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmgKQEAgLTczLDYgKzczLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBPcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmlu
ZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
YW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgRmV0Y2hJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggM2NlZjZhNTc0YTBlYjg4M2ZkZGFk
NDgwODZmZGUwYTNhMWMxMzM5Mi4uNjAyNGRkN2UwOWY1ZjJhOTEyMDc0MjU2MDVjZDQwNTg4YzZh
ZmExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKQEAgLTIxNzAsMTAgKzIxNzAsMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkTm90
SGFuZGxlRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWMKICAg
ICAgICAgY29ubmVjdGlvbi0+ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
cmVzcG9uc2UpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZWRpcmVjdFJl
c3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0g
bV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCi0g
ICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKGZldGNoSWRlbnRpZmll
ciwgcmVzcG9uc2UpOworICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZWRpcmVj
dFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UpOworfQorCit2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKK3sKKyAgICBpZiAoYXV0byog
Y29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShm
ZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNl
TWVzc2FnZSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEo
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDRhZTRjNjY1ZDM4MTM0ZjAwZGNjNzQ4
ZDU2OGVkYmFjZjM3MGE2M2IuLjM5OTFiY2QxYmFlYjgyZWI4YjdlNGFiZTU0MmQzNjNjMzBmODRk
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTQwMyw3ICs0MDMsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCi0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJl
ZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7
CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VN
ZXNzYWdlKTsKICAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICB2b2lkIGRp
ZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSYpOwogICAgIHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IGZjNjVhMjc4ODk5ZGEyMGJkZTcyNzgxNTA3YzhmMTUzN2VhZGJlOTAuLjFmNmIyMmJjMTlkYjg0
MGYwYmI5YjNmZmY2OWQxZTEzMmNjNWRkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTQ5LDcgKzE0
OSw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgRGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKICAgICBEaWRGYWlsRmV0Y2go
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKLSAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIERpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVz
cG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKKyAgICBEaWRSZWNlaXZlRmV0Y2hS
ZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBib29sIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogICAgIERpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgSVBDOjpTaGFyZWRC
dWZmZXJEYXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiAgICAg
RGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
IGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIERpZEZp
bmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGIzNzVjNmYx
M2YzMjgxYzYwM2VkZmUxMjY2NzRiYTc2MTc2NGE0ZTkuLjVhYWM3ZmQ5ZGQwOTIwZWI2ZjhlNTZh
ZjhmOTAxODBjNzg0OGEyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwCkBAIC0xMzksNiArMTM5LDE5IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjYW5j
ZWxGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgfSk7
CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
KQoreworICAgIGF1dG8qIHdvcmtlciA9IHNlcnZlcigpLmFjdGl2ZVdvcmtlckZyb21SZWdpc3Ry
YXRpb25JRChzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCF3
b3JrZXIgfHwgIXdvcmtlci0+aXNSdW5uaW5nKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSB3b3JrZXItPmlkZW50aWZpZXIoKTsKKyAgICBz
ZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3Nhcnkoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCB0aGlzLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyXShhdXRvKiBjb250ZXh0Q29ubmVjdGlvbikgbXV0YWJs
ZSB7CisgICAgICAgIGlmICh3ZWFrVGhpcyAmJiBjb250ZXh0Q29ubmVjdGlvbikKKyAgICAgICAg
ICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKCpjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlIHsgdGhpcy0+aWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyIH0pOworICAgIH0pOworfQorCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
c3RhcnRGZXRjaChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
ciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlcikKIHsKICAg
ICBhdXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS5hY3RpdmVXb3JrZXJGcm9tUmVnaXN0cmF0aW9uSUQo
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwpAQCAtMjMwLDkgKzI0MywxNCBA
QCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihTZXJ2aWNl
V29ya2VySm9iRGF0YSYmIGpvYkRhdGEpCiAgICAgc2VydmVyKCkuc2NoZWR1bGVKb2IoV1RGTW92
ZShqb2JEYXRhKSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlRmV0Y2hSZWRpcmVjdFJlc3BvbnNlKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIG1fY29udGVudENv
bm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6RGlkUmVj
ZWl2ZVJlZGlyZWN0UmVzcG9uc2UgeyByZXNwb25zZSB9LCBmZXRjaElkZW50aWZpZXIudG9VSW50
NjQoKSk7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hS
ZXNwb25zZShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVz
c2FnZSkKIHsKLSAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVSZXNwb25zZSB7IHJlc3BvbnNlIH0sIGZldGNo
SWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBtX2NvbnRlbnRDb25uZWN0aW9uLT5zZW5kKE1l
c3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRpZFJlY2VpdmVSZXNwb25zZSB7IHJl
c3BvbnNlLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSB9LCBmZXRjaElk
ZW50aWZpZXIudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpk
aWRSZWNlaXZlRmV0Y2hEYXRhKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBlOTZkYTIwOGRjZmFiOTRhMmJm
MDQxMTczYWRkMDlmZWQ0ODg2ZTg1Li4yYjRhZWU2M2I1NGFjNjlmZGI0YWRmZDdjMjkxZjEwMDAw
MTY1ZmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC02Myw3ICs2
Myw4IEBAIHB1YmxpYzoKIAogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNl
KFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZU1lc3NhZ2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIGludDY0X3QgZW5j
b2RlZERhdGFMZW5ndGgpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7CiAgICAg
dm9pZCBkaWRGaW5pc2hGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwpAQCAtOTEsNiAr
OTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdGFydEZldGNoKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpG
b3JtRGF0YVJlZmVyZW5jZSYmLCBTdHJpbmcmJiByZWZlcnJlcik7CiAgICAgdm9pZCBjYW5jZWxG
ZXRjaChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVz
cG9uc2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllcik7CiAKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2
NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCk7CiAgICAg
dm9pZCBnZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBVUkwmIGNsaWVudFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBmNzU0M2ZmODI5NTdmMjc0NWZmYjkzZmFjNTY0YmUx
NmFjZGQxOTg3Li45ZTJkNWVmODA2MGE2NTFiNjRjYmEzNDMyYTRlMGY1YTRiZjlkOTYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAg
LTMxLDYgKzMxLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKIAogICAg
IFN0YXJ0RmV0Y2goV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBz
dHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgcmVxdWVzdEJvZHksIFN0cmluZyByZWZlcnJlcikKICAgICBDYW5jZWxGZXRjaChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmll
cikKKyAgICBDb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogCiAgICAg
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBt
ZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIHNvdXJjZSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNsaWVudEZldGNoLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1Nl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAKaW5kZXggMzBmMDMyMmZhY2IxYWFiNzUyYzFhYzM4
NjVhZjNjMjRkMGFkYjI3Zi4uZjA3NDczYzg1NWJjZjEyMTcyNjVmYzgyMTU1YzI5MWNkY2I1NzMw
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNsaWVudEZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwCkBAIC03MCwxNyArNzAsMTIgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OnN0YXJ0KCkKIAogICAgIGF1dG8gcmVmZXJyZXIgPSBy
ZXF1ZXN0Lmh0dHBSZWZlcnJlcigpOwogCi0gICAgbV9kaWRGYWlsID0gZmFsc2U7Ci0gICAgbV9k
aWRGaW5pc2ggPSBmYWxzZTsKLQogICAgIC8vIFdlIGFyZSBpbnRlcmNlcHRpbmcgZmV0Y2ggY2Fs
bHMgYWZ0ZXIgZ29pbmcgdGhyb3VnaCB0aGUgSFRUUCBsYXllciwgd2hpY2ggbWF5IGFkZCBzb21l
IHNwZWNpZmljIGhlYWRlcnMuCiAgICAgY2xlYW5IVFRQUmVxdWVzdEhlYWRlcnNGb3JBY2Nlc3ND
b250cm9sKHJlcXVlc3QsIG9wdGlvbnMuaHR0cEhlYWRlcnNUb0tlZXApOwogCiAgICAgQVNTRVJU
KG9wdGlvbnMuc2VydmljZVdvcmtlcnNNb2RlICE9IFNlcnZpY2VXb3JrZXJzTW9kZTo6Tm9uZSk7
CiAgICAgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciA9IG9wdGlvbnMuc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIudmFsdWUoKTsKICAgICBtX2Nvbm5lY3Rp
b24tPnN0YXJ0RmV0Y2gobV9pZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCByZWZlcnJlcik7Ci0KLSAgICBtX3JlZGlyZWN0
aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmU7CiB9CiAKIC8vIGh0dHBzOi8vZmV0
Y2guc3BlYy53aGF0d2cub3JnLyNodHRwLWZldGNoIHN0ZXAgMy4zCkBAIC0xMDQsNDIgKzk5LDUz
IEBAIE9wdGlvbmFsPFJlc291cmNlRXJyb3I+IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6dmFs
aWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0K
IAotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6
ZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQog
ewotICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0gdHJ1ZTsKICAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlc3BvbnNlID0gV1RGTW92
ZShyZXNwb25zZSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghbV9sb2FkZXIpIHsKLSAgICAg
ICAgICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0gZmFsc2U7CisgICAgICAgIGlmICghbV9sb2Fk
ZXIpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KIAogICAgICAgICBpZiAoYXV0byBl
cnJvciA9IHZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7Ci0gICAgICAgICAgICBtX2lzQ2hl
Y2tpbmdSZXNwb25zZSA9IGZhbHNlOwogICAgICAgICAgICAgbV9sb2FkZXItPmRpZEZhaWwoZXJy
b3IudmFsdWUoKSk7CiAgICAgICAgICAgICBBU1NFUlQoIW1fbG9hZGVyKTsKICAgICAgICAgICAg
IGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKICAgICAgICAgICAgICAg
ICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7CisKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgICAgICByZXNwb25zZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291
cmNlOjpTZXJ2aWNlV29ya2VyKTsKIAotICAgICAgICBpZiAocmVzcG9uc2UuaXNSZWRpcmVjdGlv
bigpICYmIHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKS5jb250YWlucyhIVFRQSGVhZGVyTmFt
ZTo6TG9jYXRpb24pKSB7Ci0gICAgICAgICAgICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IGZhbHNl
OwotICAgICAgICAgICAgY29udGludWVMb2FkaW5nQWZ0ZXJDaGVja2luZ1Jlc3BvbnNlKCk7Ci0g
ICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0gUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2Vp
dmluZzsKLSAgICAgICAgICAgIG1fbG9hZGVyLT53aWxsU2VuZFJlcXVlc3QobV9sb2FkZXItPnJl
cXVlc3QoKS5yZWRpcmVjdGVkUmVxdWVzdChyZXNwb25zZSwgbV9zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KSwgcmVzcG9uc2UsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZigqdGhpcyksIHRoaXNdKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QpIHsKLSAgICAgICAgICAg
ICAgICBpZiAocmVxdWVzdC5pc051bGwoKSB8fCAhbV9jYWxsYmFjaykKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICAgICAgQVNTRVJUKHJlcXVlc3QgPT0gbV9sb2Fk
ZXItPnJlcXVlc3QoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKG1fcmVkaXJlY3Rpb25TdGF0dXMg
PT0gUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmVkKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0
YXJ0KCk7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpG
b2xsb3dpbmc7Ci0gICAgICAgICAgICB9KTsKKyAgICAgICAgbV9sb2FkZXItPndpbGxTZW5kUmVx
dWVzdChtX2xvYWRlci0+cmVxdWVzdCgpLnJlZGlyZWN0ZWRSZXF1ZXN0KHJlc3BvbnNlLCBtX3No
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpLCByZXNwb25zZSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdGhpc10oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCkgeworICAgICAgICAgICAgaWYgKCFtX2xvYWRlciB8fCByZXF1ZXN0LmlzTnVsbCgpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQor
ICAgICAgICAgICAgICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQVNTRVJUKHJlcXVl
c3QgPT0gbV9sb2FkZXItPnJlcXVlc3QoKSk7CisgICAgICAgICAgICBzdGFydCgpOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCit7CisgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXNwb25zZSA9IFdURk1vdmUo
cmVzcG9uc2UpLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZV0oKSBtdXRh
YmxlIHsKKyAgICAgICAgaWYgKCFtX2xvYWRlcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlUmVzcG9uc2UocmVzcG9uc2UpKSB7CisgICAg
ICAgICAgICBtX2xvYWRlci0+ZGlkRmFpbChlcnJvci52YWx1ZSgpKTsKKyAgICAgICAgICAgIEFT
U0VSVCghbV9sb2FkZXIpOworICAgICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3Zl
KG1fY2FsbGJhY2spKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVk
KTsKKwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisgICAgICAgIHJlc3BvbnNlLnNl
dFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6OlNlcnZpY2VXb3JrZXIpOworICAgICAg
ICBBU1NFUlQoIXJlc3BvbnNlLmlzUmVkaXJlY3Rpb24oKSB8fCAhcmVzcG9uc2UuaHR0cEhlYWRl
ckZpZWxkcygpLmNvbnRhaW5zKEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbikpOworCisgICAgICAg
IGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgICAgIGNh
bGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKIAogICAgICAgICAvLyBJbiBjYXNlIG9mIG1haW4g
cmVzb3VyY2UgYW5kIG1pbWUgdHlwZSBpcyB0aGUgZGVmYXVsdCBvbmUsIHdlIHNldCBpdCB0byB0
ZXh0L2h0bWwgdG8gcGFzcyBtb3JlIHNlcnZpY2Ugd29ya2VyIFdQVCB0ZXN0cy4KICAgICAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCByZWZpbmUgb3VyIE1JTUUgdHlwZSBzbmlmZmluZyBzdHJhdGVn
eSBmb3Igc3ludGhldGljIHJlc3BvbnNlcy4KQEAgLTE1NCwxMSArMTYwLDE2IEBAIHZvaWQgU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25z
ZSYmIHJlc3BvbnNlKQogICAgICAgICBpZiAocmVzcG9uc2UudXJsKCkuaXNOdWxsKCkpCiAgICAg
ICAgICAgICByZXNwb25zZS5zZXRVUkwobV9sb2FkZXItPnJlcXVlc3QoKS51cmwoKSk7CiAKKyAg
ICAgICAgaWYgKCFuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkgeworICAg
ICAgICAgICAgbV9sb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZSwgW10geyB9KTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCiAgICAgICAgIG1fbG9hZGVyLT5kaWRS
ZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKV0gewotICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBmYWxz
ZTsKLSAgICAgICAgICAgIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNwb25zZSgpOwot
ICAgICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBXVEZNb3ZlKG1fY2FsbGJhY2spKQotICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKKyAgICAgICAgICAgIGlm
ICghbV9sb2FkZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2Nv
bm5lY3Rpb24tPmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UobV9pZGVudGlmaWVyLCBt
X3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9CkBAIC0xNjYsMjMgKzE3NywxMyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHZvaWQg
U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAg
ICAgYXV0byogZGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGFSZWZlcmVu
Y2UuZGF0YSgpKTsKLSAgICBpZiAoIW1fYnVmZmVyKSB7Ci0gICAgICAgIG1fYnVmZmVyID0gU2hh
cmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwotICAgICAgICBt
X2VuY29kZWREYXRhTGVuZ3RoID0gZW5jb2RlZERhdGFMZW5ndGg7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9idWZmZXItPmFwcGVuZChkYXRhLCBkYXRhUmVmZXJlbmNlLnNpemUoKSk7Ci0gICAg
ICAgIG1fZW5jb2RlZERhdGFMZW5ndGggKz0gZW5jb2RlZERhdGFMZW5ndGg7Ci0gICAgfQotCi0g
ICAgaWYgKG1faXNDaGVja2luZ1Jlc3BvbnNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjYWxs
T25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKLSAg
ICAgICAgaWYgKCFtX2xvYWRlciB8fCAhbV9lbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBjYWxsT25N
YWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVuY29kZWRE
YXRhTGVuZ3RoLCBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhLCBkYXRhUmVmZXJl
bmNlLnNpemUoKSldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghbV9sb2FkZXIpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgbV9sb2FkZXItPmRpZFJlY2VpdmVCdWZmZXIobV9idWZm
ZXIucmVsZWFzZU5vbk51bGwoKSwgbV9lbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBheWxvYWRCeXRl
cyk7Ci0gICAgICAgIG1fZW5jb2RlZERhdGFMZW5ndGggPSAwOworICAgICAgICBtX2VuY29kZWRE
YXRhTGVuZ3RoICs9IGVuY29kZWREYXRhTGVuZ3RoOworCisgICAgICAgIG1fbG9hZGVyLT5kaWRS
ZWNlaXZlQnVmZmVyKFdURk1vdmUoYnVmZmVyKSwgbV9lbmNvZGVkRGF0YUxlbmd0aCwgRGF0YVBh
eWxvYWRCeXRlcyk7CiAgICAgfSk7CiB9CiAKQEAgLTE5MywyOSArMTk0LDEwIEBAIHZvaWQgU2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlRm9ybURhdGEoY29uc3QgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYpCiAKIHZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRGaW5p
c2goKQogewotICAgIG1fZGlkRmluaXNoID0gdHJ1ZTsKLQotICAgIGlmIChtX2lzQ2hlY2tpbmdS
ZXNwb25zZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIGlmICghbV9sb2FkZXIp
CiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc3dpdGNoIChtX3JlZGlyZWN0aW9uU3Rh
dHVzKSB7Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmU6Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgY2FzZSBSZWRpcmVjdGlvblN0YXR1czo6UmVjZWl2aW5nOgotICAg
ICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZl
ZDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgY2FzZSBSZWRpcmVjdGlvblN0YXR1czo6
Rm9sbG93aW5nOgotICAgICAgICAgICAgc3RhcnQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgY2FzZSBSZWRpcmVjdGlvblN0YXR1czo6UmVjZWl2ZWQ6Ci0gICAgICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRp
cmVjdGlvblN0YXR1czo6Tm9uZTsKLSAgICAgICAgfQotCiAgICAgICAgIEFTU0VSVCghbV9jYWxs
YmFjayk7CiAKICAgICAgICAgbV9sb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoTmV0d29ya0xvYWRN
ZXRyaWNzIHsgfSk7CkBAIC0yMjUsMjQgKzIwNywxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaDo6ZGlkRmluaXNoKCkKIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRp
ZEZhaWwoUmVzb3VyY2VFcnJvciYmIGVycm9yKQogewotICAgIG1fZGlkRmFpbCA9IHRydWU7Ci0g
ICAgbV9lcnJvciA9IFdURk1vdmUoZXJyb3IpOwotCi0gICAgaWYgKG1faXNDaGVja2luZ1Jlc3Bv
bnNlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvcild
IHsKICAgICAgICAgaWYgKCFtX2xvYWRlcikKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAg
ICBhdXRvKiBkb2N1bWVudCA9IG1fbG9hZGVyLT5mcmFtZSgpID8gbV9sb2FkZXItPmZyYW1lKCkt
PmRvY3VtZW50KCkgOiBudWxscHRyOwogICAgICAgICBpZiAoZG9jdW1lbnQpIHsKLSAgICAgICAg
ICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgbV9lcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CiAgICAgICAgICAg
ICBpZiAobV9sb2FkZXItPm9wdGlvbnMoKS5kZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpFbXB0eVN0cmluZykKLSAgICAgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VT
dHJpbmcoIkNhbm5vdCBsb2FkICIsIG1fZXJyb3IuZmFpbGluZ1VSTCgpLnN0cmluZygpLCAiLiIp
KTsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIkNhbm5vdCBsb2FkICIs
IGVycm9yLmZhaWxpbmdVUkwoKS5zdHJpbmcoKSwgIi4iKSk7CiAgICAgICAgIH0KIAotICAgICAg
ICBtX2xvYWRlci0+ZGlkRmFpbChtX2Vycm9yKTsKKyAgICAgICAgbV9sb2FkZXItPmRpZEZhaWwo
ZXJyb3IpOwogCiAgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNr
KSkKICAgICAgICAgICAgIGNhbGxiYWNrKFJlc3VsdDo6U3VjY2VlZGVkKTsKQEAgLTI1Myw4ICsy
MjksNiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkRmFpbChSZXNvdXJjZUVy
cm9yJiYgZXJyb3IpCiAKIHZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWROb3RIYW5k
bGUoKQogewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nUmVzcG9uc2UpOwotCiAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAg
ICAgIGlmICghbV9sb2FkZXIpCiAgICAgICAgICAgICByZXR1cm47CkBAIC0yNzEsMzYgKzI0NSw4
IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpjYW5jZWwoKQogICAgIGlmIChhdXRv
IGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkKICAgICAgICAgY2FsbGJhY2soUmVzdWx0
OjpDYW5jZWxsZWQpOwogCi0gICAgaWYgKCFtX2RpZEZpbmlzaCAmJiAhbV9kaWRGYWlsKSB7Ci0g
ICAgICAgIG1fY29ubmVjdGlvbi0+Y2FuY2VsRmV0Y2gobV9pZGVudGlmaWVyLCBtX3NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKLQotICAgIH0KKyAgICBtX2Nvbm5lY3Rpb24t
PmNhbmNlbEZldGNoKG1faWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CiAgICAgbV9sb2FkZXIgPSBudWxscHRyOwotICAgIG1fYnVmZmVyID0gbnVsbHB0
cjsKLX0KLQotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNvbnRpbnVlTG9hZGluZ0Fm
dGVyQ2hlY2tpbmdSZXNwb25zZSgpCi17Ci0gICAgQVNTRVJUKCFtX2lzQ2hlY2tpbmdSZXNwb25z
ZSk7Ci0gICAgaWYgKCFtX2xvYWRlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fZW5j
b2RlZERhdGFMZW5ndGgpIHsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7Ci0gICAgICAgICAgICBpZiAoIW1fbG9hZGVyIHx8
ICFtX2VuY29kZWREYXRhTGVuZ3RoKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIG1fbG9hZGVyLT5kaWRSZWNlaXZlQnVmZmVyKG1fYnVmZmVyLnJlbGVhc2VOb25OdWxsKCks
IG1fZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2FkQnl0ZXMpOwotICAgICAgICAgICAgbV9l
bmNvZGVkRGF0YUxlbmd0aCA9IDA7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGlmIChtX2Rp
ZEZhaWwpIHsKLSAgICAgICAgZGlkRmFpbChXVEZNb3ZlKG1fZXJyb3IpKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIGlmIChtX2RpZEZpbmlzaCkKLSAgICAgICAgZGlkRmluaXNoKCk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaAppbmRleCA3
MzZiM2FjMDNiYzcyMjliZTllNGVhZDM2NWFkOWM3MjU1Y2M0MTI1Li5jNjY3YWM3NTdmZGQ3MTA4
ODhiOGIyZDRlZWU5NDQ5OTBmMGIwZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaApAQCAtNjEs
MzAgKzYxLDIyIEBAIHByaXZhdGU6CiAKICAgICBPcHRpb25hbDxXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yPiB2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsK
IAotICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
Jik7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBp
bnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YShj
b25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7CiAgICAgdm9pZCBkaWRGaW5pc2goKTsKICAg
ICB2b2lkIGRpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKICAgICB2b2lkIGRpZE5v
dEhhbmRsZSgpOwogCi0gICAgdm9pZCBjb250aW51ZUxvYWRpbmdBZnRlckNoZWNraW5nUmVzcG9u
c2UoKTsKLQogICAgIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlciYgbV9zZXJ2aWNlV29ya2VyUHJv
dmlkZXI7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlTG9hZGVyPiBtX2xvYWRlcjsKICAg
ICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFJlZjxXZWJTV0Ns
aWVudENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBDYWxsYmFjayBtX2NhbGxiYWNrOwot
ICAgIGVudW0gY2xhc3MgUmVkaXJlY3Rpb25TdGF0dXMgeyBOb25lLCBSZWNlaXZpbmcsIEZvbGxv
d2luZywgUmVjZWl2ZWQgfTsKLSAgICBSZWRpcmVjdGlvblN0YXR1cyBtX3JlZGlyZWN0aW9uU3Rh
dHVzIHsgUmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmUgfTsKICAgICBib29sIG1fc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCB7IHRydWUgfTsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKICAgICBpbnQ2NF90IG1fZW5jb2RlZERhdGFMZW5n
dGggeyAwIH07Ci0gICAgYm9vbCBtX2lzQ2hlY2tpbmdSZXNwb25zZSB7IGZhbHNlIH07Ci0gICAg
Ym9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RpZEZhaWwgeyBmYWxzZSB9
OwotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgbV9lcnJvcjsKLQogICAgIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIG1fc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2Fn
ZXMuaW4KaW5kZXggZTAxNTNkMzZmYzc5ZjMzMWMyNDVjZDE4OTJiNTIyMjRiNjdkYTFmYy4uM2Qz
YmM3NDA0YmZiNDdkNjFlMGQxNTg4ZTFhNWYyYTljMDZhMTY2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsOCBAQAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIAogbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckNsaWVudEZldGNoIHsK
LSAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25z
ZSkKKyAgICBEaWRSZWNlaXZlUmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZSwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKKyAgICBE
aWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlKQogICAgIERpZFJlY2VpdmVEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90
IGVuY29kZWREYXRhTGVuZ3RoKQogICAgIERpZFJlY2VpdmVGb3JtRGF0YShJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlIGRhdGEpCiAgICAgRGlkRmluaXNoKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4
IGE1NTVjYTNjMDAwODNiZDk1ZWFlZDAzMjNkNTJiYjNlNjAzOTg2YmIuLjUwN2I5OTA3NjVjYTFm
OGQ1NDZmOWMwN2NjYTg5YzdkOGM3YjEyYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMTk4
LDE2ICsxOTgsMjEgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlv
bnMoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBjb24KICAgICB9KTsKIH0KIAotdm9p
ZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
JiBvcHRpb25zLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQordm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OnN0YXJ0RmV0Y2goRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgRmV0Y2hPcHRp
b25zJiBvcHRpb25zLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQogewogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UgeyByZXF1ZXN0Lmh0dHBCb2R5KCkgfSwgcmVmZXJyZXIgfSk7
CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikK
K3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpjYW5jZWxGZXRjaChGZXRjaElkZW50aWZpZXIg
ZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OkNhbmNlbEZldGNoIHsgc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9KTsKIH0KIAordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoRmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpDb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNl
IHsgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciB9
KTsKK30KKwogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlm
aWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRh
JiYgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBTV0NsaWVudENv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uQ29u
dGV4dElkZW50aWZpZXIsIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoc291cmNlKSwgc291cmNl
T3JpZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggY2IxYTEwY2JiMTdkM2Q3YjIzNDE1MjYyZTE4
NDE1MTY2ODRhZjM1OS4uNThkNjlkYWM4ZGEwM2Y1NTEyYjAwYTMwZmUxODBkNTE5ZDBlNDg4NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTYzLDYgKzYzLDcgQEAgcHVibGljOgogICAgIGJvb2wgbWF5
SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnMmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKTsKICAgICB2b2lkIGNhbmNlbEZl
dGNoKFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJEYXRhJiYgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBlNDZjZjgwZWE3OWMyMzBm
NGYyZjBmMmE5YjQ0NDkwYzgzYTgwYThhLi41YmQ4MjNmNzc3NGQzOTZjNDM4OWQ0N2I0ZGM2MTA1
ZmFiZWJiMjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yMTUs
NiArMjE1LDEyIEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNhbmNlbEZl
dGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VyCiAgICAgICAgIHNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS0+Y2FuY2VsRmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIp
Cit7CisgICAgaWYgKGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikpCisgICAgICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyKTsKK30KKwogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3Rh
cnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVz
dCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1E
YXRhLCBTdHJpbmcmJiByZWZlcnJlcikKIHsKICAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwpAQCAtMjI4LDcgKzIzNCw3IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIGNs
aWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rp
b25Ub05ldHdvcmtQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOworICAgIGF1dG8gY2xp
ZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y3JlYXRlKG1fY29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3MuY29weVJlZigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdC5yZXF1ZXN0
ZXIoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbik7CiAgICAgT3B0aW9uYWw8
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkOwogICAgIGlmIChvcHRpb25z
LmNsaWVudElkZW50aWZpZXIpCiAgICAgICAgIGNsaWVudElkID0gU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIgeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgb3B0aW9ucy5jbGllbnRJ
ZGVudGlmaWVyLnZhbHVlKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4
IDBkMjQxNDQ5ODIzMjRmMmVjYzg2NmMwZmI0MTY1ZjU3Njk3ZDE1MzguLjk0NjBmMGUyYzljYzE5
ODliN2UzMDNmMDdkZTM4NWE0MTMzNzM5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VX
b3JrZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNz
aW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCk7CiAgICAgdm9pZCBzdGFydEZldGNoKFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmLCBT
dHJpbmcmJiByZWZlcnJlcik7CiAgICAgdm9pZCBjYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CiAg
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VE
YXRhKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgppbmRleCBkZmU1YTM4ZTE2ZWNlOGJmY2IwNjJmY2NkOGM0ZTYwZWNkZjIxYzEz
Li5hMzFmNTRhNTM1NWI0MjI5MWNhMTUzNDMxMjQzNTQ5Njk2ZDY1ZGI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsNyBA
QCBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7CiAgICAgSW5zdGFs
bFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBj
b250ZXh0RGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgdXNlckFnZW50KQog
ICAgIFN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElk
ZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJv
ZHksIFN0cmluZyByZWZlcnJlcikKICAgICBDYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKKyAgICBDb250aW51ZURpZFJlY2VpdmVG
ZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNs
aWVudERhdGEgc291cmNlRGF0YSkKICAgICBGaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmlyZUFjdGl2YXRlRXZlbnQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggNmY0MzAwNjc4MTA1ZWIzNGM0NTZkZDQ4ZTRj
NTBjZTFjZTAwNDQ5YS4uNzRjYmQwZTkwZTE5MjU3YTBkZTJhOGQxOWVhYWM2ZjM3OWRhMGI1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKQEAgLTQyLDMxICs0Miw0
OCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6fldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQoKQotewotICAgIGlmIChtX2Nvbm5lY3Rpb24pCi0gICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbY29ubmVjdGlvbiA9IFdURk1vdmUobV9jb25uZWN0aW9uKV0geyB9KTsKLX0K
LQotV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6V2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQorV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQogICAgIDog
bV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAgLCBtX3NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICwgbV9zZXJ2aWNl
V29ya2VySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICAsIG1fZmV0Y2hJ
ZGVudGlmaWVyKGZldGNoSWRlbnRpZmllcikKKyAgICAsIG1fbmVlZHNDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZU1lc3NhZ2UobmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2Up
Cit7Cit9CisKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2
ZVJlZGlyZWN0aW9uKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQog
eworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisgICAgbV9jb25uZWN0
aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVkaXJl
Y3RSZXNwb25zZSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlm
aWVyLCByZXNwb25zZSB9LCAwKTsKKworICAgIGNsZWFudXAoKTsKIH0KIAogdm9pZCBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAg
IHJldHVybjsKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IG1fZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSB9LCAwKTsKKworICAgIGlmIChtX25lZWRzQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQorICAgICAgICBtX3dhaXRpbmdGb3JDb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgPSB0cnVlOworCisgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2Ug
eyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9u
c2UsIG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgMCk7CiB9CiAK
IHZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVm
PFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZU1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKCFtX2J1ZmZlcikKKyAgICAgICAgICAgIG1fYnVm
ZmVyID0gYnVmZmVyLT5jb3B5KCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fYnVmZmVy
LT5hcHBlbmQoV1RGTW92ZShidWZmZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVG
ZXRjaERhdGEgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmll
ciwgeyBidWZmZXIgfSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5zaXplKCkpIH0sIDAp
OwogfQogCkBAIC03NSw2ICs5MiwxMSBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+JgogICAgIGlm
ICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAobV93YWl0aW5nRm9y
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKSB7CisgICAgICAgIG1fZm9ybURhdGEg
PSBmb3JtRGF0YS0+aXNvbGF0ZWRDb3B5KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIHNlbmQgdGhpcyBmb3JtIGRhdGEgdG8gdGhlIG90aGVyIHBy
b2Nlc3MgYW5kIGNvbnN1bWUgaXQgdGhlcmUuCiAgICAgLy8gRm9yIG5vdyBhbmQgZm9yIHRoZSBj
YXNlIG9mIGJsb2JzLCB3ZSByZWFkIGl0IHRoZXJlIGFuZCBzZW5kIHRoZSBkYXRhIHRocm91Z2gg
SVBDLgogICAgIFVSTCBibG9iVVJMID0gZm9ybURhdGEtPmFzQmxvYlVSTCgpOwpAQCAtMTIyLDYg
KzE0NCwxMSBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZhaWwo
Y29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybjsKIAorICAgIGlmIChtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZU1lc3NhZ2UpIHsKKyAgICAgICAgbV9lcnJvciA9IGVycm9yLmlzb2xhdGVkQ29weSgpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6RGlkRmFpbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgbV9mZXRjaElkZW50aWZpZXIsIGVycm9yIH0sIDApOwogCiAgICAgY2xlYW51cCgpOwpA
QCAtMTMyLDYgKzE1OSwxMSBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmRpZEZpbmlzaCgpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAor
ICAgIGlmIChtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpIHsK
KyAgICAgICAgbV9kaWRGaW5pc2ggPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorCiAg
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkRmluaXNo
RmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciB9
LCAwKTsKIAogICAgIGNsZWFudXAoKTsKQEAgLTE1Miw2ICsxODQsMzMgQEAgdm9pZCBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQogICAgIG1fY29ubmVjdGlvbiA9IG51
bGxwdHI7CiB9CiAKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2UoKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1l
c3NhZ2UgPSBmYWxzZTsKKworICAgIGlmIChtX2Vycm9yKSB7CisgICAgICAgIGRpZEZhaWwoKm1f
ZXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fZm9ybURhdGEpIHsK
KyAgICAgICAgYXV0byBmb3JtRGF0YSA9IFdURk1vdmUobV9mb3JtRGF0YSk7CisgICAgICAgIGRp
ZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChmb3JtRGF0YS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX2J1ZmZlcikgeworICAgICAgICBhdXRv
IGJ1ZmZlciA9IFdURk1vdmUobV9idWZmZXIpOworICAgICAgICBkaWRSZWNlaXZlRGF0YShidWZm
ZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQorCisgICAgaWYgKG1fZGlkRmluaXNoKQorICAg
ICAgICBkaWRGaW5pc2goKTsKK30KKwogdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpjbGVhbnVwKCkKIHsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5oCmluZGV4IDUzMzAzYzhkYTZjMTRmMDMxNjk5NmZkMTNh
YTU3YWFhZWY2NDc4ZTguLjE2Mjg5ZWE5MzU2ZDQ1NzQzODJkYzM3ZGU4MWNkNWUxZjZiZTAzYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RmV0Y2hMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoTG9hZGVyQ2xpZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyRmV0Y2guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
PgogCkBAIC0zOCwyMyArMzksMjMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckZldGNoOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudD4gY3JlYXRlKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hUYXNrSWRl
bnRpZmllcikKKyAgICBzdGF0aWMgUmVmPFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ+
IGNyZWF0ZShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCAgV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoVGFza0lkZW50aWZpZXIsIGJvb2wgbmVlZHNDb250
aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVj
dGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVjdGlvbiksIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNr
SWRlbnRpZmllciwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpKTsKICAg
ICB9CiAKLSAgICB+V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudCgpOwotCiBwcml2YXRl
OgotICAgIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBib29sIG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVSZWRpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7
CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKSBm
aW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8V2ViQ29yZTo6
Rm9ybURhdGE+JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2goKSBmaW5hbDsKICAgICB2b2lk
IGRpZE5vdEhhbmRsZSgpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsKCkgZmluYWw7CisgICAgdm9p
ZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpIGZpbmFsOwogCiAgICAgdm9pZCBjbGVhbnVw
KCk7CiAgICAgCkBAIC03OSw2ICs4MCwxMiBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7CiAgICAgV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyIG1fZmV0Y2hJZGVudGlmaWVyOwogICAgIE9wdGlvbmFsPEJsb2JM
b2FkZXI+IG1fYmxvYkxvYWRlcjsKKyAgICBib29sIG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZU1lc3NhZ2UgeyBmYWxzZSB9OworICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIHsgZmFsc2UgfTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
U2hhcmVkQnVmZmVyPiBtX2J1ZmZlcjsKKyAgICBSZWZQdHI8Rm9ybURhdGE+IG1fZm9ybURhdGE7
CisgICAgYm9vbCBtX2RpZEZpbmlzaCB7IGZhbHNlIH07CisgICAgT3B0aW9uYWw8UmVzb3VyY2VF
cnJvcj4gbV9lcnJvcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362140</attachid>
            <date>2019-02-15 11:54:49 -0800</date>
            <delta_ts>2019-02-15 12:42:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-194651-20190215115448.patch</filename>
            <type>text/plain</type>
            <size>51827</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzk5NDJiMGZhYWVmMDFm
YzJkODJiN2FiMTcxNjdkNmRkODVhZmM1NC4uM2QxMTQ5N2U1YzFiODQ3YWNjMThkODFiMTkyOWIx
Y2UyNTY1MWEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE5LTAyLTE0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNlcnZpY2VXb3Jr
ZXJDbGllbnRGZXRjaCBjbG9zZXIgdG8gV2ViUmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY1MQorCisgICAgICAgIFJldmll
d2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQ2hlY2sgZm9yIHJlZGlyZWN0aW9u
IHJlc3BvbnNlIGFuZCBpZiBzbyBjYWxsIGEgc3BlY2lmaWMgY2xpZW50IEFQSS4KKyAgICAgICAg
RW5zdXJlIFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50IGdldHMgY2FsbGVkIGluIHRoZSBzZXJ2
aWNlIHdvcmtlciB0aHJlYWQgcHJveHkKKyAgICAgICAgc28gdGhhdCBpdHMgbV9jb25uZWN0aW9u
IGlzIG9ubHkgYWNjZXNzZWQgb24gdGhhdCB0aHJlYWQuCisKKyAgICAgICAgQ292ZXJlZCBieSBl
eGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaDo6cHJvY2Vzc1Jlc3BvbnNlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaDoKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjYW5jZWxGZXRj
aCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnRpbnVl
RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oOgorCiAyMDE5LTAyLTE0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIG5hdmlnYXRvci5tZWRpYURl
dmljZXMgU2VjdXJlQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZmQ5NGIzYWYwNzFhMmZkYzBjODdkM2Vk
MTU1YjM4MGM5MGM1OGQyLi5hZmNiNDZlOTZiZTU3OGI3MmQ5ZjNkNDhlNWI3NDQ5YWQ4NmNlOWQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDE5LTAyLTE0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aCBjbG9zZXIgdG8gV2ViUmVzb3VyY2VMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDY1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXgg
Q2hyaXN0ZW5zZW4uCisKKyAgICAgICAgVGhlIGdvYWwgb2YgdGhpcyByZWZhY3RvcmluZyBpcyB0
bywgYXQgc29tZSBwb2ludCB1c2UgdGhlIHJlZ3VsYXIgbmV0d29yayBwcm9jZXNzIGxvYWQgcGF0
aCBmb3Igc2VydmljZSB3b3JrZXIgbG9hZHMuCisgICAgICAgIFRoaXMgc2hvdWxkIHNpbXBsaWZ5
IHRoaW5ncyBhbmQgYWxsb3cgbGVzcyBJUEMgZXhjaGFuZ2VzLCBmb3IgaW5zdGFuY2UgaW4gdGhl
IGNhc2Ugb2YgZmV0Y2ggbm90IGhhbmRsZWQgYnkgc2VydmljZSB3b3JrZXIuCisKKyAgICAgICAg
SW50cm9kdWNlIHR3byBJUEMgbWVzc2FnZXMgZm9yIHN1cHBvcnRpbmcgcmVkaXJlY3QgcmVzcG9u
c2VzIGFuZCBhbGxvdyB0aGUgZGlkUmVjZWl2ZVJlc3BvbnNlL2NvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlCisgICAgICAgIGhhbmRzaGFrZSBmb3IgbmF2aWdhdGlvbiBsb2Fkcy4KKworICAgICAg
ICBUaGlzIG1ha2VzIFNlcnZpY2VXb3JrZXIgaGF2aW5nIHRvIGJ1ZmZlciBsb2FkIGluZm9ybWF0
aW9uIGZvciB0aGlzIHBhcnRpY3VsYXIgY2FzZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRp
ZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OnN0YXJ0KToKKyAgICAgICAgKFdlYktp
dDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRS
ZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6
ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpk
aWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRO
b3RIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmNh
bmNlbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2gubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6c3RhcnRGZXRjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
Y2FuY2VsRmV0Y2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OmNv
bnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpz
dGFydEZldGNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudDo6ZGlkUmVjZWl2ZVJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZURhdGEp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRS
ZWNlaXZlRm9ybURhdGFBbmRGaW5pc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGYWlsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2Up
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50Lmg6CisKIDIwMTktMDItMTQgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDE0ODYuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmgKaW5kZXggM2I1MGU3MzM4MTJl
NTVlMjg0ZGI2Nzc3Y2IzMzhlMmExN2U2NjYxMy4uYzAwYTE5OTg2NjI4OTdhNzhiODE2ZTZmNTBm
MzQzMjUxNGQ1OWM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURh
dGEuaApAQCAtMjEwLDcgKzIxMCw3IEBAIHB1YmxpYzoKICAgICAvLyBGSVhNRTogQm90aCB0aGVz
ZSBmdW5jdGlvbnMgcGVyZm9ybSBhIGRlZXAgY29weSBvZiBtX2VsZW1lbnRzLCBidXQgZGlmZmVy
IGluIGhhbmRsaW5nIG9mIG90aGVyIGRhdGEgbWVtYmVycy4KICAgICAvLyBIb3cgbXVjaCBvZiB0
aGF0IGlzIGludGVudGlvbmFsPyBXZSBuZWVkIGJldHRlciBuYW1lcyB0aGF0IGV4cGxhaW4gdGhl
IGRpZmZlcmVuY2UuCiAgICAgUmVmPEZvcm1EYXRhPiBjb3B5KCkgY29uc3Q7Ci0gICAgUmVmPEZv
cm1EYXRhPiBpc29sYXRlZENvcHkoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBSZWY8Rm9y
bURhdGE+IGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5j
b2Rlcj4KICAgICB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKaW5kZXggZTBiZjA0
YjhhYzhmMDBiMzkzOTc5MWViZmQwMDg3ZWNiOTBkYjc5OS4uYTk4NDNmNTBlNWE0MzQwM2Q4ZjUy
ZjBhOTY3ZjkwMjc4NjVlOGQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaApAQCAtMzgsNyArMzgsNyBAQCBXRUJDT1JFX0VY
UE9SVCBleHRlcm4gY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29y
a2VyOyAvLyBVc2VkCiAKIGNsYXNzIFJlc291cmNlRXJyb3JCYXNlIHsKIHB1YmxpYzoKLSAgICBS
ZXNvdXJjZUVycm9yIGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFJl
c291cmNlRXJyb3IgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKICAgICBjb25zdCBTdHJpbmcmIGRv
bWFpbigpIGNvbnN0IHsgbGF6eUluaXQoKTsgcmV0dXJuIG1fZG9tYWluOyB9CiAgICAgaW50IGVy
cm9yQ29kZSgpIGNvbnN0IHsgbGF6eUluaXQoKTsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyRmV0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlckZldGNoLmNwcAppbmRleCBmNjI5NTlkODBkYTUyNmM1NmU0MWMyZGM3Njg3YmEz
MTYzNjhmOGU2Li5iOGQ0ZDEyM2E5ZjA4ZmY4OWE5ZDk1NmMyZDU0MzAzZmU0YjgxNzU5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyRmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKQEAgLTUxLDE0ICs1MSwyMCBAQCBzdGF0aWMgdm9pZCBw
cm9jZXNzUmVzcG9uc2UoUmVmPENsaWVudD4mJiBjbGllbnQsIEV4cGVjdGVkPFJlZjxGZXRjaFJl
c3BvbnNlPiwgUgogICAgIH0KICAgICBhdXRvIHJlc3BvbnNlID0gV1RGTW92ZShyZXN1bHQudmFs
dWUoKSk7CiAKLSAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShyZXNwb25zZS0+cmVzb3Vy
Y2VSZXNwb25zZSgpKTsKLQogICAgIGF1dG8gbG9hZGluZ0Vycm9yID0gcmVzcG9uc2UtPmxvYWRp
bmdFcnJvcigpOwogICAgIGlmICghbG9hZGluZ0Vycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgIGNs
aWVudC0+ZGlkRmFpbChsb2FkaW5nRXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgYXV0byByZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2UtPnJlc291cmNlUmVzcG9uc2UoKTsK
KyAgICBpZiAocmVzb3VyY2VSZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkgJiYgcmVzb3VyY2VSZXNw
b25zZS5odHRwSGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRlck5hbWU6OkxvY2F0aW9u
KSkgeworICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZWRpcmVjdGlvbihyZXNvdXJjZVJlc3Bv
bnNlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNsaWVudC0+ZGlkUmVjZWl2ZVJl
c3BvbnNlKHJlc291cmNlUmVzcG9uc2UpOworCiAgICAgaWYgKHJlc3BvbnNlLT5pc0JvZHlSZWNl
aXZlZEJ5Q2h1bmsoKSkgewogICAgICAgICByZXNwb25zZS0+Y29uc3VtZUJvZHlSZWNlaXZlZEJ5
Q2h1bmsoW2NsaWVudCA9IFdURk1vdmUoY2xpZW50KV0gKGF1dG8mJiByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNo
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guaAppbmRleCAwOTgzNDI1MTU5ZDczMWM3YjRkMGQzMjQ3ODkyNTNiYTQ3YzQ4NmQxLi4z
MTU1ZDU2ZTlmZDZlOTJiZDYyMDgwYTc2YTQ3NDViMzg3ZWE0OTFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guaApAQCAtNDQsMTAgKzQ0LDExIEBAIGNsYXNzIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAogbmFtZXNwYWNlIFNlcnZpY2VXb3JrZXJGZXRjaCB7
Ci1jbGFzcyBDbGllbnQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2xpZW50PiB7Citj
bGFzcyBDbGllbnQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q2xpZW50LCBXVEY6OkRl
c3RydWN0aW9uVGhyZWFkOjpNYWluPiB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q2xpZW50KCkg
PSBkZWZhdWx0OwogCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZWRpcmVjdGlvbihjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoUmVmPFNoYXJlZEJ1ZmZlcj4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYmKSA9IDA7CkBAIC01NSw2
ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoKCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNl
bCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9
IDA7CiB9OwogCiB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmLCBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUmLCBPcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cj4sIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggZmU4ZTUzZmU3ZmE0
ZmU2ZWQxMTVhMjMyN2UyYmViMmNkYTBjOWU5My4uZjZmYzhiZWFjN2I0OTk4OTc2YmE5ZDdjNmRm
MTA1MDk5ZDEyOWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBA
IC0yMDAsOCArMjAwLDI0IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZl
dGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvCiAKIHZvaWQgU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVy
KQogewotICAgIGlmIChhdXRvIGNsaWVudCA9IG1fb25nb2luZ0ZldGNoVGFza3MudGFrZShzdGQ6
Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSkpCi0gICAg
ICAgIGNsaWVudC52YWx1ZSgpLT5jYW5jZWwoKTsKKyAgICBhdXRvIGNsaWVudCA9IG1fb25nb2lu
Z0ZldGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0aW9uSWRlbnRpZmllciwgZmV0
Y2hJZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAgICAgIHJldHVybjsKKworICAg
IHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoW2NsaWVudCA9IFdURk1vdmUoY2xp
ZW50LnZhbHVlKCkpXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICAgICAgY2xpZW50
LT5jYW5jZWwoKTsKKyAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKK30KKwor
dm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVz
cG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGNsaWVudCA9IG1f
b25nb2luZ0ZldGNoVGFza3MuZ2V0KHN0ZDo6bWFrZV9wYWlyKGNvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIpKTsKKyAgICBpZiAoIWNsaWVudCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShbY2xpZW50ID0gbWFrZVJl
ZigqY2xpZW50KV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgICAgIGNsaWVudC0+
Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKTsKKyAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZh
dWx0TW9kZSgpKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnJlbW92ZUZl
dGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEZl
dGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5oCmluZGV4IGU1ZmZhOTM2MjBhMjA2NmY4ZmRmNDM4ZWQyNzJmOWQwNDQ3ZWUzMGMuLmY0
NmNmZDE0NzhhZWEyNzRkMjE5MDM2MjMyMzVjMzYzZDMyM2ZkODcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5oCkBAIC03Myw2ICs3Myw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBG
ZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgT3B0aW9u
YWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBT
dHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlm
aWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVz
cG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDNjZWY2YTU3NGEwZWI4ODNm
ZGRhZDQ4MDg2ZmRlMGEzYTFjMTMzOTIuLjYwMjRkZDdlMDlmNWYyYTkxMjA3NDI1NjA1Y2Q0MDU4
OGM2YWZhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCkBAIC0yMTcwLDEwICsyMTcwLDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRp
ZE5vdEhhbmRsZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVj
CiAgICAgICAgIGNvbm5lY3Rpb24tPmRpZE5vdEhhbmRsZUZldGNoKGZldGNoSWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVkaXJl
Y3RSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAgICBpZiAoYXV0byogY29ubmVjdGlv
biA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
KQotICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShmZXRjaElkZW50
aWZpZXIsIHJlc3BvbnNlKTsKKyAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoUmVk
aXJlY3RSZXNwb25zZShmZXRjaElkZW50aWZpZXIsIHJlc3BvbnNlKTsKK30KKwordm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGJv
b2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCit7CisgICAgaWYgKGF1
dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoUmVzcG9u
c2UoZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZU1lc3NhZ2UpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hE
YXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA0YWU0YzY2NWQzODEzNGYwMGRj
Yzc0OGQ1NjhlZGJhY2YzNzBhNjNiLi4zOTkxYmNkMWJhZWI4MmViOGI3ZTRhYmU1NDJkMzYzYzMw
Zjg0ZDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCkBAIC00MDMsNyArNDAzLDggQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0
Y2hSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3Bv
bnNlTWVzc2FnZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmKTsKICAgICB2b2lkIGRpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpp
bmRleCBmYzY1YTI3ODg5OWRhMjBiZGU3Mjc4MTUwN2M4ZjE1MzdlYWRiZTkwLi4xZjZiMjJiYzE5
ZGI4NDBmMGJiOWIzZmZmNjlkMWUxMzJjYzVkZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTE0OSw3
ICsxNDksOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIERpZE5vdEhhbmRsZUZldGNoKFdlYkNvcmU6
OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgRGlkRmFpbEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCi0gICAgRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2Uo
V2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKKyAgICBEaWRSZWNlaXZlRmV0Y2hSZWRpcmVj
dFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCisgICAgRGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSwgYm9vbCBuZWVkc0NvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKICAgICBEaWRSZWNlaXZlRmV0Y2hEYXRhKFdl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIElQQzo6U2hh
cmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQog
ICAgIERpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKICAgICBE
aWRGaW5pc2hGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBiMzc1
YzZmMTNmMzI4MWM2MDNlZGZlMTI2Njc0YmE3NjE3NjRhNGU5Li41YWFjN2ZkOWRkMDkyMGViNmY4
ZTU2YWY4ZjkwMTgwYzc4NDhhMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcApAQCAtMTM5LDYgKzEzOSwxOSBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
Y2FuY2VsRmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydgogICAg
IH0pOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y29udGludWVEaWRSZWNlaXZl
RmV0Y2hSZXNwb25zZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllcikKK3sKKyAgICBhdXRvKiB3b3JrZXIgPSBzZXJ2ZXIoKS5hY3RpdmVXb3JrZXJGcm9tUmVn
aXN0cmF0aW9uSUQoc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlm
ICghd29ya2VyIHx8ICF3b3JrZXItPmlzUnVubmluZygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gd29ya2VyLT5pZGVudGlmaWVyKCk7Cisg
ICAgc2VydmVyKCkucnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgdGhpcywgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcl0oYXV0byogY29udGV4dENvbm5lY3Rpb24pIG11
dGFibGUgeworICAgICAgICBpZiAod2Vha1RoaXMgJiYgY29udGV4dENvbm5lY3Rpb24pCisgICAg
ICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcygqY29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29udGludWVEaWRSZWNlaXZlRmV0Y2hS
ZXNwb25zZSB7IHRoaXMtPmlkZW50aWZpZXIoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllciB9KTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OnN0YXJ0RmV0Y2goU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBmb3JtRGF0YSwgU3RyaW5nJiYgcmVmZXJyZXIpCiB7
CiAgICAgYXV0byogd29ya2VyID0gc2VydmVyKCkuYWN0aXZlV29ya2VyRnJvbVJlZ2lzdHJhdGlv
bklEKHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKQEAgLTIzMCw5ICsyNDMs
MTQgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoU2Vy
dmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHNlcnZlcigpLnNjaGVkdWxlSm9iKFdU
Rk1vdmUoam9iRGF0YSkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUZldGNoUmVkaXJlY3RSZXNwb25zZShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBtX2NvbnRl
bnRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OkRp
ZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlIHsgcmVzcG9uc2UgfSwgZmV0Y2hJZGVudGlmaWVyLnRv
VUludDY0KCkpOworfQorCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UoRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZU1lc3NhZ2UpCiB7Ci0gICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2Vy
dmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2UgeyByZXNwb25zZSB9LCBm
ZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgbV9jb250ZW50Q29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2VydmljZVdvcmtlckNsaWVudEZldGNoOjpEaWRSZWNlaXZlUmVzcG9uc2Ug
eyByZXNwb25zZSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgfSwgZmV0
Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6ZGlkUmVjZWl2ZUZldGNoRGF0YShGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggZTk2ZGEyMDhkY2ZhYjk0
YTJiZjA0MTE3M2FkZDA5ZmVkNDg4NmU4NS4uMmI0YWVlNjNiNTRhYzY5ZmRiNGFkZmQ3YzI5MWYx
MDAwMDE2NWZhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNjMs
NyArNjMsOCBAQCBwdWJsaWM6CiAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCi0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlZGlyZWN0UmVzcG9uc2UoV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBib29sIG5lZWRzQ29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKICAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEoV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmLCBpbnQ2NF90
IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwog
ICAgIHZvaWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKQEAgLTkx
LDYgKzkyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIpOwogICAgIHZvaWQgY2Fu
Y2VsRmV0Y2goV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRj
aFJlc3BvbnNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwogCiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbih1
aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwog
ICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdp
biwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZjc1NDNmZjgyOTU3ZjI3NDVmZmI5M2ZhYzU2
NGJlMTZhY2RkMTk4Ny4uOWUyZDVlZjgwNjBhNjUxYjY0Y2JhMzQzMmE0ZTBmNWE0YmY5ZDk2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0zMSw2ICszMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAK
ICAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlIHJlcXVlc3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIpCiAgICAgQ2FuY2VsRmV0Y2goV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIpCisgICAgQ29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKIAog
ICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzb3Vy
Y2UpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwCmluZGV4IDMwZjAzMjJmYWNiMWFhYjc1MmMx
YWMzODY1YWYzYzI0ZDBhZGIyN2YuLmYwNzQ3M2M4NTViY2YxMjE3MjY1ZmM4MjE1NWMyOTFjZGNi
NTczMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDbGllbnRGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcApAQCAtNzAsMTcgKzcwLDEyIEBAIHZv
aWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpzdGFydCgpCiAKICAgICBhdXRvIHJlZmVycmVy
ID0gcmVxdWVzdC5odHRwUmVmZXJyZXIoKTsKIAotICAgIG1fZGlkRmFpbCA9IGZhbHNlOwotICAg
IG1fZGlkRmluaXNoID0gZmFsc2U7Ci0KICAgICAvLyBXZSBhcmUgaW50ZXJjZXB0aW5nIGZldGNo
IGNhbGxzIGFmdGVyIGdvaW5nIHRocm91Z2ggdGhlIEhUVFAgbGF5ZXIsIHdoaWNoIG1heSBhZGQg
c29tZSBzcGVjaWZpYyBoZWFkZXJzLgogICAgIGNsZWFuSFRUUFJlcXVlc3RIZWFkZXJzRm9yQWNj
ZXNzQ29udHJvbChyZXF1ZXN0LCBvcHRpb25zLmh0dHBIZWFkZXJzVG9LZWVwKTsKIAogICAgIEFT
U0VSVChvcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSAhPSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5v
bmUpOwogICAgIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBvcHRpb25z
LnNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLnZhbHVlKCk7CiAgICAgbV9jb25u
ZWN0aW9uLT5zdGFydEZldGNoKG1faWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgcmVmZXJyZXIpOwotCi0gICAgbV9yZWRp
cmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOwogfQogCiAvLyBodHRwczov
L2ZldGNoLnNwZWMud2hhdHdnLm9yZy8jaHR0cC1mZXRjaCBzdGVwIDMuMwpAQCAtMTA0LDQyICs5
OSw1MyBAQCBPcHRpb25hbDxSZXNvdXJjZUVycm9yPiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6
OnZhbGlkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyYwogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQordm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2g6OmRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25z
ZSkKIHsKLSAgICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IHRydWU7CiAgICAgY2FsbE9uTWFpblRo
cmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXNwb25zZSA9IFdU
Rk1vdmUocmVzcG9uc2UpXSgpIG11dGFibGUgewotICAgICAgICBpZiAoIW1fbG9hZGVyKSB7Ci0g
ICAgICAgICAgICBtX2lzQ2hlY2tpbmdSZXNwb25zZSA9IGZhbHNlOworICAgICAgICBpZiAoIW1f
bG9hZGVyKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9CiAKICAgICAgICAgaWYgKGF1
dG8gZXJyb3IgPSB2YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkgewotICAgICAgICAgICAgbV9p
c0NoZWNraW5nUmVzcG9uc2UgPSBmYWxzZTsKICAgICAgICAgICAgIG1fbG9hZGVyLT5kaWRGYWls
KGVycm9yLnZhbHVlKCkpOwogICAgICAgICAgICAgQVNTRVJUKCFtX2xvYWRlcik7CiAgICAgICAg
ICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCiAgICAgICAgICAg
ICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOworCiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6
OlNvdXJjZTo6U2VydmljZVdvcmtlcik7CiAKLSAgICAgICAgaWYgKHJlc3BvbnNlLmlzUmVkaXJl
Y3Rpb24oKSAmJiByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCkuY29udGFpbnMoSFRUUEhlYWRl
ck5hbWU6OkxvY2F0aW9uKSkgewotICAgICAgICAgICAgbV9pc0NoZWNraW5nUmVzcG9uc2UgPSBm
YWxzZTsKLSAgICAgICAgICAgIGNvbnRpbnVlTG9hZGluZ0FmdGVyQ2hlY2tpbmdSZXNwb25zZSgp
OwotICAgICAgICAgICAgbV9yZWRpcmVjdGlvblN0YXR1cyA9IFJlZGlyZWN0aW9uU3RhdHVzOjpS
ZWNlaXZpbmc7Ci0gICAgICAgICAgICBtX2xvYWRlci0+d2lsbFNlbmRSZXF1ZXN0KG1fbG9hZGVy
LT5yZXF1ZXN0KCkucmVkaXJlY3RlZFJlcXVlc3QocmVzcG9uc2UsIG1fc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCksIHJlc3BvbnNlLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCB0aGlzXShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKHJlcXVlc3QuaXNOdWxsKCkgfHwgIW1fY2FsbGJhY2spCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgICAgIEFTU0VSVChyZXF1ZXN0ID09IG1f
bG9hZGVyLT5yZXF1ZXN0KCkpOwotICAgICAgICAgICAgICAgIGlmIChtX3JlZGlyZWN0aW9uU3Rh
dHVzID09IFJlZGlyZWN0aW9uU3RhdHVzOjpSZWNlaXZlZCkgewotICAgICAgICAgICAgICAgICAg
ICBzdGFydCgpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1
czo6Rm9sbG93aW5nOwotICAgICAgICAgICAgfSk7CisgICAgICAgIG1fbG9hZGVyLT53aWxsU2Vu
ZFJlcXVlc3QobV9sb2FkZXItPnJlcXVlc3QoKS5yZWRpcmVjdGVkUmVxdWVzdChyZXNwb25zZSwg
bV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSwgcmVzcG9uc2UsIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHRoaXNdKFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QpIHsKKyAgICAgICAgICAgIGlmICghbV9sb2FkZXIgfHwgcmVxdWVzdC5pc051bGwoKSkg
eworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNr
KSkKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soUmVzdWx0OjpTdWNjZWVkZWQpOworICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVChy
ZXF1ZXN0ID09IG1fbG9hZGVyLT5yZXF1ZXN0KCkpOworICAgICAgICAgICAgc3RhcnQoKTsKKyAg
ICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlLCBib29sIG5lZWRz
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQoreworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVzcG9uc2UgPSBXVEZN
b3ZlKHJlc3BvbnNlKSwgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2VdKCkg
bXV0YWJsZSB7CisgICAgICAgIGlmICghbV9sb2FkZXIpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgaWYgKGF1dG8gZXJyb3IgPSB2YWxpZGF0ZVJlc3BvbnNlKHJlc3BvbnNlKSkgewor
ICAgICAgICAgICAgbV9sb2FkZXItPmRpZEZhaWwoZXJyb3IudmFsdWUoKSk7CisgICAgICAgICAg
ICBBU1NFUlQoIW1fbG9hZGVyKTsKKyAgICAgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RG
TW92ZShtX2NhbGxiYWNrKSkKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2Nl
ZWRlZCk7CisKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICByZXNwb25z
ZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpTZXJ2aWNlV29ya2VyKTsKKyAg
ICAgICAgQVNTRVJUKCFyZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkgfHwgIXJlc3BvbnNlLmh0dHBI
ZWFkZXJGaWVsZHMoKS5jb250YWlucyhIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24pKTsKKworICAg
ICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCisgICAgICAgICAg
ICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7CiAKICAgICAgICAgLy8gSW4gY2FzZSBvZiBt
YWluIHJlc291cmNlIGFuZCBtaW1lIHR5cGUgaXMgdGhlIGRlZmF1bHQgb25lLCB3ZSBzZXQgaXQg
dG8gdGV4dC9odG1sIHRvIHBhc3MgbW9yZSBzZXJ2aWNlIHdvcmtlciBXUFQgdGVzdHMuCiAgICAg
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVmaW5lIG91ciBNSU1FIHR5cGUgc25pZmZpbmcgc3Ry
YXRlZ3kgZm9yIHN5bnRoZXRpYyByZXNwb25zZXMuCkBAIC0xNTQsMTEgKzE2MCwxNiBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVz
cG9uc2UmJiByZXNwb25zZSkKICAgICAgICAgaWYgKHJlc3BvbnNlLnVybCgpLmlzTnVsbCgpKQog
ICAgICAgICAgICAgcmVzcG9uc2Uuc2V0VVJMKG1fbG9hZGVyLT5yZXF1ZXN0KCkudXJsKCkpOwog
CisgICAgICAgIGlmICghbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpIHsK
KyAgICAgICAgICAgIG1fbG9hZGVyLT5kaWRSZWNlaXZlUmVzcG9uc2UocmVzcG9uc2UsIFtdIHsg
fSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBtX2xvYWRlci0+
ZGlkUmVjZWl2ZVJlc3BvbnNlKHJlc3BvbnNlLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyldIHsKLSAgICAgICAgICAgIG1faXNDaGVja2luZ1Jlc3BvbnNlID0g
ZmFsc2U7Ci0gICAgICAgICAgICBjb250aW51ZUxvYWRpbmdBZnRlckNoZWNraW5nUmVzcG9uc2Uo
KTsKLSAgICAgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gV1RGTW92ZShtX2NhbGxiYWNrKSkK
LSAgICAgICAgICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7CisgICAgICAgICAg
ICBpZiAoIW1fbG9hZGVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
bV9jb25uZWN0aW9uLT5jb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKG1faWRlbnRpZmll
ciwgbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogfQpAQCAtMTY2LDIzICsxNzcsMTMgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2g6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCiB2
b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQog
ewogICAgIGF1dG8qIGRhdGEgPSByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihkYXRhUmVm
ZXJlbmNlLmRhdGEoKSk7Ci0gICAgaWYgKCFtX2J1ZmZlcikgewotICAgICAgICBtX2J1ZmZlciA9
IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEsIGRhdGFSZWZlcmVuY2Uuc2l6ZSgpKTsKLSAgICAg
ICAgbV9lbmNvZGVkRGF0YUxlbmd0aCA9IGVuY29kZWREYXRhTGVuZ3RoOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIG1fYnVmZmVyLT5hcHBlbmQoZGF0YSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpOwot
ICAgICAgICBtX2VuY29kZWREYXRhTGVuZ3RoICs9IGVuY29kZWREYXRhTGVuZ3RoOwotICAgIH0K
LQotICAgIGlmIChtX2lzQ2hlY2tpbmdSZXNwb25zZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Y2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
Ci0gICAgICAgIGlmICghbV9sb2FkZXIgfHwgIW1fZW5jb2RlZERhdGFMZW5ndGgpCisgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlbmNv
ZGVkRGF0YUxlbmd0aCwgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSwgZGF0YVJl
ZmVyZW5jZS5zaXplKCkpXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIW1fbG9hZGVyKQogICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIG1fbG9hZGVyLT5kaWRSZWNlaXZlQnVmZmVyKG1f
YnVmZmVyLnJlbGVhc2VOb25OdWxsKCksIG1fZW5jb2RlZERhdGFMZW5ndGgsIERhdGFQYXlsb2Fk
Qnl0ZXMpOwotICAgICAgICBtX2VuY29kZWREYXRhTGVuZ3RoID0gMDsKKyAgICAgICAgbV9lbmNv
ZGVkRGF0YUxlbmd0aCArPSBlbmNvZGVkRGF0YUxlbmd0aDsKKworICAgICAgICBtX2xvYWRlci0+
ZGlkUmVjZWl2ZUJ1ZmZlcihXVEZNb3ZlKGJ1ZmZlciksIG1fZW5jb2RlZERhdGFMZW5ndGgsIERh
dGFQYXlsb2FkQnl0ZXMpOwogICAgIH0pOwogfQogCkBAIC0xOTMsMjkgKzE5NCwxMCBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlk
RmluaXNoKCkKIHsKLSAgICBtX2RpZEZpbmlzaCA9IHRydWU7Ci0KLSAgICBpZiAobV9pc0NoZWNr
aW5nUmVzcG9uc2UpCi0gICAgICAgIHJldHVybjsKLQogICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBpZiAoIW1fbG9h
ZGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHN3aXRjaCAobV9yZWRpcmVjdGlv
blN0YXR1cykgewotICAgICAgICBjYXNlIFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lOgotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmluZzoK
LSAgICAgICAgICAgIG1fcmVkaXJlY3Rpb25TdGF0dXMgPSBSZWRpcmVjdGlvblN0YXR1czo6UmVj
ZWl2ZWQ7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0
dXM6OkZvbGxvd2luZzoKLSAgICAgICAgICAgIHN0YXJ0KCk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIGNhc2UgUmVkaXJlY3Rpb25TdGF0dXM6OlJlY2VpdmVkOgotICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBtX3JlZGlyZWN0aW9uU3RhdHVzID0g
UmVkaXJlY3Rpb25TdGF0dXM6Ok5vbmU7Ci0gICAgICAgIH0KLQogICAgICAgICBBU1NFUlQoIW1f
Y2FsbGJhY2spOwogCiAgICAgICAgIG1fbG9hZGVyLT5kaWRGaW5pc2hMb2FkaW5nKE5ldHdvcmtM
b2FkTWV0cmljcyB7IH0pOwpAQCAtMjI1LDI0ICsyMDcsMTggQEAgdm9pZCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RmV0Y2g6OmRpZEZpbmlzaCgpCiAKIHZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNo
OjpkaWRGYWlsKFJlc291cmNlRXJyb3ImJiBlcnJvcikKIHsKLSAgICBtX2RpZEZhaWwgPSB0cnVl
OwotICAgIG1fZXJyb3IgPSBXVEZNb3ZlKGVycm9yKTsKLQotICAgIGlmIChtX2lzQ2hlY2tpbmdS
ZXNwb25zZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CisgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBlcnJvciA9IFdURk1vdmUoZXJy
b3IpXSB7CiAgICAgICAgIGlmICghbV9sb2FkZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAg
ICAgICAgYXV0byogZG9jdW1lbnQgPSBtX2xvYWRlci0+ZnJhbWUoKSA/IG1fbG9hZGVyLT5mcmFt
ZSgpLT5kb2N1bWVudCgpIDogbnVsbHB0cjsKICAgICAgICAgaWYgKGRvY3VtZW50KSB7Ci0gICAg
ICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIG1fZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSk7CisgICAg
ICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOwogICAgICAg
ICAgICAgaWYgKG1fbG9hZGVyLT5vcHRpb25zKCkuZGVzdGluYXRpb24gIT0gRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbjo6RW1wdHlTdHJpbmcpCi0gICAgICAgICAgICAgICAgZG9jdW1lbnQtPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBt
YWtlU3RyaW5nKCJDYW5ub3QgbG9hZCAiLCBtX2Vycm9yLmZhaWxpbmdVUkwoKS5zdHJpbmcoKSwg
Ii4iKSk7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKCJDYW5ub3QgbG9h
ZCAiLCBlcnJvci5mYWlsaW5nVVJMKCkuc3RyaW5nKCksICIuIikpOwogICAgICAgICB9CiAKLSAg
ICAgICAgbV9sb2FkZXItPmRpZEZhaWwobV9lcnJvcik7CisgICAgICAgIG1fbG9hZGVyLT5kaWRG
YWlsKGVycm9yKTsKIAogICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxs
YmFjaykpCiAgICAgICAgICAgICBjYWxsYmFjayhSZXN1bHQ6OlN1Y2NlZWRlZCk7CkBAIC0yNTMs
OCArMjI5LDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2g6OmRpZEZhaWwoUmVzb3Vy
Y2VFcnJvciYmIGVycm9yKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6ZGlkTm90
SGFuZGxlKCkKIHsKLSAgICBBU1NFUlQoIW1faXNDaGVja2luZ1Jlc3BvbnNlKTsKLQogICAgIGNh
bGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewog
ICAgICAgICBpZiAoIW1fbG9hZGVyKQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMjcxLDM2ICsy
NDUsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaDo6Y2FuY2VsKCkKICAgICBpZiAo
YXV0byBjYWxsYmFjayA9IFdURk1vdmUobV9jYWxsYmFjaykpCiAgICAgICAgIGNhbGxiYWNrKFJl
c3VsdDo6Q2FuY2VsbGVkKTsKIAotICAgIGlmICghbV9kaWRGaW5pc2ggJiYgIW1fZGlkRmFpbCkg
ewotICAgICAgICBtX2Nvbm5lY3Rpb24tPmNhbmNlbEZldGNoKG1faWRlbnRpZmllciwgbV9zZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7Ci0KLSAgICB9CisgICAgbV9jb25uZWN0
aW9uLT5jYW5jZWxGZXRjaChtX2lkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIpOwogICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKLSAgICBtX2J1ZmZlciA9IG51
bGxwdHI7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEZldGNoOjpjb250aW51ZUxvYWRp
bmdBZnRlckNoZWNraW5nUmVzcG9uc2UoKQotewotICAgIEFTU0VSVCghbV9pc0NoZWNraW5nUmVz
cG9uc2UpOwotICAgIGlmICghbV9sb2FkZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICht
X2VuY29kZWREYXRhTGVuZ3RoKSB7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICAgICAgaWYgKCFtX2xvYWRl
ciB8fCAhbV9lbmNvZGVkRGF0YUxlbmd0aCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICBtX2xvYWRlci0+ZGlkUmVjZWl2ZUJ1ZmZlcihtX2J1ZmZlci5yZWxlYXNlTm9uTnVs
bCgpLCBtX2VuY29kZWREYXRhTGVuZ3RoLCBEYXRhUGF5bG9hZEJ5dGVzKTsKLSAgICAgICAgICAg
IG1fZW5jb2RlZERhdGFMZW5ndGggPSAwOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBpZiAo
bV9kaWRGYWlsKSB7Ci0gICAgICAgIGRpZEZhaWwoV1RGTW92ZShtX2Vycm9yKSk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9kaWRGaW5pc2gpCi0gICAgICAgIGRpZEZpbmlz
aCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgKaW5k
ZXggNzM2YjNhYzAzYmM3MjI5YmU5ZTRlYWQzNjVhZDljNzI1NWNjNDEyNS4uYzY2N2FjNzU3ZmRk
NzEwODg4YjhiMmQ0ZWVlOTQ0OTkwZjBiMGQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLmgKQEAg
LTYxLDMwICs2MSwyMiBAQCBwcml2YXRlOgogCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvcj4gdmFsaWRhdGVSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSk7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYpOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRm9ybURh
dGEoY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogICAgIHZvaWQgZGlkRmluaXNoKCk7
CiAgICAgdm9pZCBkaWRGYWlsKFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CiAgICAgdm9pZCBk
aWROb3RIYW5kbGUoKTsKIAotICAgIHZvaWQgY29udGludWVMb2FkaW5nQWZ0ZXJDaGVja2luZ1Jl
c3BvbnNlKCk7Ci0KICAgICBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXImIG1fc2VydmljZVdvcmtl
clByb3ZpZGVyOwogICAgIFJlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcj4gbV9sb2FkZXI7
CiAgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWY8V2Vi
U1dDbGllbnRDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgQ2FsbGJhY2sgbV9jYWxsYmFj
azsKLSAgICBlbnVtIGNsYXNzIFJlZGlyZWN0aW9uU3RhdHVzIHsgTm9uZSwgUmVjZWl2aW5nLCBG
b2xsb3dpbmcsIFJlY2VpdmVkIH07Ci0gICAgUmVkaXJlY3Rpb25TdGF0dXMgbV9yZWRpcmVjdGlv
blN0YXR1cyB7IFJlZGlyZWN0aW9uU3RhdHVzOjpOb25lIH07CiAgICAgYm9vbCBtX3Nob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QgeyB0cnVlIH07Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4gbV9idWZmZXI7CiAgICAgaW50NjRfdCBtX2VuY29kZWREYXRh
TGVuZ3RoIHsgMCB9OwotICAgIGJvb2wgbV9pc0NoZWNraW5nUmVzcG9uc2UgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9kaWRGaW5pc2ggeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kaWRGYWlsIHsgZmFs
c2UgfTsKLSAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIG1fZXJyb3I7Ci0KICAgICBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBtX3NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1l
c3NhZ2VzLmluCmluZGV4IGUwMTUzZDM2ZmM3OWYzMzFjMjQ1Y2QxODkyYjUyMjI0YjY3ZGExZmMu
LjNkM2JjNzQwNGJmYjQ3ZDYxZTBkMTU4OGUxYTVmMmE5YzA2YTE2NjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDggQEAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAKIG1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRj
aCB7Ci0gICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVz
cG9uc2UpCisgICAgRGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Ug
cmVzcG9uc2UsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpCisg
ICAgRGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2UoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKICAgICBEaWRSZWNlaXZlRGF0YShJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKICAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSBkYXRhKQogICAgIERpZEZpbmlzaCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApp
bmRleCBhNTU1Y2EzYzAwMDgzYmQ5NWVhZWQwMzIzZDUyYmIzZTYwMzk4NmJiLi41MDdiOTkwNzY1
Y2ExZjhkNTQ2ZjljMDdjY2E4OWM3ZDhjN2IxMmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAg
LTE5OCwxNiArMTk4LDIxIEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3Ry
YXRpb25zKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uCiAgICAgfSk7CiB9CiAK
LXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzdGFydEZldGNoKFdlYkNvcmU6OkZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0
aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKK3ZvaWQgV2ViU1dDbGllbnRD
b25uZWN0aW9uOjpzdGFydEZldGNoKEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IEZldGNo
T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgU3RyaW5nJiByZWZlcnJlcikKIHsKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBzZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25z
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgcmVxdWVzdC5odHRwQm9keSgpIH0sIHJlZmVycmVy
IH0pOwogfQogCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goV2ViQ29y
ZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y2FuY2VsRmV0Y2goRmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCiB7CiAgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IHNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIgfSk7CiB9CiAKK3ZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKEZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6Q29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZSB7IHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZp
ZXIgfSk7Cit9CisKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRl
bnRpZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
RGF0YSYmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAgU1dDbGll
bnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlv
bkNvbnRleHRJZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKHNvdXJjZSksIHNv
dXJjZU9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGNiMWExMGNiYjE3ZDNkN2IyMzQxNTI2
MmUxODQxNTE2Njg0YWYzNTkuLjU4ZDY5ZGFjOGRhMDNmNTUxMmIwMGEzMGZlMTgwZDUxOWQwZTQ4
ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAgICBib29s
IG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHN0YXJ0RmV0Y2goV2Vi
Q29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlcik7CiAgICAgdm9pZCBjYW5j
ZWxGZXRjaChXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNo
UmVzcG9uc2UoV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggZTQ2Y2Y4MGVhNzlj
MjMwZjRmMmYwZjJhOWI0NDQ5MGM4M2E4MGE4YS4uNWJkODIzZjc3NzRkMzk2YzQzODlkNDdiNGRj
NjEwNWZhYmViYjIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAt
MjE1LDYgKzIxNSwxMiBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjYW5j
ZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcgogICAgICAgICBzZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHktPmNhbmNlbEZldGNoKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIpOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdv
cmtlcklkZW50aWZpZXIpKQorICAgICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmNvbnRp
bnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2Uoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBm
b3JtRGF0YSwgU3RyaW5nJiYgcmVmZXJyZXIpCiB7CiAgICAgYXV0byogc2VydmljZVdvcmtlclRo
cmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlclRo
cmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKQEAgLTIyOCw3ICsyMzQsNyBAQCB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0
byBjbGllbnQgPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjcmVhdGUobV9jb25u
ZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy5jb3B5UmVmKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBhdXRv
IGNsaWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5l
Y3Rpb25Ub05ldHdvcmtQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QucmVx
dWVzdGVyKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pOwogICAgIE9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBjbGllbnRJZDsKICAgICBpZiAob3B0
aW9ucy5jbGllbnRJZGVudGlmaWVyKQogICAgICAgICBjbGllbnRJZCA9IFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG9wdGlvbnMuY2xp
ZW50SWRlbnRpZmllci52YWx1ZSgpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApp
bmRleCAwZDI0MTQ0OTgyMzI0ZjJlY2M4NjZjMGZiNDE2NWY1NzY5N2QxNTM4Li45NDYwZjBlMmM5
Y2MxOTg5YjdlMzAzZjA3ZGUzODVhNDEzMzczOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGluc3RhbGxTZXJ2
aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6
U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQpOwogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiwgU3RyaW5nJiYgcmVmZXJyZXIpOwogICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIp
OwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291
cmNlRGF0YSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KaW5kZXggZGZlNWEzOGUxNmVjZThiZmNiMDYyZmNjZDhjNGU2MGVjZGYy
MWMxMy4uYTMxZjU0YTUzNTViNDIyOTFjYTE1MzQzMTI0MzU0OTY5NmQ2NWRiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2
LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIElu
c3RhbGxTZXJ2aWNlV29ya2VyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEgY29udGV4dERhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIHVzZXJBZ2Vu
dCkKICAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdl
YkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVl
c3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIpCiAgICAgQ2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCisgICAgQ29udGludWVEaWRSZWNl
aXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllcikKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
T3JDbGllbnREYXRhIHNvdXJjZURhdGEpCiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2ZW50
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IDZmNDMwMDY3ODEwNWViMzRjNDU2ZGQ0
OGU0YzUwY2UxY2UwMDQ0OWEuLjA1YzY4YjI1OGM3YjlmNDk2ZDJhOTk4YzU4MTI5ZmUyNzBmY2E0
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC00MiwzMSAr
NDIsNDggQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
LVdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6On5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50KCkKLXsKLSAgICBpZiAobV9jb25uZWN0aW9uKQotICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fY29ubmVjdGlvbildIHsgfSk7
Ci19Ci0KLVdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK1dlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllciwgYm9vbCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKICAg
ICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9zZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICAgICAsIG1fc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpCiAgICAgLCBtX2Zl
dGNoSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpCisgICAgLCBtX25lZWRzQ29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2VNZXNzYWdlKG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlKQoreworfQorCit2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJl
Y2VpdmVSZWRpcmVjdGlvbihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSkKIHsKKyAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworICAgIG1fY29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJl
ZGlyZWN0UmVzcG9uc2UgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRl
bnRpZmllciwgcmVzcG9uc2UgfSwgMCk7CisKKyAgICBjbGVhbnVwKCk7CiB9CiAKIHZvaWQgV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAg
ICAgICByZXR1cm47Ci0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6RGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UgeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVzcG9uc2UgfSwgMCk7CisKKyAgICBpZiAobV9uZWVk
c0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkKKyAgICAgICAgbV93YWl0aW5nRm9y
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlID0gdHJ1ZTsKKworICAgIG1fY29ubmVj
dGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJl
c3BvbnNlLCBtX25lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0sIDApOwog
fQogCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRh
KFJlZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQog
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlKSB7CisgICAgICAgIGlmICghV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxS
ZWY8U2hhcmVkQnVmZmVyPj4obV9yZXNwb25zZURhdGEpKQorICAgICAgICAgICAgbV9yZXNwb25z
ZURhdGEgPSBidWZmZXItPmNvcHkoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgV1RGOjpn
ZXQ8UmVmPFNoYXJlZEJ1ZmZlcj4+KG1fcmVzcG9uc2VEYXRhKS0+YXBwZW5kKFdURk1vdmUoYnVm
ZmVyKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEaWRSZWNlaXZlRmV0Y2hEYXRhIHsgbV9zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHsgYnVmZmVyIH0sIHN0YXRp
Y19jYXN0PGludDY0X3Q+KGJ1ZmZlci0+c2l6ZSgpKSB9LCAwKTsKIH0KIApAQCAtNzUsNiArOTIs
MTEgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9y
bURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRhPiYKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlTWVzc2FnZSkgeworICAgICAgICBtX3Jlc3BvbnNlRGF0YSA9IGZvcm1EYXRhLT5pc29s
YXRlZENvcHkoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgc2VuZCB0aGlzIGZvcm0gZGF0YSB0byB0aGUgb3RoZXIgcHJvY2VzcyBhbmQgY29uc3Vt
ZSBpdCB0aGVyZS4KICAgICAvLyBGb3Igbm93IGFuZCBmb3IgdGhlIGNhc2Ugb2YgYmxvYnMsIHdl
IHJlYWQgaXQgdGhlcmUgYW5kIHNlbmQgdGhlIGRhdGEgdGhyb3VnaCBJUEMuCiAgICAgVVJMIGJs
b2JVUkwgPSBmb3JtRGF0YS0+YXNCbG9iVVJMKCk7CkBAIC0xMjIsNiArMTQ0LDExIEBAIHZvaWQg
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnJvcikKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCisg
ICAgaWYgKG1fd2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSkgewor
ICAgICAgICBtX3Jlc3BvbnNlRGF0YSA9IG1ha2VVbmlxdWVSZWY8UmVzb3VyY2VFcnJvcj4oZXJy
b3IuaXNvbGF0ZWRDb3B5KCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RGlkRmFpbEZldGNoIHsgbV9z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIGVycm9yIH0sIDAp
OwogCiAgICAgY2xlYW51cCgpOwpAQCAtMTMyLDYgKzE1OSwxMSBAQCB2b2lkIFdlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaCgpCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24p
CiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX3dhaXRpbmdGb3JDb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZU1lc3NhZ2UpIHsKKyAgICAgICAgbV9kaWRGaW5pc2ggPSB0cnVlOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6RGlkRmluaXNoRmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBtX2ZldGNoSWRlbnRpZmllciB9LCAwKTsKIAogICAgIGNsZWFudXAoKTsKQEAgLTE1Miw2ICsx
ODQsMjggQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQog
ICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudDo6Y29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3dhaXRpbmdGb3JDb250aW51
ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgPSBmYWxzZTsKKworICAgIHN3aXRjaE9uKG1fcmVz
cG9uc2VEYXRhLCBbdGhpc10oc3RkOjpudWxscHRyX3QmKSB7CisgICAgICAgIGlmIChtX2RpZEZp
bmlzaCkKKyAgICAgICAgICAgIGRpZEZpbmlzaCgpOworICAgIH0sIFt0aGlzXShSZWY8U2hhcmVk
QnVmZmVyPiYgYnVmZmVyKSB7CisgICAgICAgIGRpZFJlY2VpdmVEYXRhKFdURk1vdmUoYnVmZmVy
KSk7CisgICAgICAgIGlmIChtX2RpZEZpbmlzaCkKKyAgICAgICAgICAgIGRpZEZpbmlzaCgpOwor
ICAgIH0sIFt0aGlzXShSZWY8Rm9ybURhdGE+JiBmb3JtRGF0YSkgeworICAgICAgICBkaWRSZWNl
aXZlRm9ybURhdGFBbmRGaW5pc2goV1RGTW92ZShmb3JtRGF0YSkpOworICAgIH0sIFt0aGlzXShV
bmlxdWVSZWY8UmVzb3VyY2VFcnJvcj4mIGVycm9yKSB7CisgICAgICAgIGRpZEZhaWwoZXJyb3Iu
Z2V0KCkpOworICAgIH0pOworICAgIG1fcmVzcG9uc2VEYXRhID0gbnVsbHB0cjsKK30KKwogdm9p
ZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpjbGVhbnVwKCkKIHsKICAgICBtX2Nv
bm5lY3Rpb24gPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCmlu
ZGV4IDUzMzAzYzhkYTZjMTRmMDMxNjk5NmZkMTNhYTU3YWFhZWY2NDc4ZTguLmI5MTY5YWJkM2Qy
MWZiYzhjMjdiMjFiMzBhYjQ0M2VhODlkZmI1NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRl
bnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hMb2FkZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZldGNoTG9hZGVyQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVy
cm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2guaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogCkBAIC0zOCwyMyArMzksMjMgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQg
ZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQgewogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudD4gY3Jl
YXRlKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsICBXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIgZmV0Y2hUYXNrSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPFdl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ+IGNyZWF0ZShSZWY8SVBDOjpDb25uZWN0aW9u
PiYmIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNo
VGFza0lkZW50aWZpZXIsIGJvb2wgbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3Nh
Z2UpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29ubmVjdGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50KFdURk1vdmUoY29ubmVjdGlvbiksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllciwgbmVlZHNDb250aW51ZURp
ZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UpKTsKICAgICB9CiAKLSAgICB+V2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudCgpOwotCiBwcml2YXRlOgotICAgIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OkZldGNoSWRlbnRpZmllcik7CisgICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dChSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJ
ZGVudGlmaWVyLCBib29sIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsK
IAogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZWRpcmVjdGlvbihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVG
b3JtRGF0YUFuZEZpbmlzaChSZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiYpIGZpbmFsOwogICAgIHZv
aWQgZGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgZmluYWw7CiAgICAgdm9p
ZCBkaWRGaW5pc2goKSBmaW5hbDsKICAgICB2b2lkIGRpZE5vdEhhbmRsZSgpIGZpbmFsOwogICAg
IHZvaWQgY2FuY2VsKCkgZmluYWw7CisgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25z
ZSgpIGZpbmFsOwogCiAgICAgdm9pZCBjbGVhbnVwKCk7CiAgICAgCkBAIC03OSw2ICs4MCwxMCBA
QCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1fc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXI7CiAgICAgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIG1fZmV0Y2hJ
ZGVudGlmaWVyOwogICAgIE9wdGlvbmFsPEJsb2JMb2FkZXI+IG1fYmxvYkxvYWRlcjsKKyAgICBi
b29sIG1fbmVlZHNDb250aW51ZURpZFJlY2VpdmVSZXNwb25zZU1lc3NhZ2UgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIHsg
ZmFsc2UgfTsKKyAgICBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiwgUmVmPEZvcm1EYXRhPiwgVW5pcXVlUmVmPFJlc291cmNlRXJyb3I+PiBtX3Jlc3Bv
bnNlRGF0YTsKKyAgICBib29sIG1fZGlkRmluaXNoIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362146</attachid>
            <date>2019-02-15 12:42:37 -0800</date>
            <delta_ts>2019-02-15 13:18:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194651-20190215124236.patch</filename>
            <type>text/plain</type>
            <size>1284</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxNTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI4OTlmY2Y2M2RkOTc4NzMw
ZDQ2ODgzMWFlNDJmMzM3ODI5MTYzNDEuLjYyNGE0ZmVjYjE2ZDYyMmVkYTgwNjIyM2I2ZGJlM2Nl
ZDRjNWI1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDItMTUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgU2VydmljZVdvcmtlckNs
aWVudEZldGNoIGNsb3NlciB0byBXZWJSZXNvdXJjZUxvYWRlcgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NjUxCisKKyAgICAgICAgVW5yZXZpZXdl
ZCwgYnVpbGQgZml4IGZvciBXUEUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOgorCiAyMDE5LTAyLTE1ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHNlcnZpY2Ugd29ya2VyIHJl
c3BvbnNlIHZhbGlkYXRpb24gZnJvbSB0aGUgc2VydmljZSB3b3JrZXIgY2xpZW50IHRvIHRoZSBz
ZXJ2aWNlIHdvcmtlciBpdHNlbGYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaApp
bmRleCBiOTE2OWFiZDNkMjFmYmM4YzI3YjIxYjMwYWI0NDNlYTg5ZGZiNTc1Li5kODgwNGY3NmQw
NzdmYzY4YTQ5YWYzYTdmZTJjNTc4YWIwYjc4NjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNo
VGFza0NsaWVudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2guaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgorI2luY2x1ZGUgPHd0Zi9VbmlxdWVS
ZWYuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>