<?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>181381</bug_id>
          
          <creation_ts>2018-01-08 03:53:44 -0800</creation_ts>
          <short_desc>SWClientConnection should not keep references to service worker jobs</short_desc>
          <delta_ts>2018-01-09 04:48:40 -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>
          <dependson>181422</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</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>1386648</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 03:53:44 -0800</bug_when>
    <thetext>ServiceWorkerJob can be destroyed in the wrong thread, as shown in https://build.webkit.org/results/Apple%20El%20Capitan%20Debug%20WK2%20(Tests)/r226473%20(4864)/com.apple.WebKit.WebContent.Development-67744-crash-log.txt
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000114eaaaa4 WTFCrash + 36 (Assertions.cpp:272)
1   com.apple.WebCore             	0x0000000107f6feae WebCore::ServiceWorkerJob::~ServiceWorkerJob() + 110 (ServiceWorkerJob.cpp:51)
2   com.apple.WebCore             	0x0000000107f6ff55 WebCore::ServiceWorkerJob::~ServiceWorkerJob() + 21 (ServiceWorkerJob.cpp:52)
3   com.apple.WebCore             	0x0000000107f6ff79 WebCore::ServiceWorkerJob::~ServiceWorkerJob() + 25 (ServiceWorkerJob.cpp:50)
4   com.apple.WebCore             	0x0000000107f6508f WTF::ThreadSafeRefCounted&lt;WebCore::ServiceWorkerJob&gt;::deref() const + 79 (ThreadSafeRefCounted.h:71)
5   com.apple.WebCore             	0x0000000107f65035 void WTF::derefIfNotNull&lt;WebCore::ServiceWorkerJob&gt;(WebCore::ServiceWorkerJob*) + 53 (RefPtr.h:46)
6   com.apple.WebCore             	0x0000000107f64ff9 WTF::RefPtr&lt;WebCore::ServiceWorkerJob, WTF::DumbPtrTraits&lt;WebCore::ServiceWorkerJob&gt; &gt;::~RefPtr() + 41 (RefPtr.h:70)
7   com.apple.WebCore             	0x0000000107f5bcd5 WTF::RefPtr&lt;WebCore::ServiceWorkerJob, WTF::DumbPtrTraits&lt;WebCore::ServiceWorkerJob&gt; &gt;::~RefPtr() + 21 (RefPtr.h:70)
8   com.apple.WebCore             	0x0000000107f486e9 WebCore::SWClientConnection::registrationJobResolvedInServer(WebCore::ServiceWorkerJobDataIdentifier const&amp;, WebCore::ServiceWorkerRegistrationData&amp;&amp;, WebCore::ShouldNotifyWhenResolved) + 553 (SWClientConnection.cpp:110)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386649</commentid>
    <comment_count>1</comment_count>
      <attachid>330677</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 03:58:34 -0800</bug_when>
    <thetext>Created attachment 330677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386696</commentid>
    <comment_count>2</comment_count>
      <attachid>330694</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 05:37:15 -0800</bug_when>
    <thetext>Created attachment 330694
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386709</commentid>
    <comment_count>3</comment_count>
      <attachid>330699</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 06:28:29 -0800</bug_when>
    <thetext>Created attachment 330699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386754</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-08 09:11:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/36350422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386814</commentid>
    <comment_count>5</comment_count>
      <attachid>330699</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-01-08 10:56:45 -0800</bug_when>
    <thetext>Comment on attachment 330699
Patch

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

r=me with comments.

&gt; Source/WebCore/workers/service/SWClientConnection.cpp:48
&gt; +void SWClientConnection::scheduleJob(ServiceWorkerJobIdentifier jobIdentifier, DocumentOrWorkerIdentifier contextIdentifier, const ServiceWorkerJobData&amp; jobData)

I do not believe you need the jobIdentifier parameters, you can get it from the jobData, no?

&gt; Source/WebCore/workers/service/SWClientConnection.cpp:115
&gt; +        failedFetchingScript(jobIdentifier, registrationKey, ResourceError { errorDomainWebKitInternal, 0, registrationKey.scope(), ASCIILiteral(&quot;Failed to fetch service worker script&quot;) });

Seems odd to use the scope here. The URL we tried to fetch is the scriptURL so we should use that URL in the error message.

&gt; Source/WebCore/workers/service/SWClientConnection.cpp:253
&gt;      auto jobs = WTFMove(m_scheduledJobs);

These are no longer jobs but jobSources

&gt; Source/WebCore/workers/service/SWClientConnection.h:107
&gt; +    enum class ShouldTakeJob { No, Yes };

I find this shouldTakeJob a bit confusing. We do not really take the job, we remove a job source from the HashMap of job sources. Maybe this could be a enum class IsJobComplete { No, Yes }; and then we&apos;d remove the source from the map if the job is complete?

&gt; Source/WebCore/workers/service/SWClientConnection.h:110
&gt; +    HashMap&lt;ServiceWorkerJobIdentifier, DocumentOrWorkerIdentifier&gt; m_scheduledJobs;

m_scheduledJobSources? since it no longer contains jobs but source identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386821</commentid>
    <comment_count>6</comment_count>
      <attachid>330699</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 11:19:42 -0800</bug_when>
    <thetext>Comment on attachment 330699
Patch

Thanks for the review.

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

&gt;&gt; Source/WebCore/workers/service/SWClientConnection.cpp:115
&gt;&gt; +        failedFetchingScript(jobIdentifier, registrationKey, ResourceError { errorDomainWebKitInternal, 0, registrationKey.scope(), ASCIILiteral(&quot;Failed to fetch service worker script&quot;) });
&gt; 
&gt; Seems odd to use the scope here. The URL we tried to fetch is the scriptURL so we should use that URL in the error message.

We no longer have the scriptURL information since we do not have any job/jobData anymore.
We could store the job data or the script URL in the job map but that does not seem appealing just for this purpose.
I will update the ResourceError by passing an empty URL and adding the scope URL in the error message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386901</commentid>
    <comment_count>7</comment_count>
      <attachid>330734</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 13:58:38 -0800</bug_when>
    <thetext>Created attachment 330734
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386902</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-08 13:59:10 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; Created attachment 330734 [details]
&gt; Patch for landing

Updated according review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386925</commentid>
    <comment_count>9</comment_count>
      <attachid>330734</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-08 14:33:26 -0800</bug_when>
    <thetext>Comment on attachment 330734
Patch for landing

Clearing flags on attachment: 330734

Committed r226540: &lt;https://trac.webkit.org/changeset/226540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386926</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-08 14:33:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387039</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-08 18:05:31 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 181422</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387187</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-09 03:30:01 -0800</bug_when>
    <thetext>Patch was rolled out because apparently it is breaking basic browsing.
My intuition is that it may be related to SQL SW persistency changes done in https://bugs.webkit.org/show_bug.cgi?id=181385.
I will reland this one as is for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387194</commentid>
    <comment_count>13</comment_count>
      <attachid>330808</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-01-09 04:13:25 -0800</bug_when>
    <thetext>Created attachment 330808
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387200</commentid>
    <comment_count>14</comment_count>
      <attachid>330808</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-09 04:48:38 -0800</bug_when>
    <thetext>Comment on attachment 330808
Patch for landing

Clearing flags on attachment: 330808

Committed r226626: &lt;https://trac.webkit.org/changeset/226626&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387201</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-09 04:48:40 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330677</attachid>
            <date>2018-01-08 03:58:34 -0800</date>
            <delta_ts>2018-01-08 05:37:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181381-20180108125832.patch</filename>
            <type>text/plain</type>
            <size>33951</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODc4NDlmMzlmMGUxMjhm
OWRmNTMwODkyNTk4OTY1ZTQ1M2ViNzc2Ny4uNzU3NjZjZjk0YTQzYTUzMzc1ZWY2YmY3MzllZDMz
NGQ3OGI2MDcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAxLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV0NsaWVudENvbm5lY3Rp
b24gc2hvdWxkIG5vdCBrZWVwIHJlZmVyZW5jZXMgdG8gc2VydmljZSB3b3JrZXIgam9icworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlmZmljdWx0IHRv
IHRlc3QgZGV0ZXJtaW5pc2NhbGx5IGJ1dCBjb3JyZXNwb25kaW5nIGNyYXNoIGxvZyBzaG91bGQg
bm8gbG9uZ2VyIGhhcHBlbiBpbiBkZWJ1ZyBidWlsZHMuCisKKyAgICAgICAgU3RvcHBlZCBwYXNz
aW5nIFNlcnZpY2VXb3JrZXJKb2IgcmVmZXJlbmNlcyBmcm9tIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXIgKHBvdGVudGlhbGx5IGluIHNlcnZpY2Ugd29ya2VyIHRocmVhZCkgdG8gU1dDbGllbnRDb25u
ZWN0aW9uIChtYWluIHRocmVhZCkuCisgICAgICAgIEluc3RlYWQgcGFzcyBqb2IgaWRlbnRpZmll
cnMgYW5kIHJlbGF0ZWQgZGF0YSB0byB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgTWlub3Ig
cmVmYWN0b3JpbmcgdG8gdXNlIFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGluc3RlYWQgb2Yg
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIHdoaWNoIGNvbnRhaW5zIG1vcmUgZGF0YSB0
aGFuIG5lZWRlZC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpv
Yik6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5n
U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tG
b3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3Rl
ZEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0
cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENv
bm5lY3Rpb246OnVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpjbGVhclBlbmRpbmdKb2JzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1Nj
cmlwdCk6IERlbGV0ZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxl
Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2Ny
aXB0RmV0Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5l
cjo6am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
cmVqZWN0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlUmVnaXN0cmF0
aW9uSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlVW5yZWdpc3RyYXRp
b25Kb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2gpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAxOC0wMS0w
NSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50
IENhY2hlIEFQSSBwYXJ0aXRpb25pbmcgYmFzZWQgb24gQ2xpZW50T3JpZ2luCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGUzY2Q4NjA5YmM2MzlkZGNlYjJlY2U2MDMyYjE5YjIwMGIwMDc5MzUuLjJhNGZkNzc2Y2U1YTg3
YzBkMGVjYjk0MTY4Y2RhY2I4MjZjMTk0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIw
MTgtMDEtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNX
Q2xpZW50Q29ubmVjdGlvbiBzaG91bGQgbm90IGtlZXAgcmVmZXJlbmNlcyB0byBzZXJ2aWNlIHdv
cmtlciBqb2JzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODEzODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIElQQyBoYW5kbGluZyBiYXNlZCBvbiBXZWJDb3JlIHJlZmFjdG9yaW5nLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChmb3J3YXJkX2Rl
Y2xhcmF0aW9uc19hbmRfaGVhZGVycyk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVqZWN0Sm9i
SW5DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29s
dmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudCk6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE4LTAxLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgQ2FjaGUgQVBJIHBhcnRpdGlvbmluZyBiYXNl
ZCBvbiBDbGllbnRPcmlnaW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNTAwMzFkMjAyYzVlNzRlMDgwNGFlNjk3
YzhlMGU0N2IyN2UzNDhjNC4uYTM4YzMwYjQyMGIzMDU5NjkzOWE5MzFhZGI5Yzk1Mjc3Y2U5MTg0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
Sm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NiwxMDEgKzQ1LDc0IEBAIFNXQ2xpZW50Q29ubmVj
dGlvbjo6U1dDbGllbnRDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwogCiBTV0NsaWVudENvbm5lY3Rp
b246On5TV0NsaWVudENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKLXZvaWQgU1dDbGllbnRDb25u
ZWN0aW9uOjpzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iJiBqb2IpCit2b2lkIFNXQ2xpZW50
Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRl
bnRpZmllciwgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc2NoZWR1bGVkSm9icy5hZGQoam9i
LmlkZW50aWZpZXIoKSwgJmpvYik7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3NjaGVkdWxlZEpv
YnMuYWRkKGpvYklkZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5V
U0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAgc2NoZWR1bGVKb2JJ
blNlcnZlcihqb2IuZGF0YSgpKTsKKyAgICBzY2hlZHVsZUpvYkluU2VydmVyKGpvYkRhdGEpOwog
fQogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2
aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSkKK3ZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjpmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiByZWdpc3RyYXRpb25LZXksIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKG1fc2NoZWR1bGVkSm9icy5nZXQo
am9iLmlkZW50aWZpZXIoKSkgPT0gJmpvYik7CiAKLSAgICBmaW5pc2hGZXRjaGluZ1NjcmlwdElu
U2VydmVyKHsgam9iLmRhdGEoKS5pZGVudGlmaWVyKCksIGpvYi5kYXRhKCkucmVnaXN0cmF0aW9u
S2V5KCksIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB7IH0gfSk7CisgICAgZmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcih7IHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwg
am9iSWRlbnRpZmllciB9LCByZWdpc3RyYXRpb25LZXksIHsgfSwgeyB9LCBlcnJvciB9KTsKIH0K
IAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCitib29sIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tGb3JKb2Io
U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgU2hvdWxkVGFrZUpvYiBz
aG91bGRUYWtlSm9iLCBXVEY6OkZ1bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYiYpPiYmIHRh
c2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGZpbmlzaEZldGNoaW5n
U2NyaXB0SW5TZXJ2ZXIoeyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCB7IH0s
IHsgfSwgZXJyb3IgfSk7Ci19Ci0KLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3Rl
ZEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlk
ZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCi17Ci0gICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLnRh
a2Uoam9iRGF0YUlkZW50aWZpZXIuam9iSWRlbnRpZmllcik7Ci0gICAgaWYgKCFqb2IpIHsKLSAg
ICAgICAgTE9HX0VSUk9SKCJKb2IgJXMgcmVqZWN0ZWQgZnJvbSBzZXJ2ZXIsIGJ1dCB3YXMgbm90
IGZvdW5kIiwgam9iRGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotICAgICAgICByZXR1cm47CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2NoZWR1bGVkSm9icy5m
aW5kKGpvYklkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NjaGVkdWxlZEpvYnMu
ZW5kKCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJKb2IgJXMgd2FzIG5vdCBmb3VuZCIsIGpvYklk
ZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhq
b2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIGV4Y2VwdGlvbkRhdGEgPSBleGNlcHRpb25E
YXRhLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBq
b2ItPmZhaWxlZFdpdGhFeGNlcHRpb24oZXhjZXB0aW9uRGF0YS50b0V4Y2VwdGlvbigpKTsKKyAg
ICBhdXRvIGlzUG9zdGVkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhpdGVy
YXRvci0+dmFsdWUsIFtqb2JJZGVudGlmaWVyLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byog
Y29udGFpbmVyID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkpIHsKKyAgICAgICAg
ICAgIGlmIChhdXRvKiBqb2IgPSBjb250YWluZXItPmpvYihqb2JJZGVudGlmaWVyKSkKKyAgICAg
ICAgICAgICAgICB0YXNrKCpqb2IpOworICAgICAgICB9CiAgICAgfSk7CisgICAgaWYgKHNob3Vs
ZFRha2VKb2IgPT0gU2hvdWxkVGFrZUpvYjo6WWVzKQorICAgICAgICBtX3NjaGVkdWxlZEpvYnMu
cmVtb3ZlKGl0ZXJhdG9yKTsKKyAgICByZXR1cm4gaXNQb3N0ZWQ7CiB9CiAKLXZvaWQgU1dDbGll
bnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSwgU2hvdWxkTm90aWZ5V2hlblJl
c29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9u
Ojpqb2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50
aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCiB7Ci0gICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLQotICAgIGF1dG8gZ3VhcmQgPSBXVEY6Om1ha2VTY29wZUV4aXQo
W3RoaXMsIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCwgcmVnaXN0cmF0aW9uS2V5ID0gcmVnaXN0
cmF0aW9uRGF0YS5rZXldIHsKLSAgICAgICAgaWYgKHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCA9
PSBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgICAgIGRpZFJlc29sdmVS
ZWdpc3RyYXRpb25Qcm9taXNlKHJlZ2lzdHJhdGlvbktleSk7CisgICAgcG9zdFRhc2tGb3JKb2Io
am9iSWRlbnRpZmllciwgU2hvdWxkVGFrZUpvYjo6WWVzLCBbZXhjZXB0aW9uRGF0YSA9IGV4Y2Vw
dGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCldKGF1dG8mIGpvYikgeworICAgICAgICBqb2IuZmFpbGVk
V2l0aEV4Y2VwdGlvbihleGNlcHRpb25EYXRhLnRvRXhjZXB0aW9uKCkpOwogICAgIH0pOworfQog
Ci0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMudGFrZShqb2JEYXRhSWRlbnRpZmllci5q
b2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikgewotICAgICAgICBMT0dfRVJST1IoIkpvYiAl
cyByZXNvbHZlZCBpbiBzZXJ2ZXIsIGJ1dCB3YXMgbm90IGZvdW5kIiwgam9iRGF0YUlkZW50aWZp
ZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgYm9vbCB3YXNQb3N0ZWQgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFz
a1RvKGpvYi0+Y29udGV4dElkZW50aWZpZXIoKSwgW2pvYiwgcmVnaXN0cmF0aW9uRGF0YSA9IHJl
Z2lzdHJhdGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZF0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAgICBqb2ItPnJlc29sdmVk
V2l0aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpLCBzaG91bGROb3RpZnlX
aGVuUmVzb2x2ZWQpOwordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvbkpvYlJl
c29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhLCBTaG91bGRO
b3RpZnlXaGVuUmVzb2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQoreworICAgIGJvb2wg
aXNQb3N0ZWQgPSBwb3N0VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBTaG91bGRUYWtlSm9iOjpZ
ZXMsIFtyZWdpc3RyYXRpb25EYXRhID0gcmVnaXN0cmF0aW9uRGF0YS5pc29sYXRlZENvcHkoKSwg
c2hvdWxkTm90aWZ5V2hlblJlc29sdmVkXSAoYXV0byYgam9iKSBtdXRhYmxlIHsKKyAgICAgICAg
am9iLnJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpLCBz
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIH0pOwogCi0gICAgaWYgKHdhc1Bvc3RlZCkK
LSAgICAgICAgZ3VhcmQucmVsZWFzZSgpOworICAgIGlmICghaXNQb3N0ZWQgJiYgc2hvdWxkTm90
aWZ5V2hlblJlc29sdmVkID09IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6WWVzKQorICAgICAg
ICBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25EYXRhLmtleSk7CiB9
CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5T
ZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRp
ZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9u
Ojp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50
aWZpZXIgam9iSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKIHsKLSAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMu
dGFrZShqb2JEYXRhSWRlbnRpZmllci5qb2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikgewot
ICAgICAgICBMT0dfRVJST1IoIkpvYiAlcyByZXNvbHZlZCBpbiBzZXJ2ZXIsIGJ1dCB3YXMgbm90
IGZvdW5kIiwgam9iRGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIHVucmVnaXN0cmF0aW9u
UmVzdWx0XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBqb2ItPnJlc29sdmVk
V2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKKyAgICBwb3N0
VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBTaG91bGRUYWtlSm9iOjpZZXMsIFt1bnJlZ2lzdHJh
dGlvblJlc3VsdF0oYXV0byYgam9iKSB7CisgICAgICAgIGpvYi5yZXNvbHZlZFdpdGhVbnJlZ2lz
dHJhdGlvblJlc3VsdCh1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiAgICAgfSk7CiB9CiAKLXZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgRmV0Y2hPcHRpb25zOjpD
YWNoZSBjYWNoZVBvbGljeSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZl
dGNoRm9yU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNv
bnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgRmV0Y2hP
cHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwotCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYkRhdGFJZGVudGlmaWVy
LmpvYklkZW50aWZpZXIpOwotICAgIGlmICgham9iKSB7Ci0gICAgICAgIExPR19FUlJPUigiSm9i
ICVzIGluc3RydWN0ZWQgdG8gc3RhcnQgZmV0Y2ggZnJvbSBzZXJ2ZXIsIGJ1dCBqb2Igd2FzIG5v
dCBmb3VuZCIsIGpvYkRhdGFJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgp
KTsKLQotICAgICAgICBmYWlsZWRGZXRjaGluZ1NjcmlwdChqb2JEYXRhSWRlbnRpZmllciwgcmVn
aXN0cmF0aW9uS2V5LCBSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwg
MCwgVVJMKCksIEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGZldGNoIHNlcnZpY2Ugd29ya2VyIHNj
cmlwdCIpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYm9vbCB3YXNQb3N0ZWQg
PSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGpvYi0+Y29udGV4dElkZW50aWZp
ZXIoKSwgW2pvYiwgY2FjaGVQb2xpY3ldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Ci0gICAg
ICAgIGpvYi0+c3RhcnRTY3JpcHRGZXRjaChjYWNoZVBvbGljeSk7CisgICAgYm9vbCBpc1Bvc3Rl
ZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZpZXIsIFNob3VsZFRha2VKb2I6Ok5vLCBbY2Fj
aGVQb2xpY3ldIChhdXRvJiBqb2IpIHsKKyAgICAgICAgam9iLnN0YXJ0U2NyaXB0RmV0Y2goY2Fj
aGVQb2xpY3kpOwogICAgIH0pOwotICAgIGlmICghd2FzUG9zdGVkKQotICAgICAgICBmYWlsZWRG
ZXRjaGluZ1NjcmlwdChqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBSZXNvdXJj
ZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgam9iLT5kYXRhKCkuc2NyaXB0
VVJMLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBzY3JpcHQi
KSB9KTsKKyAgICBpZiAoIWlzUG9zdGVkKQorICAgICAgICBmYWlsZWRGZXRjaGluZ1NjcmlwdChq
b2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFp
bldlYktpdEludGVybmFsLCAwLCByZWdpc3RyYXRpb25LZXkuc2NvcGUoKSwgQVNDSUlMaXRlcmFs
KCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSB3b3JrZXIgc2NyaXB0IikgfSk7CiB9CiAKIHZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1
bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEs
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQpAQCAtMjc5LDkgKzI1MSwxMiBAQCB2b2lkIFNX
Q2xpZW50Q29ubmVjdGlvbjo6Y2xlYXJQZW5kaW5nSm9icygpCiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAogICAgIGF1dG8gam9icyA9IFdURk1vdmUobV9zY2hlZHVsZWRKb2JzKTsKLSAg
ICBmb3IgKGF1dG8mIGpvYiA6IGpvYnMudmFsdWVzKCkpIHsKLSAgICAgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2JdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Ci0gICAgICAgICAgICBqb2ItPmZhaWxlZFdpdGhFeGNl
cHRpb24oRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIkludGVybmFsIGVycm9y
IikgfSk7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IGpvYnMpIHsKKyAgICAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhrZXlWYWx1ZS52YWx1ZSwgW2lkZW50aWZpZXIg
PSBrZXlWYWx1ZS5rZXldIChhdXRvJiBjb250ZXh0KSB7CisgICAgICAgICAgICBpZiAoYXV0byog
Y29udGFpbmVyID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoYXV0byogam9iID0gY29udGFpbmVyLT5qb2IoaWRlbnRpZmllcikpCisgICAg
ICAgICAgICAgICAgICAgIGpvYi0+ZmFpbGVkV2l0aEV4Y2VwdGlvbihFeGNlcHRpb24geyBUeXBl
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgZXJyb3IiKSB9KTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDg5OWQzYmZlYmU1ZTc2MTI1YjIxYjEx
YWQzMGY4ZjY1MjY4OGY4MzIuLmVmODY5MmQzNzdiMzlmZWExMDYyNGRjYzRhZWZjMGZiZGE1MWEw
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTY4LDkgKzY4LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBh
ZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
KSA9IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2ImKTsKLSAgICB2
b2lkIGZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNv
bnRlbnRTZWN1cml0eVBvbGljeSk7Ci0gICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgc2NoZWR1bGVK
b2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVy
LCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAgIHZvaWQgZmFpbGVkRmV0Y2hpbmdT
Y3JpcHQoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYpID0gMDsKIApAQCAtODMsMTMgKzgyLDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllcikgPSAwOwogCisg
ICAgdmlydHVhbCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vydmlj
ZVdvcmtlckZldGNoUmVzdWx0JikgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBP
UlQgU1dDbGllbnRDb25uZWN0aW9uKCk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJl
amVjdGVkSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29u
c3QgRXhjZXB0aW9uRGF0YSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0cmF0aW9u
Sm9iUmVzb2x2ZWRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIm
LCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2
ZWQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZElu
U2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGJvb2wgdW5yZWdp
c3RyYXRpb25SZXN1bHQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRj
aEZvclNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgRmV0Y2hPcHRpb25zOjpDYWNoZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBqb2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJ
ZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZl
ZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBib29sIHVucmVnaXN0cmF0aW9u
UmVzdWx0KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2
ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmLCBGZXRjaE9wdGlvbnM6OkNhY2hlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0
aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1l
c3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9y
aWdpbik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRhPiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CkBAIC0xMDIsOSArMTAzLDExIEBAIHByb3RlY3Rl
ZDoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoRmV0
Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSA9IDA7
CiAKLSAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBSZWZQdHI8U2Vydmlj
ZVdvcmtlckpvYj4+IG1fc2NoZWR1bGVkSm9iczsKKyAgICBlbnVtIGNsYXNzIFNob3VsZFRha2VK
b2IgeyBObywgWWVzIH07CisgICAgYm9vbCBwb3N0VGFza0ZvckpvYihTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciwgU2hvdWxkVGFrZUpvYiwgV1RGOjpGdW5jdGlvbjx2b2lkKFNlcnZpY2VXb3Jr
ZXJKb2ImKT4mJik7CisKKyAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBE
b2N1bWVudE9yV29ya2VySWRlbnRpZmllcj4gbV9zY2hlZHVsZWRKb2JzOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDU3OWU0NTg1OWMxYThkNGEx
YTkxNmVkZDM1MmI1OThiZTEzMDhjNDAuLmNmMWZlMzczZjAyNDFlODZmOGI5N2JkZDEyMWExYTBj
ZTQ1MDdjM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNo
UmVzdWx0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckpvYi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgi
CkBAIC0yMjQsMTEgKzIyNSwxMyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVk
dWxlSm9iKFJlZjxTZXJ2aWNlV29ya2VySm9iPiYmIGpvYikKIAogICAgIHNldFBlbmRpbmdBY3Rp
dml0eSh0aGlzKTsKIAotICAgIGF1dG8gcmVzdWx0ID0gbV9qb2JNYXAuYWRkKGpvYi0+aWRlbnRp
ZmllcigpLCBqb2IuY29weVJlZigpKTsKKyAgICBhdXRvIGpvYklkZW50aWZpZXIgPSBqb2ItPmlk
ZW50aWZpZXIoKTsKKyAgICBhdXRvIGpvYkRhdGEgPSBqb2ItPmRhdGEoKTsKKyAgICBhdXRvIHJl
c3VsdCA9IG1fam9iTWFwLmFkZChqb2ItPmlkZW50aWZpZXIoKSwgV1RGTW92ZShqb2IpKTsKICAg
ICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAgY2FsbE9u
TWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2IgPSBXVEZNb3ZlKGpv
YildIHsKLSAgICAgICAgY29ubmVjdGlvbi0+c2NoZWR1bGVKb2Ioam9iKTsKKyAgICBjYWxsT25N
YWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYklkZW50aWZpZXIsIGNv
bnRleHRJZGVudGlmaWVyID0gdGhpcy0+Y29udGV4dElkZW50aWZpZXIoKSwgam9iRGF0YSA9IFdU
Rk1vdmUoam9iRGF0YSldIHsKKyAgICAgICAgY29ubmVjdGlvbi0+c2NoZWR1bGVKb2Ioam9iSWRl
bnRpZmllciwgY29udGV4dElkZW50aWZpZXIsIGpvYkRhdGEpOwogICAgIH0pOwogfQogCkBAIC00
NjEsOCArNDY0LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzdGFydFNjcmlwdEZl
dGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgRmV0Y2gKICAgICBhdXRvKiBjb250ZXh0
ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgIGlmICghY29udGV4dCkgewogICAgICAg
ICBMT0dfRVJST1IoIlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYlJlc29sdmVkV2l0aFJlZ2lz
dHJhdGlvbiBjYWxsZWQgYnV0IHRoZSBjb250YWluZXIncyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
IGlzIGdvbmUiKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dD
b25uZWN0aW9uLCBqb2IgPSBtYWtlUmVmKGpvYildIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24t
PmZhaWxlZEZldGNoaW5nU2NyaXB0KGpvYi0+ZGF0YSgpLmlkZW50aWZpZXIoKSwgam9iLT5kYXRh
KCkucmVnaXN0cmF0aW9uS2V5KCksIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgam9i
LT5kYXRhKCkuc2NyaXB0VVJMLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gZmV0Y2ggc2Vydmlj
ZSB3b3JrZXIgc2NyaXB0IHdpdGggbm8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpIH0pOworICAg
ICAgICBjYWxsT25NYWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYklk
ZW50aWZpZXIgPSBqb2IuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25LZXkgPSBqb2IuZGF0YSgp
LnJlZ2lzdHJhdGlvbktleSgpLCBzY3JpcHRVUkwgPSBqb2IuZGF0YSgpLnNjcmlwdFVSTC5pc29s
YXRlZENvcHkoKV0geworICAgICAgICAgICAgY29ubmVjdGlvbi0+ZmFpbGVkRmV0Y2hpbmdTY3Jp
cHQoam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCB7IGVycm9yRG9tYWluV2ViS2l0SW50
ZXJuYWwsIDAsIHNjcmlwdFVSTCwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGZldGNoIHNlcnZp
Y2Ugd29ya2VyIHNjcmlwdCB3aXRoIG5vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKSB9KTsKICAg
ICAgICAgfSk7CiAgICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOwogICAgICAgICByZXR1cm47CkBA
IC00NzksOCArNDgyLDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGaW5pc2hl
ZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBjb24KIAogICAgIExPRyhTZXJ2
aWNlV29ya2VyLCAiU2V2aWNlV29ya2VyQ29udGFpbmVyICVwIGZpbmlzaGVkIGZldGNoaW5nIHNj
cmlwdCBmb3Igam9iICVzIiwgdGhpcywgam9iLmlkZW50aWZpZXIoKS5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9z
d0Nvbm5lY3Rpb24sIGpvYiA9IG1ha2VSZWYoam9iKSwgc2NyaXB0ID0gc2NyaXB0Lmlzb2xhdGVk
Q29weSgpLCBjb250ZW50U2VjdXJpdHlQb2xpY3kgPSBjb250ZW50U2VjdXJpdHlQb2xpY3kuaXNv
bGF0ZWRDb3B5KCldIHsKLSAgICAgICAgY29ubmVjdGlvbi0+ZmluaXNoZWRGZXRjaGluZ1Njcmlw
dChqb2IsIHNjcmlwdCwgY29udGVudFNlY3VyaXR5UG9saWN5KTsKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYkRhdGFJZGVudGlmaWVyID0gam9i
LmRhdGEoKS5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbktleSA9IGpvYi5kYXRhKCkucmVnaXN0
cmF0aW9uS2V5KCksIHNjcmlwdCA9IHNjcmlwdC5pc29sYXRlZENvcHkoKSwgY29udGVudFNlY3Vy
aXR5UG9saWN5ID0gY29udGVudFNlY3VyaXR5UG9saWN5Lmlzb2xhdGVkQ29weSgpXSB7CisgICAg
ICAgIGNvbm5lY3Rpb24tPmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoeyBqb2JEYXRhSWRl
bnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
eyB9IH0pOwogICAgIH0pOwogfQogCkBAIC00OTYsOCArNDk5LDggQEAgdm9pZCBTZXJ2aWNlV29y
a2VyQ29udGFpbmVyOjpqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpv
YiwgY29uc3QKICAgICBpZiAoZXhjZXB0aW9uICYmIGpvYi5wcm9taXNlKCkpCiAgICAgICAgIGpv
Yi5wcm9taXNlKCktPnJlamVjdCgqZXhjZXB0aW9uKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iID0gbWFrZVJlZihqb2IpLCBlcnJvciA9
IGVycm9yLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIGNvbm5lY3Rpb24tPmZhaWxlZEZldGNo
aW5nU2NyaXB0KGpvYi0+ZGF0YSgpLmlkZW50aWZpZXIoKSwgam9iLT5kYXRhKCkucmVnaXN0cmF0
aW9uS2V5KCksIGVycm9yKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9z
d0Nvbm5lY3Rpb24sIGpvYklkZW50aWZpZXIgPSBqb2IuaWRlbnRpZmllcigpLCByZWdpc3RyYXRp
b25LZXkgPSBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCBlcnJvciA9IGVycm9yLmlzb2xh
dGVkQ29weSgpXSB7CisgICAgICAgIGNvbm5lY3Rpb24tPmZhaWxlZEZldGNoaW5nU2NyaXB0KGpv
YklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgZXJyb3IpOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuaAppbmRleCA5YzNkNjA5OWMwOThmMjgyMzkyMTY4YmY2NzYxNDhhZWI2ZDg5NjU0Li5j
ZDE2MTFlMjZmZjA3ZWM5ZDhjMzU1NWQ0OTM3ZDU4YzE5ZWU3Yzg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgK
QEAgLTc1LDYgKzc1LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlbW92ZVJlZ2lzdHJhdGlvbihTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uJik7CiAKKyAgICBTZXJ2aWNlV29ya2VySm9iKiBqb2IoU2Vy
dmljZVdvcmtlckpvYklkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gbV9qb2JNYXAuZ2V0
KGlkZW50aWZpZXIpOyB9CisKICAgICB2b2lkIHN0YXJ0TWVzc2FnZXMoKTsKIAogICAgIHZvaWQg
cmVmKCkgZmluYWwgeyByZWZFdmVudFRhcmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDBlN2I0MjA3NTMwMDYx
MDMyNGNkMGU1Yjg5Y2JjMWU0ZjI3ZTNlM2YuLmEyMmU1OWE4MGU1MDZmMzgwMzNjM2JkNWRjMWJj
MmZhOWNiYjRlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVq
ZWN0Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBFeGNlcHRp
b25EYXQKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbm5l
Y3Rpb24tPnJlamVjdEpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCBleGNlcHRpb25E
YXRhKTsKKyAgICBjb25uZWN0aW9uLT5yZWplY3RKb2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZp
ZXIoKS5qb2JJZGVudGlmaWVyLCBleGNlcHRpb25EYXRhKTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6
cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0
YSwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIHJlZ2lzdHJhdGlvbkRhdGEs
IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCkBAIC0y
ODMsNyArMjgzLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QKICAgICBpZiAoIWNvbm5lY3Rp
b24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbm5lY3Rpb24tPnJlc29sdmVSZWdpc3RyYXRp
b25Kb2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uRGF0YSwgc2hv
dWxkTm90aWZ5V2hlblJlc29sdmVkKTsKKyAgICBjb25uZWN0aW9uLT5yZXNvbHZlUmVnaXN0cmF0
aW9uSm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRpZmllciwgcmVnaXN0
cmF0aW9uRGF0YSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKIH0KIAogdm9pZCBTV1NlcnZl
cjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBq
b2JEYXRhLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25L
ZXksIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCkBAIC0yOTIsNyArMjkyLDcgQEAgdm9pZCBT
V1NlcnZlcjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiBqb2JEYXRhLCBjb24KICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsK
IAotICAgIGNvbm5lY3Rpb24tPnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGpvYkRh
dGEuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25LZXksIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsK
KyAgICBjb25uZWN0aW9uLT5yZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2JJbkNsaWVudChqb2JEYXRh
LmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIHVucmVnaXN0cmF0
aW9uUmVzdWx0KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6c3RhcnRTY3JpcHRGZXRjaChjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgRmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBv
bGljeSkKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNo
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBGZXRjaE9wdGlvbgogICAgIGlm
ICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlvbi0+c3RhcnRT
Y3JpcHRGZXRjaEluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCBqb2JEYXRhLnJlZ2lzdHJh
dGlvbktleSgpLCBjYWNoZVBvbGljeSk7CisgICAgY29ubmVjdGlvbi0+c3RhcnRTY3JpcHRGZXRj
aEluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIsIGpvYkRhdGEucmVn
aXN0cmF0aW9uS2V5KCksIGNhY2hlUG9saWN5KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6c2NyaXB0
RmV0Y2hGaW5pc2hlZChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2Vy
RmV0Y2hSZXN1bHQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCBhMDZmNTRiMmIwNDgwNTRiYmIxNmFiNmExYTY5Njhh
NTIzMWFkZWU1Li5lZDk4N2ZiZWU3OTM5YTdhNmUzMGI4MDNiZTFkNmY3ZDVlYjQ1MzgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBA
IC0xMDMsMTAgKzEwMywxMCBAQCBwdWJsaWM6CiAKICAgICBwcml2YXRlOgogICAgICAgICAvLyBN
ZXNzYWdlcyB0byB0aGUgY2xpZW50IFdlYlByb2Nlc3MKLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
amVjdEpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNv
bnN0IEV4Y2VwdGlvbkRhdGEmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlUmVn
aXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
JiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmLCBTaG91bGROb3RpZnlXaGVu
UmVzb2x2ZWQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlv
bkpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHJlZ2lzdHJhdGlvblJlc3VsdCkg
PSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmLCBGZXRjaE9wdGlvbnM6OkNhY2hlKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCByZWplY3RKb2JJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVSZWdpc3Ry
YXRpb25Kb2JJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpID0gMDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KFNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiwgYm9vbCByZWdpc3RyYXRpb25SZXN1bHQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIEZldGNoT3B0aW9uczo6Q2FjaGUpID0g
MDsKIAogICAgICAgICBzdHJ1Y3QgUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0IHsKICAgICAgICAg
ICAgIFNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQppbmRleCBjNDg0MGQ5NzMzZWEzNmU2YzgyZDU5NjU5M2UxZTYzYjQz
NjdlYjI4Li43MDZkZjU2ZGM1M2YwZDhkODBhM2NmNGI0ZTBiYzQ0ZmQzOGEyYTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTE4Niw2ICsxODYsNyBAQCBk
ZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2ZXIpOgogICAgIG5vX2Zv
cndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSBmcm96ZW5zZXQoWwogICAgICAgICAnV2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJywK
ICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEnLAogICAgICAgICAn
V2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcicsCkBAIC0zODYsNiArMzg3
LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQb2xp
Y3lBY3Rpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dl
YkNvcmU6OlJlY2VudFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEnOiBbJzxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5o
PicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtl
clR5cGVzLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6
IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGQ0ZDkxMzczOTA4N2JjYjE0ZDgyMjMxNWE4OGNkODQ4
YzRmNmNmMzUuLjQ3MjE4ZDJkZmYyYjBkNGYyYTYzMTI0YzBjODkyNTE0N2UxMjE3MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC03NiwyNCArNzYsMjQgQEAg
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKCkK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
cmVqZWN0Sm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBq
b2JEYXRhSWRlbnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWplY3RKb2JJbkNsaWVudChTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRp
b25EYXRhKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Sm9i
UmVqZWN0ZWRJblNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwgZXhjZXB0aW9uRGF0YSkpOworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Sm9iUmVqZWN0ZWRJblNlcnZl
cihqb2JJZGVudGlmaWVyLCBleGNlcHRpb25EYXRhKSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpyZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmIHJlZ2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5S
ZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVj
dGlvbjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJZGVu
dGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
JiByZWdpc3RyYXRpb25EYXRhLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hvdWxkTm90aWZ5
V2hlblJlc29sdmVkKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6UmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwgcmVn
aXN0cmF0aW9uRGF0YSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpSZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2Vy
dmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbkRhdGEsIHNob3VsZE5vdGlmeVdoZW5SZXNv
bHZlZCkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZVVucmVnaXN0
cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBq
b2JEYXRhSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVn
aXN0cmF0aW9uS2V5LCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQordm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246OnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KFNlcnZpY2VXb3Jr
ZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKIHsK
LSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlVucmVnaXN0cmF0aW9u
Sm9iUmVzb2x2ZWRJblNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwgdW5yZWdpc3RyYXRpb25SZXN1
bHQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlVucmVnaXN0
cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JJZGVudGlmaWVyLCB1bnJlZ2lzdHJhdGlvblJl
c3VsdCkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRj
aEluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlk
ZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlv
bktleSwgRmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKK3ZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoSW5DbGllbnQoU2VydmljZVdvcmtlckpvYklkZW50
aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYg
cmVnaXN0cmF0aW9uS2V5LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQogewotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U3RhcnRTY3JpcHRGZXRjaEZv
clNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBjYWNoZVBvbGljeSkp
OworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U3RhcnRTY3JpcHRG
ZXRjaEZvclNlcnZlcihqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIGNhY2hlUG9saWN5
KSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1cGRhdGVSZWdpc3RyYXRpb25T
dGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0ZSwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyRGF0YT4mIHNlcnZpY2VXb3JrZXJEYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDNiOTNlMzgwNjg1ODkxYmI0OTg2NDY4NjFmMjgw
ZDM0Nzc0NWQ0MDYuLmUyNDRjZGM5MTRlMTlmZmZhMjcwNTFjMzAwN2RiZTkzYjkzNzIxOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTcxLDEwICs3MSwxMCBAQCBw
dWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50IFNXU2VydmVyOjpDb25uZWN0aW9u
IChNZXNzYWdlcyB0byB0aGUgY2xpZW50IFdlYlByb2Nlc3MpCi0gICAgdm9pZCByZWplY3RKb2JJ
bkNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBj
b25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJikgZmluYWw7Ci0gICAgdm9pZCByZXNvbHZlUmVn
aXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJ
ZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
LCBXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpIGZpbmFsOwotICAgIHZvaWQgcmVz
b2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpIGZpbmFsOwotICAgIHZvaWQgc3Rh
cnRTY3JpcHRGZXRjaEluQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
LCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkNhY2hlKSBmaW5hbDsKKyAgICB2b2lkIHJlamVjdEpv
YkluQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9u
Sm9iSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiwgV2ViQ29yZTo6U2hvdWxkTm90
aWZ5V2hlblJlc29sdmVkKSBmaW5hbDsKKyAgICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpv
YkluQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJl
c3VsdCkgZmluYWw7CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQoV2ViQ29yZTo6
U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkNhY2hlKSBmaW5hbDsKICAg
ICB2b2lkIHVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0
YT4mKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSkgZmlu
YWw7CiAgICAgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KaW5kZXggZGJhNjQ3ZWI3ZGY3MjY1MTYwNGJhNWVlZTI2MGU2Zjk4ZDMyNTRjOC4u
NTZkMmU3ODU5MWJjY2Y4MzM5MDNkNTk5NzE1YjUzNDBiOWNlYzgyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQsMTAgKzI0LDEwIEBACiAKIG1lc3NhZ2VzIC0+
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgIyBXaGVuIHBvc3NpYmxlLCB0aGVzZSBtZXNz
YWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgZGlyZWN0bHkgYnkgV2ViQ29yZTo6U1dTZXJ2ZXI6OkNv
bm5lY3Rpb24KLSAgICBKb2JSZWplY3RlZEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKLSAgICBSZWdpc3RyYXRpb25Kb2JSZXNvbHZlZElu
U2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9i
RGF0YUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSByZWdpc3RyYXRpb24sIGVudW0gV2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hlblJlc29sdmVk
IHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKLSAgICBVbnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVk
SW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciBq
b2JEYXRhSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKLSAgICBTdGFydFNj
cmlwdEZldGNoRm9yU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkNhY2hlIGNh
Y2hlUG9saWN5KQorICAgIEpvYlJlamVjdGVkSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhIGV4Y2VwdGlvbikKKyAgICBSZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uLCBl
bnVtIFdlYkNvcmU6OlNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQpCisgICAgVW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBib29sIHVucmVnaXN0
cmF0aW9uUmVzdWx0KQorICAgIFN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpGZXRjaE9w
dGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQogICAgIFVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGVu
dW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRlLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhPiBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKICAgICBVcGRhdGVXb3JrZXJTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51bSBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3Rh
dGUgc3RhdGUpCiAgICAgRmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330694</attachid>
            <date>2018-01-08 05:37:15 -0800</date>
            <delta_ts>2018-01-08 05:37:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181381-20180108143713.patch</filename>
            <type>text/plain</type>
            <size>41736</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMzNGExMWVmNDUzNmY0
MWM1ZTBjYTNiNTJhZjI1MDMwYmM1MTNlOC4uMTM5ZGJkMTY3ODk1NTBlNGNiODIwZWI0Yzk4NGVm
YmY3OTRkZDEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE4LTAxLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBuYXZpZ2F0b3Iub25MaW5l
IGRvZXMgbm90IHdvcmsgaW5zaWRlIHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMDc5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zNjE3ODYwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBUZXN0OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvb25saW5lLmh0dHBzLmh0bWwKKwor
ICAgICAgICBBZGRlZCBzdXBwb3J0IGZvciBvbkxpbmUgYnkgcmV1c2luZyBhIHNpbWlsYXIgaW1w
bGVtZW50YXRpb24gYXMgcmVndWxhciB3b3JrZXJzLgorICAgICAgICBBZGRlZCBTZXJ2aWNlV29y
a2VySW50ZXJuYWxzIGFzIGFuIGludGVyZmFjZSBmb3IgYW4gb2JqZWN0IGV4cG9zZWQgYXMgc2Vs
Zi5pbnRlcm5hbHMgaW4gV1RSLgorICAgICAgICBUaGlzIG9iamVjdCBoYXMgY3VycmVudGx5IG9u
ZSBtZXRob2QgdG8gdHJpZ2dlciBjaGFuZ2UgaW4gdGhlIG9ubGluZS9vZmZsaW5lIHN0YXR1cy4K
KyAgICAgICAgVGhpcyBhbGxvd3Mgd3JpdGluZyBhIHRlc3QgZm9yIHRoZSBvbkxpbmUgZmVhdHVy
ZS4KKworICAgICAgICBOb3RlIHRoYXQgc2VsZi5pbnRlcm5hbHMgaXMgaW5zZXJ0ZWQgYXN5bmNo
cm9ub3VzbHkgYWZ0ZXIgdGhlIHNjcmlwdCB3YXMgZXZhbHVhdGVkLgorICAgICAgICBXaGVuIHdy
aXRpbmcgYSB3b3JrZXIgc2NyaXB0IHVzaW5nIHNlbGYuaW50ZXJuYWxzLCBvbmUgbXVzdCBtYWtl
IHN1cmUgdG8gdXNlIHNlbGYuaW50ZXJuYWxzIHdoZW4gaW5pdGlhbGl6ZWQuCisgICAgICAgIG9u
bGluZS13b3JrZXIuanMgZm9yIGluc3RhbmNlIG1ha2VzIHVzZSBvZiBzZWxmLmludGVybmFscyBp
biBhIHBvc3RNZXNzYWdlIGNhbGxiYWNrLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5oOgorICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAg
ICAgICogdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySW50ZXJuYWxzOjpTZXJ2aWNlV29ya2VySW50ZXJuYWxz
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJbnRlcm5hbHM6OnNldE9ubGluZSk6
CisgICAgICAgICogdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmg6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmVU
ZXN0U3VwcG9ydDo6c2V0dXBOZXdseUNyZWF0ZVNlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIHRl
c3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NvbnRl
eHRNYW5hZ2VyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnN0YXJ0ZWRTZXJ2aWNlV29ya2VyKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpzZXRTZXJ2aWNlV29ya2VyQ3JlYXRpb25D
YWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjp3b3JrZXJCeUlE
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6On5TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpuZXR3b3JrU3RhdGVDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6bm90aWZ5TmV0
d29ya1N0YXRlQ2hhbmdlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAxOC0wMS0wOCAgWmFuIERvYmVyc2VrICA8emRv
YmVyc2VrQGlnYWxpYS5jb20+IGFuZCBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSB1c2UgRmFzdE1hbGxvYy1iYXNlZCBHc3RB
bGxvY2F0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMmJhMDRiMjA4NTZhZGE3OTk0YTI0NzQ5ZTZjMmRiZTI1MTky
ZDZiNC4uODZjMjNiYzkxYjY1OTNmNTFjYzA2OTdmYWIwNDQ4MDc3Yjg2MjVlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMSBAQAorMjAxOC0wMS0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgbmF2aWdhdG9yLm9uTGluZSBkb2VzIG5vdCB3b3JrIGluc2lkZSBz
ZXJ2aWNlIHdvcmtlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MTA3OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYxNzg2MDY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCBmb3Ig
YSBjYWxsYmFjayBjYWxsZWQgZm9yIGVhY2ggc2VydmljZSB3b3JrZXIgcHJveHkgY3JlYXRpb24u
CisgICAgICAgIENhbGxiYWNrIGlzIHVzZWQgYnkgV1RSIHRvIGluamVjdCBhIHNlbGYuaW50ZXJu
YWxzIG9iamVjdCB1c2VkIGZvciB0ZXN0aW5nLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVNldFNlcnZp
Y2VXb3JrZXJQcm94eUNyZWF0aW9uQ2FsbGJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGU6OnNldFNlcnZpY2VXb3JrZXJQcm94eUNyZWF0aW9uQ2FsbGJhY2spOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKwogMjAxOC0wMS0w
NyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSAt
V2Nhc3QtcXVhbCBmb3IgV2ViSW5zcGVjdG9yVUksIFdlYktpdExlZ2FjeSwgV2ViS2l0IHByb2pl
Y3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDAyZmIxYzE0ZjAzYjM4MzRlYmYwMWU5YmFlZTRj
Mjc5MDQ5NzExMGEuLjdhYjUzMWM3Y2MxYjk3MTgwMjM3MWYxMzNjYTk2NTE5NmQyMTQ1MGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNTQ5LDYgKzE1NDksNyBAQCBzZXQoV2ViQ29yZVRlc3RT
dXBwb3J0X0lETF9GSUxFUwogICAgIHRlc3RpbmcvTW9ja0NETUZhY3RvcnkuaWRsCiAgICAgdGVz
dGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmlkbAogICAgIHRlc3RpbmcvTW9ja1BhZ2VP
dmVybGF5LmlkbAorICAgIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGwKICAgICB0
ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5pZGwKICkKIApAQCAtMTU2OCw3ICsxNTY5LDcgQEAgbGlz
dChBUFBFTkQgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKICAgICB0ZXN0aW5nL01vY2tHYW1l
cGFkUHJvdmlkZXIuY3BwCiAgICAgdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXkuY3BwCiAgICAgdGVz
dGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCi0KKyAgICB0ZXN0aW5nL1NlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMuY3BwCiAgICAgdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCiAp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDk0YTZkYjljYjYwZDRlYjhhMjFh
MDU2NzRjZmRiYjBlZjdkNTM3MTYuLmEwYjljODBmMjIxYmQyZWQ5M2NmYTlkOTFlMmQyMDM5Y2E5
N2IxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtOTQwLDYgKzk0MCw3IEBA
IEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvTW9ja1BhZ2VPdmVy
bGF5LmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL01vY2tQYXltZW50QWRkcmVzcy5pZGwg
XAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmlkbCBcCisg
ICAgJChXZWJDb3JlKS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS93
b3JrZXJzL0Fic3RyYWN0V29ya2VyLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL0RlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzMzOWZjMzE3NDIyZmQ2MzVmZTJiYTFm
NjMzYTI1YTUzYTZkMzY3Zi4uZGFjZjYzNjgzZWYwOTY1ZmUyMGVhYzQ4MDExZWEyZWY2ODc0YmMw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTAyNCw3ICsxMDI0LDEwIEBACiAJCTQxN0RBNkQ5MTM3MzRFNkUwMDdDNTdGQiAv
KiBJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDE3REE0Q0YxMzczNDMyNjAwN0M1N0ZCIC8qIEludGVybmFscy5jcHAgKi87IH07CiAJ
CTQxN0RBNkRBMTM3MzRFNkUwMDdDNTdGQiAvKiBJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxN0RBNENFMTM3MzQzMjYwMDdDNTdGQiAv
KiBJbnRlcm5hbHMuaCAqLzsgfTsKIAkJNDE3REE3MUQxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50
ZXJuYWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5jcHAgKi87IH07CisJCTQy
N0RBNzFEMTM3MzVERkEwMDdDNTdGQiAvKiBKU1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDI3REE3MUIxMzcz
NURGQTAwN0M1N0ZCIC8qIEpTU2VydmljZVdvcmtlckludGVybmFscy5jcHAgKi87IH07CiAJCTQx
N0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFscy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE3REE3MUMxMzczNURGQTAwN0M1N0ZCIC8q
IEpTSW50ZXJuYWxzLmggKi87IH07CisJCTQyN0RBNzFFMTM3MzVERkEwMDdDNTdGQiAvKiBKU1Nl
cnZpY2VXb3JrZXJJbnRlcm5hbHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQyN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU1NlcnZpY2VXb3JrZXJJ
bnRlcm5hbHMuaCAqLzsgfTsKKwkJNDE3RjBEODIxRkZFRTk3OTAwOEVGMzAzIC8qIFNlcnZpY2VX
b3JrZXJJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE3RjBEODAxRkZFRTE0RjAwOEVGMzAzIC8qIFNlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuY3BwICovOyB9OwogCQk0MTgxNUMxRTEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RT
dXBwb3J0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxODE1QzFDMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwICovOyB9
OwogCQk0MTgxNUMxRjEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgxNUMxRDEzODMx
OTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4MjA1NDcxRTUzRTk4QzAwRDYyMjA3IC8q
IFJUQ0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcwMjUsNyArNzAy
OCwxMiBAQAogCQk0MTdEQTRDRjEzNzM0MzI2MDA3QzU3RkIgLyogSW50ZXJuYWxzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEludGVybmFscy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxN0RBNkQwMTM3MzRFMDIwMDdDNTdGQiAvKiBsaWJXZWJD
b3JlVGVzdFN1cHBvcnQuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJXZWJDb3JlVGVzdFN1cHBvcnQuZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCTQxN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU0ludGVybmFs
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ludGVybmFscy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQyN0RBNzFCMTM3MzVERkEwMDdDNTdG
QiAvKiBKU1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE3REE3MUMxMzczNURGQTAwN0M1N0ZCIC8qIEpTSW50ZXJuYWxz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSW50ZXJuYWxzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQyN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU1Nl
cnZpY2VXb3JrZXJJbnRlcm5hbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTQxN0YwRDdFMUZGRUUxNEUwMDhFRjMwMyAvKiBTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE3RjBEODAxRkZFRTE0RjAwOEVGMzAzIC8q
IFNlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2VydmljZVdvcmtlckludGVybmFscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxN0YwRDgxMUZGRUUxNTAwMDhFRjMwMyAvKiBTZXJ2aWNlV29ya2VySW50ZXJu
YWxzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MTNGOTExMzgxOEFENjAwNTdBQUE0
IC8qIEludGVybmFscy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSW50ZXJuYWxzLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MTVDMUMxMzgzMTk4MzAwNTdBQUE0IC8q
IFdlYkNvcmVUZXN0U3VwcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTgxNUMxRDEzODMxOTgzMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYzOTYsNiArMTY0MDQsOSBAQAogCQkJCUExQ0JFRjYz
MUY5RjExMjkwMDI4REU3QyAvKiBNb2NrUGF5bWVudE1ldGhvZC5oICovLAogCQkJCUExNDA2MTg5
MUUyRUNBMEEwMDMyQjM0RSAvKiBNb2NrUHJldmlld0xvYWRlckNsaWVudC5jcHAgKi8sCiAJCQkJ
QTE0MDYxOEExRTJFQ0EwQTAwMzJCMzRFIC8qIE1vY2tQcmV2aWV3TG9hZGVyQ2xpZW50LmggKi8s
CisJCQkJNDE3RjBEODAxRkZFRTE0RjAwOEVGMzAzIC8qIFNlcnZpY2VXb3JrZXJJbnRlcm5hbHMu
Y3BwICovLAorCQkJCTQxN0YwRDdFMUZGRUUxNEUwMDhFRjMwMyAvKiBTZXJ2aWNlV29ya2VySW50
ZXJuYWxzLmggKi8sCisJCQkJNDE3RjBEODExRkZFRTE1MDAwOEVGMzAzIC8qIFNlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMuaWRsICovLAogCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBl
Q29udmVyc2lvbnMuaCAqLywKIAkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNv
bnZlcnNpb25zLmlkbCAqLywKIAkJCQlFMUJBNjcxOTE3NDJCRUY0MDBDMjAyNTEgLyogV2ViQ29y
ZVRlc3RTaGltTGlicmFyeS5jcHAgKi8sCkBAIC0xNjQyOCw2ICsxNjQzOSw4IEBACiAJCQkJQTE0
NkQzMUYxRjk5Q0EzRDAwRDI5MTk2IC8qIEpTTW9ja1BheW1lbnRBZGRyZXNzLmggKi8sCiAJCQkJ
QTE0NkQzMTkxRjk5QkNCQjAwRDI5MTk2IC8qIEpTTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAg
Ki8sCiAJCQkJQTE0NkQzMTgxRjk5QkNCQTAwRDI5MTk2IC8qIEpTTW9ja1BheW1lbnRDb29yZGlu
YXRvci5oICovLAorCQkJCTQyN0RBNzFCMTM3MzVERkEwMDdDNTdGQiAvKiBKU1NlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMuY3BwICovLAorCQkJCTQyN0RBNzFDMTM3MzVERkEwMDdDNTdGQiAvKiBKU1Nl
cnZpY2VXb3JrZXJJbnRlcm5hbHMuaCAqLywKIAkJCQlFQkY1MTIxQTE2OTY0OTZDMDA1NkJEMjUg
LyogSlNUeXBlQ29udmVyc2lvbnMuY3BwICovLAogCQkJCUVCRjUxMjFCMTY5NjQ5NkMwMDU2QkQy
NSAvKiBKU1R5cGVDb252ZXJzaW9ucy5oICovLAogCQkJKTsKQEAgLTI2MTcwLDYgKzI2MTgzLDcg
QEAKIAkJCQk1MzhFQzkzNDFGOTlCOUY3MDA0RDIyQTggLyogSlNNb2NrUGFnZU92ZXJsYXkuaCBp
biBIZWFkZXJzICovLAogCQkJCUExNDZEMzIzMUY5OUQwRUYwMEQyOTE5NiAvKiBKU01vY2tQYXlt
ZW50QWRkcmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE0NkQzMUIxRjk5QkNGQjAwRDI5MTk2
IC8qIEpTTW9ja1BheW1lbnRDb29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDI3REE3
MUUxMzczNURGQTAwN0M1N0ZCIC8qIEpTU2VydmljZVdvcmtlckludGVybmFscy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRUJGNTEyMUQxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25z
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDREMyNkI0MTE2MEE4Q0NFMDAyNjc1N0IgLyogTGVnYWN5
TW9ja0NETS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCRjZCODMxQUE5NkM3RDAwQUY0QThBIC8q
IE1vY2tDb250ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTMwNDYzLDYgKzMwNDc3LDcg
QEAKIAkJCQkyRDQxNTBERTFDMUY4NjhDMDAwQTNCQTIgLyogSlNNb2NrUGFnZU92ZXJsYXkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE0NkQzMjIxRjk5RDBFQzAwRDI5MTk2IC8qIEpTTW9ja1Bh
eW1lbnRBZGRyZXNzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExNDZEMzFBMUY5OUJDRjgwMEQy
OTE5NiAvKiBKU01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDI3REE3MUQxMzczNURGQTAwN0M1N0ZCIC8qIEpTU2VydmljZVdvcmtlckludGVybmFscy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFQkY1MTIxQzE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29u
dmVyc2lvbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RDMjZCNDAxNjBBOENDNjAwMjY3NTdC
IC8qIExlZ2FjeU1vY2tDRE0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RGNEI3MzExRTAzRDAw
NzAwRTIzNUEyIC8qIE1vY2tDRE1GYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA0NzYs
NiArMzA0OTEsNyBAQAogCQkJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVu
dENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExNDA2MThCMUUyRUNBMEEwMDMy
QjM0RSAvKiBNb2NrUHJldmlld0xvYWRlckNsaWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
QTVGM0I4RjE2Q0M0QjM5MDA0NTVFQjAgLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXplck1vY2su
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDE3RjBEODIxRkZFRTk3OTAwOEVGMzAzIC8qIFNlcnZp
Y2VXb3JrZXJJbnRlcm5hbHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJREU3NzEwODYxRkEyRjBE
NjAwNDYwMDE2IC8qIFdlYkFyY2hpdmVEdW1wU3VwcG9ydC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTQxODE1QzFFMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5oCmluZGV4IDM4NTAyYTk3YWFlOWM1NjdhODBhMjVjYjNkZDJm
NjEwZjQ4ZGU5MzYuLjFjMDk0NGIwOWYwODBhMDE2MjYzMzk3MDAzMDk3OTU4Mzk4Y2NiOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9s
bGVyLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKCFtX3dvcmtlckds
b2JhbFNjb3BlV3JhcHBlcikKICAgICAgICAgICAgIGluaXRTY3JpcHQoKTsKICAgICB9Ci0gICAg
dm9pZCBpbml0U2NyaXB0KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbml0U2NyaXB0KCk7
CiAKICAgICBSZWZQdHI8SlNDOjpWTT4gbV92bTsKICAgICBXb3JrZXJHbG9iYWxTY29wZSogbV93
b3JrZXJHbG9iYWxTY29wZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCmluZGV4IGFlMTRhMTUzYjEwNDRkNDJiNjg0Yzg0MjIxZDJmYWQ3MzY0MjdjNWMuLjY4
MWNkY2Y3OGNhNjcxZWE3MmYzNTNhYzExMGE4MmYzNjZjNGE3MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjM1LDcgKzIzNSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGVuc3VyZVJlamVjdGVkUHJvbWlzZVRyYWNrZXJTbG93KCk7CiAg
ICAgfQogCi0gICAgSlNDOjpFeGVjU3RhdGUqIGV4ZWNTdGF0ZSgpOworICAgIFdFQkNPUkVfRVhQ
T1JUIEpTQzo6RXhlY1N0YXRlKiBleGVjU3RhdGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0
cmluZyBkb21haW5Gb3JDYWNoZVBhcnRpdGlvbigpIGNvbnN0OwogICAgIHZvaWQgc2V0RG9tYWlu
Rm9yQ2FjaGVQYXJ0aXRpb24oU3RyaW5nJiYgZG9tYWluKSB7IG1fZG9tYWluRm9yQ2FjaGVQYXJ0
aXRpb24gPSBXVEZNb3ZlKGRvbWFpbik7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3MjRkNTU4MmQ1ZmFhMDZm
OWZmMmY0YzZiOTlkZDA3NDgxZTIxZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCkBAIC0wLDAgKzEsNTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VySW50ZXJuYWxz
LmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJTV0NvbnRleHRN
YW5hZ2VyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2VydmljZVdvcmtlckludGVybmFs
czo6U2VydmljZVdvcmtlckludGVybmFscyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlm
aWVyKQorICAgIDogbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCit7Cit9CisKK1NlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHM6On5TZXJ2aWNlV29ya2VySW50ZXJuYWxzKCkgPSBkZWZhdWx0OworCit2b2lk
IFNlcnZpY2VXb3JrZXJJbnRlcm5hbHM6OnNldE9ubGluZShib29sIGlzT25saW5lKQoreworICAg
IGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIgPSBtX2lkZW50aWZpZXIsIGlzT25saW5lXSAo
KSB7CisgICAgICAgIGlmIChhdXRvKiBwcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRv
bigpLndvcmtlckJ5SUQoaWRlbnRpZmllcikpCisgICAgICAgICAgICBwcm94eS0+bm90aWZ5TmV0
d29ya1N0YXRlQ2hhbmdlKGlzT25saW5lKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2Vy
dmljZVdvcmtlckludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29y
a2VySW50ZXJuYWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhhZjI4NTU3MTNjOWY4YWZiZGU0ZTY4ZmFmYjY0
ZGJiNzRjYzRmNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2Vy
dmljZVdvcmtlckludGVybmFscy5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
cklkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJJbnRlcm5hbHMg
OiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VySW50ZXJuYWxzPiB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VySW50ZXJuYWxzPiBjcmVhdGUoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29y
a2VySW50ZXJuYWxzIHsgaWRlbnRpZmllciB9KTsgfQorICAgIH5TZXJ2aWNlV29ya2VySW50ZXJu
YWxzKCk7CisKKyAgICB2b2lkIHNldE9ubGluZShib29sIGlzT25saW5lKTsKKworcHJpdmF0ZToK
KyAgICBleHBsaWNpdCBTZXJ2aWNlV29ya2VySW50ZXJuYWxzKFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKTsKKworICAgIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZWVkNzgxODQx
OWY2YzkwMGM5NGFhZTdhMWZiYjNhODBiZWRjNDE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmlkbApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAgRXhwb3J0
TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQsCisgICAgSW1wbGVtZW50YXRpb25MYWNr
c1ZUYWJsZSwKKyAgICBOb0ludGVyZmFjZU9iamVjdCwKK10gaW50ZXJmYWNlIFNlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMgeworICAgIHZvaWQgc2V0T25saW5lKGJvb2xlYW4gaXNPbmxpbmUpOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApp
bmRleCAyNjhjNTEyZjdlNWNmNTUxZGE0ZmZjZTFiMjE3OTViZDRmOWJmZGY5Li5mN2EwNDM4MGFk
YjNjYTQ2NGY5NDU2MTBkNjExNzA2MTY0MjdmYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0zMiw5ICszMiwxMyBAQAogI2lu
Y2x1ZGUgIkludGVybmFscy5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJK
U0ludGVybmFscy5oIgorI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlckludGVybmFscy5oIgorI2lu
Y2x1ZGUgIkpTV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJMb2dJbml0aWFsaXphdGlv
bi5oIgogI2luY2x1ZGUgIk1vY2tHYW1lcGFkUHJvdmlkZXIuaCIKICNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSAiU1dDb250ZXh0TWFuYWdlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlVSTFBhcnNlci5oIgogI2luY2x1ZGUgIldoZWVsRXZl
bnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KQEAg
LTE4MCw0ICsxODQsMjAgQEAgdm9pZCBzZXRNb2NrR2FtZXBhZEJ1dHRvblZhbHVlKHVuc2lnbmVk
IGdhbWVwYWRJbmRleCwgdW5zaWduZWQgYnV0dG9uSW5kZXgsIGRvdWIKICNlbmRpZgogfQogCit2
b2lkIHNldHVwTmV3bHlDcmVhdGVkU2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKK3sKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgYXV0byBpZGVu
dGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlcklkZW50aWZpZXJUeXBl
PihzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xl
dG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIoaWRlbnRpZmllciwgW2lkZW50aWZpZXJdIChT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3BlKSB7CisgICAgICAgIGF1dG8qIHNj
cmlwdCA9IGdsb2JhbFNjb3BlLnNjcmlwdCgpOworICAgICAgICBpZiAoIXNjcmlwdCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvJiBzdGF0ZSA9ICpnbG9iYWxTY29wZS5leGVj
U3RhdGUoKTsKKyAgICAgICAgYXV0byogY29udGV4dFdyYXBwZXIgPSBzY3JpcHQtPndvcmtlckds
b2JhbFNjb3BlV3JhcHBlcigpOworICAgICAgICBjb250ZXh0V3JhcHBlci0+cHV0RGlyZWN0KHN0
YXRlLnZtKCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBJbnRlcm5hbHM6OmludGVy
bmFsc0lkKSwgdG9KUygmc3RhdGUsIGNvbnRleHRXcmFwcGVyLCBTZXJ2aWNlV29ya2VySW50ZXJu
YWxzOjpjcmVhdGUoaWRlbnRpZmllcikpKTsKKyAgICB9KTsKKyNlbmRpZgorfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuaAppbmRleCA1NjQw
OTRhNTI0NDdkZmIwNjAxZWY0OWFhMjM3OTI4Y2MzNGY2M2UxLi5hMjZiMmY3MzYxOWIwZDMxYTI4
MGNiMmUyMmE1YjlkODhjOWUxMDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMv
V2ViQ29yZVRlc3RTdXBwb3J0LmgKQEAgLTYzLDQgKzYzLDYgQEAgdm9pZCBzZXRNb2NrR2FtZXBh
ZERldGFpbHModW5zaWduZWQgaW5kZXgsIGNvbnN0IFdURjo6U3RyaW5nJiBnYW1lcGFkSUQsIHVu
c2lnbmUKIHZvaWQgc2V0TW9ja0dhbWVwYWRBeGlzVmFsdWUodW5zaWduZWQgaW5kZXgsIHVuc2ln
bmVkIGF4aXNJbmRleCwgZG91YmxlIHZhbHVlKSBURVNUX1NVUFBPUlRfRVhQT1JUOwogdm9pZCBz
ZXRNb2NrR2FtZXBhZEJ1dHRvblZhbHVlKHVuc2lnbmVkIGluZGV4LCB1bnNpZ25lZCBidXR0b25J
bmRleCwgZG91YmxlIHZhbHVlKSBURVNUX1NVUFBPUlRfRVhQT1JUOwogCit2b2lkIHNldHVwTmV3
bHlDcmVhdGVkU2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikg
VEVTVF9TVVBQT1JUX0VYUE9SVDsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZVRlc3RTdXBwb3J0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0Nv
bnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NXQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDYyNGZlYTcwMGY0MDc2YTVkYjYxZDFkOTdjNzM3
OWEzYTZkN2VlNTkuLmM4ZGMyNTQ5YzE0ZDgyNzk4NGY2OTlkODQwNzUwZjI2ZjZlMjBkMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NXQ29udGV4dE1hbmFnZXIuY3BwCkBAIC01OCwxMCArNTgsMTcgQEAgdm9pZCBTV0NvbnRleHRN
YW5hZ2VyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNl
V29ya2VyVGgKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwog
ICAgIAogICAgIHRocmVhZFByb3h5LT50aHJlYWQoKS5zdGFydChbam9iRGF0YUlkZW50aWZpZXIs
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXShjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2Up
IHsKLSAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpLT5z
ZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKGpvYkRhdGFJZGVudGlmaWVyLCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2FnZSk7CisgICAgICAgIFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLnN0YXJ0ZWRTZXJ2aWNlV29ya2VyKGpvYkRhdGFJZGVudGlmaWVy
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2FnZSk7CiAgICAgfSk7CiB9
CiAKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6c3RhcnRlZFNlcnZpY2VXb3JrZXIoc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVyLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBleGNlcHRpb25NZXNzYWdlKQoreworICAgIGNvbm5lY3Rpb24oKS0+c2VydmljZVdvcmtl
clN0YXJ0ZWRXaXRoTWVzc2FnZShqb2JEYXRhSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGV4Y2VwdGlvbk1lc3NhZ2UpOworICAgIGlmIChtX3NlcnZpY2VXb3JrZXJDcmVhdGlv
bkNhbGxiYWNrKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJDcmVhdGlvbkNhbGxiYWNrKHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLnRvVUludDY0KCkpOworfQorCiBTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkqIFNXQ29udGV4dE1hbmFnZXI6OnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSBjb25zdAogewogICAgIHJldHVybiBtX3dvcmtl
ck1hcC5nZXQoaWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggZjQwM2Q0ZDg1MmY4
ZTY2MmNmNTViYWY2NDM2MGNlNjExZjQwZDgxNC4uYWRkNzgzN2VlMWIwYTFiZGIzYzc5NDNlMWZi
NmU3MDg2YWYzYWQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNzYsMTEgKzc2LDE5IEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIo
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVuY3Rpb248dm9pZChTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUmKT4mJik7CiAKKyAgICB1c2luZyBTZXJ2aWNlV29ya2VyQ3JlYXRpb25DYWxs
YmFjayA9IHZvaWQodWludDY0X3QpOworICAgIHZvaWQgc2V0U2VydmljZVdvcmtlckNyZWF0aW9u
Q2FsbGJhY2soU2VydmljZVdvcmtlckNyZWF0aW9uQ2FsbGJhY2sqIGNhbGxiYWNrKSB7IG1fc2Vy
dmljZVdvcmtlckNyZWF0aW9uQ2FsbGJhY2sgPSBjYWxsYmFjazsgfQorCisgICAgU2VydmljZVdv
cmtlclRocmVhZFByb3h5KiB3b3JrZXJCeUlEKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIpIHsgcmV0dXJuIG1fd29ya2VyTWFwLmdldChpZGVudGlmaWVyKTsgfQorCiBwcml2YXRl
OgogICAgIFNXQ29udGV4dE1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKKyAgICB2b2lkIHN0YXJ0ZWRT
ZXJ2aWNlV29ya2VyKHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
PiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2Fn
ZSk7CisKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWZQdHI8U2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5Pj4gbV93b3JrZXJNYXA7CiAgICAgc3RkOjp1bmlxdWVfcHRyPENv
bm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBTZXJ2aWNlV29ya2VyQ3JlYXRpb25DYWxsYmFj
ayogbV9zZXJ2aWNlV29ya2VyQ3JlYXRpb25DYWxsYmFjayB7IG51bGxwdHIgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggMjkz
OWY4OWI2NzFkMzQ0ZGRmOGMyNmIwMmFiZDA4N2ZhNTUyYThiZS4uZDlkN2Q3YzA5YmIxOTRmYTYz
NzViOTAwZDU3NTg4MTI1OGU5MDY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtTdGF0ZU5vdGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCIKQEAgLTY3LDExICs2OCwxMCBAQCBwcml2YXRlOgogCiAvLyBGSVhNRTogVXNl
IGEgdmFsaWQgV29ya2VyUmVwb3J0aW5nUHJveHkKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCBXb3Jr
ZXJPYmplY3RQcm94eQotLy8gRklYTUU6IFVzZSBhIHZhbGlkIGlzT25saW5lIGZsYWcKIC8vIEZJ
WE1FOiBVc2UgdmFsaWQgcnVudGltZSBmbGFncwogCiBTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2
aWNlV29ya2VyVGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFM
OjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRl
clByb3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklE
QkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29j
a2V0UHJvdmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsICJzZXJ2aWNl
d29ya2VyOiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmll
cigpLCBXVEZNb3ZlKHVzZXJBZ2VudCksIC8qIGlzT25saW5lICovIGZhbHNlLCBkYXRhLnNjcmlw
dCwgbG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFBy
b3h5OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IH0sIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5l
Y3Rpb25Qcm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxF
bmFibGVkKCksIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorICAgIDogV29ya2VyVGhy
ZWFkKGRhdGEuc2NyaXB0VVJMLCAic2VydmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlm
aWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCBOZXR3
b3JrU3RhdGVOb3RpZmllcjo6c2luZ2xldG9uKCkub25MaW5lKCksIGRhdGEuc2NyaXB0LCBsb2Fk
ZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNo
YXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzIHsgfSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0
YS5zY3JpcHRVUkwpLmdldCgpLCBNb25vdG9uaWNUaW1lOjpub3coKSwgaWRiQ29ubmVjdGlvblBy
b3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1lRmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQo
KSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgLCBtX2RhdGEoZGF0YS5pc29s
YXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk6OnNoYXJlZCgpKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5jcHAKaW5kZXggM2ZlYjkzYzY3OTI2Mjg4NDFmZDQyODEwMzg3Y2RiZjU5Yzk5NjE3Ny4uZjll
MTEyZjA1NTU2MDBmNzE1MWRiZmY5YmE2NmYwNjRkMTgzZDUyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC03Nyw2ICs3NywxMiBAQCBzdGF0aWMgaW5saW5lIElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHkoRG9jdW1lbnQm
IGRvY3VtZQogI2VuZGlmCiB9CiAKK3N0YXRpYyBIYXNoU2V0PFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eSo+JiBhbGxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveGllcygpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hTZXQ8U2VydmljZVdvcmtlclRocmVhZFByb3h5Kj4+IHNldDsKKyAg
ICByZXR1cm4gc2V0OworfQorCiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1cmF0aW9uLCBjb25z
dCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdl
UHJvdmlkZXIsIFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kgc3RvcmFnZUJs
b2NraW5nUG9saWN5KQogICAgIDogbV9wYWdlKGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKFdU
Rk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzdG9yYWdlQmxvY2tpbmdQb2xpY3kpKQog
ICAgICwgbV9kb2N1bWVudCgqbV9wYWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQpAQCAtODUs
NiArOTEsMTUgQEAgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmkKICAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKICAgICAsIG1faW5zcGVjdG9yUHJveHkoKnRoaXMpCiB7CisgICAgc3RhdGljIGJv
b2wgYWRkZWRMaXN0ZW5lcjsKKyAgICBpZiAoIWFkZGVkTGlzdGVuZXIpIHsKKyAgICAgICAgTmV0
d29ya1N0YXRlTm90aWZpZXI6OnNpbmdsZXRvbigpLmFkZExpc3RlbmVyKCZuZXR3b3JrU3RhdGVD
aGFuZ2VkKTsKKyAgICAgICAgYWRkZWRMaXN0ZW5lciA9IHRydWU7CisgICAgfQorCisgICAgQVNT
RVJUKCFhbGxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveGllcygpLmNvbnRhaW5zKHRoaXMpKTsKKyAg
ICBhbGxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveGllcygpLmFkZCh0aGlzKTsKKwogI2lmIEVOQUJM
RShSRU1PVEVfSU5TUEVDVE9SKQogICAgIG1fcmVtb3RlRGVidWdnYWJsZSA9IHN0ZDo6bWFrZV91
bmlxdWU8U2VydmljZVdvcmtlckRlYnVnZ2FibGU+KCp0aGlzLCBkYXRhKTsKICAgICBtX3JlbW90
ZURlYnVnZ2FibGUtPnNldFJlbW90ZURlYnVnZ2luZ0FsbG93ZWQodHJ1ZSk7CkBAIC05Miw2ICsx
MDcsMTIgQEAgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkoUGFnZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmkKICNlbmRpZgogfQogCitTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHk6On5TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoKQoreworICAgIEFTU0VS
VChhbGxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveGllcygpLmNvbnRhaW5zKHRoaXMpKTsKKyAgICBh
bGxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveGllcygpLnJlbW92ZSh0aGlzKTsKK30KKwogYm9vbCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2Nv
cGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9k
ZSkKIHsKICAgICBpZiAobV9pc1Rlcm1pbmF0aW5nT3JUZXJtaW5hdGVkKQpAQCAtMTQxLDYgKzE2
MiwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8RmV0Y2hMb2FkZXI+IFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eTo6Y3JlYXRlQmxvYkxvYWRlcihGZXRjaExvYQogICAgIHJldHVybiBsb2FkZXI7CiB9CiAK
K3ZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpuZXR3b3JrU3RhdGVDaGFuZ2VkKGJvb2wg
aXNPbkxpbmUpCit7CisgICAgZm9yIChhdXRvKiBwcm94eSA6IGFsbFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94aWVzKCkpCisgICAgICAgIHByb3h5LT5ub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoaXNP
bkxpbmUpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6bm90aWZ5TmV0d29y
a1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpCit7CisgICAgaWYgKG1faXNUZXJtaW5hdGluZ09y
VGVybWluYXRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgcG9zdFRhc2tGb3JNb2RlVG9Xb3Jr
ZXJHbG9iYWxTY29wZShbaXNPbmxpbmVdIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KSB7CisgICAgICAgIGF1dG8mIGdsb2JhbFNjb3BlID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpOworICAgICAgICBnbG9iYWxTY29wZS5zZXRJc09ubGluZShpc09ubGluZSk7
CisgICAgICAgIGdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShpc09ubGlu
ZSA/IGV2ZW50TmFtZXMoKS5vbmxpbmVFdmVudCA6IGV2ZW50TmFtZXMoKS5vZmZsaW5lRXZlbnQs
IGZhbHNlLCBmYWxzZSkpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCmluZGV4IGRiMWNjZGZiODM4
ZjYzYmU5NTg5YTRmMDA5MTYwMDFkZTE1Zjg1N2EuLjlhYTQzYjYyYTk1MjExNDRkNGY3MWUxNjkx
ODY0Y2QyYzJlNWQzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCkBAIC01
NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsK
ICAgICB9CisgICAgflNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSgpOwogCiAgICAgU2VydmljZVdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtl
clRocmVhZC0+aWRlbnRpZmllcigpOyB9CiAgICAgU2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFk
KCkgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyVGhyZWFkLmdldCgpOyB9CkBAIC02NCw5ICs2NSwx
NCBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6OnVuaXF1ZV9wdHI8RmV0Y2hM
b2FkZXI+IGNyZWF0ZUJsb2JMb2FkZXIoRmV0Y2hMb2FkZXJDbGllbnQmLCBjb25zdCBVUkwmKTsK
IAorICAgIC8vIFB1YmxpYyBvbmx5IGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpOworCiBw
cml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdl
Q29uZmlndXJhdGlvbiYmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNl
c3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYsIFNlY3Vy
aXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3kpOwogCisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZChib29sIGlzT25MaW5lKTsKKwogICAgIC8v
IFdvcmtlckxvYWRlclByb3h5CiAgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2Rl
KSBmaW5hbDsKICAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6VGFzayYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCmluZGV4IGZiZWVkNWI2MzAyMWI5
N2U2ZWExNzUxODc0YzJmZTA2NWU2YmY3MzkuLjdiNTE1MDRhZTU3N2YwNDdmMDc1NDE2NGZmNTZm
ODVmZjM4NWIzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2lu
Y2x1ZGUgIldlYlBhZ2VHcm91cFByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhYmFzZVRy
YWNrZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZE9ic2VydmVyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtNTQsNiArNTUsMTEgQEAg
dm9pZCBXS0J1bmRsZVNldENsaWVudChXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlQ2xp
ZW50QmFzZSAqd2tDbGllbnQpCiAgICAgdG9JbXBsKGJ1bmRsZVJlZiktPnNldENsaWVudChzdGQ6
Om1ha2VfdW5pcXVlPEluamVjdGVkQnVuZGxlQ2xpZW50Pih3a0NsaWVudCkpOwogfQogCit2b2lk
IFdLQnVuZGxlU2V0U2VydmljZVdvcmtlclByb3h5Q3JlYXRpb25DYWxsYmFjayhXS0J1bmRsZVJl
ZiBidW5kbGVSZWYsIHZvaWQgKCpjYWxsYmFjaykodWludDY0X3QpKQoreworICAgIHRvSW1wbChi
dW5kbGVSZWYpLT5zZXRTZXJ2aWNlV29ya2VyUHJveHlDcmVhdGlvbkNhbGxiYWNrKGNhbGxiYWNr
KTsKK30KKwogdm9pZCBXS0J1bmRsZVBvc3RNZXNzYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwg
V0tTdHJpbmdSZWYgbWVzc2FnZU5hbWVSZWYsIFdLVHlwZVJlZiBtZXNzYWdlQm9keVJlZikKIHsK
ICAgICB0b0ltcGwoYnVuZGxlUmVmKS0+cG9zdE1lc3NhZ2UodG9XVEZTdHJpbmcobWVzc2FnZU5h
bWVSZWYpLCB0b0ltcGwobWVzc2FnZUJvZHlSZWYpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgKaW5kZXggNjAw
MTRmNzhlNzlhNDBhNDdlMzQxOTU0ZTg1NTMxZGY3Zjc2YjM5Zi4uYTk3MDkzNDVlZTQzZTUzM2I4
Y2M3NjE0OGM5OTUzNGEwMWJlOWI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgKQEAgLTcxLDYgKzcxLDcg
QEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVDbGllbnRWMSB7CiBXS19FWFBPUlQgV0tUeXBlSUQg
V0tCdW5kbGVHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRDbGllbnQo
V0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZUNsaWVudEJhc2UqIGNsaWVudCk7CitXS19FWFBP
UlQgdm9pZCBXS0J1bmRsZVNldFNlcnZpY2VXb3JrZXJQcm94eUNyZWF0aW9uQ2FsbGJhY2soV0tC
dW5kbGVSZWYgYnVuZGxlLCB2b2lkICgqKSh1aW50NjRfdCkpOwogCiBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVBvc3RNZXNzYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tTdHJpbmdSZWYgbWVzc2Fn
ZU5hbWUsIFdLVHlwZVJlZiBtZXNzYWdlQm9keSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBv
c3RTeW5jaHJvbm91c01lc3NhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS1N0cmluZ1JlZiBtZXNz
YWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBXS1R5cGVSZWYqIHJldHVybkRhdGEpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggYWVhZDI1ZGI4MzRhYmY5Y2M4OTIzYWQxM2Y4ZTMzN2M2
YWIwNmEyZi4uZDQ4MWNhNTdkMWFhNDZkNDUwZjY5OWU1N2QzMzhjOTc2MmE4ZmVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuY3BwCkBAIC03MCw2ICs3MCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcmlu
dENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
V0NvbnRleHRNYW5hZ2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VjdXJpdHlQb2xpY3kuaD4KQEAgLTExOCw2ICsxMTksMTMgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6c2V0Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkluamVjdGVkQnVuZGxlOjpDbGllbnQ+
JiYgY2wKICAgICAgICAgbV9jbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7CiB9CiAKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGU6OnNldFNlcnZpY2VXb3JrZXJQcm94eUNyZWF0aW9uQ2FsbGJhY2sodm9pZCAo
KmNhbGxiYWNrKSh1aW50NjRfdCkpCit7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAg
IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNldFNlcnZpY2VXb3JrZXJDcmVhdGlvbkNh
bGxiYWNrKGNhbGxiYWNrKTsKKyNlbmRpZgorfQorCiB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0
TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2VOYW1lLCBBUEk6Ok9iamVjdCogbWVzc2FnZUJv
ZHkpCiB7CiAgICAgYXV0byYgd2ViUHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGUuaAppbmRleCAwNzM5Y2UxMjY1YmZkZjMyZjRjMmM5NmJkODA0ZjEyNmY0ZTJj
MzZkLi5mYzE1MzRmNjU2ZmViYjBhZmI0NmRmMzMxMDlmNzRmZWUzZDg1ODIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaApAQCAtODcsNiArODcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQoc3Rk
Ojp1bmlxdWVfcHRyPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OkNsaWVudD4mJik7CiAgICAgdm9pZCBw
b3N0TWVzc2FnZShjb25zdCBTdHJpbmcmLCBBUEk6Ok9iamVjdCopOwogICAgIHZvaWQgcG9zdFN5
bmNocm9ub3VzTWVzc2FnZShjb25zdCBTdHJpbmcmLCBBUEk6Ok9iamVjdCosIFJlZlB0cjxBUEk6
Ok9iamVjdD4mIHJldHVybkRhdGEpOworICAgIHZvaWQgc2V0U2VydmljZVdvcmtlclByb3h5Q3Jl
YXRpb25DYWxsYmFjayh2b2lkICgqKSh1aW50NjRfdCkpOwogCiAgICAgV2ViQ29ubmVjdGlvbiog
d2ViQ29ubmVjdGlvblRvVUlQcm9jZXNzKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NDRlOWNiODk0ZTI5OGU0MzM1ZGRhOTkx
NjA3ZjU3OGU5NjYzZDRhLi45YzY4N2YwYTQ1YTBjMDY1ZDlkZjFiNmM5N2UwNzkwYzE4Yjk0OTU3
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTgtMDEtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCisgICAgICAgIG5hdmlnYXRvci5vbkxpbmUgZG9lcyBub3Qgd29yayBpbnNpZGUgc2Vydmlj
ZSB3b3JrZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODEwNzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MTc4NjA2PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlOjppbml0aWFsaXplKTogU2V0dGluZyBzZXJ2aWNlIHdvcmtlciBjcmVhdGlvbiBjYWxsYmFj
ayB0byBpbmplY3QgU2VydmljZVdvcmtlckludGVybmFscyBvYmplY3QuCisKIDIwMTgtMDEtMDcg
IFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHRvdGFsIGV4
aXRzIGFuZCB0b3RhbCBjb21waWxhdGlvbnMgc29ydGluZyBtb2RlIHRvIHRoZSAiZnVsbCIgY29t
bWFuZCBpbiBkaXNwbGF5LXByb2ZpbGVyLW91dHB1dApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA1NmIw
ZGNkZGI1NDNlMWE0OTg2ZDc5ZDU2YWJjY2U3MmZhOTNiYjUyLi4zZGUzOGMzMTNjNDYxZjc0NmEz
MGRhZjlmOTgzN2Q0OWUzMTdhODQwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtOTcsNyArOTcsNyBA
QCB2b2lkIEluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tU
eXBlUmVmIGluaXRpYWxpemF0aW9uVXNlcgogICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZVRvUGFn
ZQogICAgIH07CiAgICAgV0tCdW5kbGVTZXRDbGllbnQobV9idW5kbGUsICZjbGllbnQuYmFzZSk7
Ci0KKyAgICBXS0J1bmRsZVNldFNlcnZpY2VXb3JrZXJQcm94eUNyZWF0aW9uQ2FsbGJhY2sobV9i
dW5kbGUsIFdlYkNvcmVUZXN0U3VwcG9ydDo6c2V0dXBOZXdseUNyZWF0ZWRTZXJ2aWNlV29ya2Vy
KTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSk7CiAKICAg
ICBhY3RpdmF0ZUZvbnRzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTMxOTk2MjNmOGFhZjUxZGYyYTIyZjhkMGRhOWYy
OWNlNzI5YzAyNS4uMTUwZTYwMmJiZGUxMzI0MTk0YTc4NzMyYzU4ODZiZTNmOTRlOTNhOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAxLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBuYXZpZ2F0b3Iub25MaW5lIGRvZXMgbm90IHdvcmsgaW5zaWRl
IHNlcnZpY2Ugd29ya2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgxMDc5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjE3ODYwNj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9vbmxpbmUtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jLndhaXRG
b3JPbmxpbmVFdmVudCk6CisgICAgICAgIChhc3luYy5kb1Rlc3QpOgorICAgICAgICAqIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9vbmxpbmUuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvb25saW5lLmh0dHBzLmh0bWw6IEFkZGVk
LgorCiAyMDE4LTAxLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBnYXJkZW5pbmcuIFJlYmFzZWxpbmUgdGVzdCBh
Z2FpbiBhZnRlciByMjI2NTAwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL29ubGluZS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvb25saW5lLXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjVjZTNmYTM5OTYwNzIy
OWUyZmVjMjQxNGU4YTNlMWIyMmVmYjFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL29ubGluZS13b3JrZXIuanMKQEAgLTAsMCArMSw1MCBA
QAorYXN5bmMgZnVuY3Rpb24gd2FpdEZvck9ubGluZUV2ZW50KCkKK3sKKyAgICB2YXIgcHJvbWlz
ZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgc2VsZi5hZGRF
dmVudExpc3RlbmVyKCJvbmxpbmUiLCAoKSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKCJvbmxp
bmUiKTsKKyAgICAgICAgfSk7CisgICAgICAgIHNlbGYuYWRkRXZlbnRMaXN0ZW5lcigib2ZmbGlu
ZSIsICgpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUoIm9mZmxpbmUiKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHNldFRpbWVvdXQoKCkgPT4geworICAgICAgICAgICAgcmVqZWN0KCJObyBvbmxp
bmUgZXZlbnQiKTsKKyAgICAgICAgfSwgMjAwMCk7CisgICAgfSk7CisgICAgcmV0dXJuIGF3YWl0
IHByb21pc2U7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdChldmVudCkKK3sKKyAgICB0cnkg
eworICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3RhcnRzV2l0aCgiT05MSU5FIikpIHsKKyAgICAg
ICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQgdW5leHBlY3Rl
ZCBtZXNzYWdlIGZyb20gY2xpZW50Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBpZiAoIXNlbGYuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBldmVudC5zb3Vy
Y2UucG9zdE1lc3NhZ2UoIkZBSUw6IHRlc3QgcmVxdWlyZSBpbnRlcm5hbHMiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGludGVybmFscy5zZXRPbmxpbmUodHJ1
ZSk7CisgICAgICAgIHZhciBldmVudE5hbWUgPSBhd2FpdCB3YWl0Rm9yT25saW5lRXZlbnQoKTsK
KyAgICAgICAgaWYgKCFuYXZpZ2F0b3Iub25MaW5lKQorICAgICAgICAgICAgZXZlbnQuc291cmNl
LnBvc3RNZXNzYWdlKCJGQUlMOiB0ZXN0IDEiKTsKKyAgICAgICAgaWYgKGV2ZW50TmFtZSAhPT0g
Im9ubGluZSIpCisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHRl
c3QgMiwgZ290ICIgKyBldmVudE5hbWUpOworCisgICAgICAgIGludGVybmFscy5zZXRPbmxpbmUo
ZmFsc2UpOworICAgICAgICB2YXIgZXZlbnROYW1lID0gYXdhaXQgd2FpdEZvck9ubGluZUV2ZW50
KCk7CisgICAgICAgIGlmIChuYXZpZ2F0b3Iub25MaW5lKQorICAgICAgICAgICAgZXZlbnQuc291
cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiB0ZXN0IDMiKTsKKyAgICAgICAgaWYgKGV2ZW50TmFtZSAh
PT0gIm9mZmxpbmUiKQorICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlM
OiB0ZXN0IDQsIGdvdCAiICsgZXZlbnROYW1lKTsKKworICAgICAgICBldmVudC5zb3VyY2UucG9z
dE1lc3NhZ2UoIlBBU1MiKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZShlKTsKKyAgICB9Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIGRvVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvb25saW5lLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9vbmxpbmUuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdj
ODE4ZjhmZmM2MWMyMmNhZTBlYWIyNGY0Y2I1N2ZjNjRmMWY1ZDQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvb25saW5lLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBTZXR1cCB3b3JrZXIgCitQQVNTIFRlc3Qg
c2VydmljZSB3b3JrZXIgb25saW5lL29mZmxpbmUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9vbmxpbmUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9vbmxpbmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YTU4ZDdkZjE3NGFmMzgxZGE0MjBjNTJkMjg5YjI1MmRkYzFiNTRhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL29ubGluZS5odHRwcy5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2
YXIgc2NvcGUgPSAiIjsKK3ZhciBhY3RpdmVXb3JrZXI7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3Rlcigib25saW5lLXdvcmtlci5qcyIsIHsgc2NvcGUgOiBzY29wZSB9KTsK
KyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVX
b3JrZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24u
aW5zdGFsbGluZzsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAg
IGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAg
ICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiU2V0dXAgd29y
a2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciBwcm9taXNl
ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOworICAgICAgICB9KTsKKyAgICB9KTsKKwor
ICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiT05MSU5FIik7CisgICAgdmFyIHJlc3VsdCA9
IGF3YWl0IHByb21pc2U7CisKKyAgICBhc3NlcnRfZXF1YWxzKHJlc3VsdCwgIlBBU1MiKTsKK30s
ICJUZXN0IHNlcnZpY2Ugd29ya2VyIG9ubGluZS9vZmZsaW5lIik7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330699</attachid>
            <date>2018-01-08 06:28:29 -0800</date>
            <delta_ts>2018-01-08 13:58:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181381-20180108152827.patch</filename>
            <type>text/plain</type>
            <size>33605</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM5ZGJkMTY3ODk1NTBl
NGNiODIwZWI0Yzk4NGVmYmY3OTRkZDEwYS4uY2Q0NWQxMjIxMTdjOGQyNThkNzQ4Y2I3YTgxZDI4
ODdlNjI3ZThhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAxLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV0NsaWVudENvbm5lY3Rp
b24gc2hvdWxkIG5vdCBrZWVwIHJlZmVyZW5jZXMgdG8gc2VydmljZSB3b3JrZXIgam9icworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGlmZmljdWx0IHRv
IHRlc3QgZGV0ZXJtaW5pc2NhbGx5IGJ1dCBjb3JyZXNwb25kaW5nIGNyYXNoIGxvZyBzaG91bGQg
bm8gbG9uZ2VyIGhhcHBlbiBpbiBkZWJ1ZyBidWlsZHMuCisKKyAgICAgICAgU3RvcHBlZCBwYXNz
aW5nIFNlcnZpY2VXb3JrZXJKb2IgcmVmZXJlbmNlcyBmcm9tIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXIgKHBvdGVudGlhbGx5IGluIHNlcnZpY2Ugd29ya2VyIHRocmVhZCkgdG8gU1dDbGllbnRDb25u
ZWN0aW9uIChtYWluIHRocmVhZCkuCisgICAgICAgIEluc3RlYWQgcGFzcyBqb2IgaWRlbnRpZmll
cnMgYW5kIHJlbGF0ZWQgZGF0YSB0byB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgTWlub3Ig
cmVmYWN0b3JpbmcgdG8gdXNlIFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGluc3RlYWQgb2Yg
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIHdoaWNoIGNvbnRhaW5zIG1vcmUgZGF0YSB0
aGFuIG5lZWRlZC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpv
Yik6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5n
U2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tG
b3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3Rl
ZEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0
cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENv
bm5lY3Rpb246OnVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChX
ZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpjbGVhclBlbmRpbmdKb2JzKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1Nj
cmlwdCk6IERlbGV0ZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxl
Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2Ny
aXB0RmV0Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5l
cjo6am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
cmVqZWN0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlUmVnaXN0cmF0
aW9uSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlVW5yZWdpc3RyYXRp
b25Kb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2gpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAxOC0wMS0w
OCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgbmF2aWdhdG9y
Lm9uTGluZSBkb2VzIG5vdCB3b3JrIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ODZjMjNiYzkxYjY1OTNmNTFjYzA2OTdmYWIwNDQ4MDc3Yjg2MjVlNC4uYzFlNzc5YmFjMWE4ODMz
YjRkYjQxZDdmNDk4OWFhNmFmODAzMjc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
OC0wMS0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU1dD
bGllbnRDb25uZWN0aW9uIHNob3VsZCBub3Qga2VlcCByZWZlcmVuY2VzIHRvIHNlcnZpY2Ugd29y
a2VyIGpvYnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4MTM4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVwZGF0ZWQgSVBDIGhhbmRsaW5nIGJhc2VkIG9uIFdlYkNvcmUgcmVmYWN0b3JpbmcuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKGZvcndhcmRfZGVj
bGFyYXRpb25zX2FuZF9oZWFkZXJzKToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWplY3RKb2JJ
bkNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2
ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpyZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2JJbkNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KToK
KyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisKIDIwMTgtMDEtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIG5hdmlnYXRvci5vbkxpbmUgZG9lcyBub3Qgd29yayBpbnNpZGUg
c2VydmljZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDFmMzIyMWZmNGY5OWI5OGVhZGQxZjgwZDg1
NTcyNzRhMGJiMWQ1YjcuLmMyMjhjZjAyODg2Y2I2MDZhZDJiZTNlMDZhNGVmN2NmZmQ1NTE0MGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENv
bm5lY3Rpb24uY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpv
YkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVk
ZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+Ci0jaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYsMTAxICs0NSw3NCBAQCBTV0NsaWVudENvbm5lY3Rp
b246OlNXQ2xpZW50Q29ubmVjdGlvbigpID0gZGVmYXVsdDsKIAogU1dDbGllbnRDb25uZWN0aW9u
Ojp+U1dDbGllbnRDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwogCi12b2lkIFNXQ2xpZW50Q29ubmVj
dGlvbjo6c2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYgam9iKQordm9pZCBTV0NsaWVudENv
bm5lY3Rpb246OnNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50
aWZpZXIsIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3NjaGVkdWxlZEpvYnMuYWRkKGpvYi5p
ZGVudGlmaWVyKCksICZqb2IpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zY2hlZHVsZWRKb2Jz
LmFkZChqb2JJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNF
RChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAotICAgIHNjaGVkdWxlSm9iSW5T
ZXJ2ZXIoam9iLmRhdGEoKSk7CisgICAgc2NoZWR1bGVKb2JJblNlcnZlcihqb2JEYXRhKTsKIH0K
IAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2Vydmlj
ZVdvcmtlckpvYiYgam9iLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkKK3ZvaWQgU1dDbGllbnRDb25u
ZWN0aW9uOjpmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBq
b2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3Ry
YXRpb25LZXksIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKG1fc2NoZWR1bGVkSm9icy5nZXQoam9iLmlkZW50aWZp
ZXIoKSkgPT0gJmpvYik7CiAKLSAgICBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgam9i
LmRhdGEoKS5pZGVudGlmaWVyKCksIGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHNjcmlw
dCwgeyB9IH0pOworICAgIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoeyB7IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYklkZW50aWZpZXIgfSwgcmVnaXN0cmF0aW9uS2V5LCB7
IH0sIGVycm9yIH0pOwogfQogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmFpbGVkRmV0Y2hp
bmdTY3JpcHQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRl
bnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9u
S2V5LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK2Jvb2wgU1dDbGllbnRDb25uZWN0aW9u
Ojpwb3N0VGFza0ZvckpvYihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVy
LCBTaG91bGRUYWtlSm9iIHNob3VsZFRha2VKb2IsIFdURjo6RnVuY3Rpb248dm9pZChTZXJ2aWNl
V29ya2VySm9iJik+JiYgdGFzaykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0g
ICAgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcih7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdp
c3RyYXRpb25LZXksIHsgfSwgZXJyb3IgfSk7Ci19Ci0KLXZvaWQgU1dDbGllbnRDb25uZWN0aW9u
Ojpqb2JSZWplY3RlZEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
ciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEp
Ci17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGF1dG8gam9iID0gbV9zY2hl
ZHVsZWRKb2JzLnRha2Uoam9iRGF0YUlkZW50aWZpZXIuam9iSWRlbnRpZmllcik7Ci0gICAgaWYg
KCFqb2IpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJKb2IgJXMgcmVqZWN0ZWQgZnJvbSBzZXJ2ZXIs
IGJ1dCB3YXMgbm90IGZvdW5kIiwgam9iRGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2No
ZWR1bGVkSm9icy5maW5kKGpvYklkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3Nj
aGVkdWxlZEpvYnMuZW5kKCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJKb2IgJXMgd2FzIG5vdCBm
b3VuZCIsIGpvYklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIGV4Y2VwdGlvbkRhdGEg
PSBleGNlcHRpb25EYXRhLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jikg
ewotICAgICAgICBqb2ItPmZhaWxlZFdpdGhFeGNlcHRpb24oZXhjZXB0aW9uRGF0YS50b0V4Y2Vw
dGlvbigpKTsKKyAgICBhdXRvIGlzUG9zdGVkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9z
dFRhc2tUbyhpdGVyYXRvci0+dmFsdWUsIFtqb2JJZGVudGlmaWVyLCB0YXNrID0gV1RGTW92ZSh0
YXNrKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAg
ICBpZiAoYXV0byogY29udGFpbmVyID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBqb2IgPSBjb250YWluZXItPmpvYihqb2JJZGVudGlm
aWVyKSkKKyAgICAgICAgICAgICAgICB0YXNrKCpqb2IpOworICAgICAgICB9CiAgICAgfSk7Cisg
ICAgaWYgKHNob3VsZFRha2VKb2IgPT0gU2hvdWxkVGFrZUpvYjo6WWVzKQorICAgICAgICBtX3Nj
aGVkdWxlZEpvYnMucmVtb3ZlKGl0ZXJhdG9yKTsKKyAgICByZXR1cm4gaXNQb3N0ZWQ7CiB9CiAK
LXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVy
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSwgU2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKK3ZvaWQgU1dDbGll
bnRDb25uZWN0aW9uOjpqb2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCiB7
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGF1dG8gZ3VhcmQgPSBXVEY6Om1h
a2VTY29wZUV4aXQoW3RoaXMsIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCwgcmVnaXN0cmF0aW9u
S2V5ID0gcmVnaXN0cmF0aW9uRGF0YS5rZXldIHsKLSAgICAgICAgaWYgKHNob3VsZE5vdGlmeVdo
ZW5SZXNvbHZlZCA9PSBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgICAg
IGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKHJlZ2lzdHJhdGlvbktleSk7CisgICAgcG9z
dFRhc2tGb3JKb2Ioam9iSWRlbnRpZmllciwgU2hvdWxkVGFrZUpvYjo6WWVzLCBbZXhjZXB0aW9u
RGF0YSA9IGV4Y2VwdGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCldKGF1dG8mIGpvYikgeworICAgICAg
ICBqb2IuZmFpbGVkV2l0aEV4Y2VwdGlvbihleGNlcHRpb25EYXRhLnRvRXhjZXB0aW9uKCkpOwog
ICAgIH0pOworfQogCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMudGFrZShqb2JEYXRh
SWRlbnRpZmllci5qb2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikgewotICAgICAgICBMT0df
RVJST1IoIkpvYiAlcyByZXNvbHZlZCBpbiBzZXJ2ZXIsIGJ1dCB3YXMgbm90IGZvdW5kIiwgam9i
RGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgYm9vbCB3YXNQb3N0ZWQgPSBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Ojpwb3N0VGFza1RvKGpvYi0+Y29udGV4dElkZW50aWZpZXIoKSwgW2pvYiwgcmVnaXN0cmF0
aW9uRGF0YSA9IHJlZ2lzdHJhdGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCksIHNob3VsZE5vdGlmeVdo
ZW5SZXNvbHZlZF0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAgICBq
b2ItPnJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpLCBz
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lz
dHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9i
SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25E
YXRhLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQor
eworICAgIGJvb2wgaXNQb3N0ZWQgPSBwb3N0VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBTaG91
bGRUYWtlSm9iOjpZZXMsIFtyZWdpc3RyYXRpb25EYXRhID0gcmVnaXN0cmF0aW9uRGF0YS5pc29s
YXRlZENvcHkoKSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkXSAoYXV0byYgam9iKSBtdXRhYmxl
IHsKKyAgICAgICAgam9iLnJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKHJlZ2lzdHJh
dGlvbkRhdGEpLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIH0pOwogCi0gICAgaWYg
KHdhc1Bvc3RlZCkKLSAgICAgICAgZ3VhcmQucmVsZWFzZSgpOworICAgIGlmICghaXNQb3N0ZWQg
JiYgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkID09IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6
WWVzKQorICAgICAgICBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25E
YXRhLmtleSk7CiB9CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdHJhdGlvbkpv
YlJlc29sdmVkSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBq
b2JEYXRhSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKK3ZvaWQgU1dDbGll
bnRDb25uZWN0aW9uOjp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3Vs
dCkKIHsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgYXV0byBqb2IgPSBtX3Nj
aGVkdWxlZEpvYnMudGFrZShqb2JEYXRhSWRlbnRpZmllci5qb2JJZGVudGlmaWVyKTsKLSAgICBp
ZiAoIWpvYikgewotICAgICAgICBMT0dfRVJST1IoIkpvYiAlcyByZXNvbHZlZCBpbiBzZXJ2ZXIs
IGJ1dCB3YXMgbm90IGZvdW5kIiwgam9iRGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIHVu
cmVnaXN0cmF0aW9uUmVzdWx0XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBq
b2ItPnJlc29sdmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KHVucmVnaXN0cmF0aW9uUmVzdWx0
KTsKKyAgICBwb3N0VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBTaG91bGRUYWtlSm9iOjpZZXMs
IFt1bnJlZ2lzdHJhdGlvblJlc3VsdF0oYXV0byYgam9iKSB7CisgICAgICAgIGpvYi5yZXNvbHZl
ZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdCh1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiAgICAgfSk7
CiB9CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yU2VydmVy
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIs
IGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgRmV0
Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpz
dGFydFNjcmlwdEZldGNoRm9yU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklk
ZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlv
bktleSwgRmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKIHsKLSAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwotCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYkRh
dGFJZGVudGlmaWVyLmpvYklkZW50aWZpZXIpOwotICAgIGlmICgham9iKSB7Ci0gICAgICAgIExP
R19FUlJPUigiSm9iICVzIGluc3RydWN0ZWQgdG8gc3RhcnQgZmV0Y2ggZnJvbSBzZXJ2ZXIsIGJ1
dCBqb2Igd2FzIG5vdCBmb3VuZCIsIGpvYkRhdGFJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKLQotICAgICAgICBmYWlsZWRGZXRjaGluZ1NjcmlwdChqb2JEYXRhSWRl
bnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJL
aXRJbnRlcm5hbCwgMCwgVVJMKCksIEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGZldGNoIHNlcnZp
Y2Ugd29ya2VyIHNjcmlwdCIpIH0pOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYm9v
bCB3YXNQb3N0ZWQgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGpvYi0+Y29u
dGV4dElkZW50aWZpZXIoKSwgW2pvYiwgY2FjaGVQb2xpY3ldKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKSB7Ci0gICAgICAgIGpvYi0+c3RhcnRTY3JpcHRGZXRjaChjYWNoZVBvbGljeSk7CisgICAg
Ym9vbCBpc1Bvc3RlZCA9IHBvc3RUYXNrRm9ySm9iKGpvYklkZW50aWZpZXIsIFNob3VsZFRha2VK
b2I6Ok5vLCBbY2FjaGVQb2xpY3ldIChhdXRvJiBqb2IpIHsKKyAgICAgICAgam9iLnN0YXJ0U2Ny
aXB0RmV0Y2goY2FjaGVQb2xpY3kpOwogICAgIH0pOwotICAgIGlmICghd2FzUG9zdGVkKQotICAg
ICAgICBmYWlsZWRGZXRjaGluZ1NjcmlwdChqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
S2V5LCBSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgam9iLT5k
YXRhKCkuc2NyaXB0VVJMLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIHdv
cmtlciBzY3JpcHQiKSB9KTsKKyAgICBpZiAoIWlzUG9zdGVkKQorICAgICAgICBmYWlsZWRGZXRj
aGluZ1NjcmlwdChqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIFJlc291cmNlRXJyb3Ig
eyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCByZWdpc3RyYXRpb25LZXkuc2NvcGUoKSwg
QVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSB3b3JrZXIgc2NyaXB0IikgfSk7
CiB9CiAKIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwg
UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYm
IHNvdXJjZURhdGEsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQpAQCAtMjc5LDkgKzI1MSwx
MiBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6Y2xlYXJQZW5kaW5nSm9icygpCiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8gam9icyA9IFdURk1vdmUobV9zY2hlZHVs
ZWRKb2JzKTsKLSAgICBmb3IgKGF1dG8mIGpvYiA6IGpvYnMudmFsdWVzKCkpIHsKLSAgICAgICAg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVy
KCksIFtqb2JdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Ci0gICAgICAgICAgICBqb2ItPmZh
aWxlZFdpdGhFeGNlcHRpb24oRXhjZXB0aW9uIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIklu
dGVybmFsIGVycm9yIikgfSk7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IGpvYnMpIHsKKyAg
ICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhrZXlWYWx1ZS52YWx1ZSwg
W2lkZW50aWZpZXIgPSBrZXlWYWx1ZS5rZXldIChhdXRvJiBjb250ZXh0KSB7CisgICAgICAgICAg
ICBpZiAoYXV0byogY29udGFpbmVyID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogam9iID0gY29udGFpbmVyLT5qb2IoaWRlbnRp
ZmllcikpCisgICAgICAgICAgICAgICAgICAgIGpvYi0+ZmFpbGVkV2l0aEV4Y2VwdGlvbihFeGNl
cHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgZXJyb3IiKSB9KTsKKyAg
ICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDRhZTc4YTM4ODdk
ZmFjODEzMDVhMzEyOWFmNTM4YTA4MTY5MzRmYTYuLmVmODY5MmQzNzdiMzlmZWExMDYyNGRjYzRh
ZWZjMGZiZGE1MWEwYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTY4LDkgKzY4LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyKSA9IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJK
b2ImKTsKLSAgICB2b2lkIGZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYs
IGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgZmFpbGVkRmV0Y2hpbmdTY3JpcHQoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKKyAgICB2b2lkIHNjaGVkdWxlSm9iKFNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0
KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uS2V5JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
c29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25L
ZXkmKSA9IDA7CiAKQEAgLTgzLDEzICs4MiwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3Jp
Z2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
U2VydmljZVdvcmtlcklkZW50aWZpZXI+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIpID0gMDsKIAorICAgIHZp
cnR1YWwgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJGZXRjaFJlc3VsdCYpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNX
Q2xpZW50Q29ubmVjdGlvbigpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBqb2JSZWplY3Rl
ZEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IEV4
Y2VwdGlvbkRhdGEmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdHJhdGlvbkpvYlJl
c29sdmVkSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZl
cihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBib29sIHVucmVnaXN0cmF0
aW9uUmVzdWx0KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JT
ZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIEZldGNoT3B0aW9uczo6Q2FjaGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgam9iUmVqZWN0ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVn
aXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVk
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNl
cnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3Vs
dCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKFNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiwgRmV0Y2hPcHRpb25zOjpDYWNoZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRp
b25Db250ZXh0SWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdl
LCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4p
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25T
dGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4mKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyU3RhdGUpOwpAQCAtMTAyLDkgKzEwMywxMSBAQCBwcm90ZWN0ZWQ6CiAK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGEmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaEZldGNoaW5n
U2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JikgPSAwOwogCi0g
ICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgUmVmUHRyPFNlcnZpY2VXb3Jr
ZXJKb2I+PiBtX3NjaGVkdWxlZEpvYnM7CisgICAgZW51bSBjbGFzcyBTaG91bGRUYWtlSm9iIHsg
Tm8sIFllcyB9OworICAgIGJvb2wgcG9zdFRhc2tGb3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50
aWZpZXIsIFNob3VsZFRha2VKb2IsIFdURjo6RnVuY3Rpb248dm9pZChTZXJ2aWNlV29ya2VySm9i
Jik+JiYpOworCisgICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgRG9jdW1l
bnRPcldvcmtlcklkZW50aWZpZXI+IG1fc2NoZWR1bGVkSm9iczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCAxOTcwZjBhOWU5YjNjYjc1MGQ0OTFl
YmMwZDY2MzAyZDliZTM5ZDY1Li4zMWViMDEwOTY2M2Y0MTlmZjA2MDMwNmIwYTgyYWMzNzdhOGE0
MWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2VydmljZVdvcmtlci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3Vs
dC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgpAQCAt
MjIzLDExICsyMjQsMTMgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzY2hlZHVsZUpv
YihSZWY8U2VydmljZVdvcmtlckpvYj4mJiBqb2IpCiAKICAgICBzZXRQZW5kaW5nQWN0aXZpdHko
dGhpcyk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IG1fam9iTWFwLmFkZChqb2ItPmlkZW50aWZpZXIo
KSwgam9iLmNvcHlSZWYoKSk7CisgICAgYXV0byBqb2JJZGVudGlmaWVyID0gam9iLT5pZGVudGlm
aWVyKCk7CisgICAgYXV0byBqb2JEYXRhID0gam9iLT5kYXRhKCk7CisgICAgYXV0byByZXN1bHQg
PSBtX2pvYk1hcC5hZGQoam9iLT5pZGVudGlmaWVyKCksIFdURk1vdmUoam9iKSk7CiAgICAgQVNT
RVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKIAotICAgIGNhbGxPbk1haW5U
aHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iID0gV1RGTW92ZShqb2IpXSB7
Ci0gICAgICAgIGNvbm5lY3Rpb24tPnNjaGVkdWxlSm9iKGpvYik7CisgICAgY2FsbE9uTWFpblRo
cmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2JJZGVudGlmaWVyLCBjb250ZXh0
SWRlbnRpZmllciA9IHRoaXMtPmNvbnRleHRJZGVudGlmaWVyKCksIGpvYkRhdGEgPSBXVEZNb3Zl
KGpvYkRhdGEpXSB7CisgICAgICAgIGNvbm5lY3Rpb24tPnNjaGVkdWxlSm9iKGpvYklkZW50aWZp
ZXIsIGNvbnRleHRJZGVudGlmaWVyLCBqb2JEYXRhKTsKICAgICB9KTsKIH0KIApAQCAtNDU4LDgg
KzQ2MSw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3RhcnRTY3JpcHRGZXRjaEZv
ckpvYihTZXJ2aWNlV29ya2VySm9iJiBqb2IsIEZldGNoCiAgICAgYXV0byogY29udGV4dCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNvbnRleHQpIHsKICAgICAgICAgTE9H
X0VSUk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRp
b24gY2FsbGVkIGJ1dCB0aGUgY29udGFpbmVyJ3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBpcyBn
b25lIik7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVj
dGlvbiwgam9iID0gbWFrZVJlZihqb2IpXSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5mYWls
ZWRGZXRjaGluZ1NjcmlwdChqb2ItPmRhdGEoKS5pZGVudGlmaWVyKCksIGpvYi0+ZGF0YSgpLnJl
Z2lzdHJhdGlvbktleSgpLCB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIGpvYi0+ZGF0
YSgpLnNjcmlwdFVSTCwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0IHRvIGZldGNoIHNlcnZpY2Ugd29y
a2VyIHNjcmlwdCB3aXRoIG5vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQiKSB9KTsKKyAgICAgICAg
Y2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2JJZGVudGlm
aWVyID0gam9iLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uS2V5ID0gam9iLmRhdGEoKS5yZWdp
c3RyYXRpb25LZXkoKSwgc2NyaXB0VVJMID0gam9iLmRhdGEoKS5zY3JpcHRVUkwuaXNvbGF0ZWRD
b3B5KCldIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmZhaWxlZEZldGNoaW5nU2NyaXB0KGpv
YklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFs
LCAwLCBzY3JpcHRVUkwsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBmZXRjaCBzZXJ2aWNlIHdv
cmtlciBzY3JpcHQgd2l0aCBubyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IikgfSk7CiAgICAgICAg
IH0pOwogICAgICAgICBqb2JEaWRGaW5pc2goam9iKTsKICAgICAgICAgcmV0dXJuOwpAQCAtNDc2
LDggKzQ3OSw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmluaXNoZWRMb2Fk
aW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uCiAKICAgICBMT0coU2VydmljZVdv
cmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBmaW5pc2hlZCBmZXRjaGluZyBzY3JpcHQg
Zm9yIGpvYiAlcyIsIHRoaXMsIGpvYi5pZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25u
ZWN0aW9uLCBqb2IgPSBtYWtlUmVmKGpvYiksIHNjcmlwdCA9IHNjcmlwdC5pc29sYXRlZENvcHko
KV0gewotICAgICAgICBjb25uZWN0aW9uLT5maW5pc2hlZEZldGNoaW5nU2NyaXB0KGpvYiwgc2Ny
aXB0KTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24s
IGpvYkRhdGFJZGVudGlmaWVyID0gam9iLmRhdGEoKS5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlv
bktleSA9IGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHNjcmlwdCA9IHNjcmlwdC5pc29s
YXRlZENvcHkoKV0geworICAgICAgICBjb25uZWN0aW9uLT5maW5pc2hGZXRjaGluZ1NjcmlwdElu
U2VydmVyKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgc2NyaXB0LCB7IH0g
fSk7CiAgICAgfSk7CiB9CiAKQEAgLTQ5Myw4ICs0OTYsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJD
b250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBj
b25zdAogICAgIGlmIChleGNlcHRpb24gJiYgam9iLnByb21pc2UoKSkKICAgICAgICAgam9iLnBy
b21pc2UoKS0+cmVqZWN0KCpleGNlcHRpb24pOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbY29u
bmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2IgPSBtYWtlUmVmKGpvYiksIGVycm9yID0gZXJy
b3IuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgY29ubmVjdGlvbi0+ZmFpbGVkRmV0Y2hpbmdT
Y3JpcHQoam9iLT5kYXRhKCkuaWRlbnRpZmllcigpLCBqb2ItPmRhdGEoKS5yZWdpc3RyYXRpb25L
ZXkoKSwgZXJyb3IpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3Q29u
bmVjdGlvbiwgam9iSWRlbnRpZmllciA9IGpvYi5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbktl
eSA9IGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIGVycm9yID0gZXJyb3IuaXNvbGF0ZWRD
b3B5KCldIHsKKyAgICAgICAgY29ubmVjdGlvbi0+ZmFpbGVkRmV0Y2hpbmdTY3JpcHQoam9iSWRl
bnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBlcnJvcik7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5oCmluZGV4IDE5ZDI1ZjVhNzQxNzhkMmE4MzliNDU0MjI5ODUxNTBlYTBlMzdkYTIuLjJiNWIw
YTk5MjM3YWU3NDA1NTliMWM1ZGUyYzdjYjZiNjI1MGY2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAt
NzUsNiArNzUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb24oU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiYpOwogICAgIHZvaWQgcmVtb3ZlUmVnaXN0cmF0aW9uKFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24mKTsKIAorICAgIFNlcnZpY2VXb3JrZXJKb2IqIGpvYihTZXJ2aWNl
V29ya2VySm9iSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBtX2pvYk1hcC5nZXQoaWRl
bnRpZmllcik7IH0KKwogICAgIHZvaWQgc3RhcnRNZXNzYWdlcygpOwogCiAgICAgdm9pZCByZWYo
KSBmaW5hbCB7IHJlZkV2ZW50VGFyZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggNjhhZGRlZWNlZjQ3YmY3ZWE3
YzZiN2ExYzQzN2Q0YWI3OWZhYjJiMi4uZjAwOGUzMTlmYzAyY2U1MGQ2YmU1NjQ2YmQ2YzRhNjVm
ZjA5Y2Q5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFNXU2VydmVyOjpyZWplY3RK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IEV4Y2VwdGlvbkRh
dAogICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlv
bi0+cmVqZWN0Sm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCksIGV4Y2VwdGlvbkRhdGEp
OworICAgIGNvbm5lY3Rpb24tPnJlamVjdEpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigp
LmpvYklkZW50aWZpZXIsIGV4Y2VwdGlvbkRhdGEpOwogfQogCiB2b2lkIFNXU2VydmVyOjpyZXNv
bHZlUmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBj
b25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYgcmVnaXN0cmF0aW9uRGF0YSwgU2hv
dWxkTm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKQEAgLTI4Myw3
ICsyODMsNyBAQCB2b2lkIFNXU2VydmVyOjpyZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdAogICAgIGlmICghY29ubmVjdGlvbikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgY29ubmVjdGlvbi0+cmVzb2x2ZVJlZ2lzdHJhdGlvbkpv
YkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25EYXRhLCBzaG91bGRO
b3RpZnlXaGVuUmVzb2x2ZWQpOworICAgIGNvbm5lY3Rpb24tPnJlc29sdmVSZWdpc3RyYXRpb25K
b2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLCByZWdpc3RyYXRp
b25EYXRhLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogfQogCiB2b2lkIFNXU2VydmVyOjpy
ZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRh
dGEsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwg
Ym9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIFNXU2Vy
dmVyOjpyZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEm
IGpvYkRhdGEsIGNvbgogICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgY29ubmVjdGlvbi0+cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoam9iRGF0YS5p
ZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbktleSwgdW5yZWdpc3RyYXRpb25SZXN1bHQpOworICAg
IGNvbm5lY3Rpb24tPnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGpvYkRhdGEuaWRl
bnRpZmllcigpLmpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgdW5yZWdpc3RyYXRpb25S
ZXN1bHQpOwogfQogCiB2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5
KQpAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2goY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIEZldGNoT3B0aW9uCiAgICAgaWYgKCFj
b25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25uZWN0aW9uLT5zdGFydFNjcmlw
dEZldGNoSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCksIGpvYkRhdGEucmVnaXN0cmF0aW9u
S2V5KCksIGNhY2hlUG9saWN5KTsKKyAgICBjb25uZWN0aW9uLT5zdGFydFNjcmlwdEZldGNoSW5D
bGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRpZmllciwgam9iRGF0YS5yZWdpc3Ry
YXRpb25LZXkoKSwgY2FjaGVQb2xpY3kpOwogfQogCiB2b2lkIFNXU2VydmVyOjpzY3JpcHRGZXRj
aEZpbmlzaGVkKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdCYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5oCmluZGV4IDY2ZDZlNWVlMWIwOGVjZjJlNzM5NWMxOTdiZDI5Zjc3M2Zj
M2Y1NWYuLjJkMzY2YTc1NzM0MWNjNmJlMzI3NDhkODJlNzgzMTI2OWNlN2EzMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTEw
MywxMCArMTAzLDEwIEBAIHB1YmxpYzoKIAogICAgIHByaXZhdGU6CiAgICAgICAgIC8vIE1lc3Nh
Z2VzIHRvIHRoZSBjbGllbnQgV2ViUHJvY2VzcwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVqZWN0
Sm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVSZWdpc3Ry
YXRpb25Kb2JJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBj
b25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYsIFNob3VsZE5vdGlmeVdoZW5SZXNv
bHZlZCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9i
SW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wgcmVnaXN0cmF0aW9uUmVzdWx0KSA9IDA7
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYsIEZldGNoT3B0aW9uczo6Q2FjaGUpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHJlamVjdEpvYkluQ2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBFeGNl
cHRpb25EYXRhJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlv
bkpvYkluQ2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoU2Vydmlj
ZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
LCBib29sIHJlZ2lzdHJhdGlvblJlc3VsdCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnRTY3JpcHRGZXRjaEluQ2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgRmV0Y2hPcHRpb25zOjpDYWNoZSkgPSAwOwog
CiAgICAgICAgIHN0cnVjdCBSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3QgewogICAgICAgICAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CmluZGV4IGM0ODQwZDk3MzNlYTM2ZTZjODJkNTk2NTkzZTFlNjNiNDM2N2Vi
MjguLjcwNmRmNTZkYzUzZjBkOGQ4MGEzY2Y0YjRlMGJjNDRmZDM4YTJhMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMTg2LDYgKzE4Niw3IEBAIGRlZiBm
b3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVycyhyZWNlaXZlcik6CiAgICAgbm9fZm9yd2Fy
ZF9kZWNsYXJhdGlvbl90eXBlcyA9IGZyb3plbnNldChbCiAgICAgICAgICdXZWJDb3JlOjpEb2N1
bWVudElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXInLAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInLAogICAg
ICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YScsCiAgICAgICAgICdXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKQEAgLTM4Niw2ICszODcsNyBA
QCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBvbGljeUFj
dGlvbic6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6UmVjZW50U2VhcmNoJzogWyc8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpv
YklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSc6IFsnPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclR5cGVzLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+Jywg
JzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJzogWyc8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKaW5kZXggZDRkOTEzNzM5MDg3YmNiMTRkODIyMzE1YTg4Y2Q4NDhjNGY2
Y2YzNS4uNDcyMThkMmRmZjJiMGQ0ZjJhNjMxMjRjMGM4OTI1MTQ3ZTEyMTczNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTc2LDI0ICs3NiwyNCBAQCB2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWpl
Y3RKb2JJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRh
dGFJZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQordm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlamVjdEpvYkluQ2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJ
ZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRh
dGEpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpKb2JSZWpl
Y3RlZEluU2VydmVyKGpvYkRhdGFJZGVudGlmaWVyLCBleGNlcHRpb25EYXRhKSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpKb2JSZWplY3RlZEluU2VydmVyKGpv
YklkZW50aWZpZXIsIGV4Y2VwdGlvbkRhdGEpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSYgcmVnaXN0cmF0aW9uRGF0YSwgU2hvdWxkTm90aWZ5V2hlblJlc29s
dmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpyZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoU2VydmljZVdvcmtlckpvYklkZW50aWZp
ZXIgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIHJl
Z2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVu
UmVzb2x2ZWQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpS
ZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3Ry
YXRpb25EYXRhLCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIo
am9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uRGF0YSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVk
KSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlVW5yZWdpc3RyYXRp
b25Kb2JJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRh
dGFJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3Ry
YXRpb25LZXksIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCit2b2lkIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoU2VydmljZVdvcmtlckpv
YklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSYgcmVnaXN0cmF0aW9uS2V5LCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQogewotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6VW5yZWdpc3RyYXRpb25Kb2JS
ZXNvbHZlZEluU2VydmVyKGpvYkRhdGFJZGVudGlmaWVyLCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkp
OworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6VW5yZWdpc3RyYXRp
b25Kb2JSZXNvbHZlZEluU2VydmVyKGpvYklkZW50aWZpZXIsIHVucmVnaXN0cmF0aW9uUmVzdWx0
KSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoSW5D
bGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRp
ZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5
LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQordm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmll
ciBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdp
c3RyYXRpb25LZXksIEZldGNoT3B0aW9uczo6Q2FjaGUgY2FjaGVQb2xpY3kpCiB7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTdGFydFNjcmlwdEZldGNoRm9yU2Vy
dmVyKGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIGNhY2hlUG9saWN5KSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTdGFydFNjcmlwdEZldGNo
Rm9yU2VydmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgY2FjaGVQb2xpY3kpKTsK
IH0KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
SW5DbGllbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJEYXRhPiYgc2VydmljZVdvcmtlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggM2I5M2UzODA2ODU4OTFiYjQ5ODY0Njg2MWYyODBkMzQ3
NzQ1ZDQwNi4uZTI0NGNkYzkxNGUxOWZmZmEyNzA1MWMzMDA3ZGJlOTNiOTM3MjE5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzEsMTAgKzcxLDEwIEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb24gKE1l
c3NhZ2VzIHRvIHRoZSBjbGllbnQgV2ViUHJvY2VzcykKLSAgICB2b2lkIHJlamVjdEpvYkluQ2xp
ZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKSBmaW5hbDsKLSAgICB2b2lkIHJlc29sdmVSZWdpc3Ry
YXRpb25Kb2JJbkNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXImLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYsIFdl
YkNvcmU6OlNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkgZmluYWw7Ci0gICAgdm9pZCByZXNvbHZl
VW5yZWdpc3RyYXRpb25Kb2JJbkNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkgZmluYWw7Ci0gICAgdm9pZCBzdGFydFNj
cmlwdEZldGNoSW5DbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFdl
YkNvcmU6OkZldGNoT3B0aW9uczo6Q2FjaGUpIGZpbmFsOworICAgIHZvaWQgcmVqZWN0Sm9iSW5D
bGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlc29sdmVSZWdpc3RyYXRpb25Kb2JJ
bkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmLCBXZWJDb3JlOjpTaG91bGROb3RpZnlX
aGVuUmVzb2x2ZWQpIGZpbmFsOworICAgIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5D
bGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0
KSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYsIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6Q2FjaGUpIGZpbmFsOwogICAgIHZv
aWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
blN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhPiYp
IGZpbmFsOwogICAgIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlKSBmaW5hbDsK
ICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdl
cy5pbgppbmRleCBkYmE2NDdlYjdkZjcyNjUxNjA0YmE1ZWVlMjYwZTZmOThkMzI1NGM4Li41NmQy
ZTc4NTkxYmNjZjgzMzkwM2Q1OTk3MTViNTM0MGI5Y2VjODIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNCwxMCArMjQsMTAgQEAKIAogbWVzc2FnZXMgLT4gV2Vi
U1dDbGllbnRDb25uZWN0aW9uIHsKICAgICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1lc3NhZ2Vz
IGNhbiBiZSBpbXBsZW1lbnRlZCBkaXJlY3RseSBieSBXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVj
dGlvbgotICAgIEpvYlJlamVjdGVkSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkV4
Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQotICAgIFJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2
ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciBqb2JEYXRh
SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
IHJlZ2lzdHJhdGlvbiwgZW51bSBXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hv
dWxkTm90aWZ5V2hlblJlc29sdmVkKQotICAgIFVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNl
cnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIGpvYkRh
dGFJZGVudGlmaWVyLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQotICAgIFN0YXJ0U2NyaXB0
RmV0Y2hGb3JTZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
ZmllciBqb2JEYXRhSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OkZldGNoT3B0aW9uczo6Q2FjaGUgY2FjaGVQ
b2xpY3kpCisgICAgSm9iUmVqZWN0ZWRJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEgZXhjZXB0aW9uKQorICAgIFJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVjdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSByZWdpc3RyYXRpb24sIGVudW0g
V2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZl
ZCkKKyAgICBVbnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRp
b25SZXN1bHQpCisgICAgU3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySm9iSWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXksIFdlYkNvcmU6OkZldGNoT3B0aW9u
czo6Q2FjaGUgY2FjaGVQb2xpY3kpCiAgICAgVXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bSBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUgc3RhdGUsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGE+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQog
ICAgIFVwZGF0ZVdvcmtlclN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSBz
dGF0ZSkKICAgICBGaXJlVXBkYXRlRm91bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330734</attachid>
            <date>2018-01-08 13:58:38 -0800</date>
            <delta_ts>2018-01-09 04:13:19 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181381-20180108225836.patch</filename>
            <type>text/plain</type>
            <size>33967</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2E5MDI1OWYwYmE0YjIx
N2ZjMWRhMWI4MjliYTdkOTYwYzk4NjQzNy4uZjRiZDUwZGQ2YzYzMGM5MTY3NDdkYjU3YWFmZDY0
YmIwYzY5NzkzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAxLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV0NsaWVudENvbm5lY3Rp
b24gc2hvdWxkIG5vdCBrZWVwIHJlZmVyZW5jZXMgdG8gc2VydmljZSB3b3JrZXIgam9icworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgRGlmZmljdWx0IHRvIHRl
c3QgZGV0ZXJtaW5pc2NhbGx5IGJ1dCBjb3JyZXNwb25kaW5nIGNyYXNoIGxvZyBzaG91bGQgbm8g
bG9uZ2VyIGhhcHBlbiBpbiBkZWJ1ZyBidWlsZHMuCisKKyAgICAgICAgU3RvcHBlZCBwYXNzaW5n
IFNlcnZpY2VXb3JrZXJKb2IgcmVmZXJlbmNlcyBmcm9tIFNlcnZpY2VXb3JrZXJDb250YWluZXIg
KHBvdGVudGlhbGx5IGluIHNlcnZpY2Ugd29ya2VyIHRocmVhZCkgdG8gU1dDbGllbnRDb25uZWN0
aW9uIChtYWluIHRocmVhZCkuCisgICAgICAgIEluc3RlYWQgcGFzcyBqb2IgaWRlbnRpZmllcnMg
YW5kIHJlbGF0ZWQgZGF0YSB0byB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgTWlub3IgcmVm
YWN0b3JpbmcgdG8gdXNlIFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGluc3RlYWQgb2YgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIHdoaWNoIGNvbnRhaW5zIG1vcmUgZGF0YSB0aGFu
IG5lZWRlZC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYik6
CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tGb3JK
b2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3RlZElu
U2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0cmF0
aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5l
Y3Rpb246OnVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChXZWJD
b3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpjbGVhclBlbmRpbmdKb2JzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1Njcmlw
dCk6IERlbGV0ZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxlSm9i
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0
RmV0Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6
am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6cmVq
ZWN0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlUmVnaXN0cmF0aW9u
Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlVW5yZWdpc3RyYXRpb25K
b2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2gpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAxOC0wMS0wOCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIENTUCBzdXBw
b3J0IHRvIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiOTgyN2VmNWY2Yjk5OWY0NWUyNmI2
NDc3ZGNkMjg0ZTlhMzRjZTJkLi41OWRmNWFkYTEzYzhkNThiYzc4OTJlZTIxODFlZjIwZTI5MDRk
MDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE4LTAxLTA4ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV0NsaWVudENvbm5lY3Rpb24gc2hvdWxk
IG5vdCBrZWVwIHJlZmVyZW5jZXMgdG8gc2VydmljZSB3b3JrZXIgam9icworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVXBkYXRlZCBJUEMgaGFuZGxpbmcgYmFz
ZWQgb24gV2ViQ29yZSByZWZhY3RvcmluZy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMpOgor
ICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlamVjdEpvYkluQ2xpZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVVbnJlZ2lz
dHJhdGlvbkpvYkluQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpzdGFydFNjcmlwdEZldGNoSW5DbGllbnQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxOC0w
MS0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViUHJv
Y2Vzc1Bvb2w6OnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzIHNob3VsZCBwcm90ZWN0IGl0
c2VsZiBpbiBkZWJ1ZyBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNTAwMzFkMjAyYzVlNzRlMDgwNGFl
Njk3YzhlMGU0N2IyN2UzNDhjNC4uNzcwNWIwNDE2NjViZWFiNmZmNTM0Y2UwODNjOGYwZGM2OTJm
ZmQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VySm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvU2NvcGUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00NiwxMDMgKzQ1LDc3IEBAIFNXQ2xpZW50Q29u
bmVjdGlvbjo6U1dDbGllbnRDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwogCiBTV0NsaWVudENvbm5l
Y3Rpb246On5TV0NsaWVudENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKLXZvaWQgU1dDbGllbnRD
b25uZWN0aW9uOjpzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iJiBqb2IpCit2b2lkIFNXQ2xp
ZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgY29u
dGV4dElkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc2No
ZWR1bGVkSm9icy5hZGQoam9iLmlkZW50aWZpZXIoKSwgJmpvYik7CisgICAgYXV0byBhZGRSZXN1
bHQgPSBtX3NjaGVkdWxlZEpvYlNvdXJjZXMuYWRkKGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklk
ZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3Vs
dCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogCi0gICAgc2NoZWR1bGVKb2JJblNlcnZlcihqb2Iu
ZGF0YSgpKTsKKyAgICBzY2hlZHVsZUpvYkluU2VydmVyKGpvYkRhdGEpOwogfQogCi12b2lkIFNX
Q2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9i
JiBqb2IsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lS
ZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSkKK3ZvaWQgU1dDbGllbnRDb25u
ZWN0aW9uOjpmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBq
b2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3Ry
YXRpb25LZXksIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7Ci0gICAgQVNTRVJUKG1fc2NoZWR1bGVkSm9icy5nZXQoam9iLmlkZW50aWZp
ZXIoKSkgPT0gJmpvYik7CiAKLSAgICBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgam9i
LmRhdGEoKS5pZGVudGlmaWVyKCksIGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHNjcmlw
dCwgY29udGVudFNlY3VyaXR5UG9saWN5LCB7IH0gfSk7CisgICAgZmluaXNoRmV0Y2hpbmdTY3Jp
cHRJblNlcnZlcih7IHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgam9iSWRlbnRpZmll
ciB9LCByZWdpc3RyYXRpb25LZXksIHsgfSwgeyB9LCBlcnJvciB9KTsKIH0KIAotdm9pZCBTV0Ns
aWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJy
b3IpCitib29sIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tGb3JKb2IoU2VydmljZVdvcmtl
ckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZSBpc0pvYkNvbXBsZXRl
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYiYpPiYmIHRhc2spCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2
ZXIoeyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCB7IH0sIHsgfSwgZXJyb3Ig
fSk7Ci19Ci0KLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3RlZEluU2VydmVyKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNv
bnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKLQotICAgIGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLnRha2Uoam9iRGF0YUlk
ZW50aWZpZXIuam9iSWRlbnRpZmllcik7Ci0gICAgaWYgKCFqb2IpIHsKLSAgICAgICAgTE9HX0VS
Uk9SKCJKb2IgJXMgcmVqZWN0ZWQgZnJvbSBzZXJ2ZXIsIGJ1dCB3YXMgbm90IGZvdW5kIiwgam9i
RGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBy
ZXR1cm47CisgICAgYXV0byBpdGVyYXRvciA9IG1fc2NoZWR1bGVkSm9iU291cmNlcy5maW5kKGpv
YklkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NjaGVkdWxlZEpvYlNvdXJjZXMu
ZW5kKCkpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJKb2IgJXMgd2FzIG5vdCBmb3VuZCIsIGpvYklk
ZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhq
b2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIGV4Y2VwdGlvbkRhdGEgPSBleGNlcHRpb25E
YXRhLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBq
b2ItPmZhaWxlZFdpdGhFeGNlcHRpb24oZXhjZXB0aW9uRGF0YS50b0V4Y2VwdGlvbigpKTsKKyAg
ICBhdXRvIGlzUG9zdGVkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhpdGVy
YXRvci0+dmFsdWUsIFtqb2JJZGVudGlmaWVyLCB0YXNrID0gV1RGTW92ZSh0YXNrKV0gKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgeworICAgICAgICBpZiAoYXV0byog
Y29udGFpbmVyID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkpIHsKKyAgICAgICAg
ICAgIGlmIChhdXRvKiBqb2IgPSBjb250YWluZXItPmpvYihqb2JJZGVudGlmaWVyKSkKKyAgICAg
ICAgICAgICAgICB0YXNrKCpqb2IpOworICAgICAgICB9CiAgICAgfSk7CisgICAgaWYgKGlzSm9i
Q29tcGxldGUgPT0gSXNKb2JDb21wbGV0ZTo6WWVzKQorICAgICAgICBtX3NjaGVkdWxlZEpvYlNv
dXJjZXMucmVtb3ZlKGl0ZXJhdG9yKTsKKyAgICByZXR1cm4gaXNQb3N0ZWQ7CiB9CiAKLXZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSwgU2hvdWxkTm90aWZ5
V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKK3ZvaWQgU1dDbGllbnRDb25u
ZWN0aW9uOjpqb2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpv
YklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCiB7Ci0gICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGF1dG8gZ3VhcmQgPSBXVEY6Om1ha2VTY29w
ZUV4aXQoW3RoaXMsIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCwgcmVnaXN0cmF0aW9uS2V5ID0g
cmVnaXN0cmF0aW9uRGF0YS5rZXldIHsKLSAgICAgICAgaWYgKHNob3VsZE5vdGlmeVdoZW5SZXNv
bHZlZCA9PSBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykKLSAgICAgICAgICAgIGRpZFJl
c29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKHJlZ2lzdHJhdGlvbktleSk7CisgICAgcG9zdFRhc2tG
b3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbZXhjZXB0aW9uRGF0YSA9
IGV4Y2VwdGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBqb2IpIHsKKyAgICAgICAgam9i
LmZhaWxlZFdpdGhFeGNlcHRpb24oZXhjZXB0aW9uRGF0YS50b0V4Y2VwdGlvbigpKTsKICAgICB9
KTsKK30KIAotICAgIGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLnRha2Uoam9iRGF0YUlkZW50
aWZpZXIuam9iSWRlbnRpZmllcik7Ci0gICAgaWYgKCFqb2IpIHsKLSAgICAgICAgTE9HX0VSUk9S
KCJKb2IgJXMgcmVzb2x2ZWQgaW4gc2VydmVyLCBidXQgd2FzIG5vdCBmb3VuZCIsIGpvYkRhdGFJ
ZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGJvb2wgd2FzUG9zdGVkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIHJlZ2lzdHJhdGlvbkRh
dGEgPSByZWdpc3RyYXRpb25EYXRhLmlzb2xhdGVkQ29weSgpLCBzaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWRdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKLSAgICAgICAgam9iLT5y
ZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oV1RGTW92ZShyZWdpc3RyYXRpb25EYXRhKSwgc2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkKTsKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRp
b25Kb2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSwg
U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKK3sKKyAg
ICBib29sIGlzUG9zdGVkID0gcG9zdFRhc2tGb3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21w
bGV0ZTo6WWVzLCBbcmVnaXN0cmF0aW9uRGF0YSA9IHJlZ2lzdHJhdGlvbkRhdGEuaXNvbGF0ZWRD
b3B5KCksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZF0gKGF1dG8mIGpvYikgbXV0YWJsZSB7Cisg
ICAgICAgIGpvYi5yZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oV1RGTW92ZShyZWdpc3RyYXRpb25E
YXRhKSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKICAgICB9KTsKIAotICAgIGlmICh3YXNQ
b3N0ZWQpCi0gICAgICAgIGd1YXJkLnJlbGVhc2UoKTsKKyAgICBpZiAoIWlzUG9zdGVkICYmIHNo
b3VsZE5vdGlmeVdoZW5SZXNvbHZlZCA9PSBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQ6OlllcykK
KyAgICAgICAgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UocmVnaXN0cmF0aW9uRGF0YS5r
ZXkpOwogfQogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6dW5yZWdpc3RyYXRpb25Kb2JSZXNv
bHZlZEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0
YUlkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCit2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6dW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJK
b2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCiB7
Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLQotICAgIGF1dG8gam9iID0gbV9zY2hlZHVs
ZWRKb2JzLnRha2Uoam9iRGF0YUlkZW50aWZpZXIuam9iSWRlbnRpZmllcik7Ci0gICAgaWYgKCFq
b2IpIHsKLSAgICAgICAgTE9HX0VSUk9SKCJKb2IgJXMgcmVzb2x2ZWQgaW4gc2VydmVyLCBidXQg
d2FzIG5vdCBmb3VuZCIsIGpvYkRhdGFJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OnBvc3RUYXNrVG8oam9iLT5jb250ZXh0SWRlbnRpZmllcigpLCBbam9iLCB1bnJlZ2lz
dHJhdGlvblJlc3VsdF0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKLSAgICAgICAgam9iLT5y
ZXNvbHZlZFdpdGhVbnJlZ2lzdHJhdGlvblJlc3VsdCh1bnJlZ2lzdHJhdGlvblJlc3VsdCk7Cisg
ICAgcG9zdFRhc2tGb3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6WWVzLCBbdW5y
ZWdpc3RyYXRpb25SZXN1bHRdIChhdXRvJiBqb2IpIHsKKyAgICAgICAgam9iLnJlc29sdmVkV2l0
aFVucmVnaXN0cmF0aW9uUmVzdWx0KHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKICAgICB9KTsKIH0K
IAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5LCBGZXRjaE9w
dGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0
U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRp
ZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5
LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQogewotICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7Ci0KLSAgICBhdXRvIGpvYiA9IG1fc2NoZWR1bGVkSm9icy5nZXQoam9iRGF0YUlk
ZW50aWZpZXIuam9iSWRlbnRpZmllcik7Ci0gICAgaWYgKCFqb2IpIHsKLSAgICAgICAgTE9HX0VS
Uk9SKCJKb2IgJXMgaW5zdHJ1Y3RlZCB0byBzdGFydCBmZXRjaCBmcm9tIHNlcnZlciwgYnV0IGpv
YiB3YXMgbm90IGZvdW5kIiwgam9iRGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwotCi0gICAgICAgIGZhaWxlZEZldGNoaW5nU2NyaXB0KGpvYkRhdGFJZGVudGlm
aWVyLCByZWdpc3RyYXRpb25LZXksIFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdElu
dGVybmFsLCAwLCBVUkwoKSwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSB3
b3JrZXIgc2NyaXB0IikgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBib29sIHdh
c1Bvc3RlZCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oam9iLT5jb250ZXh0
SWRlbnRpZmllcigpLCBbam9iLCBjYWNoZVBvbGljeV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYp
IHsKLSAgICAgICAgam9iLT5zdGFydFNjcmlwdEZldGNoKGNhY2hlUG9saWN5KTsKKyAgICBib29s
IGlzUG9zdGVkID0gcG9zdFRhc2tGb3JKb2Ioam9iSWRlbnRpZmllciwgSXNKb2JDb21wbGV0ZTo6
Tm8sIFtjYWNoZVBvbGljeV0gKGF1dG8mIGpvYikgeworICAgICAgICBqb2Iuc3RhcnRTY3JpcHRG
ZXRjaChjYWNoZVBvbGljeSk7CiAgICAgfSk7Ci0gICAgaWYgKCF3YXNQb3N0ZWQpCi0gICAgICAg
IGZhaWxlZEZldGNoaW5nU2NyaXB0KGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXks
IFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBqb2ItPmRhdGEo
KS5zY3JpcHRVUkwsIEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIGZldGNoIHNlcnZpY2Ugd29ya2Vy
IHNjcmlwdCIpIH0pOworICAgIGlmICghaXNQb3N0ZWQpCisgICAgICAgIGZhaWxlZEZldGNoaW5n
U2NyaXB0KGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgUmVzb3VyY2VFcnJvciB7IGVy
cm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHsgfSwgbWFrZVN0cmluZygiRmFpbGVkIHRvIGZl
dGNoIHNjcmlwdCBmb3Igc2VydmljZSB3b3JrZXIgd2l0aCBzY29wZSAiLCByZWdpc3RyYXRpb25L
ZXkuc2NvcGUoKS5zdHJpbmcoKSkgfSk7CiB9CiAKKwogdm9pZCBTV0NsaWVudENvbm5lY3Rpb246
OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBkZXN0
aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1l
c3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTI3OCwxMCArMjUx
LDEzIEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpjbGVhclBlbmRpbmdKb2JzKCkKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCi0gICAgYXV0byBqb2JzID0gV1RGTW92ZShtX3Nj
aGVkdWxlZEpvYnMpOwotICAgIGZvciAoYXV0byYgam9iIDogam9icy52YWx1ZXMoKSkgewotICAg
ICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGpvYi0+Y29udGV4dElkZW50
aWZpZXIoKSwgW2pvYl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKLSAgICAgICAgICAgIGpv
Yi0+ZmFpbGVkV2l0aEV4Y2VwdGlvbihFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiSW50ZXJuYWwgZXJyb3IiKSB9KTsKKyAgICBhdXRvIGpvYlNvdXJjZXMgPSBXVEZNb3ZlKG1f
c2NoZWR1bGVkSm9iU291cmNlcyk7CisgICAgZm9yIChhdXRvJiBrZXlWYWx1ZSA6IGpvYlNvdXJj
ZXMpIHsKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhrZXlWYWx1
ZS52YWx1ZSwgW2lkZW50aWZpZXIgPSBrZXlWYWx1ZS5rZXldIChhdXRvJiBjb250ZXh0KSB7Cisg
ICAgICAgICAgICBpZiAoYXV0byogY29udGFpbmVyID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ29u
dGFpbmVyKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byogam9iID0gY29udGFpbmVyLT5q
b2IoaWRlbnRpZmllcikpCisgICAgICAgICAgICAgICAgICAgIGpvYi0+ZmFpbGVkV2l0aEV4Y2Vw
dGlvbihFeGNlcHRpb24geyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiSW50ZXJuYWwgZXJyb3Ii
KSB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGY5
MDNkNzYyMDIwNzJlMWZlZDM3MDQwYWI4NTM2MTllMzdmODAzYjUuLjFkZTJhNTNlMGRjODE0OWU1
MmEzY2M2ZDhiOTVkNmMyZTAwNTI5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTY4LDkgKzY4LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7CiAKLSAgICB2b2lkIHNjaGVkdWxlSm9iKFNlcnZp
Y2VXb3JrZXJKb2ImKTsKLSAgICB2b2lkIGZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdv
cmtlckpvYiYsIGNvbnN0IFN0cmluZyYgc2NyaXB0LCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lSZXNwb25zZUhlYWRlcnMmKTsKLSAgICB2b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0KGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CisgICAgdm9pZCBzY2hlZHVsZUpv
YihEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEm
KTsKKyAgICB2b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNl
KGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSA9IDA7CiAKQEAgLTgzLDEzICs4
MiwxNSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChE
b2N1bWVudElkZW50aWZpZXIpID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hGZXRjaGlu
Z1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpID0gMDsKKwog
cHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNXQ2xpZW50Q29ubmVjdGlvbigpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBqb2JSZWplY3RlZEluU2VydmVyKGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEmJiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXImLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYs
IEZldGNoT3B0aW9uczo6Q2FjaGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgam9iUmVqZWN0
ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0
YSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNl
cnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEmJiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVy
LCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgRmV0Y2hPcHRpb25zOjpDYWNo
ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNs
aWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNv
dXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgdXBkYXRlUmVnaXN0cmF0aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyRGF0YT4mKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZVdv
cmtlclN0YXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyU3RhdGUpOwpA
QCAtMTAyLDkgKzEwMywxMSBAQCBwcm90ZWN0ZWQ6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckZldGNoUmVzdWx0JikgPSAwOwogCi0gICAgSGFzaE1hcDxTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciwgUmVmUHRyPFNlcnZpY2VXb3JrZXJKb2I+PiBtX3NjaGVkdWxlZEpvYnM7
CisgICAgZW51bSBjbGFzcyBJc0pvYkNvbXBsZXRlIHsgTm8sIFllcyB9OworICAgIGJvb2wgcG9z
dFRhc2tGb3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIElzSm9iQ29tcGxldGUsIFdU
Rjo6RnVuY3Rpb248dm9pZChTZXJ2aWNlV29ya2VySm9iJik+JiYpOworCisgICAgSGFzaE1hcDxT
ZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXI+IG1f
c2NoZWR1bGVkSm9iU291cmNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcAppbmRleCA1MzAxNWE1YWUyY2NjYjllMzQ2ZWU3MTQ4YWVmOGJmNTQwOTM0YzUz
Li4xNTdiZmQwMGM5NDkzMTMwMGM2NmQwNThmNjIzMGEyYmQ0NzEwNTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ci5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgpAQCAtMjIzLDExICsyMjQsMTIgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzY2hlZHVsZUpvYihSZWY8U2VydmljZVdvcmtl
ckpvYj4mJiBqb2IpCiAKICAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CiAKLSAgICBhdXRv
IHJlc3VsdCA9IG1fam9iTWFwLmFkZChqb2ItPmlkZW50aWZpZXIoKSwgam9iLmNvcHlSZWYoKSk7
CisgICAgYXV0byBqb2JEYXRhID0gam9iLT5kYXRhKCk7CisgICAgYXV0byByZXN1bHQgPSBtX2pv
Yk1hcC5hZGQoam9iLT5pZGVudGlmaWVyKCksIFdURk1vdmUoam9iKSk7CiAgICAgQVNTRVJUX1VO
VVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iID0gV1RGTW92ZShqb2IpXSB7Ci0gICAg
ICAgIGNvbm5lY3Rpb24tPnNjaGVkdWxlSm9iKGpvYik7CisgICAgY2FsbE9uTWFpblRocmVhZChb
Y29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBjb250ZXh0SWRlbnRpZmllciA9IHRoaXMtPmNv
bnRleHRJZGVudGlmaWVyKCksIGpvYkRhdGEgPSBXVEZNb3ZlKGpvYkRhdGEpXSB7CisgICAgICAg
IGNvbm5lY3Rpb24tPnNjaGVkdWxlSm9iKGNvbnRleHRJZGVudGlmaWVyLCBqb2JEYXRhKTsKICAg
ICB9KTsKIH0KIApAQCAtNDU4LDggKzQ2MCw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5l
cjo6c3RhcnRTY3JpcHRGZXRjaEZvckpvYihTZXJ2aWNlV29ya2VySm9iJiBqb2IsIEZldGNoCiAg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKICAgICBpZiAoIWNv
bnRleHQpIHsKICAgICAgICAgTE9HX0VSUk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JS
ZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24gY2FsbGVkIGJ1dCB0aGUgY29udGFpbmVyJ3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBpcyBnb25lIik7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nv
bm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iID0gbWFrZVJlZihqb2IpXSB7Ci0gICAgICAg
ICAgICBjb25uZWN0aW9uLT5mYWlsZWRGZXRjaGluZ1NjcmlwdChqb2ItPmRhdGEoKS5pZGVudGlm
aWVyKCksIGpvYi0+ZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCB7IGVycm9yRG9tYWluV2ViS2l0
SW50ZXJuYWwsIDAsIGpvYi0+ZGF0YSgpLnNjcmlwdFVSTCwgQVNDSUlMaXRlcmFsKCJBdHRlbXB0
IHRvIGZldGNoIHNlcnZpY2Ugd29ya2VyIHNjcmlwdCB3aXRoIG5vIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQiKSB9KTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dD
b25uZWN0aW9uLCBqb2JJZGVudGlmaWVyID0gam9iLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9u
S2V5ID0gam9iLmRhdGEoKS5yZWdpc3RyYXRpb25LZXkoKSwgc2NyaXB0VVJMID0gam9iLmRhdGEo
KS5zY3JpcHRVUkwuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPmZh
aWxlZEZldGNoaW5nU2NyaXB0KGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgeyBlcnJv
ckRvbWFpbldlYktpdEludGVybmFsLCAwLCBzY3JpcHRVUkwsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1w
dCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBzY3JpcHQgd2l0aCBubyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0IikgfSk7CiAgICAgICAgIH0pOwogICAgICAgICBqb2JEaWRGaW5pc2goam9iKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtNDc2LDggKzQ3OCw4IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRh
aW5lcjo6am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgY29u
CiAKICAgICBMT0coU2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBmaW5p
c2hlZCBmZXRjaGluZyBzY3JpcHQgZm9yIGpvYiAlcyIsIHRoaXMsIGpvYi5pZGVudGlmaWVyKCku
bG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChb
Y29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2IgPSBtYWtlUmVmKGpvYiksIHNjcmlwdCA9
IHNjcmlwdC5pc29sYXRlZENvcHkoKSwgY29udGVudFNlY3VyaXR5UG9saWN5ID0gY29udGVudFNl
Y3VyaXR5UG9saWN5Lmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIGNvbm5lY3Rpb24tPmZpbmlz
aGVkRmV0Y2hpbmdTY3JpcHQoam9iLCBzY3JpcHQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSk7Cisg
ICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2JEYXRh
SWRlbnRpZmllciA9IGpvYi5kYXRhKCkuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25LZXkgPSBq
b2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCBzY3JpcHQgPSBzY3JpcHQuaXNvbGF0ZWRDb3B5
KCksIGNvbnRlbnRTZWN1cml0eVBvbGljeSA9IGNvbnRlbnRTZWN1cml0eVBvbGljeS5pc29sYXRl
ZENvcHkoKV0geworICAgICAgICBjb25uZWN0aW9uLT5maW5pc2hGZXRjaGluZ1NjcmlwdEluU2Vy
dmVyKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgc2NyaXB0LCBjb250ZW50
U2VjdXJpdHlQb2xpY3ksIHsgfSB9KTsKICAgICB9KTsKIH0KIApAQCAtNDkzLDggKzQ5NSw4IEBA
IHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkTG9hZGluZ1NjcmlwdChTZXJ2
aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0CiAgICAgaWYgKGV4Y2VwdGlvbiAmJiBqb2IucHJvbWlz
ZSgpKQogICAgICAgICBqb2IucHJvbWlzZSgpLT5yZWplY3QoKmV4Y2VwdGlvbik7CiAKLSAgICBj
YWxsT25NYWluVGhyZWFkKFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYiA9IG1ha2VS
ZWYoam9iKSwgZXJyb3IgPSBlcnJvci5pc29sYXRlZENvcHkoKV0gewotICAgICAgICBjb25uZWN0
aW9uLT5mYWlsZWRGZXRjaGluZ1NjcmlwdChqb2ItPmRhdGEoKS5pZGVudGlmaWVyKCksIGpvYi0+
ZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCBlcnJvcik7CisgICAgY2FsbE9uTWFpblRocmVhZChb
Y29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2JJZGVudGlmaWVyID0gam9iLmlkZW50aWZp
ZXIoKSwgcmVnaXN0cmF0aW9uS2V5ID0gam9iLmRhdGEoKS5yZWdpc3RyYXRpb25LZXkoKSwgZXJy
b3IgPSBlcnJvci5pc29sYXRlZENvcHkoKV0geworICAgICAgICBjb25uZWN0aW9uLT5mYWlsZWRG
ZXRjaGluZ1NjcmlwdChqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIGVycm9yKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggNzNiZmYzNWU1YzgxZGIxMjQxYjQ1YmI2MzQ4
MjQ3Y2NiMjgxMDBkNS4uMTRiNTI2ZjgzNzkzYTkwYzc2OGM4YzU0OTllMjUwYzFiY2NjNjVkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5oCkBAIC03NSw2ICs3NSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFJl
Z2lzdHJhdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJik7CiAgICAgdm9pZCByZW1vdmVS
ZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiYpOwogCisgICAgU2VydmljZVdv
cmtlckpvYiogam9iKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0
dXJuIG1fam9iTWFwLmdldChpZGVudGlmaWVyKTsgfQorCiAgICAgdm9pZCBzdGFydE1lc3NhZ2Vz
KCk7CiAKICAgICB2b2lkIHJlZigpIGZpbmFsIHsgcmVmRXZlbnRUYXJnZXQoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRl
eCAwZTdiNDIwNzUzMDA2MTAzMjRjZDBlNWI4OWNiYzFlNGYyN2UzZTNmLi5hMjJlNTlhODBlNTA2
ZjM4MDMzYzNiZDVkYzFiYzJmYTljYmI0ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZv
aWQgU1dTZXJ2ZXI6OnJlamVjdEpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0
YSwgY29uc3QgRXhjZXB0aW9uRGF0CiAgICAgaWYgKCFjb25uZWN0aW9uKQogICAgICAgICByZXR1
cm47CiAKLSAgICBjb25uZWN0aW9uLT5yZWplY3RKb2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZp
ZXIoKSwgZXhjZXB0aW9uRGF0YSk7CisgICAgY29ubmVjdGlvbi0+cmVqZWN0Sm9iSW5DbGllbnQo
am9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRpZmllciwgZXhjZXB0aW9uRGF0YSk7CiB9CiAK
IHZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVSZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiBy
ZWdpc3RyYXRpb25EYXRhLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hvdWxkTm90aWZ5V2hl
blJlc29sdmVkKQpAQCAtMjgzLDcgKzI4Myw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVSZWdp
c3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0CiAg
ICAgaWYgKCFjb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25uZWN0aW9uLT5y
ZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCksIHJlZ2lz
dHJhdGlvbkRhdGEsIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CisgICAgY29ubmVjdGlvbi0+
cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklk
ZW50aWZpZXIsIHJlZ2lzdHJhdGlvbkRhdGEsIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiB9
CiAKIHZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYgcmVnaXN0cmF0aW9uS2V5LCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQpAQCAtMjkyLDcg
KzI5Miw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uCiAgICAgaWYgKCFjb25uZWN0aW9uKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBjb25uZWN0aW9uLT5yZXNvbHZlVW5yZWdpc3RyYXRpb25K
b2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uS2V5LCB1bnJlZ2lz
dHJhdGlvblJlc3VsdCk7CisgICAgY29ubmVjdGlvbi0+cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9i
SW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCkuam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
S2V5LCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2Ny
aXB0RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIEZldGNoT3B0aW9u
czo6Q2FjaGUgY2FjaGVQb2xpY3kpCkBAIC0zMDIsNyArMzAyLDcgQEAgdm9pZCBTV1NlcnZlcjo6
c3RhcnRTY3JpcHRGZXRjaChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgRmV0
Y2hPcHRpb24KICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGNv
bm5lY3Rpb24tPnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSwg
am9iRGF0YS5yZWdpc3RyYXRpb25LZXkoKSwgY2FjaGVQb2xpY3kpOworICAgIGNvbm5lY3Rpb24t
PnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlm
aWVyLCBqb2JEYXRhLnJlZ2lzdHJhdGlvbktleSgpLCBjYWNoZVBvbGljeSk7CiB9CiAKIHZvaWQg
U1dTZXJ2ZXI6OnNjcmlwdEZldGNoRmluaXNoZWQoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29u
c3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNGQ4MDc3Njc3MGY5MTQ1
MGZhYWUwZjMxYjYzMDBkMDJkNGE4MDE1YS4uNjQ4M2VkMmM0YmJmY2YyMGNlZDY4Mzk0ZDRjYjFj
YTBmNzA2Y2M3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaApAQCAtMTAzLDEwICsxMDMsMTAgQEAgcHVibGljOgogCiAgICAgcHJpdmF0
ZToKICAgICAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIGNsaWVudCBXZWJQcm9jZXNzCi0gICAgICAg
IHZpcnR1YWwgdm9pZCByZWplY3RKb2JJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0
YUlkZW50aWZpZXImLCBjb25zdCBFeGNlcHRpb25EYXRhJikgPSAwOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiwg
U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCByZXNv
bHZlVW5yZWdpc3RyYXRpb25Kb2JJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXImLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCByZWdp
c3RyYXRpb25SZXN1bHQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0
Y2hJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgRmV0Y2hPcHRpb25zOjpDYWNoZSkgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQoU2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCByZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoU2VydmljZVdvcmtlckpvYklkZW50aWZp
ZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiwgU2hvdWxkTm90aWZ5V2hl
blJlc29sdmVkKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlVW5yZWdpc3RyYXRp
b25Kb2JJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wgcmVnaXN0cmF0aW9uUmVzdWx0KSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQoU2VydmljZVdvcmtlckpv
YklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBGZXRjaE9w
dGlvbnM6OkNhY2hlKSA9IDA7CiAKICAgICAgICAgc3RydWN0IFJlZ2lzdHJhdGlvblJlYWR5UmVx
dWVzdCB7CiAgICAgICAgICAgICBTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggYzQ4NDBkOTczM2VhMzZlNmM4
MmQ1OTY1OTNlMWU2M2I0MzY3ZWIyOC4uNzA2ZGY1NmRjNTNmMGQ4ZDgwYTNjZjRiNGUwYmM0NGZk
MzhhMmEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0x
ODYsNiArMTg2LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2Vp
dmVyKToKICAgICBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gZnJvemVuc2V0KFsKICAg
ICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcicsCisgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRE
YXRhJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIn
LAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIn
LApAQCAtMzg2LDYgKzM4Nyw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnV2ViQ29yZTo6UG9saWN5QWN0aW9uJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBv
cHVwTWVudS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
Zmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCisgICAgICAgICdXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtl
clR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRh
JzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdv
cmtlckNsaWVudERhdGEuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInOiBbJzxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBkNGQ5MTM3MzkwODdiY2Ix
NGQ4MjIzMTVhODhjZDg0OGM0ZjZjZjM1Li40NzIxOGQyZGZmMmIwZDRmMmE2MzEyNGMwYzg5MjUx
NDdlMTIxNzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAt
NzYsMjQgKzc2LDI0IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNjb25uZWN0ZWRG
cm9tV2ViUHJvY2VzcygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OnJlamVjdEpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4
Y2VwdGlvbkRhdGEpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVqZWN0Sm9iSW5DbGll
bnQoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3QgRXhjZXB0
aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVu
dENvbm5lY3Rpb246OkpvYlJlamVjdGVkSW5TZXJ2ZXIoam9iRGF0YUlkZW50aWZpZXIsIGV4Y2Vw
dGlvbkRhdGEpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246Okpv
YlJlamVjdGVkSW5TZXJ2ZXIoam9iSWRlbnRpZmllciwgZXhjZXB0aW9uRGF0YSkpOwogfQogCi12
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIs
IGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiByZWdpc3RyYXRpb25EYXRhLCBT
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQordm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudChTZXJ2
aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSYgcmVnaXN0cmF0aW9uRGF0YSwgU2hvdWxkTm90aWZ5V2hlblJlc29s
dmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJT
V0NsaWVudENvbm5lY3Rpb246OlJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoam9iRGF0
YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbkRhdGEsIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkp
OworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6UmVnaXN0cmF0aW9u
Sm9iUmVzb2x2ZWRJblNlcnZlcihqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25EYXRhLCBzaG91
bGROb3RpZnlXaGVuUmVzb2x2ZWQpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2JJbkNs
aWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIGJvb2wgdW5yZWdpc3Ry
YXRpb25SZXN1bHQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9u
OjpVbnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoam9iRGF0YUlkZW50aWZpZXIsIHVu
cmVnaXN0cmF0aW9uUmVzdWx0KSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpVbnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoam9iSWRlbnRpZmllciwg
dW5yZWdpc3RyYXRpb25SZXN1bHQpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiByZWdpc3RyYXRpb25LZXksIEZldGNoT3B0aW9uczo6Q2FjaGUgY2FjaGVQb2xpY3kpCit2
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KFNlcnZp
Y2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgRmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNo
ZVBvbGljeSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlN0
YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktl
eSwgY2FjaGVQb2xpY3kpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OlN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
S2V5LCBjYWNoZVBvbGljeSkpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6dXBk
YXRlUmVnaXN0cmF0aW9uU3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUgc3RhdGUs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+JiBzZXJ2aWNlV29ya2VyRGF0
YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCAzYjkzZTM4MDY4NTg5
MWJiNDk4NjQ2ODYxZjI4MGQzNDc3NDVkNDA2Li5lMjQ0Y2RjOTE0ZTE5ZmZmYTI3MDUxYzMwMDdk
YmU5M2I5MzcyMTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC03
MSwxMCArNzEsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudCBTV1Nl
cnZlcjo6Q29ubmVjdGlvbiAoTWVzc2FnZXMgdG8gdGhlIGNsaWVudCBXZWJQcm9jZXNzKQotICAg
IHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpIGZpbmFsOwotICAg
IHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhJiwgV2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKSBmaW5h
bDsKLSAgICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KSBmaW5h
bDsKLSAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpDYWNoZSkgZmluYWw7Cisg
ICAgdm9pZCByZWplY3RKb2JJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVz
b2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYsIFdl
YkNvcmU6OlNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkgZmluYWw7CisgICAgdm9pZCByZXNvbHZl
VW5yZWdpc3RyYXRpb25Kb2JJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wg
dW5yZWdpc3RyYXRpb25SZXN1bHQpIGZpbmFsOworICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaElu
Q2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpD
YWNoZSkgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2VydmljZVdvcmtlckRhdGE+JikgZmluYWw7CiAgICAgdm9pZCB1cGRhdGVXb3JrZXJTdGF0ZUlu
Q2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyU3RhdGUpIGZpbmFsOwogICAgIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGRiYTY0N2ViN2RmNzI2NTE2MDRiYTVlZWUy
NjBlNmY5OGQzMjU0YzguLjU2ZDJlNzg1OTFiY2NmODMzOTAzZDU5OTcxNWI1MzQwYjljZWM4MjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI0LDEwICsyNCwxMCBA
QAogCiBtZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3Nz
aWJsZSwgdGhlc2UgbWVzc2FnZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNv
cmU6OlNXU2VydmVyOjpDb25uZWN0aW9uCi0gICAgSm9iUmVqZWN0ZWRJblNlcnZlcihzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCi0gICAgUmVnaXN0cmF0
aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uLCBlbnVtIFdlYkNvcmU6OlNob3VsZE5v
dGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCi0gICAgVW5yZWdpc3Ry
YXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1
bHQpCi0gICAgU3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKKyAgICBKb2JSZWplY3RlZEluU2VydmVyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCisgICAgUmVnaXN0cmF0aW9uSm9iUmVz
b2x2ZWRJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JEYXRh
SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
IHJlZ2lzdHJhdGlvbiwgZW51bSBXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hv
dWxkTm90aWZ5V2hlblJlc29sdmVkKQorICAgIFVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNl
cnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmll
ciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKKyAgICBTdGFydFNjcmlwdEZldGNoRm9yU2Vy
dmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleSwg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkKICAgICBVcGRhdGVSZWdp
c3RyYXRpb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBlbnVtIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0
ZSBzdGF0ZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YT4gc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpCiAgICAgVXBkYXRlV29ya2VyU3RhdGUoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGVudW0gV2ViQ29yZTo6
U2VydmljZVdvcmtlclN0YXRlIHN0YXRlKQogICAgIEZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330808</attachid>
            <date>2018-01-09 04:13:25 -0800</date>
            <delta_ts>2018-01-09 04:48:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-181381-20180109131322.patch</filename>
            <type>text/plain</type>
            <size>33627</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWMzMTQ5NzgzNTAxMDhl
ZTg2OWFkZTc2YjcwMDM0YWYyNDgzY2I2NS4uZjQ4MmMxNTgyNmMzNTVhM2M3ZTAwZGNmNDVkMWQ3
YmU5MDU3ZjcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTAxLTA5ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV0NsaWVudENvbm5lY3Rp
b24gc2hvdWxkIG5vdCBrZWVwIHJlZmVyZW5jZXMgdG8gc2VydmljZSB3b3JrZXIgam9icworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMzgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgRGlmZmljdWx0IHRvIHRl
c3QgZGV0ZXJtaW5pc2NhbGx5IGJ1dCBjb3JyZXNwb25kaW5nIGNyYXNoIGxvZyBzaG91bGQgbm8g
bG9uZ2VyIGhhcHBlbiBpbiBkZWJ1ZyBidWlsZHMuCisKKyAgICAgICAgU3RvcHBlZCBwYXNzaW5n
IFNlcnZpY2VXb3JrZXJKb2IgcmVmZXJlbmNlcyBmcm9tIFNlcnZpY2VXb3JrZXJDb250YWluZXIg
KHBvdGVudGlhbGx5IGluIHNlcnZpY2Ugd29ya2VyIHRocmVhZCkgdG8gU1dDbGllbnRDb25uZWN0
aW9uIChtYWluIHRocmVhZCkuCisgICAgICAgIEluc3RlYWQgcGFzcyBqb2IgaWRlbnRpZmllcnMg
YW5kIHJlbGF0ZWQgZGF0YSB0byB0aGUgbWFpbiB0aHJlYWQuCisKKyAgICAgICAgTWlub3IgcmVm
YWN0b3JpbmcgdG8gdXNlIFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGluc3RlYWQgb2YgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIHdoaWNoIGNvbnRhaW5zIG1vcmUgZGF0YSB0aGFu
IG5lZWRlZC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYik6
CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdFRhc2tGb3JK
b2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3RlZElu
U2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0cmF0
aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5l
Y3Rpb246OnVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcik6CisgICAgICAgIChXZWJD
b3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpjbGVhclBlbmRpbmdKb2JzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1Njcmlw
dCk6IERlbGV0ZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNjaGVkdWxlSm9i
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0
RmV0Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6
am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6cmVq
ZWN0Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlUmVnaXN0cmF0aW9u
Sm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZXNvbHZlVW5yZWdpc3RyYXRpb25K
b2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2gpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAxOC0wMS0wOSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjI0NDYwKTogVGV4dCBmaWVsZHMgc29tZXRpbWVzIGdldCAibWVzc2VkIHVwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAyZWI3MThmMWMyNWIxYTVjNDhlYjhhODMzNjkyMGQ1OTQyYzcxN2U1Li43ZThj
MDI0MDFkNDhhNTRhYzFlODQ3MTE2MGM5YzdmNjUwOTBiNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDE4LTAxLTA5ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBTV0NsaWVudENvbm5lY3Rpb24gc2hvdWxkIG5vdCBrZWVwIHJlZmVyZW5jZXMgdG8g
c2VydmljZSB3b3JrZXIgam9icworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgxMzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgVXBkYXRlZCBJUEMgaGFuZGxpbmcgYmFzZWQgb24gV2ViQ29yZSByZWZhY3Rvcmlu
Zy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoZm9y
d2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMpOgorICAgICAgICAoaGVhZGVyc19mb3JfdHlw
ZSk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJl
amVjdEpvYkluQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpyZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoSW5D
bGllbnQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxOC0wMS0wOSAgQWxpIEp1bWEgIDxhanVtYUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IFZpc3VhbFZpZXdwb3J0IEFQSSBldmVu
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKaW5kZXggMWYzMjIxZmY0Zjk5Yjk4ZWFkZDFmODBkODU1NzI3NGEwYmIxZDVi
Ny4uZjkzMWYzNzg4N2RmZDRjZmNhYzMzNDY5ZDRiZWU2YzBhYmE4MTFkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
QEAgLTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NU
aHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00NiwxMDMgKzQ1LDc3IEBAIFNXQ2xpZW50Q29ubmVjdGlvbjo6U1dDbGllbnRD
b25uZWN0aW9uKCkgPSBkZWZhdWx0OwogCiBTV0NsaWVudENvbm5lY3Rpb246On5TV0NsaWVudENv
bm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVs
ZUpvYihTZXJ2aWNlV29ya2VySm9iJiBqb2IpCit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6c2No
ZWR1bGVKb2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc2NoZWR1bGVkSm9icy5hZGQoam9i
LmlkZW50aWZpZXIoKSwgJmpvYik7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3NjaGVkdWxlZEpv
YlNvdXJjZXMuYWRkKGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50aWZpZXIsIGNvbnRleHRJ
ZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3
RW50cnkpOwogCi0gICAgc2NoZWR1bGVKb2JJblNlcnZlcihqb2IuZGF0YSgpKTsKKyAgICBzY2hl
ZHVsZUpvYkluU2VydmVyKGpvYkRhdGEpOwogfQogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6
ZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0IFN0cmlu
ZyYgc2NyaXB0KQordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0
KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgY29uc3QgUmVzb3VyY2VFcnJv
ciYgZXJyb3IpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBBU1NFUlQobV9z
Y2hlZHVsZWRKb2JzLmdldChqb2IuaWRlbnRpZmllcigpKSA9PSAmam9iKTsKIAotICAgIGZpbmlz
aEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoeyBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSwgam9iLmRh
dGEoKS5yZWdpc3RyYXRpb25LZXkoKSwgc2NyaXB0LCB7IH0gfSk7CisgICAgZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcih7IHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgam9iSWRl
bnRpZmllciB9LCByZWdpc3RyYXRpb25LZXksIHsgfSwgZXJyb3IgfSk7CiB9CiAKLXZvaWQgU1dD
bGllbnRDb25uZWN0aW9uOjpmYWlsZWRGZXRjaGluZ1NjcmlwdChjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQorYm9vbCBTV0NsaWVudENvbm5lY3Rpb246OnBvc3RUYXNrRm9ySm9iKFNlcnZpY2VXb3Jr
ZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIElzSm9iQ29tcGxldGUgaXNKb2JDb21wbGV0
ZSwgV1RGOjpGdW5jdGlvbjx2b2lkKFNlcnZpY2VXb3JrZXJKb2ImKT4mJiB0YXNrKQogewogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2Vy
dmVyKHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgeyB9LCBlcnJvciB9KTsK
LX0KLQotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmpvYlJlamVjdGVkSW5TZXJ2ZXIoY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwotCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMudGFrZShqb2JEYXRhSWRlbnRp
Zmllci5qb2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikgewotICAgICAgICBMT0dfRVJST1Io
IkpvYiAlcyByZWplY3RlZCBmcm9tIHNlcnZlciwgYnV0IHdhcyBub3QgZm91bmQiLCBqb2JEYXRh
SWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHJldHVy
bjsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zY2hlZHVsZWRKb2JTb3VyY2VzLmZpbmQoam9iSWRl
bnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc2NoZWR1bGVkSm9iU291cmNlcy5lbmQo
KSkgeworICAgICAgICBMT0dfRVJST1IoIkpvYiAlcyB3YXMgbm90IGZvdW5kIiwgam9iSWRlbnRp
Zmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9Ci0KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGpvYi0+
Y29udGV4dElkZW50aWZpZXIoKSwgW2pvYiwgZXhjZXB0aW9uRGF0YSA9IGV4Y2VwdGlvbkRhdGEu
aXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7Ci0gICAgICAgIGpvYi0+
ZmFpbGVkV2l0aEV4Y2VwdGlvbihleGNlcHRpb25EYXRhLnRvRXhjZXB0aW9uKCkpOworICAgIGF1
dG8gaXNQb3N0ZWQgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGl0ZXJhdG9y
LT52YWx1ZSwgW2pvYklkZW50aWZpZXIsIHRhc2sgPSBXVEZNb3ZlKHRhc2spXSAoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhdXRvKiBjb250
YWluZXIgPSBjb250ZXh0LnNlcnZpY2VXb3JrZXJDb250YWluZXIoKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8qIGpvYiA9IGNvbnRhaW5lci0+am9iKGpvYklkZW50aWZpZXIpKQorICAgICAgICAg
ICAgICAgIHRhc2soKmpvYik7CisgICAgICAgIH0KICAgICB9KTsKKyAgICBpZiAoaXNKb2JDb21w
bGV0ZSA9PSBJc0pvYkNvbXBsZXRlOjpZZXMpCisgICAgICAgIG1fc2NoZWR1bGVkSm9iU291cmNl
cy5yZW1vdmUoaXRlcmF0b3IpOworICAgIHJldHVybiBpc1Bvc3RlZDsKIH0KIAotdm9pZCBTV0Ns
aWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhLCBTaG91bGROb3RpZnlXaGVu
UmVzb2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQordm9pZCBTV0NsaWVudENvbm5lY3Rp
b246OmpvYlJlamVjdGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRl
bnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKLSAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgYXV0byBndWFyZCA9IFdURjo6bWFrZVNjb3BlRXhp
dChbdGhpcywgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkLCByZWdpc3RyYXRpb25LZXkgPSByZWdp
c3RyYXRpb25EYXRhLmtleV0gewotICAgICAgICBpZiAoc2hvdWxkTm90aWZ5V2hlblJlc29sdmVk
ID09IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6WWVzKQotICAgICAgICAgICAgZGlkUmVzb2x2
ZVJlZ2lzdHJhdGlvblByb21pc2UocmVnaXN0cmF0aW9uS2V5KTsKKyAgICBwb3N0VGFza0Zvckpv
Yihqb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlOjpZZXMsIFtleGNlcHRpb25EYXRhID0gZXhj
ZXB0aW9uRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIGpvYikgeworICAgICAgICBqb2IuZmFp
bGVkV2l0aEV4Y2VwdGlvbihleGNlcHRpb25EYXRhLnRvRXhjZXB0aW9uKCkpOwogICAgIH0pOwor
fQogCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMudGFrZShqb2JEYXRhSWRlbnRpZmll
ci5qb2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikgewotICAgICAgICBMT0dfRVJST1IoIkpv
YiAlcyByZXNvbHZlZCBpbiBzZXJ2ZXIsIGJ1dCB3YXMgbm90IGZvdW5kIiwgam9iRGF0YUlkZW50
aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgYm9vbCB3YXNQb3N0ZWQgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0
VGFza1RvKGpvYi0+Y29udGV4dElkZW50aWZpZXIoKSwgW2pvYiwgcmVnaXN0cmF0aW9uRGF0YSA9
IHJlZ2lzdHJhdGlvbkRhdGEuaXNvbGF0ZWRDb3B5KCksIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZl
ZF0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewotICAgICAgICBqb2ItPnJlc29s
dmVkV2l0aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpLCBzaG91bGROb3Rp
ZnlXaGVuUmVzb2x2ZWQpOwordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvbkpv
YlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhLCBTaG91
bGROb3RpZnlXaGVuUmVzb2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQoreworICAgIGJv
b2wgaXNQb3N0ZWQgPSBwb3N0VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRl
OjpZZXMsIFtyZWdpc3RyYXRpb25EYXRhID0gcmVnaXN0cmF0aW9uRGF0YS5pc29sYXRlZENvcHko
KSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkXSAoYXV0byYgam9iKSBtdXRhYmxlIHsKKyAgICAg
ICAgam9iLnJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEp
LCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIH0pOwogCi0gICAgaWYgKHdhc1Bvc3Rl
ZCkKLSAgICAgICAgZ3VhcmQucmVsZWFzZSgpOworICAgIGlmICghaXNQb3N0ZWQgJiYgc2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkID09IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZDo6WWVzKQorICAg
ICAgICBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShyZWdpc3RyYXRpb25EYXRhLmtleSk7
CiB9CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVk
SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRl
bnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKK3ZvaWQgU1dDbGllbnRDb25uZWN0
aW9uOjp1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXIgam9iSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkKIHsKLSAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotCi0gICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpv
YnMudGFrZShqb2JEYXRhSWRlbnRpZmllci5qb2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikg
ewotICAgICAgICBMT0dfRVJST1IoIkpvYiAlcyByZXNvbHZlZCBpbiBzZXJ2ZXIsIGJ1dCB3YXMg
bm90IGZvdW5kIiwgam9iRGF0YUlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDo6cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVudGlmaWVyKCksIFtqb2IsIHVucmVnaXN0cmF0
aW9uUmVzdWx0XShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBqb2ItPnJlc29s
dmVkV2l0aFVucmVnaXN0cmF0aW9uUmVzdWx0KHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKKyAgICBw
b3N0VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlOjpZZXMsIFt1bnJlZ2lz
dHJhdGlvblJlc3VsdF0gKGF1dG8mIGpvYikgeworICAgICAgICBqb2IucmVzb2x2ZWRXaXRoVW5y
ZWdpc3RyYXRpb25SZXN1bHQodW5yZWdpc3RyYXRpb25SZXN1bHQpOwogICAgIH0pOwogfQogCi12
b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIEZldGNoT3B0aW9u
czo6Q2FjaGUgY2FjaGVQb2xpY3kpCit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRTY3Jp
cHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVy
LCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYXRpb25LZXksIEZl
dGNoT3B0aW9uczo6Q2FjaGUgY2FjaGVQb2xpY3kpCiB7Ci0gICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKLQotICAgIGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLmdldChqb2JEYXRhSWRlbnRp
Zmllci5qb2JJZGVudGlmaWVyKTsKLSAgICBpZiAoIWpvYikgewotICAgICAgICBMT0dfRVJST1Io
IkpvYiAlcyBpbnN0cnVjdGVkIHRvIHN0YXJ0IGZldGNoIGZyb20gc2VydmVyLCBidXQgam9iIHdh
cyBub3QgZm91bmQiLCBqb2JEYXRhSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7Ci0KLSAgICAgICAgZmFpbGVkRmV0Y2hpbmdTY3JpcHQoam9iRGF0YUlkZW50aWZpZXIs
IHJlZ2lzdHJhdGlvbktleSwgUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJu
YWwsIDAsIFVSTCgpLCBBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtl
ciBzY3JpcHQiKSB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgd2FzUG9z
dGVkID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhqb2ItPmNvbnRleHRJZGVu
dGlmaWVyKCksIFtqb2IsIGNhY2hlUG9saWN5XShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jikgewot
ICAgICAgICBqb2ItPnN0YXJ0U2NyaXB0RmV0Y2goY2FjaGVQb2xpY3kpOworICAgIGJvb2wgaXNQ
b3N0ZWQgPSBwb3N0VGFza0ZvckpvYihqb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlOjpObywg
W2NhY2hlUG9saWN5XSAoYXV0byYgam9iKSB7CisgICAgICAgIGpvYi5zdGFydFNjcmlwdEZldGNo
KGNhY2hlUG9saWN5KTsKICAgICB9KTsKLSAgICBpZiAoIXdhc1Bvc3RlZCkKLSAgICAgICAgZmFp
bGVkRmV0Y2hpbmdTY3JpcHQoam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgUmVz
b3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIGpvYi0+ZGF0YSgpLnNj
cmlwdFVSTCwgQVNDSUlMaXRlcmFsKCJGYWlsZWQgdG8gZmV0Y2ggc2VydmljZSB3b3JrZXIgc2Ny
aXB0IikgfSk7CisgICAgaWYgKCFpc1Bvc3RlZCkKKyAgICAgICAgZmFpbGVkRmV0Y2hpbmdTY3Jp
cHQoam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uS2V5LCBSZXNvdXJjZUVycm9yIHsgZXJyb3JE
b21haW5XZWJLaXRJbnRlcm5hbCwgMCwgeyB9LCBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gZmV0Y2gg
c2NyaXB0IGZvciBzZXJ2aWNlIHdvcmtlciB3aXRoIHNjb3BlICIsIHJlZ2lzdHJhdGlvbktleS5z
Y29wZSgpLnN0cmluZygpKSB9KTsKIH0KIAorCiB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQ29udGV4dElkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9y
aWdpbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMjc4LDEwICsyNTEsMTMg
QEAgdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmNsZWFyUGVuZGluZ0pvYnMoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBhdXRvIGpvYnMgPSBXVEZNb3ZlKG1fc2NoZWR1
bGVkSm9icyk7Ci0gICAgZm9yIChhdXRvJiBqb2IgOiBqb2JzLnZhbHVlcygpKSB7Ci0gICAgICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oam9iLT5jb250ZXh0SWRlbnRpZmll
cigpLCBbam9iXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICAgICAgam9iLT5m
YWlsZWRXaXRoRXhjZXB0aW9uKEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJJ
bnRlcm5hbCBlcnJvciIpIH0pOworICAgIGF1dG8gam9iU291cmNlcyA9IFdURk1vdmUobV9zY2hl
ZHVsZWRKb2JTb3VyY2VzKTsKKyAgICBmb3IgKGF1dG8mIGtleVZhbHVlIDogam9iU291cmNlcykg
eworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGtleVZhbHVlLnZh
bHVlLCBbaWRlbnRpZmllciA9IGtleVZhbHVlLmtleV0gKGF1dG8mIGNvbnRleHQpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBjb250YWluZXIgPSBjb250ZXh0LnNlcnZpY2VXb3JrZXJDb250YWlu
ZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChhdXRvKiBqb2IgPSBjb250YWluZXItPmpvYihp
ZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICAgICAgam9iLT5mYWlsZWRXaXRoRXhjZXB0aW9u
KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgQVNDSUlMaXRlcmFsKCJJbnRlcm5hbCBlcnJvciIpIH0p
OworICAgICAgICAgICAgfQogICAgICAgICB9KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggNGFlNzhh
Mzg4N2RmYWM4MTMwNWEzMTI5YWY1MzhhMDgxNjkzNGZhNi4uMWRlMmE1M2UwZGM4MTQ5ZTUyYTNj
YzZkOGI5NWQ2YzJlMDA1MjlhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNjgsOSArNjgsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIpID0gMDsKIAotICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdv
cmtlckpvYiYpOwotICAgIHZvaWQgZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2Vy
Sm9iJiwgY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOworICAgIHZvaWQgc2NoZWR1bGVK
b2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
Jik7CisgICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlz
ZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JikgPSAwOwogCkBAIC04MywxMyAr
ODIsMTUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtl
ckNsaWVudERhdGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
PiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
RG9jdW1lbnRJZGVudGlmaWVyKSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSA9IDA7CisK
IHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBTV0NsaWVudENvbm5lY3Rpb24oKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgam9iUmVqZWN0ZWRJblNlcnZlcihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBjb25zdCBFeGNlcHRpb25EYXRhJik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCByZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhJiYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyJiwgYm9vbCB1bnJlZ2lzdHJhdGlvblJlc3VsdCk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkm
LCBGZXRjaE9wdGlvbnM6OkNhY2hlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlamVj
dGVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRh
dGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5T
ZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhJiYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1bnJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXIsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmll
ciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIEZldGNoT3B0aW9uczo6Q2Fj
aGUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJD
bGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckRhdGEmJiBz
b3VyY2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8U2VydmljZVdvcmtlckRhdGE+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVX
b3JrZXJTdGF0ZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclN0YXRlKTsK
QEAgLTEwMiw5ICsxMDMsMTEgQEAgcHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpID0gMDsKIAotICAgIEhhc2hNYXA8U2VydmljZVdvcmtl
ckpvYklkZW50aWZpZXIsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9zY2hlZHVsZWRKb2Jz
OworICAgIGVudW0gY2xhc3MgSXNKb2JDb21wbGV0ZSB7IE5vLCBZZXMgfTsKKyAgICBib29sIHBv
c3RUYXNrRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlLCBX
VEY6OkZ1bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYiYpPiYmKTsKKworICAgIEhhc2hNYXA8
U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyPiBt
X3NjaGVkdWxlZEpvYlNvdXJjZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5jcHAKaW5kZXggMTk3MGYwYTllOWIzY2I3NTBkNDkxZWJjMGQ2NjMwMmQ5YmUzOWQ2
NS4uMjdkZDhmM2MxODc5YTJiYjc3NDYwNTZkMzcwNDYxMWRmZWExYmI1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFp
bmVyLmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKQEAgLTIyMywxMSArMjI0LDEyIEBA
IHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2NoZWR1bGVKb2IoUmVmPFNlcnZpY2VXb3Jr
ZXJKb2I+JiYgam9iKQogCiAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogCi0gICAgYXV0
byByZXN1bHQgPSBtX2pvYk1hcC5hZGQoam9iLT5pZGVudGlmaWVyKCksIGpvYi5jb3B5UmVmKCkp
OworICAgIGF1dG8gam9iRGF0YSA9IGpvYi0+ZGF0YSgpOworICAgIGF1dG8gcmVzdWx0ID0gbV9q
b2JNYXAuYWRkKGpvYi0+aWRlbnRpZmllcigpLCBXVEZNb3ZlKGpvYikpOwogICAgIEFTU0VSVF9V
TlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFk
KFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYiA9IFdURk1vdmUoam9iKV0gewotICAg
ICAgICBjb25uZWN0aW9uLT5zY2hlZHVsZUpvYihqb2IpOworICAgIGNhbGxPbk1haW5UaHJlYWQo
W2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgY29udGV4dElkZW50aWZpZXIgPSB0aGlzLT5j
b250ZXh0SWRlbnRpZmllcigpLCBqb2JEYXRhID0gV1RGTW92ZShqb2JEYXRhKV0geworICAgICAg
ICBjb25uZWN0aW9uLT5zY2hlZHVsZUpvYihjb250ZXh0SWRlbnRpZmllciwgam9iRGF0YSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTQ1OCw4ICs0NjAsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoU2VydmljZVdvcmtlckpvYiYgam9iLCBGZXRjaAog
ICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgaWYgKCFj
b250ZXh0KSB7CiAgICAgICAgIExPR19FUlJPUigiU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9i
UmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uIGNhbGxlZCBidXQgdGhlIGNvbnRhaW5lcidzIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgaXMgZ29uZSIpOwotICAgICAgICBjYWxsT25NYWluVGhyZWFkKFtj
b25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYiA9IG1ha2VSZWYoam9iKV0gewotICAgICAg
ICAgICAgY29ubmVjdGlvbi0+ZmFpbGVkRmV0Y2hpbmdTY3JpcHQoam9iLT5kYXRhKCkuaWRlbnRp
ZmllcigpLCBqb2ItPmRhdGEoKS5yZWdpc3RyYXRpb25LZXkoKSwgeyBlcnJvckRvbWFpbldlYktp
dEludGVybmFsLCAwLCBqb2ItPmRhdGEoKS5zY3JpcHRVUkwsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1w
dCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBzY3JpcHQgd2l0aCBubyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0IikgfSk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3
Q29ubmVjdGlvbiwgam9iSWRlbnRpZmllciA9IGpvYi5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlv
bktleSA9IGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHNjcmlwdFVSTCA9IGpvYi5kYXRh
KCkuc2NyaXB0VVJMLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgICAgICBjb25uZWN0aW9uLT5m
YWlsZWRGZXRjaGluZ1NjcmlwdChqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25LZXksIHsgZXJy
b3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgc2NyaXB0VVJMLCBBU0NJSUxpdGVyYWwoIkF0dGVt
cHQgdG8gZmV0Y2ggc2VydmljZSB3b3JrZXIgc2NyaXB0IHdpdGggbm8gU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCIpIH0pOwogICAgICAgICB9KTsKICAgICAgICAgam9iRGlkRmluaXNoKGpvYik7CiAg
ICAgICAgIHJldHVybjsKQEAgLTQ3Niw4ICs0NzgsOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250
YWluZXI6OmpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNv
bgogCiAgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTZXZpY2VXb3JrZXJDb250YWluZXIgJXAgZmlu
aXNoZWQgZmV0Y2hpbmcgc2NyaXB0IGZvciBqb2IgJXMiLCB0aGlzLCBqb2IuaWRlbnRpZmllcigp
LmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQo
W2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iID0gbWFrZVJlZihqb2IpLCBzY3JpcHQg
PSBzY3JpcHQuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgY29ubmVjdGlvbi0+ZmluaXNoZWRG
ZXRjaGluZ1NjcmlwdChqb2IsIHNjcmlwdCk7CisgICAgY2FsbE9uTWFpblRocmVhZChbY29ubmVj
dGlvbiA9IG1fc3dDb25uZWN0aW9uLCBqb2JEYXRhSWRlbnRpZmllciA9IGpvYi5kYXRhKCkuaWRl
bnRpZmllcigpLCByZWdpc3RyYXRpb25LZXkgPSBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgp
LCBzY3JpcHQgPSBzY3JpcHQuaXNvbGF0ZWRDb3B5KCldIHsKKyAgICAgICAgY29ubmVjdGlvbi0+
ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcih7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3Ry
YXRpb25LZXksIHNjcmlwdCwgeyB9IH0pOwogICAgIH0pOwogfQogCkBAIC00OTMsOCArNDk1LDgg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNl
cnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uc3QKICAgICBpZiAoZXhjZXB0aW9uICYmIGpvYi5wcm9t
aXNlKCkpCiAgICAgICAgIGpvYi5wcm9taXNlKCktPnJlamVjdCgqZXhjZXB0aW9uKTsKIAotICAg
IGNhbGxPbk1haW5UaHJlYWQoW2Nvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbiwgam9iID0gbWFr
ZVJlZihqb2IpLCBlcnJvciA9IGVycm9yLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIGNvbm5l
Y3Rpb24tPmZhaWxlZEZldGNoaW5nU2NyaXB0KGpvYi0+ZGF0YSgpLmlkZW50aWZpZXIoKSwgam9i
LT5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIGVycm9yKTsKKyAgICBjYWxsT25NYWluVGhyZWFk
KFtjb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb24sIGpvYklkZW50aWZpZXIgPSBqb2IuaWRlbnRp
ZmllcigpLCByZWdpc3RyYXRpb25LZXkgPSBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCBl
cnJvciA9IGVycm9yLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIGNvbm5lY3Rpb24tPmZhaWxl
ZEZldGNoaW5nU2NyaXB0KGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbktleSwgZXJyb3IpOwog
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCAxOWQyNWY1YTc0MTc4ZDJhODM5YjQ1NDIy
OTg1MTUwZWEwZTM3ZGEyLi4yYjViMGE5OTIzN2FlNzQwNTU5YjFjNWRlMmM3Y2I2YjYyNTBmNmM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKQEAgLTc1LDYgKzc1LDggQEAgcHVibGljOgogICAgIHZvaWQgYWRk
UmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIHJlbW92
ZVJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJik7CiAKKyAgICBTZXJ2aWNl
V29ya2VySm9iKiBqb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgaWRlbnRpZmllcikgeyBy
ZXR1cm4gbV9qb2JNYXAuZ2V0KGlkZW50aWZpZXIpOyB9CisKICAgICB2b2lkIHN0YXJ0TWVzc2Fn
ZXMoKTsKIAogICAgIHZvaWQgcmVmKCkgZmluYWwgeyByZWZFdmVudFRhcmdldCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IDY4YWRkZWVjZWY0N2JmN2VhN2M2YjdhMWM0MzdkNGFiNzlmYWIyYjIuLmYwMDhlMzE5ZmMw
MmNlNTBkNmJlNTY0NmJkNmM0YTY1ZmYwOWNkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0yNzMsNyArMjczLDcgQEAg
dm9pZCBTV1NlcnZlcjo6cmVqZWN0Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JE
YXRhLCBjb25zdCBFeGNlcHRpb25EYXQKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNvbm5lY3Rpb24tPnJlamVjdEpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRp
ZmllcigpLCBleGNlcHRpb25EYXRhKTsKKyAgICBjb25uZWN0aW9uLT5yZWplY3RKb2JJbkNsaWVu
dChqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLCBleGNlcHRpb25EYXRhKTsKIH0K
IAogdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
IHJlZ2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlX
aGVuUmVzb2x2ZWQpCkBAIC0yODMsNyArMjgzLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVJl
Z2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QK
ICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbm5lY3Rpb24t
PnJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVn
aXN0cmF0aW9uRGF0YSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKKyAgICBjb25uZWN0aW9u
LT5yZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCkuam9i
SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uRGF0YSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsK
IH0KIAogdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiByZWdpc3RyYXRpb25LZXksIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpCkBAIC0yOTIs
NyArMjkyLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb24KICAgICBpZiAoIWNvbm5lY3Rpb24p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGNvbm5lY3Rpb24tPnJlc29sdmVVbnJlZ2lzdHJhdGlv
bkpvYkluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25LZXksIHVucmVn
aXN0cmF0aW9uUmVzdWx0KTsKKyAgICBjb25uZWN0aW9uLT5yZXNvbHZlVW5yZWdpc3RyYXRpb25K
b2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLCByZWdpc3RyYXRp
b25LZXksIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6c3RhcnRT
Y3JpcHRGZXRjaChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgRmV0Y2hPcHRp
b25zOjpDYWNoZSBjYWNoZVBvbGljeSkKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIFNXU2VydmVy
OjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBG
ZXRjaE9wdGlvbgogICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Y29ubmVjdGlvbi0+c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigp
LCBqb2JEYXRhLnJlZ2lzdHJhdGlvbktleSgpLCBjYWNoZVBvbGljeSk7CisgICAgY29ubmVjdGlv
bi0+c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpLmpvYklkZW50
aWZpZXIsIGpvYkRhdGEucmVnaXN0cmF0aW9uS2V5KCksIGNhY2hlUG9saWN5KTsKIH0KIAogdm9p
ZCBTV1NlcnZlcjo6c2NyaXB0RmV0Y2hGaW5pc2hlZChDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBj
b25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA2NmQ2ZTVlZTFiMDhl
Y2YyZTczOTVjMTk3YmQyOWY3NzNmYzNmNTVmLi4yZDM2NmE3NTczNDFjYzZiZTMyNzQ4ZDgyZTc4
MzEyNjljZTdhMzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5oCkBAIC0xMDMsMTAgKzEwMywxMCBAQCBwdWJsaWM6CiAKICAgICBwcml2
YXRlOgogICAgICAgICAvLyBNZXNzYWdlcyB0byB0aGUgY2xpZW50IFdlYlByb2Nlc3MKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHJlamVjdEpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciYsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKSA9IDA7Ci0gICAgICAgIHZpcnR1
YWwgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
LCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJl
c29sdmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHJl
Z2lzdHJhdGlvblJlc3VsdCkgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JpcHRG
ZXRjaEluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBGZXRjaE9wdGlvbnM6OkNhY2hlKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWplY3RKb2JJbkNsaWVudChTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0YSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHJlc29sdmVSZWdpc3RyYXRpb25Kb2JJbkNsaWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmLCBTaG91bGROb3RpZnlX
aGVuUmVzb2x2ZWQpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVVbnJlZ2lzdHJh
dGlvbkpvYkluQ2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCByZWdpc3RyYXRpb25SZXN1bHQpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudChTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIEZldGNo
T3B0aW9uczo6Q2FjaGUpID0gMDsKIAogICAgICAgICBzdHJ1Y3QgUmVnaXN0cmF0aW9uUmVhZHlS
ZXF1ZXN0IHsKICAgICAgICAgICAgIFNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA2NWM4OWFkNWE5M2U3MTJl
ZGMxODA5NzE0ZTgzM2IwNjQ2ZjI0YTI5Li5hOGJjYzk3Y2Y1MGRhZmRhMDExNTc0ZDVhMjI2MmE5
YWY2ZWIzYmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAg
LTE4Niw2ICsxODYsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVj
ZWl2ZXIpOgogICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSBmcm96ZW5zZXQoWwog
ICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVu
dERhdGEnLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cicsCkBAIC0zODcsNiArMzg4LDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAg
ICAgICdXZWJDb3JlOjpQb2xpY3lBY3Rpb24nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJlY2VudFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNo
UG9wdXBNZW51Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29y
a2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERh
dGEnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YS5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0YS5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcic6IFsnPFdl
YkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGQ0ZDkxMzczOTA4N2Jj
YjE0ZDgyMjMxNWE4OGNkODQ4YzRmNmNmMzUuLjQ3MjE4ZDJkZmYyYjBkNGYyYTYzMTI0YzBjODky
NTE0N2UxMjE3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBA
IC03NiwyNCArNzYsMjQgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpc2Nvbm5lY3Rl
ZEZyb21XZWJQcm9jZXNzKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cmVqZWN0Sm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0YSYg
ZXhjZXB0aW9uRGF0YSkKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWplY3RKb2JJbkNs
aWVudChTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBjb25zdCBFeGNl
cHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6Sm9iUmVqZWN0ZWRJblNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwgZXhj
ZXB0aW9uRGF0YSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
Sm9iUmVqZWN0ZWRJblNlcnZlcihqb2JJZGVudGlmaWVyLCBleGNlcHRpb25EYXRhKSk7CiB9CiAK
LXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGll
bnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmll
ciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIHJlZ2lzdHJhdGlvbkRhdGEs
IFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCit2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KFNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhJiByZWdpc3RyYXRpb25EYXRhLCBTaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKQogewotICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6UmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JE
YXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9uRGF0YSwgc2hvdWxkTm90aWZ5V2hlblJlc29sdmVk
KSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpSZWdpc3RyYXRp
b25Kb2JSZXNvbHZlZEluU2VydmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbkRhdGEsIHNo
b3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6cmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5LCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0
KQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVVbnJlZ2lzdHJhdGlvbkpvYklu
Q2xpZW50KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSwgYm9vbCB1bnJlZ2lz
dHJhdGlvblJlc3VsdCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OlVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwg
dW5yZWdpc3RyYXRpb25SZXN1bHQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OlVucmVnaXN0cmF0aW9uSm9iUmVzb2x2ZWRJblNlcnZlcihqb2JJZGVudGlmaWVy
LCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkpOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25LZXkmIHJlZ2lzdHJhdGlvbktleSwgRmV0Y2hPcHRpb25zOjpDYWNoZSBjYWNoZVBvbGljeSkK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoSW5DbGllbnQoU2Vy
dmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5LCBGZXRjaE9wdGlvbnM6OkNhY2hlIGNh
Y2hlUG9saWN5KQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
U3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
S2V5LCBjYWNoZVBvbGljeSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6U3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRp
b25LZXksIGNhY2hlUG9saWN5KSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1
cGRhdGVSZWdpc3RyYXRpb25TdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSBzdGF0
ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyRGF0YT4mIHNlcnZpY2VXb3JrZXJE
YXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDNiOTNlMzgwNjg1
ODkxYmI0OTg2NDY4NjFmMjgwZDM0Nzc0NWQ0MDYuLmUyNDRjZGM5MTRlMTlmZmZhMjcwNTFjMzAw
N2RiZTkzYjkzNzIxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAg
LTcxLDEwICs3MSwxMCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50IFNX
U2VydmVyOjpDb25uZWN0aW9uIChNZXNzYWdlcyB0byB0aGUgY2xpZW50IFdlYlByb2Nlc3MpCi0g
ICAgdm9pZCByZWplY3RKb2JJbkNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXImLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJikgZmluYWw7Ci0g
ICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEmLCBXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpIGZp
bmFsOwotICAgIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpIGZp
bmFsOwotICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkNhY2hlKSBmaW5hbDsK
KyAgICB2b2lkIHJlamVjdEpvYkluQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBy
ZXNvbHZlUmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiwg
V2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKSBmaW5hbDsKKyAgICB2b2lkIHJlc29s
dmVVbnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9v
bCB1bnJlZ2lzdHJhdGlvblJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNo
SW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6
OkNhY2hlKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlSW5DbGllbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyRGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRl
SW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZGJhNjQ3ZWI3ZGY3MjY1MTYwNGJhNWVl
ZTI2MGU2Zjk4ZDMyNTRjOC4uNTZkMmU3ODU5MWJjY2Y4MzM5MDNkNTk5NzE1YjUzNDBiOWNlYzgy
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQsMTAgKzI0LDEw
IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgIyBXaGVuIHBv
c3NpYmxlLCB0aGVzZSBtZXNzYWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgZGlyZWN0bHkgYnkgV2Vi
Q29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb24KLSAgICBKb2JSZWplY3RlZEluU2VydmVyKHN0cnVj
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKLSAgICBSZWdpc3Ry
YXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YSByZWdpc3RyYXRpb24sIGVudW0gV2ViQ29yZTo6U2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKLSAgICBVbnJlZ2lz
dHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJK
b2JEYXRhSWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmllciwgYm9vbCB1bnJlZ2lzdHJhdGlvblJl
c3VsdCkKLSAgICBTdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5LCBXZWJDb3JlOjpGZXRj
aE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQorICAgIEpvYlJlamVjdGVkSW5TZXJ2ZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIHN0cnVj
dCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKKyAgICBSZWdpc3RyYXRpb25Kb2JS
ZXNvbHZlZEluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRh
dGFJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEgcmVnaXN0cmF0aW9uLCBlbnVtIFdlYkNvcmU6OlNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBz
aG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCisgICAgVW5yZWdpc3RyYXRpb25Kb2JSZXNvbHZlZElu
U2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlm
aWVyLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KQorICAgIFN0YXJ0U2NyaXB0RmV0Y2hGb3JT
ZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iRGF0YUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5
LCBXZWJDb3JlOjpGZXRjaE9wdGlvbnM6OkNhY2hlIGNhY2hlUG9saWN5KQogICAgIFVwZGF0ZVJl
Z2lzdHJhdGlvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIsIGVudW0gV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0
YXRlIHN0YXRlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhPiBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKICAgICBVcGRhdGVXb3JrZXJTdGF0ZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51bSBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyU3RhdGUgc3RhdGUpCiAgICAgRmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikK
</data>

          </attachment>
      

    </bug>

</bugzilla>