<?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>180261</bug_id>
          
          <creation_ts>2017-12-01 10:22:45 -0800</creation_ts>
          <short_desc>Implement https://w3c.github.io/ServiceWorker/#clients-claim</short_desc>
          <delta_ts>2017-12-06 10:27:52 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=180481</see_also>
          <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>180382</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1376883</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-01 10:22:45 -0800</bug_when>
    <thetext>Implement https://w3c.github.io/ServiceWorker/#clients-claim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376903</commentid>
    <comment_count>1</comment_count>
      <attachid>328118</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-01 10:37:13 -0800</bug_when>
    <thetext>Created attachment 328118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377792</commentid>
    <comment_count>2</comment_count>
      <attachid>328365</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-04 11:25:57 -0800</bug_when>
    <thetext>Created attachment 328365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377836</commentid>
    <comment_count>3</comment_count>
      <attachid>328365</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 12:48:00 -0800</bug_when>
    <thetext>Comment on attachment 328365
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        Update setting active service woker within ScriptExecutionContext to not do any notification to the storage process.

typo: woker

&gt; Source/WebCore/workers/service/SWClientConnection.cpp:222
&gt; +        client-&gt;setActiveServiceWorker(ServiceWorker::getOrCreate(*client, ServiceWorkerData { newController }), ScriptExecutionContext::ShouldNotifyServiceWorkerConnection::No);

notifyClientsOfControllerChange() is also called from activate() for example. How does the server know the client&apos;s new controlling worker if you use ShouldNotifyServiceWorkerConnection::No here?

&gt; Source/WebCore/workers/service/server/SWServer.cpp:371
&gt; +            auto controllingRegistration = m_registrations.get(m_runningOrTerminatingWorkers.get(result.iterator-&gt;value)-&gt;registrationKey());

The spec says to call &quot;Handle Service Worker Client Unload&quot;. Where do you do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377843</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-04 13:11:37 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/workers/service/SWClientConnection.cpp:222
&gt; &gt; +        client-&gt;setActiveServiceWorker(ServiceWorker::getOrCreate(*client, ServiceWorkerData { newController }), ScriptExecutionContext::ShouldNotifyServiceWorkerConnection::No);
&gt; 
&gt; notifyClientsOfControllerChange() is also called from activate() for
&gt; example. How does the server know the client&apos;s new controlling worker if you
&gt; use ShouldNotifyServiceWorkerConnection::No here?

I see, it is used for that purpose as well.
I think SWServer should set it in StorageProcess without having to wait for WebProcess to set it on its client.
 
&gt; &gt; Source/WebCore/workers/service/server/SWServer.cpp:371
&gt; &gt; +            auto controllingRegistration = m_registrations.get(m_runningOrTerminatingWorkers.get(result.iterator-&gt;value)-&gt;registrationKey());
&gt; 
&gt; The spec says to call &quot;Handle Service Worker Client Unload&quot;. Where do you do
&gt; this?

In the line just after, when removing client from registration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1377848</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 13:13:26 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; &gt; &gt; Source/WebCore/workers/service/SWClientConnection.cpp:222
&gt; &gt; &gt; +        client-&gt;setActiveServiceWorker(ServiceWorker::getOrCreate(*client, ServiceWorkerData { newController }), ScriptExecutionContext::ShouldNotifyServiceWorkerConnection::No);
&gt; &gt; 
&gt; &gt; notifyClientsOfControllerChange() is also called from activate() for
&gt; &gt; example. How does the server know the client&apos;s new controlling worker if you
&gt; &gt; use ShouldNotifyServiceWorkerConnection::No here?
&gt; 
&gt; I see, it is used for that purpose as well.
&gt; I think SWServer should set it in StorageProcess without having to wait for
&gt; WebProcess to set it on its client.

Sure, but I do not think it is done currently so the patch would regress things.

&gt;  
&gt; &gt; &gt; Source/WebCore/workers/service/server/SWServer.cpp:371
&gt; &gt; &gt; +            auto controllingRegistration = m_registrations.get(m_runningOrTerminatingWorkers.get(result.iterator-&gt;value)-&gt;registrationKey());
&gt; &gt; 
&gt; &gt; The spec says to call &quot;Handle Service Worker Client Unload&quot;. Where do you do
&gt; &gt; this?
&gt; 
&gt; In the line just after, when removing client from registration.

Actually, client unload should do these too:
If registration’s uninstalling flag is set, invoke Try Clear Registration with registration.
If registration is not null, invoke Try Activate with registration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378229</commentid>
    <comment_count>6</comment_count>
      <attachid>328470</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-05 10:58:43 -0800</bug_when>
    <thetext>Created attachment 328470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378277</commentid>
    <comment_count>7</comment_count>
      <attachid>328470</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-05 12:20:24 -0800</bug_when>
    <thetext>Comment on attachment 328470
Patch

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

r=me

&gt; Source/WebCore/workers/service/server/SWServerWorker.cpp:142
&gt; +    auto* registration = m_server.getRegistration(m_registrationKey);

I think a comment pointing the which part of which algorithm is implemented would be helpful here.

&gt; LayoutTests/http/tests/workers/service/serviceworkerclients-claim-worker.js:2
&gt; +    if (event.request.url.indexOf(&quot;pinkelephant&quot;) !== -1)

lol</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378294</commentid>
    <comment_count>8</comment_count>
      <attachid>328487</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-05 12:47:29 -0800</bug_when>
    <thetext>Created attachment 328487
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378295</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-05 12:48:23 -0800</bug_when>
    <thetext>Thanks for the review.

&gt; &gt; Source/WebCore/workers/service/server/SWServerWorker.cpp:142
&gt; &gt; +    auto* registration = m_server.getRegistration(m_registrationKey);
&gt; 
&gt; I think a comment pointing the which part of which algorithm is implemented
&gt; would be helpful here.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378315</commentid>
    <comment_count>10</comment_count>
      <attachid>328487</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 13:20:30 -0800</bug_when>
    <thetext>Comment on attachment 328487
Patch for landing

Rejecting attachment 328487 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 328487, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
.webkit.org/git/WebKit
   6a810d9..9772276  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 225530 = 6a810d93379060e6a3c4a9b02a287328d9de8c19
r225531 = 977227696fd292541c136dc33a2194e3c3116f3c
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: http://webkit-queues.webkit.org/results/5505205</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378320</commentid>
    <comment_count>11</comment_count>
      <attachid>328490</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-05 13:26:31 -0800</bug_when>
    <thetext>Created attachment 328490
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378341</commentid>
    <comment_count>12</comment_count>
      <attachid>328490</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 13:51:46 -0800</bug_when>
    <thetext>Comment on attachment 328490
Rebasing

Clearing flags on attachment: 328490

Committed r225537: &lt;https://trac.webkit.org/changeset/225537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378342</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 13:51:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378343</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-05 13:53:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/35863924&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328118</attachid>
            <date>2017-12-01 10:37:13 -0800</date>
            <delta_ts>2017-12-04 11:25:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180261-20171201103712.patch</filename>
            <type>text/plain</type>
            <size>48435</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzE5YTgxODNhODVlNWFl
MjQzMTcxNzE1YmQzM2IzZGZiZjcxNGU5Yi4uMGY0NjhhMWE4NWViNjY4OTAwNTA0ZDAwYzdiY2Y5
YjBjMjUwNGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYzIEBACiAyMDE3LTEyLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwKKworICAg
ICAgICBVcGRhdGUgc2V0dGluZyBhY3RpdmUgc2VydmljZSB3b2tlciB3aXRoaW4gU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCB0byBub3QgZG8gYW55IG5vdGlmaWNhdGlvbiB0byB0aGUgc3RvcmFnZSBw
cm9jZXNzLgorICAgICAgICBVc2UgdGhpcyBvcHRpb24gd2hlbiB0aGUgc3RvcmFnZSBwcm9jZXNz
IGlzIGFjdHVhbHkgc2V0dGluZyB0aGUgYWN0aXZlIHNlcnZpY2Ugd29ya2VyIGJhc2VkIG9uIHNl
cnZpY2Ugd29ya2VyIGNhbGxpbmcgY2xhaW0uCisKKyAgICAgICAgTWFkZSBzb21lIHJlZmFjdG9y
aW5nIHRvIG1vdmUgY29kZSBmcm9tIFNXU2VydmVySm9iUXVldWUgdG8gU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24gYXMgaXQgYmVsb25ncyBuYXR1cmFsbHkgdGhlcmUgYW5kIGl0IGlzIGJlaW5nIHVzZWQK
KyAgICAgICAgYXMgcGFydCBvZiBjbGFpbSBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBJbXBs
ZW1lbnQgY2xhaW0geSBnb2luZyB0byB0aGUgc3RvcmFnZSBwcm9jZXNzIGFuZCB0aGVuIGl0ZXJh
dGUgb3ZlciBjbGllbnRzIHRvIHNlZSB3aGV0aGVyIGFjdGl2ZSB3b3JrZXIgY2FuIGJlIHNldC4K
KworCisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0QWN0aXZlU2VydmljZVdvcmtlcik6
CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNX
Q2xpZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSk6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGFpbSk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaDoKKyAgICAgICAgKFdlYkNv
cmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpjbGVhckFsbCk6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlcjo6ZGlkRmluaXNoQWN0aXZhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlcjo6Y2xhaW0pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmRvUmVnaXN0
cmF0aW9uTWF0Y2hpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJKb2JRdWV1ZTo6c2NyaXB0RmV0Y2hGaW5p
c2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpzY3JpcHRDb250ZXh0
RmFpbGVkVG9TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlckpvYlF1ZXVlOjpkaWRG
aW5pc2hJbnN0YWxsKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVySm9iUXVldWU6OnJ1blVu
cmVnaXN0ZXJKb2IpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJK
b2JRdWV1ZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdp
c3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmNv
bnRyb2xDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246Omhh
bmRsZUNsaWVudFVubG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlv
bjo6aXNDb250cm9sbGluZ0NsaWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
clJlZ2lzdHJhdGlvbjo6dHJ5Q2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6Y2xlYXJSZWdpc3Ry
YXRpb25Xb3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmNs
ZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjp0cnlBY3RpdmF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWN0aXZhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmRpZEZpbmlzaEFjdGl2YXRp
b24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OmNsYWltKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6OmNs
YWltKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6
CisKKzIwMTctMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCiAgICAg
ICAgIEltcGxlbWVudCBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2xpZW50
cy1nZXQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDE2NwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGQ4ZTgxZjYwMmZjNWE2OTY0NjQ0YzljMDgxYmMxOGJhNWNlZjlj
NzkuLjA1YmE3ZGQwYzY4YzlhMmU2NDhjZTQwM2IzZDVkNWYxMmIwY2MzY2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDUgKzEsMjQgQEAKIDIwMTctMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCisgICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdv
cmtlci8jY2xpZW50cy1jbGFpbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgwMjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIElQQyBwbHVtYmVyeSBmb3IgY2xpZW50cyBjbGFpbSBiZXR3ZWVuIFNl
cnZpY2VXb3JrZXIgcHJvY2VzcyBhbmQgU3RvcmFnZSBwcm9jZXNzLgorCisgICAgICAgICogU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNs
YWltQ29tcGxldGVkKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpjbGFpbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpjbGFpbUNvbXBsZXRlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCisyMDE3LTEyLTAxICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAgICAgICBJbXBsZW1lbnQgaHR0
cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtZ2V0CiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxNjcKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDIxOTlkNGExZTE2
YWEzYmJlNjRlYzZhYzE0OTg5Y2NlZTQzYWI2NDEuLjM3YzJkYzc4M2M3M2M3ZGM0NjA3ZDI1MTA2
ZjI1NGRlMjRmODgwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5jcHAKQEAgLTU0MSw3ICs1NDEsNyBAQCBTZXJ2aWNlV29ya2VyKiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjphY3RpdmVTZXJ2aWNlV29ya2VyKCkgY29uc3QKICAgICByZXR1cm4gbV9h
Y3RpdmVTZXJ2aWNlV29ya2VyLmdldCgpOwogfQogCi12b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoUmVmUHRyPFNlcnZpY2VXb3JrZXI+JiYgc2Vydmlj
ZVdvcmtlcikKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0QWN0aXZlU2VydmljZVdv
cmtlcihSZWZQdHI8U2VydmljZVdvcmtlcj4mJiBzZXJ2aWNlV29ya2VyLCBTaG91bGROb3RpZnlT
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiBzaG91bGROb3RpZnkpCiB7CiAgICAgLy8gQWRkIHN1cHBv
cnQgZm9yIHdvcmtlcnMuCiAgICAgaWYgKCFpczxEb2N1bWVudD4oKnRoaXMpKQpAQCAtNTUxLDEy
ICs1NTEsMTIgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRBY3RpdmVTZXJ2aWNl
V29ya2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmIHNlcnYKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCku
c2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKHNlc3Npb25JRCgpKTsKLSAgICBpZiAo
bV9hY3RpdmVTZXJ2aWNlV29ya2VyKQorICAgIGlmIChzaG91bGROb3RpZnkgPT0gU2hvdWxkTm90
aWZ5U2VydmljZVdvcmtlckNvbm5lY3Rpb246OlllcyAmJiBtX2FjdGl2ZVNlcnZpY2VXb3JrZXIp
CiAgICAgICAgIGNvbm5lY3Rpb24uc2VydmljZVdvcmtlclN0b3BwZWRDb250cm9sbGluZ0NsaWVu
dChtX2FjdGl2ZVNlcnZpY2VXb3JrZXItPmlkZW50aWZpZXIoKSwgbV9hY3RpdmVTZXJ2aWNlV29y
a2VyLT5yZWdpc3RyYXRpb25JZGVudGlmaWVyKCksIGRvd25jYXN0PERvY3VtZW50PigqdGhpcyku
aWRlbnRpZmllcigpKTsKIAogICAgIG1fYWN0aXZlU2VydmljZVdvcmtlciA9IFdURk1vdmUoc2Vy
dmljZVdvcmtlcik7CiAKLSAgICBpZiAobV9hY3RpdmVTZXJ2aWNlV29ya2VyKQorICAgIGlmIChz
aG91bGROb3RpZnkgPT0gU2hvdWxkTm90aWZ5U2VydmljZVdvcmtlckNvbm5lY3Rpb246OlllcyAm
JiBtX2FjdGl2ZVNlcnZpY2VXb3JrZXIpCiAgICAgICAgIGNvbm5lY3Rpb24uc2VydmljZVdvcmtl
clN0YXJ0ZWRDb250cm9sbGluZ0NsaWVudChtX2FjdGl2ZVNlcnZpY2VXb3JrZXItPmlkZW50aWZp
ZXIoKSwgbV9hY3RpdmVTZXJ2aWNlV29ya2VyLT5yZWdpc3RyYXRpb25JZGVudGlmaWVyKCksIGRv
d25jYXN0PERvY3VtZW50PigqdGhpcykuaWRlbnRpZmllcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggMThkZDljNzU3ZDE5NzhlZWIw
ODJhNjc4MDliZmY0YzgwNTdiM2JkZi4uY2Q4ZjlhYjNjYzkxNDJlZTVmOThiYzc0NTc2ODMzZWJl
OTMzYzVjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CkBAIC0yMzksNyArMjM5LDkgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIFNlcnZpY2VXb3JrZXIqIGFjdGl2ZVNlcnZpY2VXb3JrZXIoKSBjb25zdDsKLSAgICB2
b2lkIHNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoUmVmUHRyPFNlcnZpY2VXb3JrZXI+JiYpOworCisg
ICAgZW51bSBjbGFzcyBTaG91bGROb3RpZnlTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiB7IFllcywg
Tm8gfTsKKyAgICB2b2lkIHNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoUmVmUHRyPFNlcnZpY2VXb3Jr
ZXI+JiYsIFNob3VsZE5vdGlmeVNlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gU2hvdWxkTm90aWZ5
U2VydmljZVdvcmtlckNvbm5lY3Rpb246Olllcyk7CiAKICAgICB2b2lkIHJlZ2lzdGVyU2Vydmlj
ZVdvcmtlcihTZXJ2aWNlV29ya2VyJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtl
cihTZXJ2aWNlV29ya2VyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDQ4ZjdlNGI5ZjlkNjg5ZWQzY2ZkN2Vi
ZTkxMjE0MmM0YTBlODRiMzIuLmNkY2VhOTIyMGRhOWM5ZjhiNGI0YzNjYjUyZjdjN2VlYTY0YTcw
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwCkBAIC0xOTMsOSArMTkzLDggQEAgdm9pZCBTV0NsaWVudENvbm5lY3Rp
b246Om5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxEb2N1bWVu
dEkKICAgICAgICAgaWYgKCFjbGllbnQpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICBBU1NFUlQoY2xpZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkpOwotICAgICAgICBBU1NFUlQo
Y2xpZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCktPmlkZW50aWZpZXIoKSAhPSBuZXdDb250cm9s
bGVyLmlkZW50aWZpZXIpOwotICAgICAgICBjbGllbnQtPnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIo
U2VydmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoKmNsaWVudCwgU2VydmljZVdvcmtlckRhdGEgeyBu
ZXdDb250cm9sbGVyIH0pKTsKKyAgICAgICAgQVNTRVJUKCFjbGllbnQtPmFjdGl2ZVNlcnZpY2VX
b3JrZXIoKSB8fCBjbGllbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKS0+aWRlbnRpZmllcigpICE9
IG5ld0NvbnRyb2xsZXIuaWRlbnRpZmllcik7CisgICAgICAgIGNsaWVudC0+c2V0QWN0aXZlU2Vy
dmljZVdvcmtlcihTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZSgqY2xpZW50LCBTZXJ2aWNlV29y
a2VyRGF0YSB7IG5ld0NvbnRyb2xsZXIgfSksIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNob3Vs
ZE5vdGlmeVNlcnZpY2VXb3JrZXJDb25uZWN0aW9uOjpObyk7CiAgICAgICAgIGlmIChhdXRvKiBj
b250YWluZXIgPSBjbGllbnQtPnNlcnZpY2VXb3JrZXJDb250YWluZXIoKSkKICAgICAgICAgICAg
IGNvbnRhaW5lci0+c2NoZWR1bGVUYXNrVG9GaXJlQ29udHJvbGxlckNoYW5nZUV2ZW50KCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ2xpZW50cy5jcHAKaW5kZXggNDY2Y2Q4OWRhNTNiOTU4NmQ3MGMwMjBiYTg0NWVhMWRl
ZjBjZDY2Yy4uYjVlYjhkY2UwNjRjZjk1NzNmMmM4YWJhYTY2Y2FmZDc0ZDNhZWYzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudHMuY3BwCkBAIC0xMjcsNyArMTI3LDM4IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6
Om9wZW5XaW5kb3coY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYKIAog
dm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Y2xhaW0oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogewotICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgQVNDSUlMaXRlcmFsKCJjbGllbnRzLmNsYWltKCkgaXMgbm90IHlldCBzdXBwb3J0ZWQi
KSB9KTsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAg
IGlmICghY29udGV4dCkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvJiBz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGU+KCpjb250ZXh0KTsKKworICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSBzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUudGhyZWFkKCkuaWRlbnRpZmllcigpOworCisgICAgaWYgKCFz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUucmVnaXN0cmF0aW9uKCkuYWN0aXZlKCkgfHwgc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLnJlZ2lzdHJhdGlvbigpLmFjdGl2ZSgpLT5pZGVudGlmaWVyKCkg
IT0gc2VydmljZVdvcmtlcklkZW50aWZpZXIpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCBBU0NJSUxpdGVyYWwoIlNlcnZpY2Ugd29ya2Vy
IGlzIG5vdCBhY3RpdmUiKSB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8g
cHJvbWlzZVBvaW50ZXIgPSBwcm9taXNlLnB0cigpOworCisgICAgYXV0byBzdGF0ZSA9IGFkb3B0
UmVmKCpuZXcgUmVxdWVzdFN0YXRlIHsgdGhpcywgcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZS50aHJlYWQoKS5pZGVudGlmaWVyKCkgfSk7CisgICAgbV9wZW5kaW5nUmVx
dWVzdHMuYWRkKHByb21pc2VQb2ludGVyLCBQZW5kaW5nUmVxdWVzdCB7IFdURk1vdmUocHJvbWlz
ZSksIG1ha2VQZW5kaW5nQWN0aXZpdHkoKnRoaXMpLCBzdGF0ZS5jb3B5UmVmKCkgfSk7CisKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtzdGF0ZSA9IFdURk1vdmUoc3RhdGUpXSAoKSBtdXRhYmxlIHsK
KyAgICAgICAgYXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
Y29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLT5jbGFpbShzdGF0ZS0+bV9pZGVudGlm
aWVyLCBbc3RhdGUgPSBXVEZNb3ZlKHN0YXRlKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBT
V0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2VydmljZVdvcmtlcihzdGF0
ZS0+bV9pZGVudGlmaWVyLCBbc3RhdGUgPSBXVEZNb3ZlKHN0YXRlKV0gKGF1dG8mKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBpZiAoIXN0YXRlLT5tX2NsaWVudHMpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICBhdXRvIHJlcXVlc3QgPSBzdGF0ZS0+bV9j
bGllbnRzLT5tX3BlbmRpbmdSZXF1ZXN0cy50YWtlKHN0YXRlLT5tX3Byb21pc2UpOworICAgICAg
ICAgICAgICAgIGlmIChyZXF1ZXN0LnByb21pc2UpCisgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QucHJvbWlzZS0+cmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAg
IH0pOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGVhclBlbmRpbmdSZXF1ZXN0
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaAppbmRleCA4MWIwMWJjOGRhOTEzZDgwN2NkODdj
ZmQ0ZTRkOTFkMDQ0YTY4MDgyLi4yOGQ2MjQzMjA4YmRlOTQwNzdmNTViMTkxMDg2ODI2Zjc5YWY1
MTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmgKQEAgLTY0LDYgKzY0LDggQEAgcHJpdmF0
ZToKICAgICBVUkwgbV9zY29wZTsKIH07CiAKK2lubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgYSwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CisKIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+CiB2b2lkIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IDhhMDYyZjM5YTY5NjE4
MjBiYzY4ZTFmMzBhZjJhMDQyZjU1MjcyMTIuLmMxZjQ4NzJlMzk2ZmMzYWMyYTUxZjA1ZTgzNWVh
NTM2MjRmMDkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGlj
OgogCiAgICAgICAgIHVzaW5nIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayA9IFdURjo6
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPj4mJik+OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5
SWRlbnRpZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBjbGFpbShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRDb25uZWN0aW9uKHN0ZDo6dW5pcXVlX3B0cjxDb25uZWN0aW9uPiYmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5k
ZXggNDY0YTQ5YWFkMWE2ZmQwOWI0ZjQ5MjU0ZTA2YzhiYmNhNWJiMGMwMy4uYjg2MGFlODY1MTBl
NWViYzE0MTc5Zjg3NGJkZTk4YTExYzU3ZjdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyRmV0Y2hSZXN1bHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgorI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0xMzgsNyArMTM5
LDcgQEAgdm9pZCBTV1NlcnZlcjo6Y2xlYXJBbGwoKQogewogICAgIG1fam9iUXVldWVzLmNsZWFy
KCk7CiAgICAgd2hpbGUgKCFtX3JlZ2lzdHJhdGlvbnMuaXNFbXB0eSgpKQotICAgICAgICBTV1Nl
cnZlckpvYlF1ZXVlOjpjbGVhclJlZ2lzdHJhdGlvbigqdGhpcywgKm1fcmVnaXN0cmF0aW9ucy5i
ZWdpbigpLT52YWx1ZSk7CisgICAgICAgIG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpLT52YWx1ZS0+
Y2xlYXIoKTsKICAgICBBU1NFUlQobV9yZWdpc3RyYXRpb25zQnlJRC5pc0VtcHR5KCkpOwogICAg
IG1fb3JpZ2luU3RvcmUtPmNsZWFyQWxsKCk7CiB9CkBAIC0yOTYsNyArMjk3LDcgQEAgdm9pZCBT
V1NlcnZlcjo6ZGlkRmluaXNoSW5zdGFsbChjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmkKIHZvaWQgU1dTZXJ2ZXI6OmRpZEZpbmlzaEFjdGl2YXRpb24oU1dT
ZXJ2ZXJXb3JrZXImIHdvcmtlcikKIHsKICAgICBpZiAoYXV0byogcmVnaXN0cmF0aW9uID0gZ2V0
UmVnaXN0cmF0aW9uKHdvcmtlci5yZWdpc3RyYXRpb25LZXkoKSkpCi0gICAgICAgIFNXU2VydmVy
Sm9iUXVldWU6OmRpZEZpbmlzaEFjdGl2YXRpb24oKnJlZ2lzdHJhdGlvbiwgd29ya2VyLmlkZW50
aWZpZXIoKSk7CisgICAgICAgIHJlZ2lzdHJhdGlvbi0+ZGlkRmluaXNoQWN0aXZhdGlvbih3b3Jr
ZXIuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBTV1NlcnZlcjo6d29ya2VyQ29udGV4dFRlcm1p
bmF0ZWQoU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKQEAgLTMxOSw2ICszMjAsMjYgQEAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXI6OmZpbmRDbGllbnRCeUlk
ZW50aWZpZXIoY29uc3QgQ2wKICAgICByZXR1cm4gKHBvc2l0aW9uICE9IG5vdEZvdW5kKSA/IHN0
ZDo6bWFrZV9vcHRpb25hbChjbGllbnRzW3Bvc2l0aW9uXS5kYXRhKSA6IHN0ZDo6bnVsbG9wdDsK
IH0KIAordm9pZCBTV1NlcnZlcjo6Y2xhaW0oU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKK3sKKyAg
ICBhdXRvJiBvcmlnaW4gPSB3b3JrZXIub3JpZ2luKCk7CisgICAgZm9yIChhdXRvJiBjbGllbnQg
OiBtX2NsaWVudHMuZ2V0KG9yaWdpbikpIHsKKyAgICAgICAgYXV0byogcmVnaXN0cmF0aW9uID0g
ZG9SZWdpc3RyYXRpb25NYXRjaGluZyhvcmlnaW4udG9wT3JpZ2luLCBjbGllbnQuZGF0YS51cmwp
OworICAgICAgICBpZiAoIXJlZ2lzdHJhdGlvbiB8fCByZWdpc3RyYXRpb24tPmtleSgpICE9IHdv
cmtlci5yZWdpc3RyYXRpb25LZXkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBp
ZiAocmVnaXN0cmF0aW9uLT5pc0NvbnRyb2xsaW5nQ2xpZW50KGNsaWVudC5pZGVudGlmaWVyKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGZvciAoYXV0byYgcmVnaXN0cmF0aW9u
IDogbV9yZWdpc3RyYXRpb25zLnZhbHVlcygpKSB7CisgICAgICAgICAgICBpZiAocmVnaXN0cmF0
aW9uLT5pc0NvbnRyb2xsaW5nQ2xpZW50KGNsaWVudC5pZGVudGlmaWVyKSkgeworICAgICAgICAg
ICAgICAgIHJlZ2lzdHJhdGlvbi0+aGFuZGxlQ2xpZW50VW5sb2FkKGNsaWVudC5pZGVudGlmaWVy
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICByZWdpc3RyYXRpb24tPmNvbnRyb2xDbGllbnQoY2xpZW50LmlkZW50aWZpZXIpOworICAg
IH0KK30KKwogdm9pZCBTV1NlcnZlcjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYg
cmVnaXN0cmF0aW9uS2V5KQogewogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV9jb25u
ZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkpOwpAQCAtNDk2LDkgKzUx
Nyw5IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJDb25uZWN0aW9uKENvbm5lY3Rpb24mIGNv
bm5lY3Rpb24pCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+dW5yZWdpc3RlclNlcnZlckNvbm5lY3Rp
b24oY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpOwogfQogCi1jb25zdCBTV1NlcnZlclJlZ2lzdHJh
dGlvbiogU1dTZXJ2ZXI6OmRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmln
aW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdAorU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24qIFNXU2VydmVyOjpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkKIHsKLSAgICBj
b25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogc2VsZWN0ZWRSZWdpc3RyYXRpb24gPSBudWxscHRy
OworICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBzZWxlY3RlZFJlZ2lzdHJhdGlvbiA9IG51bGxw
dHI7CiAgICAgZm9yIChhdXRvJiByZWdpc3RyYXRpb24gOiBtX3JlZ2lzdHJhdGlvbnMudmFsdWVz
KCkpIHsKICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24tPmtleSgpLmlzTWF0Y2hpbmcodG9wT3Jp
Z2luLCBjbGllbnRVUkwpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggZjUyYjkzMGU5MjE0
Njc2ZTI2OGI4M2Y0ZWNkYWVhZDEzNDgxZjg4NS4uZmQ3ODU4YjBiNWQ1ZDk2NTQ3ZGQ4OWUxMmM5
ZTg3NjE2MGNmZWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTM3LDcgKzEzNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
ZEZpbmlzaEluc3RhbGwoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3JrZXImLCBib29sIHdhc1N1Y2Nlc3NmdWwpOwogICAgIHZv
aWQgZGlkRmluaXNoQWN0aXZhdGlvbihTV1NlcnZlcldvcmtlciYpOwogICAgIHZvaWQgd29ya2Vy
Q29udGV4dFRlcm1pbmF0ZWQoU1dTZXJ2ZXJXb3JrZXImKTsKKwogICAgIHN0ZDo6b3B0aW9uYWw8
U2VydmljZVdvcmtlckNsaWVudERhdGE+IGZpbmRDbGllbnRCeUlkZW50aWZpZXIoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOworICAgIHZvaWQgY2xh
aW0oU1dTZXJ2ZXJXb3JrZXImKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQoKTsKICAgICAKQEAgLTE2Miw3ICsxNjQsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRDb250cm9sbGluZ0NsaWVudChDb25u
ZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBEb2N1bWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgc2VydmljZVdvcmtl
clN0b3BwZWRDb250cm9sbGluZ0NsaWVudChDb25uZWN0aW9uJiwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVudElkZW50
aWZpZXIpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24q
IGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmln
aW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogCiAgICAgdm9pZCBp
bnN0YWxsQ29udGV4dERhdGEoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJK
b2JRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVySm9iUXVldWUuY3BwCmluZGV4IDY5YTllYmQyNTgxODc4NWFmY2FmYmQwNDExNTJmNWE0NDJk
YjNjNDYuLjY1ZTg0NjljYjgwNjBkNGU4N2RjMTdiZWFmZmQxODllOGQxYzQyNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJKb2JRdWV1
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ckpvYlF1ZXVlLmNwcApAQCAtNzMsNyArNzMsNyBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnNj
cmlwdEZldGNoRmluaXNoZWQoU1dTZXJ2ZXI6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbgog
CiAgICAgICAgIC8vIElmIG5ld2VzdFdvcmtlciBpcyBudWxsLCBpbnZva2UgQ2xlYXIgUmVnaXN0
cmF0aW9uIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiBhcyBpdHMgYXJndW1lbnQuCiAg
ICAgICAgIGlmICghbmV3ZXN0V29ya2VyKQotICAgICAgICAgICAgY2xlYXJSZWdpc3RyYXRpb24o
bV9zZXJ2ZXIsICpyZWdpc3RyYXRpb24pOworICAgICAgICAgICAgcmVnaXN0cmF0aW9uLT5jbGVh
cigpOwogCiAgICAgICAgIC8vIEludm9rZSBGaW5pc2ggSm9iIHdpdGggam9iIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KICAgICAgICAgZmluaXNoQ3VycmVudEpvYigpOwpAQCAtMTA1LDcgKzEwNSw3
IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6c2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVuCiAKICAgICAvLyBJZiBuZXdlc3RXb3JrZXIgaXMg
bnVsbCwgaW52b2tlIENsZWFyIFJlZ2lzdHJhdGlvbiBhbGdvcml0aG0gcGFzc2luZyByZWdpc3Ry
YXRpb24gYXMgaXRzIGFyZ3VtZW50LgogICAgIGlmICghcmVnaXN0cmF0aW9uLT5nZXROZXdlc3RX
b3JrZXIoKSkKLSAgICAgICAgY2xlYXJSZWdpc3RyYXRpb24obV9zZXJ2ZXIsICpyZWdpc3RyYXRp
b24pOworICAgICAgICByZWdpc3RyYXRpb24tPmNsZWFyKCk7CiAKICAgICAvLyBJbnZva2UgRmlu
aXNoIEpvYiB3aXRoIGpvYiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgZmluaXNoQ3VycmVu
dEpvYigpOwpAQCAtMTc1LDcgKzE3NSw4IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6ZGlkRmlu
aXNoSW5zdGFsbChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvCiAKICAg
ICAgICAgLy8gSWYgbmV3ZXN0V29ya2VyIGlzIG51bGwsIGludm9rZSBDbGVhciBSZWdpc3RyYXRp
b24gYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uIGFzIGl0cyBhcmd1bWVudC4KICAgICAg
ICAgaWYgKCFyZWdpc3RyYXRpb24tPmdldE5ld2VzdFdvcmtlcigpKQotICAgICAgICAgICAgY2xl
YXJSZWdpc3RyYXRpb24obV9zZXJ2ZXIsICpyZWdpc3RyYXRpb24pOworICAgICAgICAgICAgcmVn
aXN0cmF0aW9uLT5jbGVhcigpOworCiAgICAgICAgIC8vIEludm9rZSBGaW5pc2ggSm9iIHdpdGgg
am9iIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICAgICAgZmluaXNoQ3VycmVudEpvYigpOwog
ICAgICAgICByZXR1cm47CkBAIC0xOTYsNzAgKzE5Nyw3IEBAIHZvaWQgU1dTZXJ2ZXJKb2JRdWV1
ZTo6ZGlkRmluaXNoSW5zdGFsbChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIm
IGpvCiAgICAgZmluaXNoQ3VycmVudEpvYigpOwogCiAgICAgLy8gRklYTUU6IFdhaXQgZm9yIGFs
bCB0aGUgdGFza3MgcXVldWVkIGJ5IFVwZGF0ZSBXb3JrZXIgU3RhdGUgaW52b2tlZCBpbiB0aGlz
IGFsZ29yaXRobSBoYXZlIGV4ZWN1dGVkLgotICAgIHRyeUFjdGl2YXRlKG1fc2VydmVyLCAqcmVn
aXN0cmF0aW9uKTsKLX0KLQotLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIv
I3RyeS1hY3RpdmF0ZS1hbGdvcml0aG0KLXZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6dHJ5QWN0aXZh
dGUoU1dTZXJ2ZXImIHNlcnZlciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikK
LXsKLSAgICAvLyBJZiByZWdpc3RyYXRpb24ncyB3YWl0aW5nIHdvcmtlciBpcyBudWxsLCByZXR1
cm4uCi0gICAgaWYgKCFyZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtlcigpKQotICAgICAgICByZXR1
cm47Ci0gICAgLy8gSWYgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBpcyBub3QgbnVsbCBh
bmQgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlcidzIHN0YXRlIGlzIGFjdGl2YXRpbmcsIHJl
dHVybi4KLSAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpICYmIHJlZ2lzdHJhdGlv
bi5hY3RpdmVXb3JrZXIoKS0+c3RhdGUoKSA9PSBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRp
bmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIEludm9rZSBBY3RpdmF0ZSB3aXRoIHJlZ2lz
dHJhdGlvbiBpZiBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZyBpcyB0cnVlOgotICAgIC8vIC0gcmVn
aXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBpcyBudWxsLgotICAgIC8vIC0gVGhlIHJlc3VsdCBv
ZiBydW5uaW5nIFNlcnZpY2UgV29ya2VyIEhhcyBObyBQZW5kaW5nIEV2ZW50cyB3aXRoIHJlZ2lz
dHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIgaXMgdHJ1ZSwKLSAgICAvLyAgIGFuZCBubyBzZXJ2aWNl
IHdvcmtlciBjbGllbnQgaXMgdXNpbmcgcmVnaXN0cmF0aW9uCi0gICAgLy8gRklYTUU6IENoZWNr
IGZvciB0aGUgc2tpcCB3YWl0aW5nIGZsYWcuCi0gICAgaWYgKCFyZWdpc3RyYXRpb24uYWN0aXZl
V29ya2VyKCkgfHwgIXJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKS0+aGFzUGVuZGluZ0V2ZW50
cygpKQotICAgICAgICBhY3RpdmF0ZShzZXJ2ZXIsIHJlZ2lzdHJhdGlvbik7Ci19Ci0KLS8vIGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNhY3RpdmF0ZQotdm9pZCBTV1NlcnZl
ckpvYlF1ZXVlOjphY3RpdmF0ZShTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJhdGlv
biYgcmVnaXN0cmF0aW9uKQotewotICAgIC8vIElmIHJlZ2lzdHJhdGlvbidzIHdhaXRpbmcgd29y
a2VyIGlzIG51bGwsIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgIGlmICghcmVnaXN0cmF0aW9uLndh
aXRpbmdXb3JrZXIoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgLy8gSWYgcmVnaXN0cmF0aW9u
J3MgYWN0aXZlIHdvcmtlciBpcyBub3QgbnVsbCwgdGhlbjoKLSAgICBpZiAoYXV0byogYWN0aXZl
V29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZVdvcmtlcigpKSB7Ci0gICAgICAgIC8vIFRlcm1p
bmF0ZSByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyLgotICAgICAgICBhY3RpdmVXb3JrZXIt
PnRlcm1pbmF0ZSgpOwotICAgICAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxn
b3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBhbmQgcmVkdW5kYW50
IGFzIHRoZSBhcmd1bWVudHMuCi0gICAgICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0
ZSgqYWN0aXZlV29ya2VyLCBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7Ci0gICAgfQot
ICAgIC8vIFJ1biB0aGUgVXBkYXRlIFJlZ2lzdHJhdGlvbiBTdGF0ZSBhbGdvcml0aG0gcGFzc2lu
ZyByZWdpc3RyYXRpb24sICJhY3RpdmUiIGFuZCByZWdpc3RyYXRpb24ncyB3YWl0aW5nIHdvcmtl
ciBhcyB0aGUgYXJndW1lbnRzLgotICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVSZWdpc3RyYXRpb25T
dGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6OkFjdGl2ZSwgcmVnaXN0cmF0aW9u
LndhaXRpbmdXb3JrZXIoKSk7Ci0gICAgLy8gUnVuIHRoZSBVcGRhdGUgUmVnaXN0cmF0aW9uIFN0
YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJhdGlvbiwgIndhaXRpbmciIGFuZCBudWxsIGFz
IHRoZSBhcmd1bWVudHMuCi0gICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6V2FpdGluZywgbnVsbHB0cik7Ci0gICAg
Ly8gUnVuIHRoZSBVcGRhdGUgV29ya2VyIFN0YXRlIGFsZ29yaXRobSBwYXNzaW5nIHJlZ2lzdHJh
dGlvbidzIGFjdGl2ZSB3b3JrZXIgYW5kIGFjdGl2YXRpbmcgYXMgdGhlIGFyZ3VtZW50cy4KLSAg
ICByZWdpc3RyYXRpb24udXBkYXRlV29ya2VyU3RhdGUoKnJlZ2lzdHJhdGlvbi5hY3RpdmVXb3Jr
ZXIoKSwgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKLSAgICAvLyBGSVhNRTogRm9y
IGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNsaWVudCB3aG9zZSBjcmVhdGlvbiBVUkwgbWF0
Y2hlcyByZWdpc3RyYXRpb24ncyBzY29wZSB1cmwuLi4KLQotICAgIC8vIEZvciBlYWNoIHNlcnZp
Y2Ugd29ya2VyIGNsaWVudCBjbGllbnQgd2hvIGlzIHVzaW5nIHJlZ2lzdHJhdGlvbjoKLSAgICAv
LyAtIFNldCBjbGllbnQncyBhY3RpdmUgd29ya2VyIHRvIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3
b3JrZXIuCi0gICAgLy8gLSBJbnZva2UgTm90aWZ5IENvbnRyb2xsZXIgQ2hhbmdlIGFsZ29yaXRo
bSB3aXRoIGNsaWVudCBhcyB0aGUgYXJndW1lbnQuCi0gICAgcmVnaXN0cmF0aW9uLm5vdGlmeUNs
aWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoKTsKLQotICAgIC8vIEZJWE1FOiBJbnZva2UgUnVuIFNl
cnZpY2UgV29ya2VyIGFsZ29yaXRobSB3aXRoIGFjdGl2ZVdvcmtlciBhcyB0aGUgYXJndW1lbnQu
Ci0KLSAgICAvLyBRdWV1ZSBhIHRhc2sgdG8gZmlyZSB0aGUgYWN0aXZhdGUgZXZlbnQuCi0gICAg
QVNTRVJUKHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKSk7Ci0gICAgc2VydmVyLmZpcmVBY3Rp
dmF0ZUV2ZW50KCpyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCkpOwotfQotCi0vLyBodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUgKHBvc3QgYWN0aXZhdGUgZXZl
bnQgc3RlcHMpLgotdm9pZCBTV1NlcnZlckpvYlF1ZXVlOjpkaWRGaW5pc2hBY3RpdmF0aW9uKFNX
U2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQotewotICAgIGlmICghcmVnaXN0cmF0aW9uLmFjdGl2
ZVdvcmtlcigpIHx8IHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKS0+aWRlbnRpZmllcigpICE9
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBSdW4g
dGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uJ3Mg
YWN0aXZlIHdvcmtlciBhbmQgYWN0aXZhdGVkIGFzIHRoZSBhcmd1bWVudHMuCi0gICAgcmVnaXN0
cmF0aW9uLnVwZGF0ZVdvcmtlclN0YXRlKCpyZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNl
cnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGVkKTsKKyAgICByZWdpc3RyYXRpb24tPnRyeUFjdGl2
YXRlKCk7CiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNydW4t
am9iCkBAIC0zNDYsNDggKzI4NCwxMCBAQCB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1blVucmVn
aXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICBtX3NlcnZlci5y
ZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2Ioam9iLCBtX3JlZ2lzdHJhdGlvbktleSwgdHJ1ZSk7CiAK
ICAgICAvLyBJbnZva2UgVHJ5IENsZWFyIFJlZ2lzdHJhdGlvbiB3aXRoIHJlZ2lzdHJhdGlvbi4K
LSAgICB0cnlDbGVhclJlZ2lzdHJhdGlvbigqcmVnaXN0cmF0aW9uKTsKKyAgICByZWdpc3RyYXRp
b24tPnRyeUNsZWFyKCk7CiAgICAgZmluaXNoQ3VycmVudEpvYigpOwogfQogCi0vLyBodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jdHJ5LWNsZWFyLXJlZ2lzdHJhdGlvbi1hbGdv
cml0aG0KLXZvaWQgU1dTZXJ2ZXJKb2JRdWV1ZTo6dHJ5Q2xlYXJSZWdpc3RyYXRpb24oU1dTZXJ2
ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikKLXsKLSAgICBpZiAocmVnaXN0cmF0aW9uLmhh
c0NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAo
cmVnaXN0cmF0aW9uLmluc3RhbGxpbmdXb3JrZXIoKSAmJiByZWdpc3RyYXRpb24uaW5zdGFsbGlu
Z1dvcmtlcigpLT5oYXNQZW5kaW5nRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAo
cmVnaXN0cmF0aW9uLndhaXRpbmdXb3JrZXIoKSAmJiByZWdpc3RyYXRpb24ud2FpdGluZ1dvcmtl
cigpLT5oYXNQZW5kaW5nRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAocmVnaXN0
cmF0aW9uLmFjdGl2ZVdvcmtlcigpICYmIHJlZ2lzdHJhdGlvbi5hY3RpdmVXb3JrZXIoKS0+aGFz
UGVuZGluZ0V2ZW50cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjbGVhclJlZ2lzdHJhdGlv
bihtX3NlcnZlciwgcmVnaXN0cmF0aW9uKTsKLX0KLQotLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L1NlcnZpY2VXb3JrZXIvI2NsZWFyLXJlZ2lzdHJhdGlvbgotc3RhdGljIHZvaWQgY2xlYXJSZWdp
c3RyYXRpb25Xb3JrZXIoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgU1dTZXJ2
ZXJXb3JrZXIqIHdvcmtlciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHN0YXRlKQot
ewotICAgIGlmICghd29ya2VyKQotICAgICAgICByZXR1cm47Ci0KLSAgICB3b3JrZXItPnRlcm1p
bmF0ZSgpOwotICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVXb3JrZXJTdGF0ZSgqd29ya2VyLCBTZXJ2
aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7Ci0gICAgcmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lz
dHJhdGlvblN0YXRlKHN0YXRlLCBudWxscHRyKTsKLX0KLQotLy8gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2NsZWFyLXJlZ2lzdHJhdGlvbgotdm9pZCBTV1NlcnZlckpvYlF1
ZXVlOjpjbGVhclJlZ2lzdHJhdGlvbihTV1NlcnZlciYgc2VydmVyLCBTV1NlcnZlclJlZ2lzdHJh
dGlvbiYgcmVnaXN0cmF0aW9uKQotewotICAgIGNsZWFyUmVnaXN0cmF0aW9uV29ya2VyKHJlZ2lz
dHJhdGlvbiwgcmVnaXN0cmF0aW9uLmluc3RhbGxpbmdXb3JrZXIoKSwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvblN0YXRlOjpJbnN0YWxsaW5nKTsKLSAgICBjbGVhclJlZ2lzdHJhdGlvbldvcmtl
cihyZWdpc3RyYXRpb24sIHJlZ2lzdHJhdGlvbi53YWl0aW5nV29ya2VyKCksIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZTo6V2FpdGluZyk7Ci0gICAgY2xlYXJSZWdpc3RyYXRpb25Xb3Jr
ZXIocmVnaXN0cmF0aW9uLCByZWdpc3RyYXRpb24uYWN0aXZlV29ya2VyKCksIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlKTsKLQotICAgIC8vIFJlbW92ZSBzY29wZSB0byBy
ZWdpc3RyYXRpb24gbWFwW3Njb3BlU3RyaW5nXS4KLSAgICBzZXJ2ZXIucmVtb3ZlUmVnaXN0cmF0
aW9uKHJlZ2lzdHJhdGlvbi5rZXkoKSk7Ci19Ci0KIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9T
ZXJ2aWNlV29ya2VyLyN1cGRhdGUtYWxnb3JpdGhtCiB2b2lkIFNXU2VydmVySm9iUXVldWU6OnJ1
blVwZGF0ZUpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlckpvYlF1ZXVl
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVl
dWUuaAppbmRleCAyM2JhMDdhYWM1MzY2NDY5MDY1MTg1OGQwNzA0YTE1ZDFmODk3ZGQ3Li44MTA5
MTVkYzhhOGJkMDdmOGQ0YjcwNjgwMGQwNmY4YWU0NTM5ZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuaApA
QCAtNTIsMTEgKzUyLDggQEAgcHVibGljOgogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRv
U3RhcnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdm9pZCBzY3JpcHRDb250
ZXh0U3RhcnRlZChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29s
IHdhc1N1Y2Nlc3NmdWwpOwotICAgIHN0YXRpYyB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBk
aWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZSgpOwogCi0gICAgc3RhdGljIHZvaWQgY2xlYXJS
ZWdpc3RyYXRpb24oU1dTZXJ2ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwotCiBwcml2YXRl
OgogICAgIHZvaWQgam9iVGltZXJGaXJlZCgpOwogICAgIHZvaWQgcnVuTmV4dEpvYlN5bmNocm9u
b3VzbHkoKTsKQEAgLTY3LDEwICs2NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5VbnJlZ2lz
dGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAgICAgdm9pZCBydW5VcGRhdGVK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAotICAgIHZvaWQgdHJ5Q2xlYXJSZWdp
c3RyYXRpb24oU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKICAgICB2b2lkIGluc3RhbGwoU1dTZXJ2
ZXJSZWdpc3RyYXRpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0gICAgc3RhdGljIHZv
aWQgdHJ5QWN0aXZhdGUoU1dTZXJ2ZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwotICAgIHN0
YXRpYyB2b2lkIGFjdGl2YXRlKFNXU2VydmVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKIAog
ICAgIGJvb2wgaXNDdXJyZW50bHlQcm9jZXNzaW5nSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4
IDJlY2NmNTg4NzExNWIzZDNmY2IwMDBkOThmZjY3M2NmZTM3ZWQ5MTcuLmFlNTQ0ZTY3MjVhODhl
YmI2ZTc1ZmE4NzM5OTQ0NzA4M2M0MTkyNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
CkBAIC0xNzQsMTIgKzE3NCwxNDAgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6bm90aWZ5
Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSgpCiAgICAgfQogfQogCit2b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjpjb250cm9sQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgQVNTRVJUKGFjdGl2ZVdvcmtlcigpKTsKKworICAgIGFkZENsaWVu
dFVzaW5nUmVnaXN0cmF0aW9uKGlkZW50aWZpZXIpOworCisgICAgSGFzaFNldDxEb2N1bWVudElk
ZW50aWZpZXI+IGlkZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLmFkZChpZGVudGlmaWVyLmNv
bnRleHRJZGVudGlmaWVyKTsKKyAgICBtX3NlcnZlci5nZXRDb25uZWN0aW9uKGlkZW50aWZpZXIu
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpLT5ub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hh
bmdlKGlkZW50aWZpZXJzLCBhY3RpdmVXb3JrZXIoKS0+ZGF0YSgpKTsKK30KKwordm9pZCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6aGFuZGxlQ2xpZW50VW5sb2FkKFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgcmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRp
b24oaWRlbnRpZmllcik7CisgICAgaWYgKGhhc0NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbigpKQor
ICAgICAgICByZXR1cm47CisgICAgaWYgKGlzVW5pbnN0YWxsaW5nKCkgJiYgdHJ5Q2xlYXIoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIHRyeUFjdGl2YXRlKCk7Cit9CisKIHZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgbV9jb25uZWN0
aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zLnJlbW92ZUFsbChzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcik7CiAgICAgbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24ucmVtb3ZlKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KIAorYm9vbCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6aXND
b250cm9sbGluZ0NsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVy
KSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5nZXQoaWRl
bnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikuY29udGFpbnMoaWRlbnRpZmllci5j
b250ZXh0SWRlbnRpZmllcik7Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyN0cnktY2xlYXItcmVnaXN0cmF0aW9uLWFsZ29yaXRobQorYm9vbCBTV1NlcnZlclJl
Z2lzdHJhdGlvbjo6dHJ5Q2xlYXIoKQoreworICAgIGlmIChoYXNDbGllbnRzVXNpbmdSZWdpc3Ry
YXRpb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGluc3RhbGxpbmdXb3Jr
ZXIoKSAmJiBpbnN0YWxsaW5nV29ya2VyKCktPmhhc1BlbmRpbmdFdmVudHMoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIGlmICh3YWl0aW5nV29ya2VyKCkgJiYgd2FpdGluZ1dvcmtlcigp
LT5oYXNQZW5kaW5nRXZlbnRzKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoYWN0
aXZlV29ya2VyKCkgJiYgYWN0aXZlV29ya2VyKCktPmhhc1BlbmRpbmdFdmVudHMoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgY2xlYXIoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ly8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsZWFyLXJlZ2lzdHJhdGlv
bgorc3RhdGljIHZvaWQgY2xlYXJSZWdpc3RyYXRpb25Xb3JrZXIoU1dTZXJ2ZXJSZWdpc3RyYXRp
b24mIHJlZ2lzdHJhdGlvbiwgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlciwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvblN0YXRlIHN0YXRlKQoreworICAgIGlmICghd29ya2VyKQorICAgICAgICByZXR1
cm47CisKKyAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOworICAgIHJlZ2lzdHJhdGlvbi51cGRhdGVX
b3JrZXJTdGF0ZSgqd29ya2VyLCBTZXJ2aWNlV29ya2VyU3RhdGU6OlJlZHVuZGFudCk7CisgICAg
cmVnaXN0cmF0aW9uLnVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKHN0YXRlLCBudWxscHRyKTsKK30K
KworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsZWFyLXJlZ2lzdHJh
dGlvbgordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXIoKQoreworICAgIGNsZWFyUmVn
aXN0cmF0aW9uV29ya2VyKCp0aGlzLCBpbnN0YWxsaW5nV29ya2VyKCksIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25TdGF0ZTo6SW5zdGFsbGluZyk7CisgICAgY2xlYXJSZWdpc3RyYXRpb25Xb3Jr
ZXIoKnRoaXMsIHdhaXRpbmdXb3JrZXIoKSwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRl
OjpXYWl0aW5nKTsKKyAgICBjbGVhclJlZ2lzdHJhdGlvbldvcmtlcigqdGhpcywgYWN0aXZlV29y
a2VyKCksIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlKTsKKworICAgIC8v
IFJlbW92ZSBzY29wZSB0byByZWdpc3RyYXRpb24gbWFwW3Njb3BlU3RyaW5nXS4KKyAgICBtX3Nl
cnZlci5yZW1vdmVSZWdpc3RyYXRpb24oa2V5KCkpOworfQorCisvLyBodHRwczovL3czYy5naXRo
dWIuaW8vU2VydmljZVdvcmtlci8jdHJ5LWFjdGl2YXRlLWFsZ29yaXRobQordm9pZCBTV1NlcnZl
clJlZ2lzdHJhdGlvbjo6dHJ5QWN0aXZhdGUoKQoreworICAgIC8vIElmIHJlZ2lzdHJhdGlvbidz
IHdhaXRpbmcgd29ya2VyIGlzIG51bGwsIHJldHVybi4KKyAgICBpZiAoIXdhaXRpbmdXb3JrZXIo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIC8vIElmIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3Jr
ZXIgaXMgbm90IG51bGwgYW5kIHJlZ2lzdHJhdGlvbidzIGFjdGl2ZSB3b3JrZXIncyBzdGF0ZSBp
cyBhY3RpdmF0aW5nLCByZXR1cm4uCisgICAgaWYgKGFjdGl2ZVdvcmtlcigpICYmIGFjdGl2ZVdv
cmtlcigpLT5zdGF0ZSgpID09IFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGluZykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gSW52b2tlIEFjdGl2YXRlIHdpdGggcmVnaXN0cmF0aW9uIGlm
IGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGlzIHRydWU6CisgICAgLy8gLSByZWdpc3RyYXRpb24n
cyBhY3RpdmUgd29ya2VyIGlzIG51bGwuCisgICAgLy8gLSBUaGUgcmVzdWx0IG9mIHJ1bm5pbmcg
U2VydmljZSBXb3JrZXIgSGFzIE5vIFBlbmRpbmcgRXZlbnRzIHdpdGggcmVnaXN0cmF0aW9uJ3Mg
YWN0aXZlIHdvcmtlciBpcyB0cnVlLAorICAgIC8vICAgYW5kIG5vIHNlcnZpY2Ugd29ya2VyIGNs
aWVudCBpcyB1c2luZyByZWdpc3RyYXRpb24KKyAgICAvLyBGSVhNRTogQ2hlY2sgZm9yIHRoZSBz
a2lwIHdhaXRpbmcgZmxhZy4KKyAgICBpZiAoIWFjdGl2ZVdvcmtlcigpIHx8ICFhY3RpdmVXb3Jr
ZXIoKS0+aGFzUGVuZGluZ0V2ZW50cygpKQorICAgICAgICBhY3RpdmF0ZSgpOworfQorCisvLyBo
dHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jYWN0aXZhdGUKK3ZvaWQgU1dTZXJ2
ZXJSZWdpc3RyYXRpb246OmFjdGl2YXRlKCkKK3sKKyAgICAvLyBJZiByZWdpc3RyYXRpb24ncyB3
YWl0aW5nIHdvcmtlciBpcyBudWxsLCBhYm9ydCB0aGVzZSBzdGVwcy4KKyAgICBpZiAoIXdhaXRp
bmdXb3JrZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgcmVnaXN0cmF0aW9uJ3Mg
YWN0aXZlIHdvcmtlciBpcyBub3QgbnVsbCwgdGhlbjoKKyAgICBpZiAoYXV0byogd29ya2VyID0g
YWN0aXZlV29ya2VyKCkpIHsKKyAgICAgICAgLy8gVGVybWluYXRlIHJlZ2lzdHJhdGlvbidzIGFj
dGl2ZSB3b3JrZXIuCisgICAgICAgIHdvcmtlci0+dGVybWluYXRlKCk7CisgICAgICAgIC8vIFJ1
biB0aGUgVXBkYXRlIFdvcmtlciBTdGF0ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24n
cyBhY3RpdmUgd29ya2VyIGFuZCByZWR1bmRhbnQgYXMgdGhlIGFyZ3VtZW50cy4KKyAgICAgICAg
dXBkYXRlV29ya2VyU3RhdGUoKndvcmtlciwgU2VydmljZVdvcmtlclN0YXRlOjpSZWR1bmRhbnQp
OworICAgIH0KKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBSZWdpc3RyYXRpb24gU3RhdGUgYWxnb3Jp
dGhtIHBhc3NpbmcgcmVnaXN0cmF0aW9uLCAiYWN0aXZlIiBhbmQgcmVnaXN0cmF0aW9uJ3Mgd2Fp
dGluZyB3b3JrZXIgYXMgdGhlIGFyZ3VtZW50cy4KKyAgICB1cGRhdGVSZWdpc3RyYXRpb25TdGF0
ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGU6OkFjdGl2ZSwgd2FpdGluZ1dvcmtlcigp
KTsKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBSZWdpc3RyYXRpb24gU3RhdGUgYWxnb3JpdGhtIHBh
c3NpbmcgcmVnaXN0cmF0aW9uLCAid2FpdGluZyIgYW5kIG51bGwgYXMgdGhlIGFyZ3VtZW50cy4K
KyAgICB1cGRhdGVSZWdpc3RyYXRpb25TdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3Rh
dGU6OldhaXRpbmcsIG51bGxwdHIpOworICAgIC8vIFJ1biB0aGUgVXBkYXRlIFdvcmtlciBTdGF0
ZSBhbGdvcml0aG0gcGFzc2luZyByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyIGFuZCBhY3Rp
dmF0aW5nIGFzIHRoZSBhcmd1bWVudHMuCisgICAgdXBkYXRlV29ya2VyU3RhdGUoKmFjdGl2ZVdv
cmtlcigpLCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpOworICAgIC8vIEZJWE1FOiBG
b3IgZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgY2xpZW50IHdob3NlIGNyZWF0aW9uIFVSTCBt
YXRjaGVzIHJlZ2lzdHJhdGlvbidzIHNjb3BlIHVybC4uLgorCisgICAgLy8gRm9yIGVhY2ggc2Vy
dmljZSB3b3JrZXIgY2xpZW50IGNsaWVudCB3aG8gaXMgdXNpbmcgcmVnaXN0cmF0aW9uOgorICAg
IC8vIC0gU2V0IGNsaWVudCdzIGFjdGl2ZSB3b3JrZXIgdG8gcmVnaXN0cmF0aW9uJ3MgYWN0aXZl
IHdvcmtlci4KKyAgICAvLyAtIEludm9rZSBOb3RpZnkgQ29udHJvbGxlciBDaGFuZ2UgYWxnb3Jp
dGhtIHdpdGggY2xpZW50IGFzIHRoZSBhcmd1bWVudC4KKyAgICBub3RpZnlDbGllbnRzT2ZDb250
cm9sbGVyQ2hhbmdlKCk7CisKKyAgICAvLyBGSVhNRTogSW52b2tlIFJ1biBTZXJ2aWNlIFdvcmtl
ciBhbGdvcml0aG0gd2l0aCBhY3RpdmVXb3JrZXIgYXMgdGhlIGFyZ3VtZW50LgorCisgICAgLy8g
UXVldWUgYSB0YXNrIHRvIGZpcmUgdGhlIGFjdGl2YXRlIGV2ZW50LgorICAgIEFTU0VSVChhY3Rp
dmVXb3JrZXIoKSk7CisgICAgbV9zZXJ2ZXIuZmlyZUFjdGl2YXRlRXZlbnQoKmFjdGl2ZVdvcmtl
cigpKTsKK30KKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2FjdGl2
YXRlIChwb3N0IGFjdGl2YXRlIGV2ZW50IHN0ZXBzKS4KK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRp
b246OmRpZEZpbmlzaEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdv
cmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKCFhY3RpdmVXb3JrZXIoKSB8fCBhY3RpdmVXb3Jr
ZXIoKS0+aWRlbnRpZmllcigpICE9IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBSdW4gdGhlIFVwZGF0ZSBXb3JrZXIgU3RhdGUgYWxnb3JpdGhtIHBh
c3NpbmcgcmVnaXN0cmF0aW9uJ3MgYWN0aXZlIHdvcmtlciBhbmQgYWN0aXZhdGVkIGFzIHRoZSBh
cmd1bWVudHMuCisgICAgdXBkYXRlV29ya2VyU3RhdGUoKmFjdGl2ZVdvcmtlcigpLCBTZXJ2aWNl
V29ya2VyU3RhdGU6OkFjdGl2YXRlZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaApp
bmRleCA4YTEwYWYzZDY1MDQyN2JkOTlmMTdmN2YzZTUwZTEyNDBjNjAzZWFmLi4zZTMzMDEzOWEw
Nzk4ZjI5MDRiNGRkMzY4OWRmYTg2MTIwMzJhNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5o
CkBAIC03OCwxMiArNzgsMjIgQEAgcHVibGljOgogICAgIHZvaWQgYWRkQ2xpZW50VXNpbmdSZWdp
c3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKTsKICAgICB2b2lk
IHJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmVyQ29ubmVjdGlvbihTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBib29sIGlzQ29udHJvbGxpbmdDbGllbnQoU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpIGNvbnN0OwogCiAgICAgdm9pZCBub3RpZnlDbGll
bnRzT2ZDb250cm9sbGVyQ2hhbmdlKCk7CisgICAgdm9pZCBjb250cm9sQ2xpZW50KFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIGhhbmRsZUNsaWVudFVubG9hZChTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CisKKyAgICB2b2lkIGNsZWFyKCk7CisgICAgYm9v
bCB0cnlDbGVhcigpOworICAgIHZvaWQgdHJ5QWN0aXZhdGUoKTsKKyAgICB2b2lkIGRpZEZpbmlz
aEFjdGl2YXRpb24oU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIHZv
aWQgZm9yRWFjaENvbm5lY3Rpb24oY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpD
b25uZWN0aW9uJik+Jik7CiAKKyAgICB2b2lkIGFjdGl2YXRlKCk7CisKICAgICBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSBtX3JlZ2lzdHJhdGlvbktleTsKICAgICBTZXJ2aWNlV29ya2VyVXBk
YXRlVmlhQ2FjaGUgbV91cGRhdGVWaWFDYWNoZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcAppbmRleCA3MzdjNzhiYTU4NzNiNmFhYmZmZDdjZjY0MWYzY2M1YzI0MGMz
ZTlkLi4yZTZjYjMyYzQ4YzYwYzg3YmY1MmM5Y2MyZjcyODQ1ZjcyMDU4ZmIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0xMTQsNiArMTE0LDE0IEBAIHZv
aWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmCiAgICAgICAgIGdsb2JhbFNlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24oKS0+ZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZChyZXF1ZXN0SWRlbnRpZmll
ciwgd29ya2VyLT5maW5kQ2xpZW50QnlJZGVudGlmaWVyKGNsaWVudElkKSwgZmFsc2UpOwogfQog
Cit2b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xhaW0odWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQoreworICAgIGlmIChhdXRvKiB3b3JrZXIgPSBTV1NlcnZlcldvcmtlcjo6ZXhpc3RpbmdX
b3JrZXJGb3JJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSkgeworICAgICAgICB3
b3JrZXItPmNsYWltKCk7CisgICAgICAgIGdsb2JhbFNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24o
KS0+Y2xhaW1Db21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIpOworICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggMjYxYmM2ZGYxYTMxOGYzNzI5
NDRhNzY0MzRjMWU1ZjVjOTNiMmJlNC4uNjExMWFmMzU3N2QwZTNkOTNhNjAxMjkwZTU5ZWI2OGEx
YmE4Y2FiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC01MCw3
ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2
aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlQWN0aXZhdGVF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJt
aW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKKwogICAgIHZpcnR1YWwg
dm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJv
b2wgaGFzU2VjdXJpdHlFcnJvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGFpbUNvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcikgPSAwOwogCiAgICAgLy8gTWVzc2FnZXMgYmFj
ayBmcm9tIHRoZSBTVyBob3N0IHByb2Nlc3MKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjcmlw
dENvbnRleHRGYWlsZWRUb1N0YXJ0KGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyPiYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpOwpAQCAtNjAsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdv
cmtlclRlcm1pbmF0ZWQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllcih1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xhaW0odWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIHN0YXRpYyBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24qIGNvbm5lY3Rpb25Gb3JJZGVudGlmaWVyKFNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IDM3
ZTUzNjViMmU2MjM4NWRmOGQ5NjMwMTNlZDA2NWVmOWYwMTU3ZjMuLjQ2NGJiYjg4MDFhZDI2ZWFl
NzJlOTI4ZmFiMWZlZDYzOTYxYjk5NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCkBAIC0xMDMsNiArMTAz
LDExIEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IFNXU2VydmVyV29y
a2VyOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFNlCiAgICAgcmV0dXJuIG1fc2VydmVyLmZpbmRD
bGllbnRCeUlkZW50aWZpZXIob3JpZ2luKCksIGNsaWVudElkKTsKIH0KIAordm9pZCBTV1NlcnZl
cldvcmtlcjo6Y2xhaW0oKQoreworICAgIHJldHVybiBtX3NlcnZlci5jbGFpbSgqdGhpcyk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJXb3JrZXIuaAppbmRleCA2M2I0YTcwNjJkZjBlNDVhZTBkY2ExMGM2ZGExYjdjOTcz
NGQ5MDUyLi42MjI3Zjk5OTFkMTNhYjFkODcwNjg1NzAyODRjNjliNjVlOTA4YTAwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldv
cmtlci5oCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaEFjdGl2
YXRpb24oKTsKICAgICB2b2lkIGNvbnRleHRUZXJtaW5hdGVkKCk7CiAgICAgc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZmluZENsaWVudEJ5SWRlbnRpZmllcihTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBjbGFpbSgpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFNXU2VydmVyV29ya2VyKiBleGlzdGluZ1dvcmtlckZvcklkZW50aWZp
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDBlY2IyYzA3NDMyY2FmNWM3M2Zk
NWQ0MTE0OGZiN2JkYWQ1YjM2OTMuLjI0Njk0NjE1NDA0Mzk5MTM5ZWNmZGE1MGM3OTYzNTIzMzE3
YTYyOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwCkBAIC04MSw2ICs4MSwxMSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6ZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZQogICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaW5kQ2xpZW50
QnlJZGVudGlmaWVyQ29tcGxldGVkIHsgcmVxdWVzdElkZW50aWZpZXIsIGRhdGEsIGhhc1NlY3Vy
aXR5RXJyb3IgfSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpj
bGFpbUNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2xhaW1Db21wbGV0ZWQgeyBy
ZXF1ZXN0SWRlbnRpZmllciB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggODlhMGRjOTIwMTkzOWEzMTRiYTRmYTY5ZTg0
NWY4NTcxNjk2MmVlMC4uMjhhMzI0OWMyM2Y2NWU1OTM5YWE0YTYxMGFiNWI3NmJkYzg5YzUzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApA
QCAtNjAsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgdGVybWluYXRl
V29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lk
IGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+
JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSBmaW5hbDsKKyAgICB2b2lkIGNsYWltQ29tcGxldGVk
KHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKSBmaW5hbDsKIAogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1faXBjQ29ubmVjdGlvbjsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDBlZjAx
ODhmMTQxOTU0MzVkMWIwODM2ZmU3N2QzNDY2ODIzYjZjNmMuLjQ5OTE3YmE2NzI4M2E1ZmM5OTVh
OTFhODhiOWI2N2YzYjUxN2M2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBA
QCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gewogICAgIFNldFNl
cnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIsIGJvb2wgaGFzUGVuZGluZ0V2ZW50cyk7CiAgICAgV29ya2VyVGVybWlu
YXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAgICBG
aW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIp
OworICAgIENsYWltKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcAppbmRleCBhOGVlZDMxNTJiZmRkNGRhZTk5NGE1MzIzYTkzMjk2YTI5YWE5YWFm
Li4xMTEwY2Y3Zjk5MmVmN2U3OTBiMTU0ZGRlY2Q4NWU2YmJkNzFlYjA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yMTMsNiArMjEzLDE5IEBAIHZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQo
dWludDY0X3QgcmVxCiAgICAgfQogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpjbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllcjsK
KyAgICBtX2NsYWltUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CisgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpDbGFpbSB7IHJlcXVlc3RJZGVudGlmaWVy
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRl
bnRpZmllcikKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2xhaW1SZXF1ZXN0cy50YWtl
KGNsYWltUmVxdWVzdElkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjaygpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCA4ZjliNDA4MzgyZWI1ZmQzNmYyMDI2
YjdlMmRhZWMxNDRmNmM5YTgzLi4zMDE2MTEwMTMxZDkwOGUwMTVkNTIxZTE4Nzk5ZTE4NmYyZDdm
YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sKSBmaW5hbDsKICAgICB2b2lkIHdvcmtl
clRlcm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAg
IHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIEZpbmRDbGllbnRC
eUlkZW50aWZpZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAKICAgICAvLyBJUEMgbWVzc2FnZXMuCiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3Rh
cnRlZFdpdGhNZXNzYWdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyPiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7CkBAIC03MiwxMiArNzMsMTQgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPiYmLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpOworICAgIHZvaWQgY2xh
aW1Db21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcik7CiAKICAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwogICAgIHVpbnQ2
NF90IG1fcGFnZUlEIHsgMCB9OwogICAgIHVpbnQ2NF90IG1fcHJldmlvdXNTZXJ2aWNlV29ya2Vy
SUQgeyAwIH07CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q2FsbGJhY2s+IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOworICAgIEhhc2hNYXA8
dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9jbGFpbVJlcXVlc3Rz
OwogICAgIHVpbnQ2NF90IG1fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXgg
ZWJmMmI0ZTRmZjgzN2FlODlhYTIwNTYzYTY0ZmRlZjE1NGM0YmEzMC4uMjFhMDQ2MTU4NjcyZmQx
NGI4ZTZlM2E0NjU1MzNiYTIzNmU0NTQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIEZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgVGVybWluYXRlV29y
a2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmlu
ZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVu
dGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBk
YXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCisgICAgQ2xhaW1Db21wbGV0ZWQodWludDY0X3Qg
Y2xpZW50SWRSZXF1ZXN0SWRlbnRpZmllcikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmU5MDYxZjA5
Zjc4ODZmYmZjMTE4YmI2Y2M3ZDMxM2FjMWYyZDRlNC4uOTVjNzRlZmIxNDFhMjU2MzhjZGIwMDQ2
ZmQ4MDAyNzliNzkxOTdhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE3LTEyLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0td29ya2VyLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1j
bGFpbS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWw6IEFkZGVk
LgorCisyMDE3LTEyLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwogICAg
ICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVu
dHMtZ2V0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODAxNjcKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0td29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0td29ya2Vy
LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjhkZTAzZjMwMTkyMzc0YTMwMzU5MzVhNmYxM2Y3NDQzZmJkNzRkN2YK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS13b3JrZXIuanMKQEAgLTAsMCArMSwzNCBAQAor
c2VsZi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIGFzeW5jIChldmVudCkgPT4geworICAgIGlm
IChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCJwaW5rZWxlcGhhbnQiKSAhPT0gLTEpCisgICAg
ICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgiUEFTUyIpKTsKK30pOworCit2YXIg
dHJ5Q2xhaW1Qcm9taXNlID0gc2VsZi5jbGllbnRzLmNsYWltKCkudGhlbigoKSA9PiB7CisgICAg
cmV0dXJuICJGQUlMOiBjbGFpbSBkaWQgbm90IHRocm93IjsKK30sIChlKSA9PiB7CisgICAgcmV0
dXJuICJQQVNTLCByZWNlaXZlZCBleGNlcHRpb24gIiArIGU7Cit9KTsKKworYXN5bmMgZnVuY3Rp
b24gZG9UZXN0KGV2ZW50KQoreworICAgIGlmIChldmVudC5kYXRhICE9PSAic3RhcnQiKSB7Cisg
ICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQgdW5leHBlY3Rl
ZCBtZXNzYWdlIGZyb20gY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2
YXIgcmVzdWx0ID0gYXdhaXQgdHJ5Q2xhaW1Qcm9taXNlOworICAgIGlmICghcmVzdWx0LnN0YXJ0
c1dpdGgoIlBBU1MiKSkgeworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbGYuY2xpZW50cy5jbGFpbSgpLnRo
ZW4oKCkgPT4geworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkNMQUlNRUQiKTsK
KyAgICB9LCAoKSA9PiB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDog
cmVjZWl2ZWQgZXhjZXB0aW9uICIgKyBlKTsKKyAgICB9KTsKK30KKworCitzZWxmLmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCBkb1Rlc3QpOworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjFhYTIxZGQ5YjA2ZmRiNGEwNmRmMjIzN2ViNWE1YWVkYjMzYTU2NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJj
bGllbnRzLWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBT
ZXR1cCB3b3JrZXIgCitQQVNTIFRlc3Qgc2VsZi5jbGllbnRzLmNsYWltIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xp
ZW50cy1jbGFpbS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NjE2NzgxMWIzOGFmNGRhNzA3ZjNmZDRmMDY2N2RhYWQ2OTAyYjZmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNs
aWVudHMtY2xhaW0uaHR0cHMuaHRtbApAQCAtMCwwICsxLDUzIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgordmFyIHNjb3BlID0gIi93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMuaHRtbCI7Cit2YXIgYWN0aXZlV29ya2VyOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcmVnaXN0cmF0aW9uID0gYXdh
aXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKTsKKyAgICBp
ZiAocmVnaXN0cmF0aW9uICYmIHJlZ2lzdHJhdGlvbi5zY29wZSA9PT0gc2NvcGUpCisgICAgICAg
IGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisKKyAgICB2YXIgcmVnaXN0cmF0aW9u
ID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInNlcnZpY2V3b3JrZXJj
bGllbnRzLWNsYWltLXdvcmtlci5qcyIsIHsgc2NvcGUgOiBzY29wZSB9KTsKKyAgICBhY3RpdmVX
b3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAg
ICAgIHJldHVybjsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
KyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtl
ci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGlm
IChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3By
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciBwcm9taXNlID0gbmV3IFByb21p
c2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIkNMQUlNRUQiKSB7CisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0K
Ky8vICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN0YXJ0c1dpdGgoIlBBU1MiKSkgeworICAg
ICAgICAgICAgICAgIHJlamVjdChldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgIC8vICAgICAgICAgIH0KKyAgICAgICAgfSkpOworICAgICAgICAgICAgc2V0VGltZW91dChy
ZWplY3QsIDMwMDApOworICAgIH0pOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJz
dGFydCIpOworICAgIGF3YWl0IHByb21pc2U7CisKKyAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBm
ZXRjaCgicGlua2VsZXBoYW50Iik7CisgICAgdmFyIHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0
KCk7CisgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAiUEFTUyIpOworfSwgIlRlc3Qgc2VsZi5jbGll
bnRzLmNsYWltIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328365</attachid>
            <date>2017-12-04 11:25:57 -0800</date>
            <delta_ts>2017-12-05 10:58:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180261-20171204112557.patch</filename>
            <type>text/plain</type>
            <size>35630</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDI1ZjljNzVkZDYzM2Ux
NGU0MTNjMWM3YmYyNTEyMzU1OWIyNjMzYy4uZGM0MmZmMWQ1MzEwMDFjM2VmOWFiYTJhNjBmNDUw
NjVhMjg3ZjQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDE3LTEyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwKKworICAg
ICAgICBVcGRhdGUgc2V0dGluZyBhY3RpdmUgc2VydmljZSB3b2tlciB3aXRoaW4gU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCB0byBub3QgZG8gYW55IG5vdGlmaWNhdGlvbiB0byB0aGUgc3RvcmFnZSBw
cm9jZXNzLgorICAgICAgICBVc2UgdGhpcyBvcHRpb24gd2hlbiB0aGUgc3RvcmFnZSBwcm9jZXNz
IGlzIGFjdHVhbHkgc2V0dGluZyB0aGUgYWN0aXZlIHNlcnZpY2Ugd29ya2VyIGJhc2VkIG9uIHNl
cnZpY2Ugd29ya2VyIGNhbGxpbmcgY2xhaW0uCisgICAgICAgIEZ1cnRoZXIgcmVmYWN0b3Jpbmcg
c2hvdWxkIHByb2JhYmx5IHRyeSB0byBtZXJnZSBzZXRBY3RpdmVTZXJ2aWNlV29ya2VyIG5vdGlm
aWNhdGlvbiBtZWNoYW5pc20gd2l0aCBjb250ZXh0IHVubG9hZGluZyBzaW5jZSBpdCBpcyBtb3N0
bHkgdXNlZAorICAgICAgICByaWdodCBub3cgdG8gaW5mb3JtIHRoYXQgdW5sb2FkZWQgZG9jdW1l
bnQgaXMgbm8gbG9uZ2VyIGNvbnRyb2xsZWQuCisKKyAgICAgICAgTWFkZSBzb21lIHJlZmFjdG9y
aW5nIHRvIG1vdmUgY29kZSBmcm9tIFNXU2VydmVySm9iUXVldWUgdG8gU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24gYXMgaXQgYmVsb25ncyBuYXR1cmFsbHkgdGhlcmUgYW5kIGl0IGlzIGJlaW5nIHVzZWQK
KyAgICAgICAgYXMgcGFydCBvZiBjbGFpbSBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBJbXBs
ZW1lbnQgY2xhaW0gYnkgZ29pbmcgdG8gdGhlIHN0b3JhZ2UgcHJvY2VzcyBhbmQgdGhlbiBpdGVy
YXRlIG92ZXIgY2xpZW50cyB0byBzZWUgd2hldGhlciBhY3RpdmUgd29ya2VyIGNhbiBiZSBzZXQu
CisKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRBY3RpdmVTZXJ2aWNlV29ya2VyKToK
KyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dD
bGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudHM6OmNsYWltKToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
Y2xhaW0pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJTdG9wcGVk
Q29udHJvbGxpbmdDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmRvUmVnaXN0
cmF0aW9uTWF0Y2hpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpjb250cm9s
Q2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpjbGFpbSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2Vy
OjpjbGFpbSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5oOgorCisyMDE3LTEyLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwog
ICAgICAgICBBZGQgc3VwcG9ydCBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8j
b24tY2xpZW50LXVubG9hZC1hbGdvcml0aG0KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDM1OQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVmZjBiZWE0NmNiNTAwYTFh
ODk3MjBkNTYyMDllN2I1ZjJmNWJlOGEuLjA5ODA1NmJhNDc2Y2M2NWM1OWVkNTQxOTU3NDg0NjRk
OTMwOWM0MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTctMTItMDQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2xpZW50cy1jbGFpbQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMjYxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIElQQyBwbHVtYmVyeSBmb3IgY2xp
ZW50cyBjbGFpbSBiZXR3ZWVuIFNlcnZpY2VXb3JrZXIgcHJvY2VzcyBhbmQgU3RvcmFnZSBwcm9j
ZXNzLgorCisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OmNsYWltQ29tcGxldGVkKToKKyAgICAgICAgKiBTdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbGFpbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbGFpbUNvbXBsZXRlZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorCiAyMDE3LTEyLTA0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBNYWtlIFNjcm9sbGluZ1RyZWVOb2RlOjplbmNsb3NpbmdGcmFtZU5vZGUgcmV0dXJu
IHRoZSBub2RlIGl0c2VsZiBmb3IgZnJhbWUgbm9kZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCBiNmU4NWVhOTljNWRhMGMyZGE3ZmY2MjU3
MWVmNzU5YTQ0NWMxOGRkLi5mNDQwM2Y2NGVmZTlmY2RmMTE3NzBiMTY3MTdlZWFmZGJjODU1ZmFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBA
IC01NDEsNyArNTQxLDcgQEAgU2VydmljZVdvcmtlciogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
YWN0aXZlU2VydmljZVdvcmtlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fYWN0aXZlU2VydmljZVdv
cmtlci5nZXQoKTsKIH0KIAotdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRBY3RpdmVT
ZXJ2aWNlV29ya2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmIHNlcnZpY2VXb3JrZXIpCit2b2lk
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoUmVmUHRyPFNl
cnZpY2VXb3JrZXI+JiYgc2VydmljZVdvcmtlciwgU2hvdWxkTm90aWZ5U2VydmljZVdvcmtlckNv
bm5lY3Rpb24gc2hvdWxkTm90aWZ5KQogewogICAgIC8vIEFkZCBzdXBwb3J0IGZvciB3b3JrZXJz
LgogICAgIGlmICghaXM8RG9jdW1lbnQ+KCp0aGlzKSkKQEAgLTU1MSwxMiArNTUxLDEyIEBAIHZv
aWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0QWN0aXZlU2VydmljZVdvcmtlcihSZWZQdHI8
U2VydmljZVdvcmtlcj4mJiBzZXJ2CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIGNvbm5l
Y3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uRm9yU2Vzc2lvbihzZXNzaW9uSUQoKSk7Ci0gICAgaWYgKG1fYWN0aXZlU2Vydmlj
ZVdvcmtlcikKKyAgICBpZiAoc2hvdWxkTm90aWZ5ID09IFNob3VsZE5vdGlmeVNlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uOjpZZXMgJiYgbV9hY3RpdmVTZXJ2aWNlV29ya2VyKQogICAgICAgICBjb25u
ZWN0aW9uLnNlcnZpY2VXb3JrZXJTdG9wcGVkQ29udHJvbGxpbmdDbGllbnQobV9hY3RpdmVTZXJ2
aWNlV29ya2VyLT5pZGVudGlmaWVyKCksIG1fYWN0aXZlU2VydmljZVdvcmtlci0+cmVnaXN0cmF0
aW9uSWRlbnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVudD4oKnRoaXMpLmlkZW50aWZpZXIoKSk7
CiAKICAgICBtX2FjdGl2ZVNlcnZpY2VXb3JrZXIgPSBXVEZNb3ZlKHNlcnZpY2VXb3JrZXIpOwog
Ci0gICAgaWYgKG1fYWN0aXZlU2VydmljZVdvcmtlcikKKyAgICBpZiAoc2hvdWxkTm90aWZ5ID09
IFNob3VsZE5vdGlmeVNlcnZpY2VXb3JrZXJDb25uZWN0aW9uOjpZZXMgJiYgbV9hY3RpdmVTZXJ2
aWNlV29ya2VyKQogICAgICAgICBjb25uZWN0aW9uLnNlcnZpY2VXb3JrZXJTdGFydGVkQ29udHJv
bGxpbmdDbGllbnQobV9hY3RpdmVTZXJ2aWNlV29ya2VyLT5pZGVudGlmaWVyKCksIG1fYWN0aXZl
U2VydmljZVdvcmtlci0+cmVnaXN0cmF0aW9uSWRlbnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVu
dD4oKnRoaXMpLmlkZW50aWZpZXIoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDE4ZGQ5Yzc1N2QxOTc4ZWViMDgyYTY3ODA5YmZmNGM4
MDU3YjNiZGYuLmNkOGY5YWIzY2M5MTQyZWU1Zjk4YmM3NDU3NjgzM2ViZTkzM2M1YzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMjM5LDcgKzIz
OSw5IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBTZXJ2aWNl
V29ya2VyKiBhY3RpdmVTZXJ2aWNlV29ya2VyKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRBY3RpdmVT
ZXJ2aWNlV29ya2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmKTsKKworICAgIGVudW0gY2xhc3Mg
U2hvdWxkTm90aWZ5U2VydmljZVdvcmtlckNvbm5lY3Rpb24geyBZZXMsIE5vIH07CisgICAgdm9p
ZCBzZXRBY3RpdmVTZXJ2aWNlV29ya2VyKFJlZlB0cjxTZXJ2aWNlV29ya2VyPiYmLCBTaG91bGRO
b3RpZnlTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IFNob3VsZE5vdGlmeVNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uOjpZZXMpOwogCiAgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXIoU2Vydmlj
ZVdvcmtlciYpOwogICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtl
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRD
b25uZWN0aW9uLmNwcAppbmRleCBiM2Y1NmM3NGYzOGQyYjgxYTZiMDQ1NjM5YTg5ZjFmMDZjZjg5
NmMzLi42M2IzODhiZmVjYWRlZjdjNTM4YTM1YWJjYmRiNzdkOWI2NzRhNzg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNw
cApAQCAtMjE4LDkgKzIxOCw4IEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGll
bnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJCiAgICAgICAgIGlm
ICghY2xpZW50KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgQVNTRVJUKGNsaWVu
dC0+YWN0aXZlU2VydmljZVdvcmtlcigpKTsKLSAgICAgICAgQVNTRVJUKGNsaWVudC0+YWN0aXZl
U2VydmljZVdvcmtlcigpLT5pZGVudGlmaWVyKCkgIT0gbmV3Q29udHJvbGxlci5pZGVudGlmaWVy
KTsKLSAgICAgICAgY2xpZW50LT5zZXRBY3RpdmVTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXI6
OmdldE9yQ3JlYXRlKCpjbGllbnQsIFNlcnZpY2VXb3JrZXJEYXRhIHsgbmV3Q29udHJvbGxlciB9
KSk7CisgICAgICAgIEFTU0VSVCghY2xpZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkgfHwgY2xp
ZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCktPmlkZW50aWZpZXIoKSAhPSBuZXdDb250cm9sbGVy
LmlkZW50aWZpZXIpOworICAgICAgICBjbGllbnQtPnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoU2Vy
dmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoKmNsaWVudCwgU2VydmljZVdvcmtlckRhdGEgeyBuZXdD
b250cm9sbGVyIH0pLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTaG91bGROb3RpZnlTZXJ2aWNl
V29ya2VyQ29ubmVjdGlvbjo6Tm8pOwogICAgICAgICBpZiAoYXV0byogY29udGFpbmVyID0gY2xp
ZW50LT5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkpCiAgICAgICAgICAgICBjb250YWluZXItPnNj
aGVkdWxlVGFza1RvRmlyZUNvbnRyb2xsZXJDaGFuZ2VFdmVudCgpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMu
Y3BwCmluZGV4IDQ1MDRmNTNhODFhYjJjZjlkYTRlMmM0ZmFkOGRjODQxMTBiZDlkMzMuLjYxNjg3
Zjk3NTgxYmFkZDk3NzAzZWZjYjkwYzYzYTZlYmNkMzE3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcApAQCAt
MTA3LDkgKzEwNywyOSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpvcGVuV2luZG93KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybAogICAgIHByb21pc2UtPnJl
amVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJjbGllbnRz
Lm9wZW5XaW5kb3coKSBpcyBub3QgeWV0IHN1cHBvcnRlZCIpIH0pOwogfQogCi12b2lkIFNlcnZp
Y2VXb3JrZXJDbGllbnRzOjpjbGFpbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlKQordm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Y2xhaW0o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogewotICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgQVNDSUlMaXRlcmFsKCJjbGllbnRzLmNsYWltKCkgaXMgbm90IHlldCBzdXBwb3J0ZWQi
KSB9KTsKKyAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOworCisgICAgYXV0byBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciA9IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5pZGVudGlmaWVy
KCk7CisKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5yZWdpc3RyYXRpb24oKS5h
Y3RpdmUoKSB8fCBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUucmVnaXN0cmF0aW9uKCkuYWN0aXZl
KCktPmlkZW50aWZpZXIoKSAhPSBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikgeworICAgICAgICBw
cm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiU2VydmljZSB3b3JrZXIgaXMgbm90IGFjdGl2ZSIpIH0pOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgYXV0byBwcm9taXNlUG9pbnRlciA9IHByb21pc2UucHRyKCk7CisgICAgbV9w
ZW5kaW5nUHJvbWlzZXMuYWRkKHByb21pc2VQb2ludGVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IFNXQ29udGV4dE1h
bmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKTsKKyAgICAgICAgY29ubmVjdGlvbi0+Y2xh
aW0oc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtl
cklkZW50aWZpZXJdICgpIG11dGFibGUgeworICAgICAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFtwcm9taXNlUG9pbnRlcl0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBwcm9taXNlID0gc2NvcGUuY2xpZW50cygpLm1fcGVuZGluZ1Byb21pc2Vz
LnRha2UocHJvbWlzZVBvaW50ZXIpKQorICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnZhbHVl
KCktPnJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IDVhMTQ1NDFi
YTE5OWI4Yjk4ZTY2YzUwNDRiMzgxY2QwZmY4ZjM4YzguLmY0ZTAyMjE5Y2FmNWQ4YTMzYWNjZGM3
NzUwMmMxNWViMGJiNjE0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTU5LDYgKzU5LDcgQEAg
cHVibGljOgogICAgICAgICB1c2luZyBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2sgPSBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4+JiYpPjsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmRDbGll
bnRCeUlkZW50aWZpZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgPSAwOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGwoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0
IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01h
dGNoQWxsQ2FsbGJhY2smJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xhaW0oU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7
CiAgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29ubmVjdGlvbihzdGQ6OnVu
aXF1ZV9wdHI8Q29ubmVjdGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDBlMjNhMGNlYjM1NTkyOGI1OGJlNDE2
NTE5NWE3ZjVmM2Q0OTFhYmMuLjMyMmRmOTA4MzM1NmJiYmMyZmQyMjU3MmFlODFkOWViNmQ3NGNk
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwCkBAIC0zNTEsNiArMzUxLDMxIEBAIHZvaWQgU1dTZXJ2ZXI6Om1hdGNoQWxsKFNX
U2VydmVyV29ya2VyJiB3b3JrZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wCiAg
ICAgY2FsbGJhY2soV1RGTW92ZShjbGllbnRzKSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OmNsYWlt
KFNXU2VydmVyV29ya2VyJiB3b3JrZXIpCit7CisgICAgYXV0byYgb3JpZ2luID0gd29ya2VyLm9y
aWdpbigpOworICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NsaWVudHMuZmluZChvcmlnaW4pOworICAg
IGlmIChpdGVyYXRvciA9PSBtX2NsaWVudHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8mIGNsaWVudHMgPSBpdGVyYXRvci0+dmFsdWU7CisgICAgZm9yIChhdXRvJiBjbGllbnQg
OiBjbGllbnRzKSB7CisgICAgICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGRvUmVnaXN0cmF0aW9u
TWF0Y2hpbmcob3JpZ2luLnRvcE9yaWdpbiwgY2xpZW50LmRhdGEudXJsKTsKKyAgICAgICAgaWYg
KCEocmVnaXN0cmF0aW9uICYmIHJlZ2lzdHJhdGlvbi0+a2V5KCkgPT0gd29ya2VyLnJlZ2lzdHJh
dGlvbktleSgpKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGF1dG8gcmVzdWx0
ID0gbV9jbGllbnRUb0NvbnRyb2xsaW5nV29ya2VyLmFkZChjbGllbnQuaWRlbnRpZmllciwgd29y
a2VyLmlkZW50aWZpZXIoKSk7CisgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsKKyAg
ICAgICAgICAgIGlmIChyZXN1bHQuaXRlcmF0b3ItPnZhbHVlID09IHdvcmtlci5pZGVudGlmaWVy
KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvIGNvbnRyb2xs
aW5nUmVnaXN0cmF0aW9uID0gbV9yZWdpc3RyYXRpb25zLmdldChtX3J1bm5pbmdPclRlcm1pbmF0
aW5nV29ya2Vycy5nZXQocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSktPnJlZ2lzdHJhdGlvbktleSgp
KTsKKyAgICAgICAgICAgIGNvbnRyb2xsaW5nUmVnaXN0cmF0aW9uLT5yZW1vdmVDbGllbnRVc2lu
Z1JlZ2lzdHJhdGlvbihjbGllbnQuaWRlbnRpZmllcik7CisgICAgICAgICAgICByZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gd29ya2VyLmlkZW50aWZpZXIoKTsKKyAgICAgICAgfQorICAgICAgICBy
ZWdpc3RyYXRpb24tPmNvbnRyb2xDbGllbnQoY2xpZW50LmlkZW50aWZpZXIpOworICAgIH0KK30K
Kwogdm9pZCBTV1NlcnZlcjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoQ29ubmVjdGlv
biYgY29ubmVjdGlvbiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0
cmF0aW9uS2V5KQogewogICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV9jb25uZWN0aW9u
cy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50aWZpZXIoKSkpOwpAQCAtNDA0LDggKzQyOSw3IEBA
IHZvaWQgU1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJTdG9wcGVkQ29udHJvbGxpbmdDbGllbnQoQ29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgU2VyCiAgICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllciB7IGNvbm5lY3Rpb24uaWRlbnRpZmllcigpLCBjb250ZXh0SWRl
bnRpZmllciB9OwogICAgIHJlZ2lzdHJhdGlvbi0+cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRp
b24oY2xpZW50SWRlbnRpZmllcik7CiAKLSAgICBhdXRvIHJlc3VsdCA9IG1fY2xpZW50VG9Db250
cm9sbGluZ1dvcmtlci50YWtlKGNsaWVudElkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQo
cmVzdWx0LCByZXN1bHQgPT0gc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIG1fY2xpZW50
VG9Db250cm9sbGluZ1dvcmtlci50YWtlKGNsaWVudElkZW50aWZpZXIpOwogfQogCiB2b2lkIFNX
U2VydmVyOjp1cGRhdGVXb3JrZXIoQ29ubmVjdGlvbiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiBy
ZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHNjcmlwdCwgV29ya2Vy
VHlwZSB0eXBlKQpAQCAtNjAwLDkgKzYyNCw5IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJD
b25uZWN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+
dW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpOwogfQog
Ci1jb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dTZXJ2ZXI6OmRvUmVnaXN0cmF0aW9uTWF0
Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMKSBjb25zdAorU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIFNXU2VydmVyOjpkb1JlZ2lzdHJh
dGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBV
UkwmIGNsaWVudFVSTCkKIHsKLSAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogc2VsZWN0
ZWRSZWdpc3RyYXRpb24gPSBudWxscHRyOworICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBzZWxl
Y3RlZFJlZ2lzdHJhdGlvbiA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiByZWdpc3RyYXRpb24g
OiBtX3JlZ2lzdHJhdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24t
PmtleSgpLmlzTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpKQogICAgICAgICAgICAgY29u
dGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKaW5kZXggZGM2ZWY3Mzk4OWZhZDk2ZWYzMmRhZDI3YmM0ZTkyNzAyZWUzOGE3OS4uMWY4
MTFhNjllMGQ2OGY3MjY3NjdjNTg2MGYzMjMyMTU5YmY3NWJkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTQxLDYgKzE0MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29y
a2VyJik7CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZmluZENs
aWVudEJ5SWRlbnRpZmllcihjb25zdCBDbGllbnRPcmlnaW4mLCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllcik7CiAgICAgdm9pZCBtYXRjaEFsbChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFNl
cnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNo
QWxsQ2FsbGJhY2smJik7CisgICAgdm9pZCBjbGFpbShTV1NlcnZlcldvcmtlciYpOwogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uQ3JlYXRlZCgpOwog
ICAgIApAQCAtMTY3LDcgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXJ2aWNlV29ya2Vy
U3RhcnRlZENvbnRyb2xsaW5nQ2xpZW50KENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIERvY3VtZW50SWRlbnRp
Zmllcik7CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RvcHBlZENvbnRyb2xsaW5nQ2xpZW50KENv
bm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIERvY3VtZW50SWRlbnRpZmllcik7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3RyYXRpb25NYXRjaGluZyhjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNv
bnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJh
dGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBV
UkwmIGNsaWVudFVSTCk7CiAKICAgICB2b2lkIGluc3RhbGxDb250ZXh0RGF0YShjb25zdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRl
eCA0YjJhMzExMmVmNjExOTA1NjI1ZGE4ODM1NGQ1YjE1M2RiNDAwNTc4Li4zOGE2NDgxZmQxOWJl
YTZlOTZlMzY5ZDg2MDZkYzc5NzJiMjY5ODk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNw
cApAQCAtMjkzLDYgKzI5MywxNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpoYW5kbGVD
bGllbnRVbmxvYWQoKQogICAgIHRyeUFjdGl2YXRlKCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdp
c3RyYXRpb246OmNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRl
bnRpZmllcikKK3sKKyAgICBBU1NFUlQoYWN0aXZlV29ya2VyKCkpOworCisgICAgYWRkQ2xpZW50
VXNpbmdSZWdpc3RyYXRpb24oaWRlbnRpZmllcik7CisKKyAgICBIYXNoU2V0PERvY3VtZW50SWRl
bnRpZmllcj4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIuY29u
dGV4dElkZW50aWZpZXIpOworICAgIG1fc2VydmVyLmdldENvbm5lY3Rpb24oaWRlbnRpZmllci5z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciktPm5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFu
Z2UoaWRlbnRpZmllcnMsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmgKaW5kZXggMTBlNzBhZTNlMThmZmQ4Y2FiYmI3NGMzNGJkMzI4YzRkYWNj
NDAyZi4uZjMzMzZjNGMxNjQ3OWU0ODU3ZDBjMGFlODM0MDQzN2QwM2U0YjRmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJl
Z2lzdGVyU2VydmVyQ29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAog
ICAgIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSgpOworICAgIHZvaWQgY29u
dHJvbENsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNs
ZWFyKCk7CiAgICAgYm9vbCB0cnlDbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwCmluZGV4IDIzMWI5YjRjOGMwNDY1MDRmNDc1NTgyMDFjZDEyNzc0MDU1MWYx
NmYuLmIyM2FmMWM3OTU2ZDhiNzZhYWYxOWM1NzExNTBkOTAwZThmOGFkNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTEyMyw2ICsxMjMsMTQgQEAgdm9p
ZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1hdGNoQWxsKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCBTZXJ2aWNlV28KICAgICB9CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpjbGFpbSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIHdv
cmtlciA9IFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpKSB7CisgICAgICAgIHdvcmtlci0+Y2xhaW0oKTsKKyAgICAgICAg
Z2xvYmFsU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpLT5jbGFpbUNvbXBsZXRlZChyZXF1ZXN0
SWRlbnRpZmllcik7CisgICAgfQorfQorCiB2b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6c2tpcFdhaXRpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8qIHdvcmtlciA9IFNX
U2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggMWJl
ODdmNTNlNGE1YzRkOGVlZGY4NGFkMGJiOWI1NGExNGJkZjg5MC4uZDA5YjQzMzQ4Y2ZlZGJkNzk0
MjM2ZTg2OWE4NzVjZTM5MmQ3Mjk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5oCkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3luY1Rl
cm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJv
b2wgaGFzU2VjdXJpdHlFcnJvcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbENvbXBs
ZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VXb3Jr
ZXJDbGllbnRJbmZvcm1hdGlvbj4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsYWltQ29tcGxl
dGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpID0gMDsKIAogICAgIC8vIE1l
c3NhZ2VzIGJhY2sgZnJvbSB0aGUgU1cgaG9zdCBwcm9jZXNzCkBAIC02Nyw2ICs2OCw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdvcmtlclRlcm1pbmF0ZWQoU2VydmljZVdv
cmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluZENsaWVudEJ5SWRl
bnRpZmllcih1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgbWF0Y2hBbGwodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGFpbSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgc3RhdGljIFNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiogY29ubmVjdGlvbkZvcklkZW50aWZpZXIoU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggODA3NjcxNGE2MWQz
NmM4MDg4MWRkMzE5YjA4MjI3NTVjMGY0YmE1Mi4uMDdiNjA2NmM3NmRiMDAzZTViYjRiM2NlMDJi
Y2RhZDg4NTYwOWZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTExNiw2ICsxMTYsMTEgQEAgdm9p
ZCBTV1NlcnZlcldvcmtlcjo6bWF0Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5
T3B0aW9ucyYgb3B0aW9ucywgU2UKICAgICByZXR1cm4gbV9zZXJ2ZXIubWF0Y2hBbGwoKnRoaXMs
IG9wdGlvbnMsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBTV1NlcnZlcldvcmtlcjo6
Y2xhaW0oKQoreworICAgIHJldHVybiBtX3NlcnZlci5jbGFpbSgqdGhpcyk7Cit9CisKIHZvaWQg
U1dTZXJ2ZXJXb3JrZXI6OnNraXBXYWl0aW5nKCkKIHsKICAgICBtX2lzU2tpcFdhaXRpbmdGbGFn
U2V0ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAzYzUyMDhlMTM1ODc2NDI3NDU2ZDdiZWYwMTRk
YjA0MmMyZjBhM2NjLi5iOTU3NDM2YThhMjdjODJlZDZjMDdhZWJkNGJjYWJhMGY1ZjEyMjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
V29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oCkBAIC05MCw2ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRleHRU
ZXJtaW5hdGVkKCk7CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4g
ZmluZENsaWVudEJ5SWRlbnRpZmllcihTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAg
ICAgdm9pZCBtYXRjaEFsbChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJiwg
U2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrJiYpOworICAgIHZvaWQgY2xhaW0o
KTsKIAogICAgIHZvaWQgc2tpcFdhaXRpbmcoKTsKICAgICBib29sIGlzU2tpcFdhaXRpbmdGbGFn
U2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc1NraXBXYWl0aW5nRmxhZ1NldDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCBhNWE5
YmM5OWI2ZjY5NTE0NGMxZjI5OGMzNThhZmIyZTdjZjcyNjJhLi4xODY4ZTI4NzEzMGQ4NzBhZmFj
YjUxODRlY2M3YmRlMmY2MTE5N2RlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtOTEsNiArOTEsMTEgQEAgdm9pZCBXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWUKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6TWF0Y2hBbGxDb21wbGV0ZWQgeyByZXF1ZXN0SWRlbnRpZmllciwgY2xpZW50c0RhdGEg
fSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjbGFpbUNvbXBs
ZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2xhaW1Db21wbGV0ZWQgeyByZXF1ZXN0SWRl
bnRpZmllciB9KTsKK30KKwogdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmRp
ZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkRpZEZpbmlzaFNraXBXYWl0aW5n
IHsgY2FsbGJhY2tJRCB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uaAppbmRleCBjNjQwMjU2NWI1OWVjYTY2ZDBiYWViMTEyZDBjZTYzMTFhZDQ2
ZGUxLi5mODM5ZTY3YjZkMWMzMTMyN2I1ODM4NTA0M2RlMWIwNTI5M2E5MGY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC02Miw2ICs2
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50
aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1cml0
eUVycm9yKSBmaW5hbDsKICAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElu
Zm9ybWF0aW9uPiYpIGZpbmFsOworICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWlu
dDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2lw
Y0Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAxMDFkM2Q0NDBmNjNhNGFlNzIxZDk3
M2EyMzg2YzZkMjdmOWQ0ZTA4Li4zNDA1YTVhN2RhZDVhZDhiMjMzZGM1NDhiNjU5ZjJiYmIxNDEz
MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM0LDYgKzM0LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIHsKICAgICBXb3JrZXJUZXJtaW5hdGVkKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpOwogICAgIEZpbmRDbGllbnRC
eUlkZW50aWZpZXIodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcik7CiAgICAgTWF0
Y2hBbGwodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zIG9wdGlvbnMpOworICAgIENsYWltKHVp
bnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA2
Mjg1MTIzODViM2I4MWRlMDEwMTFkYzE4MWVlNTJmMThiYTg4MWNmLi5hNDZlNmJlODY0NmUwODk0
ZTc4YmRmYmU2ZTllZTY5OWQ5MWQ5MzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCkBAIC0yNDUsNiArMjQ1LDE5IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246Om1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyCiAgICAg
ICAgIGNhbGxiYWNrKFdURk1vdmUoY2xpZW50c0RhdGEpKTsKIH0KIAordm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
YWxsYmFjaykKK3sKKyAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gKyttX3ByZXZpb3VzUmVx
dWVzdElkZW50aWZpZXI7CisgICAgbV9jbGFpbVJlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmll
ciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Q2xhaW0geyBy
ZXF1ZXN0SWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIgfSwgMCk7Cit9CisKK3Zv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNsYWltQ29tcGxldGVkKHVpbnQ2NF90
IGNsYWltUmVxdWVzdElkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2Ns
YWltUmVxdWVzdHMudGFrZShjbGFpbVJlcXVlc3RJZGVudGlmaWVyKSkKKyAgICAgICAgY2FsbGJh
Y2soKTsKK30KKwogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkRmluaXNo
U2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFj
ayA9IG1fc2tpcFdhaXRpbmdSZXF1ZXN0cy50YWtlKGNhbGxiYWNrSUQpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmgKaW5kZXggNzA3NTBjMzQzNjc1MmQxMmRjMWY0NDVkNjA3NGYwYWM4
MDliMTg1My4uZTI5NTNhMTNmZWFiN2JjYjBiYzEzODRjYzk4YjliOThmY2VkMWRiNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB3b3JrZXJUZXJtaW5hdGVkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KSBmaW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBtYXRj
aEFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
ZmluYWw7CiAgICAgdm9pZCBza2lwV2FpdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spIGZpbmFsOwogCiAgICAgLy8g
SVBDIG1lc3NhZ2VzLgpAQCAtODAsNiArODEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY1Rl
cm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6
RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0
ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7CiAgICAgdm9p
ZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBW
ZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYmKTsKKyAgICB2
b2lkIGNsYWltQ29tcGxldGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIpOwogICAg
IHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICAgICBS
ZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwpAQCAtODgs
NiArOTAsNyBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgRmluZENsaWVudEJ5
SWRlbnRpZmllckNhbGxiYWNrPiBtX2ZpbmRDbGllbnRCeUlkZW50aWZpZXJSZXF1ZXN0czsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxs
Q2FsbGJhY2s+IG1fbWF0Y2hBbGxSZXF1ZXN0czsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6
OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fY2xhaW1SZXF1ZXN0czsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1fc2tpcFdhaXRpbmdSZXF1ZXN0czsK
ICAgICB1aW50NjRfdCBtX3ByZXZpb3VzUmVxdWVzdElkZW50aWZpZXIgeyAwIH07CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA4MjFk
Y2RmODZmZDIwOTc2ZmE3ZDhkZmViNmJmMjk3NGJkOTQ0ZGQ2Li4zOTgyYjQ1MGE5Nzg4NjA0YWEz
MzQ2MWZlMDE0NGUxMjI2ZTcwNmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzMsNiArMzMsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7CiAgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBEZWxheWVkCiAgICAg
RmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJ
ZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRh
PiBkYXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCiAgICAgTWF0Y2hBbGxDb21wbGV0ZWQodWlu
dDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJbmZvcm1hdGlvbj4gY2xpZW50c0RhdGEpCisgICAgQ2xhaW1Db21wbGV0ZWQo
dWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcikKICAgICBEaWRGaW5pc2hTa2lwV2FpdGlu
Zyh1aW50NjRfdCBjYWxsYmFja0lEKQogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjI4OTBjYWZjMTkwYjM1ODczMDY1
Y2NlZmYwN2ZiYzE3MmNlNjg0Yi4uNDFhMDU4ODQ2NGIxODYzZWM0ODRiNDI3Nzc3OTIzY2UwOTNl
ODlkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTA0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczogc2tpcHBpbmcgdGVz
dCB0aGF0IGlzIG5vdyB0aW1pbmcgb3V0LgorICAgICAgICBJbXBsZW1lbnRhdGlvbiBvZiBjbGFp
bSBhbGxvd3MgcnVubmluZyBmdXJ0aGVyIGluIHRoZSB0ZXN0IGJ1dCB0aGlzIHRlc3QgaXMgdGlt
aW5nIG91dCBhcyB3ZSBkbyBub3QgY2FsbCB3b3JrZXIgdHJ5QWN0aXZhdGUgaW4gZW5vdWdoIHBs
YWNlcy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2Vy
Y2xpZW50cy1jbGFpbS13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdv
cmtlcmNsaWVudHMtY2xhaW0uaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMTctMTItMDQgIE1zMmdl
ciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFJlYmFzZWxpbmUgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9pbnRlcmFjdGl2ZS1lbGVt
ZW50cy90aGUtZGlhbG9nLWVsZW1lbnQvZGlhbG9nLXNob3dNb2RhbC5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA5YjczNDJhZTJlYjVjZGQ2NjM2ZGIwMDNmMjM3MmY1ZjNk
ZjdkMDJmLi4wZjhmNzJjYzA3MDA5NmJkOGRmNDg2YTQ1ZDBkMjI3MTI3OWRkMmJiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0xMi0wNCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjbGllbnRzLWNsYWltCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAyNjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy1leHBlY3Rl
ZC50eHQ6IFJlYmFzaW5nIGV2ZW4gaWYgdGltaW5nIG91dC4KKwogMjAxNy0xMi0wMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlLXN5bmMgU2VydmljZSBXb3Jr
ZXJzIHdlYi1wbGF0Zm9ybS10ZXN0cyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAwYWVlNmU3MThhZjQ0YTlmNTI1YTVmMzVjNDEwZDU2MmU5ODY0ZjdmLi5kMzc1N2QwZGFjYTY1
YTExODQ3Zjc5MDY2MGRiZjQ1ZDE5YzIwNDUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE2OCw2
ICsxNjgsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLXJlY292ZXJ5
Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3dlYnNvY2tldC1pbi1zZXJ2aWNlLXdvcmtlci5o
dHRwcy5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9jbGllbnQtbmF2aWdhdGUuaHR0cHMuaHRtbCBbIFNr
aXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy5odG1sIFsgU2tpcCBdCiAKIGh0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2Fib3V0LWJsYW5rLXJlcGxhY2VtZW50Lmh0dHBzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0td29ya2VyLmpzIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0t
d29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZTAzZjMwMTkyMzc0YTMwMzU5MzVhNmYxM2Y3NDQzZmJk
NzRkN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS13b3JrZXIuanMKQEAgLTAsMCArMSwz
NCBAQAorc2VsZi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIGFzeW5jIChldmVudCkgPT4gewor
ICAgIGlmIChldmVudC5yZXF1ZXN0LnVybC5pbmRleE9mKCJwaW5rZWxlcGhhbnQiKSAhPT0gLTEp
CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBSZXNwb25zZSgiUEFTUyIpKTsKK30pOwor
Cit2YXIgdHJ5Q2xhaW1Qcm9taXNlID0gc2VsZi5jbGllbnRzLmNsYWltKCkudGhlbigoKSA9PiB7
CisgICAgcmV0dXJuICJGQUlMOiBjbGFpbSBkaWQgbm90IHRocm93IjsKK30sIChlKSA9PiB7Cisg
ICAgcmV0dXJuICJQQVNTLCByZWNlaXZlZCBleGNlcHRpb24gIiArIGU7Cit9KTsKKworYXN5bmMg
ZnVuY3Rpb24gZG9UZXN0KGV2ZW50KQoreworICAgIGlmIChldmVudC5kYXRhICE9PSAic3RhcnQi
KSB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQgdW5l
eHBlY3RlZCBtZXNzYWdlIGZyb20gY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICB2YXIgcmVzdWx0ID0gYXdhaXQgdHJ5Q2xhaW1Qcm9taXNlOworICAgIGlmICghcmVzdWx0
LnN0YXJ0c1dpdGgoIlBBU1MiKSkgeworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uo
cmVzdWx0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHNlbGYuY2xpZW50cy5jbGFp
bSgpLnRoZW4oKCkgPT4geworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkNMQUlN
RUQiKTsKKyAgICB9LCAoKSA9PiB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgi
RkFJTDogcmVjZWl2ZWQgZXhjZXB0aW9uICIgKyBlKTsKKyAgICB9KTsKK30KKworCitzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBkb1Rlc3QpOworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFp
bS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjFhYTIxZGQ5YjA2ZmRiNGEwNmRmMjIzN2ViNWE1YWVkYjMzYTU2NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3
b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
UEFTUyBTZXR1cCB3b3JrZXIgCitQQVNTIFRlc3Qgc2VsZi5jbGllbnRzLmNsYWltIAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29y
a2VyY2xpZW50cy1jbGFpbS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45OTUyNjIxMmJiMGFlZGQ2ZWM5ZGJkYmZlMGU2M2JiZjg4M2RlZjgxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdv
cmtlcmNsaWVudHMtY2xhaW0uaHR0cHMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIHNjb3BlID0gIi93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMuaHRtbCI7Cit2YXIgYWN0aXZlV29ya2Vy
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcmVnaXN0cmF0aW9u
ID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9uKHNjb3BlKTsK
KyAgICBpZiAocmVnaXN0cmF0aW9uICYmIHJlZ2lzdHJhdGlvbi5zY29wZSA9PT0gc2NvcGUpCisg
ICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisKKyAgICB2YXIgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInNlcnZpY2V3
b3JrZXJjbGllbnRzLWNsYWltLXdvcmtlci5qcyIsIHsgc2NvcGUgOiBzY29wZSB9KTsKKyAgICBh
Y3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIp
CisgICAgICAgIHJldHVybjsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFs
bGluZzsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2
ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAg
ICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9LCAiU2V0dXAgd29ya2VyIik7
CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciBwcm9taXNlID0gbmV3
IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdC5zdGVwX2Z1bmMoKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIkNMQUlNRUQiKSB7CisgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGlmICghZXZlbnQuZGF0YS5zdGFydHNXaXRoKCJQQVNTIikpIHsK
KyAgICAgICAgICAgICAgICByZWplY3QoZXZlbnQuZGF0YSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9KSk7CisgICAgfSk7CisKKyAgICBhY3RpdmVX
b3JrZXIucG9zdE1lc3NhZ2UoInN0YXJ0Iik7CisgICAgYXdhaXQgcHJvbWlzZTsKKworICAgIHZh
ciByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJwaW5rZWxlcGhhbnQiKTsKKyAgICB2YXIgdGV4dCA9
IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKKyAgICBhc3NlcnRfZXF1YWxzKHRleHQsICJQQVNTIik7
Cit9LCAiVGVzdCBzZWxmLmNsaWVudHMuY2xhaW0iKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4
dAppbmRleCA5ZTFmYmI3MTJjNDVmMzI3MGViODgzNzc4M2MyN2VkNzRmZTlhZGI4Li4yZjlhNzAw
MmVkNGQwZDg5OTExZTE3ZjZjZjdjMmZiMzUzYmU1OGU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDggQEAKLSAgCiAK
LUZBSUwgbG9zcyBvZiBjb250cm9sbGVlcyB0cmlnZ2VycyBhY3RpdmF0aW9uIGFzc2VydF9ub3Rf
ZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxsCi1GQUlMIGZpbmlzaGluZyBhIHJlcXVl
c3QgdHJpZ2dlcnMgYWN0aXZhdGlvbiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQg
dmFsdWUgbnVsbAotRkFJTCBza2lwV2FpdGluZyBieXBhc3NlcyBubyBjb250cm9sbGVlIHJlcXVp
cmVtZW50IGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxsCi1GQUlM
IGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgdW5yZWdpc3RlciBhc3NlcnRfbm90X2VxdWFs
czogZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAorSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1l
c3NhZ2UgPSBudWxsCisKK1BBU1MgbG9zcyBvZiBjb250cm9sbGVlcyB0cmlnZ2VycyBhY3RpdmF0
aW9uIAorVElNRU9VVCBmaW5pc2hpbmcgYSByZXF1ZXN0IHRyaWdnZXJzIGFjdGl2YXRpb24gVGVz
dCB0aW1lZCBvdXQKK05PVFJVTiBza2lwV2FpdGluZyBieXBhc3NlcyBubyBjb250cm9sbGVlIHJl
cXVpcmVtZW50IAorTk9UUlVOIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgdW5yZWdpc3Rl
ciAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328470</attachid>
            <date>2017-12-05 10:58:43 -0800</date>
            <delta_ts>2017-12-05 12:47:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180261-20171205105843.patch</filename>
            <type>text/plain</type>
            <size>32016</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM4ZTUyNTViZDE2MmQz
NzJjMjY4NmIyOTJkOGZhYjVkYzJhOWU0Ni4uNjYzMzA4M2IyOTI1NjA2ZWYzMDNmNDA1MDMzMjk3
NDcxMWIwZDczYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTEyLTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwKKworICAg
ICAgICBJbXBsZW1lbnQgY2xhaW0gYnkgZ29pbmcgdG8gdGhlIHN0b3JhZ2UgcHJvY2VzcyBhbmQg
dGhlbiBpdGVyYXRlIG92ZXIgY2xpZW50cyB0byBzZWUgd2hldGhlciBhY3RpdmUgd29ya2VyIGNh
biBiZSBzZXQuCisgICAgICAgIFVwZGF0ZSBTV1NlcnZlcldvcmtlciB0byBjYWxsIHJlZ2lzdHJh
dGlvbiB0cnlDbGVhci90cnlBY3RpdmF0ZSB3aGVuZXZlciBhIHNlcnZpY2Ugd29ya2VyIGhhcyBu
byBwZW5kaW5nIGV2ZW50LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzOjpj
bGFpbSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdl
ci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNsYWltKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2Vy
dmVyOjpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Ojpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
cjo6Q29ubmVjdGlvbjo6ZG9SZWdpc3RyYXRpb25NYXRjaGluZyk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xhaW0pOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6Y2xhaW0pOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKwogMjAxNy0xMi0wNSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IHNldHRp
bmcgb2Ygc2VydmljZSB3b3JrZXIgdG8gY2xpZW50IGluIFNXU2VydmVyIHdpdGhvdXQgZ29pbmcg
dG8gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4M2IwMGEyNzkzYzQxZTk5ZmMzODdmZWNhNzBmMmUz
MDNmY2Y2NzliLi5hOWI1OWMwM2Y3MjMyMTIyNjk3ZTZlZDUyYjE0ZjA3YTlkMjQ1NGJlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTEyLTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1Nl
cnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBJUEMgcGx1bWJlcnkgZm9yIGNsaWVudHMgY2xhaW0gYmV0
d2VlbiBTZXJ2aWNlV29ya2VyIHByb2Nlc3MgYW5kIFN0b3JhZ2UgcHJvY2Vzcy4KKworICAgICAg
ICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpjbGFpbUNvbXBsZXRlZCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6Y2xhaW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxNy0x
Mi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVt
ZW50IHNldHRpbmcgb2Ygc2VydmljZSB3b3JrZXIgdG8gY2xpZW50IGluIFNXU2VydmVyIHdpdGhv
dXQgZ29pbmcgdG8gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA2ZmU5OGY1M2ZiYTgxNWI0MWY4
NmEyZTc0NGZjMzAyOWE1NWQ4NzJhLi45OGE0MjI5Y2Y2YjBiNDg5Njg2MDFlZGE4YzU1OTJiNzBh
NGQ1NTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGll
bnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dD
bGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjE4LDggKzIxOCw3IEBAIHZvaWQgU1dDbGllbnRDb25u
ZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9j
dW1lbnRJCiAgICAgICAgIGlmICghY2xpZW50KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgQVNTRVJUKGNsaWVudC0+YWN0aXZlU2VydmljZVdvcmtlcigpKTsKLSAgICAgICAgQVNT
RVJUKGNsaWVudC0+YWN0aXZlU2VydmljZVdvcmtlcigpLT5pZGVudGlmaWVyKCkgIT0gbmV3Q29u
dHJvbGxlci5pZGVudGlmaWVyKTsKKyAgICAgICAgQVNTRVJUKCFjbGllbnQtPmFjdGl2ZVNlcnZp
Y2VXb3JrZXIoKSB8fCBjbGllbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKS0+aWRlbnRpZmllcigp
ICE9IG5ld0NvbnRyb2xsZXIuaWRlbnRpZmllcik7CiAgICAgICAgIGNsaWVudC0+c2V0QWN0aXZl
U2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZSgqY2xpZW50LCBTZXJ2aWNl
V29ya2VyRGF0YSB7IG5ld0NvbnRyb2xsZXIgfSkpOwogICAgICAgICBpZiAoYXV0byogY29udGFp
bmVyID0gY2xpZW50LT5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkpCiAgICAgICAgICAgICBjb250
YWluZXItPnNjaGVkdWxlVGFza1RvRmlyZUNvbnRyb2xsZXJDaGFuZ2VFdmVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
cy5jcHAKaW5kZXggNDUwNGY1M2E4MWFiMmNmOWRhNGUyYzRmYWQ4ZGM4NDExMGJkOWQzMy4uNjE2
ODdmOTc1ODFiYWRkOTc3MDNlZmNiOTBjNjNhNmViY2QzMTdkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCkBA
IC0xMDcsOSArMTA3LDI5IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6Om9wZW5XaW5kb3co
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsCiAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoImNsaWVu
dHMub3BlbldpbmRvdygpIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIikgfSk7CiB9CiAKLXZvaWQgU2Vy
dmljZVdvcmtlckNsaWVudHM6OmNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGFp
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCiB7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yLCBBU0NJSUxpdGVyYWwoImNsaWVudHMuY2xhaW0oKSBpcyBub3QgeWV0IHN1cHBvcnRl
ZCIpIH0pOworICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7CisKKyAgICBhdXRvIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyID0gc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLmlkZW50aWZp
ZXIoKTsKKworICAgIGlmICghc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnJlZ2lzdHJhdGlvbigp
LmFjdGl2ZSgpIHx8IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5yZWdpc3RyYXRpb24oKS5hY3Rp
dmUoKS0+aWRlbnRpZmllcigpICE9IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSB7CisgICAgICAg
IHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVNDSUlMaXRl
cmFsKCJTZXJ2aWNlIHdvcmtlciBpcyBub3QgYWN0aXZlIikgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBhdXRvIHByb21pc2VQb2ludGVyID0gcHJvbWlzZS5wdHIoKTsKKyAgICBt
X3BlbmRpbmdQcm9taXNlcy5hZGQocHJvbWlzZVBvaW50ZXIsIFdURk1vdmUocHJvbWlzZSkpOwor
CisgICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0
TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLT5j
bGFpbShzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTV0NvbnRleHRNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2VydmljZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgW3Byb21pc2VQb2ludGVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBzY29wZS5jbGllbnRzKCkubV9wZW5kaW5nUHJvbWlz
ZXMudGFrZShwcm9taXNlUG9pbnRlcikpCisgICAgICAgICAgICAgICAgICAgIHByb21pc2UudmFs
dWUoKS0+cmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggNWExNDU0
MWJhMTk5YjhiOThlNjZjNTA0NGIzODFjZDBmZjhmMzhjOC4uZjRlMDIyMTljYWY1ZDhhMzNhY2Nk
Yzc3NTAyYzE1ZWIwYmI2MTRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNTksNiArNTksNyBA
QCBwdWJsaWM6CiAgICAgICAgIHVzaW5nIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayA9
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPj4mJik+OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmluZENs
aWVudEJ5SWRlbnRpZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRz
TWF0Y2hBbGxDYWxsYmFjayYmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBjbGFpbShTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0g
MDsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb25uZWN0aW9uKHN0ZDo6
dW5pcXVlX3B0cjxDb25uZWN0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggMmJjYjliNWEwZDI3ZmQwNjBkNWZh
ZWFlYmJkZWFhZDM3MjNjYzJiMy4uZTIzMzU4ODdhM2U5ZjZiYmZlYjg1ZDExYjI1MGY4NjBkMDNj
ZmRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5jcHAKQEAgLTM0NCw2ICszNDQsMzEgQEAgdm9pZCBTV1NlcnZlcjo6bWF0Y2hBbGwo
U1dTZXJ2ZXJXb3JrZXImIHdvcmtlciwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3AK
ICAgICBjYWxsYmFjayhXVEZNb3ZlKGNsaWVudHMpKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6Y2xh
aW0oU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKK3sKKyAgICBhdXRvJiBvcmlnaW4gPSB3b3JrZXIu
b3JpZ2luKCk7CisgICAgYXV0byBpdGVyYXRvciA9IG1fY2xpZW50cy5maW5kKG9yaWdpbik7Cisg
ICAgaWYgKGl0ZXJhdG9yID09IG1fY2xpZW50cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byYgY2xpZW50cyA9IGl0ZXJhdG9yLT52YWx1ZS5jbGllbnRzOworICAgIGZvciAoYXV0
byYgY2xpZW50IDogY2xpZW50cykgeworICAgICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBkb1Jl
Z2lzdHJhdGlvbk1hdGNoaW5nKG9yaWdpbi50b3BPcmlnaW4sIGNsaWVudC5kYXRhLnVybCk7Cisg
ICAgICAgIGlmICghKHJlZ2lzdHJhdGlvbiAmJiByZWdpc3RyYXRpb24tPmtleSgpID09IHdvcmtl
ci5yZWdpc3RyYXRpb25LZXkoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBh
dXRvIHJlc3VsdCA9IG1fY2xpZW50VG9Db250cm9sbGluZ1dvcmtlci5hZGQoY2xpZW50LmlkZW50
aWZpZXIsIHdvcmtlci5pZGVudGlmaWVyKCkpOworICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0Vu
dHJ5KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9PSB3b3JrZXIu
aWRlbnRpZmllcigpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYg
KGF1dG8qIGNvbnRyb2xsaW5nUmVnaXN0cmF0aW9uID0gcmVnaXN0cmF0aW9uRnJvbVNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpKQorICAgICAgICAgICAgICAg
IGNvbnRyb2xsaW5nUmVnaXN0cmF0aW9uLT5yZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihj
bGllbnQuaWRlbnRpZmllcik7CisgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0g
d29ya2VyLmlkZW50aWZpZXIoKTsKKyAgICAgICAgfQorICAgICAgICByZWdpc3RyYXRpb24tPmNv
bnRyb2xDbGllbnQoY2xpZW50LmlkZW50aWZpZXIpOworICAgIH0KK30KKwogdm9pZCBTV1NlcnZl
cjo6ZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
Y29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5KQogewog
ICAgIEFTU0VSVF9VTlVTRUQoY29ubmVjdGlvbiwgbV9jb25uZWN0aW9ucy5jb250YWlucyhjb25u
ZWN0aW9uLmlkZW50aWZpZXIoKSkpOwpAQCAtNTY2LDkgKzU5MSw5IEBAIHZvaWQgU1dTZXJ2ZXI6
OnVucmVnaXN0ZXJDb25uZWN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgICAgIHJl
Z2lzdHJhdGlvbi0+dW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbi5pZGVudGlm
aWVyKCkpOwogfQogCi1jb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dTZXJ2ZXI6OmRvUmVn
aXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNv
bnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdAorU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIFNXU2VydmVy
Ojpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3Jp
Z2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkKIHsKLSAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJh
dGlvbiogc2VsZWN0ZWRSZWdpc3RyYXRpb24gPSBudWxscHRyOworICAgIFNXU2VydmVyUmVnaXN0
cmF0aW9uKiBzZWxlY3RlZFJlZ2lzdHJhdGlvbiA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiBy
ZWdpc3RyYXRpb24gOiBtX3JlZ2lzdHJhdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKCFy
ZWdpc3RyYXRpb24tPmtleSgpLmlzTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpKQogICAg
ICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmgKaW5kZXggNTZhYzMzYWZhOGNlOGUzZTExZmU3ZjRjNjQxNTI1ZjQ5
NGI1MzViMC4uM2UyOTBlMWQ3YjRlZGIyZjkwYjRmYjk1YzQ5YjhlZGMxM2Q2YmQ0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAt
NzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYpOwotICAgICAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdp
c3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29u
c3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0cmF0aW9u
TWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpOyB9CisgICAgICAgIFNXU2VydmVyUmVnaXN0
cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgeyByZXR1cm4gbV9zZXJ2ZXIuZG9SZWdp
c3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCk7IH0KIAogICAgICAgICAvLyBN
ZXNzYWdlcyB0byB0aGUgY2xpZW50IFdlYlByb2Nlc3MKICAgICAgICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVJlZ2lzdHJhdGlvblN0YXRlSW5DbGllbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyRGF0YT4mKSA9IDA7CkBAIC0xNDAsNiArMTQwLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgd29ya2VyQ29udGV4dFRlcm1pbmF0ZWQoU1dTZXJ2ZXJXb3JrZXImKTsKICAg
ICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBmaW5kQ2xpZW50QnlJZGVu
dGlmaWVyKGNvbnN0IENsaWVudE9yaWdpbiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
KTsKICAgICB2b2lkIG1hdGNoQWxsKFNXU2VydmVyV29ya2VyJiwgY29uc3QgU2VydmljZVdvcmtl
ckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFj
ayYmKTsKKyAgICB2b2lkIGNsYWltKFNXU2VydmVyV29ya2VyJik7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlcnZlclRvQ29udGV4dENvbm5lY3Rpb25DcmVhdGVkKCk7CiAgICAgCkBAIC0x
NjYsNyArMTY3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24oQ29ubmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyKTsKICAgICB2b2lkIHJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oQ29u
bmVjdGlvbiYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIGNvbnN0IFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1h
dGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNs
aWVudFVSTCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJSZWdpc3RyYXRpb24q
IGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmln
aW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKIAogICAgIHZvaWQgaW5zdGFsbENvbnRleHREYXRh
KGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uY3BwCmluZGV4IDhlYTZmY2VmZmM3YTY3NDU1ZGFiNTIwMTllMDUyNDY5OTE5ZWMzZWMuLjUy
OGYzNGRkOWMyYzIxMDQ1NjcwZmQ3YzkyMzQ5MDg3NGE1ZTk1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdp
c3RyYXRpb24uY3BwCkBAIC0yOTcsNiArMjk3LDE3IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRp
b246OmhhbmRsZUNsaWVudFVubG9hZCgpCiAgICAgdHJ5QWN0aXZhdGUoKTsKIH0KIAordm9pZCBT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVChhY3RpdmVXb3JrZXIoKSk7CisKKyAg
ICBhZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihpZGVudGlmaWVyKTsKKworICAgIEhhc2hTZXQ8
RG9jdW1lbnRJZGVudGlmaWVyPiBpZGVudGlmaWVyczsKKyAgICBpZGVudGlmaWVycy5hZGQoaWRl
bnRpZmllci5jb250ZXh0SWRlbnRpZmllcik7CisgICAgbV9zZXJ2ZXIuZ2V0Q29ubmVjdGlvbihp
ZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKS0+bm90aWZ5Q2xpZW50c09mQ29u
dHJvbGxlckNoYW5nZShpZGVudGlmaWVycywgYWN0aXZlV29ya2VyKCktPmRhdGEoKSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCAxMGU3MGFlM2UxOGZmZDhjYWJiYjc0YzM0
YmQzMjhjNGRhY2M0MDJmLi5mMzMzNmM0YzE2NDc5ZTQ4NTdkMGMwYWU4MzQwNDM3ZDAzZTRiNGZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpOwogCiAgICAgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKCk7Cisg
ICAgdm9pZCBjb250cm9sQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKTsKIAog
ICAgIHZvaWQgY2xlYXIoKTsKICAgICBib29sIHRyeUNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggMjMxYjliNGM4YzA0NjUwNGY0NzU1ODIwMWNk
MTI3NzQwNTUxZjE2Zi4uYjIzYWYxYzc5NTZkOGI3NmFhZjE5YzU3MTE1MGQ5MDBlOGY4YWQ1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTIzLDYgKzEy
MywxNCBAQCB2b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hBbGwodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXbwogICAgIH0KIH0KIAordm9pZCBTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OmNsYWltKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBp
ZiAoYXV0byogd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRp
ZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpIHsKKyAgICAgICAgd29ya2VyLT5jbGFpbSgp
OworICAgICAgICBnbG9iYWxTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCktPmNsYWltQ29tcGxl
dGVkKHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICB9Cit9CisKIHZvaWQgU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpza2lwV2FpdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byog
d29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aAppbmRleCAxYmU4N2Y1M2U0YTVjNGQ4ZWVkZjg0YWQwYmI5YjU0YTE0YmRmODkwLi5kMDliNDMz
NDhjZmVkYmQ3OTQyMzZlODY5YTg3NWNlMzkyZDcyOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3Qg
cmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVu
dERhdGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1h
dGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8
U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkgPSAwOwog
CiAgICAgLy8gTWVzc2FnZXMgYmFjayBmcm9tIHRoZSBTVyBob3N0IHByb2Nlc3MKQEAgLTY3LDYg
KzY4LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd29ya2VyVGVybWluYXRl
ZChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5k
Q2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXRjaEFsbCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVy
eU9wdGlvbnMmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsYWltKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICBzdGF0aWMgU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKiBjb25uZWN0aW9uRm9ySWRlbnRpZmllcihTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCA4
MDc2NzE0YTYxZDM2YzgwODgxZGQzMTliMDgyMjc1NWMwZjRiYTUyLi4yMzQxOGEyMThmZTZjNzEy
NDljM2Q5YTJkNmIxM2Q3ODBlOTdmYWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtMTE2LDYgKzEx
NiwxMSBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjptYXRjaEFsbChjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50UXVlcnlPcHRpb25zJiBvcHRpb25zLCBTZQogICAgIHJldHVybiBtX3NlcnZlci5tYXRj
aEFsbCgqdGhpcywgb3B0aW9ucywgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIFNXU2Vy
dmVyV29ya2VyOjpjbGFpbSgpCit7CisgICAgcmV0dXJuIG1fc2VydmVyLmNsYWltKCp0aGlzKTsK
K30KKwogdm9pZCBTV1NlcnZlcldvcmtlcjo6c2tpcFdhaXRpbmcoKQogewogICAgIG1faXNTa2lw
V2FpdGluZ0ZsYWdTZXQgPSB0cnVlOwpAQCAtMTI1LDYgKzEzMCwyMiBAQCB2b2lkIFNXU2VydmVy
V29ya2VyOjpza2lwV2FpdGluZygpCiAgICAgcmVnaXN0cmF0aW9uLT50cnlBY3RpdmF0ZSgpOwog
fQogCit2b2lkIFNXU2VydmVyV29ya2VyOjpzZXRIYXNQZW5kaW5nRXZlbnRzKGJvb2wgaGFzUGVu
ZGluZ0V2ZW50cykKK3sKKyAgICBpZiAobV9oYXNQZW5kaW5nRXZlbnRzID09IGhhc1BlbmRpbmdF
dmVudHMpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzUGVuZGluZ0V2ZW50cyA9IGhhc1Bl
bmRpbmdFdmVudHM7CisgICAgaWYgKG1faGFzUGVuZGluZ0V2ZW50cykKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2ZXIuZ2V0UmVnaXN0cmF0aW9uKG1f
cmVnaXN0cmF0aW9uS2V5KTsKKyAgICBBU1NFUlQocmVnaXN0cmF0aW9uKTsKKyAgICBpZiAocmVn
aXN0cmF0aW9uLT5pc1VuaW5zdGFsbGluZygpICYmIHJlZ2lzdHJhdGlvbi0+dHJ5Q2xlYXIoKSkK
KyAgICAgICAgcmV0dXJuOworICAgIHJlZ2lzdHJhdGlvbi0+dHJ5QWN0aXZhdGUoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlcldvcmtlci5oCmluZGV4IDNjNTIwOGUxMzU4NzY0Mjc0NTZkN2JlZjAxNGRiMDQyYzJmMGEz
Y2MuLmZiOGRmODQwNTE5NDAzNDI0ZDdjYjdhNmZhOGNmMTA4MmNhODBkZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RhdGUoU2VydmljZVdv
cmtlclN0YXRlIHN0YXRlKSB7IG1fZGF0YS5zdGF0ZSA9IHN0YXRlOyB9CiAKICAgICBib29sIGhh
c1BlbmRpbmdFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdFdmVudHM7IH0KLSAg
ICB2b2lkIHNldEhhc1BlbmRpbmdFdmVudHMoYm9vbCB2YWx1ZSkgeyBtX2hhc1BlbmRpbmdFdmVu
dHMgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0SGFzUGVuZGluZ0V2ZW50cyhib29sKTsKIAogICAg
IHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAg
ICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyPiYpOwpAQCAtOTAsNiArOTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjb250ZXh0VGVybWluYXRlZCgpOwogICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudERhdGE+IGZpbmRDbGllbnRCeUlkZW50aWZpZXIoU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIpOwogICAgIHZvaWQgbWF0Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1
ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKTsKKyAg
ICB2b2lkIGNsYWltKCk7CiAKICAgICB2b2lkIHNraXBXYWl0aW5nKCk7CiAgICAgYm9vbCBpc1Nr
aXBXYWl0aW5nRmxhZ1NldCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTa2lwV2FpdGluZ0ZsYWdTZXQ7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAKaW5kZXggYTVhOWJjOTliNmY2OTUxNDRjMWYyOThjMzU4YWZiMmU3Y2Y3MjYyYS4uMTg2OGUy
ODcxMzBkODcwYWZhY2I1MTg0ZWNjN2JkZTJmNjExOTdkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTkxLDYgKzkxLDExIEBA
IHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246Ok1hdGNoQWxsQ29tcGxldGVkIHsgcmVxdWVzdElkZW50aWZpZXIs
IGNsaWVudHNEYXRhIH0pOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIpCit7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkNsYWltQ29tcGxldGVk
IHsgcmVxdWVzdElkZW50aWZpZXIgfSk7Cit9CisKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKQogewog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpEaWRGaW5p
c2hTa2lwV2FpdGluZyB7IGNhbGxiYWNrSUQgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYzY0MDI1NjViNTllY2E2NmQwYmFlYjEx
MmQwY2U2MzExYWQ0NmRlMS4uZjgzOWU2N2I2ZDFjMzEzMjdiNTgzODUwNDNkZTFiMDUyOTNhOTBm
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aApAQCAtNjIsNiArNjIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtl
cihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaW5k
Q2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBj
b25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJv
b2wgaGFzU2VjdXJpdHlFcnJvcikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mKSBmaW5hbDsKKyAgICB2b2lkIGNsYWltQ29tcGxldGVk
KHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFNr
aXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwogCiAgICAgUmVmPElQQzo6Q29u
bmVjdGlvbj4gbV9pcGNDb25uZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMTAxZDNkNDQw
ZjYzYTRhZTcyMWQ5NzNhMjM4NmM2ZDI3ZjlkNGUwOC4uMzQwNWE1YTdkYWQ1YWQ4YjIzM2RjNTQ4
YjY1OWYyYmJiMTQxMzMzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNCw2ICszNCw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiB7CiAgICAgV29ya2VyVGVy
bWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKTsKICAg
ICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpOwogICAgIE1hdGNoQWxsKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsK
KyAgICBDbGFpbSh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiB9CiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKaW5kZXggNjI4NTEyMzg1YjNiODFkZTAxMDExZGMxODFlZTUyZjE4YmE4ODFjZi4uYTQ2
ZTZiZTg2NDZlMDg5NGU3OGJkZmJlNmU5ZWU2OTlkOTFkOTM3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMjQ1LDYgKzI0NSwxOSBAQCB2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllcgogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKGNsaWVudHNEYXRhKSk7CiB9CiAKK3Zv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNsYWltKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byByZXF1ZXN0SWRlbnRpZmllciA9ICsr
bV9wcmV2aW91c1JlcXVlc3RJZGVudGlmaWVyOworICAgIG1fY2xhaW1SZXF1ZXN0cy5hZGQocmVx
dWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2Nvbm5lY3Rpb25Ub1N0
b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246OkNsYWltIHsgcmVxdWVzdElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIH0s
IDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbGFpbUNvbXBs
ZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvIGNh
bGxiYWNrID0gbV9jbGFpbVJlcXVlc3RzLnRha2UoY2xhaW1SZXF1ZXN0SWRlbnRpZmllcikpCisg
ICAgICAgIGNhbGxiYWNrKCk7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OmRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgaWYg
KGF1dG8gY2FsbGJhY2sgPSBtX3NraXBXYWl0aW5nUmVxdWVzdHMudGFrZShjYWxsYmFja0lEKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDcwNzUwYzM0MzY3NTJkMTJkYzFm
NDQ1ZDYwNzRmMGFjODA5YjE4NTMuLmUyOTUzYTEzZmVhYjdiY2IwYmMxMzg0Y2M5OGI5Yjk4ZmNl
ZDFkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNjYsNiArNjYsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgd29ya2VyVGVybWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwog
ICAgIHZvaWQgbWF0Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBjbGFp
bShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgc2tpcFdhaXRpbmcoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKSBmaW5h
bDsKIAogICAgIC8vIElQQyBtZXNzYWdlcy4KQEAgLTgwLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFJlZjxNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN5bmNUZXJt
aW5hdGVXb3JrZXI6OkRlbGF5ZWRSZXBseT4mJik7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVu
dGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmLCBib29sIGhhc1NlY3VyaXR5RXJy
b3IpOwogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0
SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlv
bj4mJik7CisgICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVu
dGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNr
SUQpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJv
Y2VzczsKQEAgLTg4LDYgKzkwLDcgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hNYXA8dWludDY0X3Qs
IEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjaz4gbV9maW5kQ2xpZW50QnlJZGVudGlmaWVy
UmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudHNNYXRjaEFsbENhbGxiYWNrPiBtX21hdGNoQWxsUmVxdWVzdHM7CisgICAgSGFzaE1hcDx1
aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX2NsYWltUmVxdWVzdHM7
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBtX3NraXBXYWl0
aW5nUmVxdWVzdHM7CiAgICAgdWludDY0X3QgbV9wcmV2aW91c1JlcXVlc3RJZGVudGlmaWVyIHsg
MCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KaW5kZXggODIxZGNkZjg2ZmQyMDk3NmZhN2Q4ZGZlYjZiZjI5NzRiZDk0NGRkNi4uMzk4MmI0
NTBhOTc4ODYwNGFhMzM0NjFmZTAxNDRlMTIyNmU3MDZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMzLDYgKzMzLDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIFN5bmNUZXJtaW5hdGVX
b3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkg
RGVsYXllZAogICAgIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgY2xp
ZW50SWRSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YT4gZGF0YSwgYm9vbCBoYXNTZWN1cml0eUVycm9yKQogICAgIE1hdGNoQWxs
Q29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+IGNsaWVudHNEYXRhKQorICAgIENs
YWltQ29tcGxldGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIpCiAgICAgRGlkRmlu
aXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFhMWI1Mjc4
NWVmNTQ1MDllMDcxZTExNDNjNzBmMmUyMTlhOTk0Y2YuLjc1Y2M2ZTk3NTdhZmMyY2QzYWUzOTQw
OTYyOTZlODAwMDIzOWUxODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0xMi0wNCAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjbGllbnRzLWNsYWltCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAyNjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLXdvcmtlci5qczogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMt
Y2xhaW0uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS5odHRwcy5odG1sOiBBZGRl
ZC4KKwogMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5za2lwIHNvbWUgbW9yZSBTZXJ2aWNlIFdvcmtlciB0ZXN0cwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKaW5kZXggYzJlNzAyYmI1NWFmODg1YjhkMWZmOGUzYzE3NDRlYTFjZjNk
Zjk4MC4uMDEzY2U3NGNmOTcyNzIwMDFiNmJhNmQxOTdjMmZjOTQ4MTY4OTA4NyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMTItMDQgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBodHRwczov
L3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2xpZW50cy1jbGFpbQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMjYxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQu
dHh0OgorCiAyMDE3LTEyLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBVbnNraXAgc29tZSBtb3JlIFNlcnZpY2UgV29ya2VyIHRlc3RzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xp
ZW50cy1jbGFpbS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRl
MDNmMzAxOTIzNzRhMzAzNTkzNWE2ZjEzZjc0NDNmYmQ3NGQ3ZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGll
bnRzLWNsYWltLXdvcmtlci5qcwpAQCAtMCwwICsxLDM0IEBACitzZWxmLmFkZEV2ZW50TGlzdGVu
ZXIoImZldGNoIiwgYXN5bmMgKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJs
LmluZGV4T2YoInBpbmtlbGVwaGFudCIpICE9PSAtMSkKKyAgICAgICAgZXZlbnQucmVzcG9uZFdp
dGgobmV3IFJlc3BvbnNlKCJQQVNTIikpOworfSk7CisKK3ZhciB0cnlDbGFpbVByb21pc2UgPSBz
ZWxmLmNsaWVudHMuY2xhaW0oKS50aGVuKCgpID0+IHsKKyAgICByZXR1cm4gIkZBSUw6IGNsYWlt
IGRpZCBub3QgdGhyb3ciOworfSwgKGUpID0+IHsKKyAgICByZXR1cm4gIlBBU1MsIHJlY2VpdmVk
IGV4Y2VwdGlvbiAiICsgZTsKK30pOworCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoZXZlbnQpCit7
CisgICAgaWYgKGV2ZW50LmRhdGEgIT09ICJzdGFydCIpIHsKKyAgICAgICAgZXZlbnQuc291cmNl
LnBvc3RNZXNzYWdlKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2UgZnJvbSBjbGll
bnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZhciByZXN1bHQgPSBhd2FpdCB0
cnlDbGFpbVByb21pc2U7CisgICAgaWYgKCFyZXN1bHQuc3RhcnRzV2l0aCgiUEFTUyIpKSB7Cisg
ICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgc2VsZi5jbGllbnRzLmNsYWltKCkudGhlbigoKSA9PiB7CisgICAgICAg
IGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiQ0xBSU1FRCIpOworICAgIH0sICgpID0+IHsKKyAg
ICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiByZWNlaXZlZCBleGNlcHRpb24g
IiArIGUpOworICAgIH0pOworfQorCisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IGRvVGVzdCk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRz
LWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMWFhMjFkZDliMDZmZGI0YTA2
ZGYyMjM3ZWI1YTVhZWRiMzNhNTY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFNldHVwIHdvcmtlciAKK1BBU1Mg
VGVzdCBzZWxmLmNsaWVudHMuY2xhaW0gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2Vy
Y2xpZW50cy1jbGFpbS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5NTI2MjEyYmIwYWVkZDZlYzlk
YmRiZmUwZTYzYmJmODgzZGVmODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
Cit2YXIgc2NvcGUgPSAiL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFp
bS5odHRwcy5odG1sIjsKK3ZhciBhY3RpdmVXb3JrZXI7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpOworICAgIGlmIChyZWdpc3RyYXRpb24gJiYg
cmVnaXN0cmF0aW9uLnNjb3BlID09PSBzY29wZSkKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9u
LnVucmVnaXN0ZXIoKTsKKworICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3Rlcigic2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0td29ya2Vy
LmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlv
bi5hY3RpdmU7CisgICAgaWYgKGFjdGl2ZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworICAgIGFj
dGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0
ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCB0ZXN0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGlmIChl
dmVudC5kYXRhID09PSAiQ0xBSU1FRCIpIHsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFl
dmVudC5kYXRhLnN0YXJ0c1dpdGgoIlBBU1MiKSkgeworICAgICAgICAgICAgICAgIHJlamVjdChl
dmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pKTsKKyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgic3RhcnQi
KTsKKyAgICBhd2FpdCBwcm9taXNlOworCisgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2go
InBpbmtlbGVwaGFudCIpOworICAgIHZhciB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpOwor
ICAgIGFzc2VydF9lcXVhbHModGV4dCwgIlBBU1MiKTsKK30sICJUZXN0IHNlbGYuY2xpZW50cy5j
bGFpbSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2FjdGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGZlZTRhYjA1ZDY1MTBlZTJj
ODA3ODcyOTQ1NWM4MjMyYjExOTZhZmIuLjAyMzg3ZmM5OGNiMzBlMWRiN2JkZjdhZjEwMzllMzJl
MmU2ZGUwOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiAKLUZBSUwgbG9zcyBvZiBjb250cm9sbGVlcyB0
cmlnZ2VycyBhY3RpdmF0aW9uIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1
ZSBudWxsCi1GQUlMIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgYWN0aXZhdGlvbiBhc3Nl
cnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVsbAotRkFJTCBza2lwV2FpdGlu
ZyBieXBhc3NlcyBubyBjb250cm9sbGVlIHJlcXVpcmVtZW50IGFzc2VydF9ub3RfZXF1YWxzOiBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxsCi1GQUlMIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dl
cnMgdW5yZWdpc3RlciBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVs
bAorUEFTUyBsb3NzIG9mIGNvbnRyb2xsZWVzIHRyaWdnZXJzIGFjdGl2YXRpb24gCitQQVNTIGZp
bmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgYWN0aXZhdGlvbiAKK1BBU1Mgc2tpcFdhaXRpbmcg
YnlwYXNzZXMgbm8gY29udHJvbGxlZSByZXF1aXJlbWVudCAKK0ZBSUwgZmluaXNoaW5nIGEgcmVx
dWVzdCB0cmlnZ2VycyB1bnJlZ2lzdGVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIG51bGwgYnV0
IGdvdCBvYmplY3QgIltvYmplY3QgU2VydmljZVdvcmtlcl0iCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328487</attachid>
            <date>2017-12-05 12:47:29 -0800</date>
            <delta_ts>2017-12-05 13:26:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-180261-20171205124728.patch</filename>
            <type>text/plain</type>
            <size>32262</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjYjAzODM2ZmY0MmY3
ZGRkYzIyMDM3ZjJjZGU2MjlkODc2YzRkMC4uOTVlOTBhYTI1ZjY3Y2Q0NTMyYzUwNWI0ODhiY2Uw
ZDc5NDNhYTdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTEyLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwKKworICAgICAg
ICBJbXBsZW1lbnQgY2xhaW0gYnkgZ29pbmcgdG8gdGhlIHN0b3JhZ2UgcHJvY2VzcyBhbmQgdGhl
biBpdGVyYXRlIG92ZXIgY2xpZW50cyB0byBzZWUgd2hldGhlciBhY3RpdmUgd29ya2VyIGNhbiBi
ZSBzZXQuCisgICAgICAgIFVwZGF0ZSBTV1NlcnZlcldvcmtlciB0byBjYWxsIHJlZ2lzdHJhdGlv
biB0cnlDbGVhci90cnlBY3RpdmF0ZSB3aGVuZXZlciBhIHNlcnZpY2Ugd29ya2VyIGhhcyBubyBw
ZW5kaW5nIGV2ZW50LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGFp
bSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNsYWltKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Ojpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpk
b1JlZ2lzdHJhdGlvbk1hdGNoaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
Q29ubmVjdGlvbjo6ZG9SZWdpc3RyYXRpb25NYXRjaGluZyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xhaW0pOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6Y2xhaW0pOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKwogMjAxNy0xMi0wNSAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgd2Via2l0
R2V0SW1hZ2VEYXRhSEQgYW5kIHdlYmtpdFB1dEltYWdlRGF0YUhEIGZyb20gY2FudmFzIEFQSQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA4M2IwMGEyNzkzYzQxZTk5ZmMzODdmZWNhNzBmMmUzMDNmY2Y2NzliLi5iNDU3
MmRjZDYyN2I1ZGY4NzQ3MTAxNjZhYWVlZTkyNDM5MDU0N2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDI0IEBACiAyMDE3LTEyLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAor
ICAgICAgICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2Ns
aWVudHMtY2xhaW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MDI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
IEFkZCBJUEMgcGx1bWJlcnkgZm9yIGNsaWVudHMgY2xhaW0gYmV0d2VlbiBTZXJ2aWNlV29ya2Vy
IHByb2Nlc3MgYW5kIFN0b3JhZ2UgcHJvY2Vzcy4KKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjbGFpbUNvbXBsZXRl
ZCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW0pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW1Db21w
bGV0ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgSW1wbGVtZW50IHNldHRpbmcgb2Ygc2Vy
dmljZSB3b3JrZXIgdG8gY2xpZW50IGluIFNXU2VydmVyIHdpdGhvdXQgZ29pbmcgdG8gV2ViUHJv
Y2VzcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
MzgyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKaW5kZXggNmZlOThmNTNmYmE4MTViNDFmODZhMmU3NDRmYzMwMjlhNTVk
ODcyYS4uOThhNDIyOWNmNmIwYjQ4OTY4NjAxZWRhOGM1NTkyYjcwYTRkNTUyYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTIxOCw4ICsyMTgsNyBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xp
ZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PERvY3VtZW50SQogICAgICAgICBp
ZiAoIWNsaWVudCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIEFTU0VSVChjbGll
bnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSk7Ci0gICAgICAgIEFTU0VSVChjbGllbnQtPmFjdGl2
ZVNlcnZpY2VXb3JrZXIoKS0+aWRlbnRpZmllcigpICE9IG5ld0NvbnRyb2xsZXIuaWRlbnRpZmll
cik7CisgICAgICAgIEFTU0VSVCghY2xpZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkgfHwgY2xp
ZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCktPmlkZW50aWZpZXIoKSAhPSBuZXdDb250cm9sbGVy
LmlkZW50aWZpZXIpOwogICAgICAgICBjbGllbnQtPnNldEFjdGl2ZVNlcnZpY2VXb3JrZXIoU2Vy
dmljZVdvcmtlcjo6Z2V0T3JDcmVhdGUoKmNsaWVudCwgU2VydmljZVdvcmtlckRhdGEgeyBuZXdD
b250cm9sbGVyIH0pKTsKICAgICAgICAgaWYgKGF1dG8qIGNvbnRhaW5lciA9IGNsaWVudC0+c2Vy
dmljZVdvcmtlckNvbnRhaW5lcigpKQogICAgICAgICAgICAgY29udGFpbmVyLT5zY2hlZHVsZVRh
c2tUb0ZpcmVDb250cm9sbGVyQ2hhbmdlRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCmluZGV4IDQ1MDRm
NTNhODFhYjJjZjlkYTRlMmM0ZmFkOGRjODQxMTBiZDlkMzMuLjYxNjg3Zjk3NTgxYmFkZDk3NzAz
ZWZjYjkwYzYzYTZlYmNkMzE3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcApAQCAtMTA3LDkgKzEwNywyOSBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpvcGVuV2luZG93KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBTdHJpbmcmIHVybAogICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRlcmFsKCJjbGllbnRzLm9wZW5XaW5kb3coKSBp
cyBub3QgeWV0IHN1cHBvcnRlZCIpIH0pOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRz
OjpjbGFpbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQordm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Y2xhaW0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAg
IHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgQVNDSUlMaXRl
cmFsKCJjbGllbnRzLmNsYWltKCkgaXMgbm90IHlldCBzdXBwb3J0ZWQiKSB9KTsKKyAgICBhdXRv
JiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KGNvbnRleHQpOworCisgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5pZGVudGlmaWVyKCk7CisKKyAgICBpZiAo
IXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5yZWdpc3RyYXRpb24oKS5hY3RpdmUoKSB8fCBzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUucmVnaXN0cmF0aW9uKCkuYWN0aXZlKCktPmlkZW50aWZpZXIo
KSAhPSBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikgeworICAgICAgICBwcm9taXNlLT5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiU2VydmljZSB3b3Jr
ZXIgaXMgbm90IGFjdGl2ZSIpIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0
byBwcm9taXNlUG9pbnRlciA9IHByb21pc2UucHRyKCk7CisgICAgbV9wZW5kaW5nUHJvbWlzZXMu
YWRkKHByb21pc2VQb2ludGVyLCBXVEZNb3ZlKHByb21pc2UpKTsKKworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJs
ZSB7CisgICAgICAgIGF1dG8gY29ubmVjdGlvbiA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRv
bigpLmNvbm5lY3Rpb24oKTsKKyAgICAgICAgY29ubmVjdGlvbi0+Y2xhaW0oc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdICgp
IG11dGFibGUgeworICAgICAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9z
dFRhc2tUb1NlcnZpY2VXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9p
bnRlcl0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBw
cm9taXNlID0gc2NvcGUuY2xpZW50cygpLm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJvbWlzZVBv
aW50ZXIpKQorICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnZhbHVlKCktPnJlc29sdmUoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IDVhMTQ1NDFiYTE5OWI4Yjk4ZTY2YzUw
NDRiMzgxY2QwZmY4ZjM4YzguLmY0ZTAyMjE5Y2FmNWQ4YTMzYWNjZGM3NzUwMmMxNWViMGJiNjE0
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NX
Q29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgICAg
ICB1c2luZyBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4+JiYpPjsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIo
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBG
aW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgbWF0Y2hBbGwoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJD
bGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2sm
JikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xhaW0oU2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgfTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29ubmVjdGlvbihzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVj
dGlvbj4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwCmluZGV4IDJiY2I5YjVhMGQyN2ZkMDYwZDVmYWVhZWJiZGVhYWQzNzIzY2My
YjMuLmUyMzM1ODg3YTNlOWY2YmJmZWI4NWQxMWIyNTBmODYwZDAzY2ZkY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0z
NDQsNiArMzQ0LDMxIEBAIHZvaWQgU1dTZXJ2ZXI6Om1hdGNoQWxsKFNXU2VydmVyV29ya2VyJiB3
b3JrZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wCiAgICAgY2FsbGJhY2soV1RG
TW92ZShjbGllbnRzKSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OmNsYWltKFNXU2VydmVyV29ya2Vy
JiB3b3JrZXIpCit7CisgICAgYXV0byYgb3JpZ2luID0gd29ya2VyLm9yaWdpbigpOworICAgIGF1
dG8gaXRlcmF0b3IgPSBtX2NsaWVudHMuZmluZChvcmlnaW4pOworICAgIGlmIChpdGVyYXRvciA9
PSBtX2NsaWVudHMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGNsaWVudHMg
PSBpdGVyYXRvci0+dmFsdWUuY2xpZW50czsKKyAgICBmb3IgKGF1dG8mIGNsaWVudCA6IGNsaWVu
dHMpIHsKKyAgICAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRjaGlu
ZyhvcmlnaW4udG9wT3JpZ2luLCBjbGllbnQuZGF0YS51cmwpOworICAgICAgICBpZiAoIShyZWdp
c3RyYXRpb24gJiYgcmVnaXN0cmF0aW9uLT5rZXkoKSA9PSB3b3JrZXIucmVnaXN0cmF0aW9uS2V5
KCkpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX2Ns
aWVudFRvQ29udHJvbGxpbmdXb3JrZXIuYWRkKGNsaWVudC5pZGVudGlmaWVyLCB3b3JrZXIuaWRl
bnRpZmllcigpKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgeworICAgICAgICAg
ICAgaWYgKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPT0gd29ya2VyLmlkZW50aWZpZXIoKSkKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChhdXRvKiBjb250cm9sbGlu
Z1JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbkZyb21TZXJ2aWNlV29ya2VySWRlbnRpZmllcihy
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlKSkKKyAgICAgICAgICAgICAgICBjb250cm9sbGluZ1JlZ2lz
dHJhdGlvbi0+cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY2xpZW50LmlkZW50aWZpZXIp
OworICAgICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHdvcmtlci5pZGVudGlmaWVy
KCk7CisgICAgICAgIH0KKyAgICAgICAgcmVnaXN0cmF0aW9uLT5jb250cm9sQ2xpZW50KGNsaWVu
dC5pZGVudGlmaWVyKTsKKyAgICB9Cit9CisKIHZvaWQgU1dTZXJ2ZXI6OmRpZFJlc29sdmVSZWdp
c3RyYXRpb25Qcm9taXNlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkmIHJlZ2lzdHJhdGlvbktleSkKIHsKICAgICBBU1NFUlRfVU5VU0VE
KGNvbm5lY3Rpb24sIG1fY29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbi5pZGVudGlmaWVy
KCkpKTsKQEAgLTU2Niw5ICs1OTEsOSBAQCB2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyQ29ubmVj
dGlvbihDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAgICByZWdpc3RyYXRpb24tPnVucmVn
aXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKIH0KIAotY29u
c3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIFNXU2VydmVyOjpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5n
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVS
TCkgY29uc3QKK1NXU2VydmVyUmVnaXN0cmF0aW9uKiBTV1NlcnZlcjo6ZG9SZWdpc3RyYXRpb25N
YXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBj
bGllbnRVUkwpCiB7Ci0gICAgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIHNlbGVjdGVkUmVn
aXN0cmF0aW9uID0gbnVsbHB0cjsKKyAgICBTV1NlcnZlclJlZ2lzdHJhdGlvbiogc2VsZWN0ZWRS
ZWdpc3RyYXRpb24gPSBudWxscHRyOwogICAgIGZvciAoYXV0byYgcmVnaXN0cmF0aW9uIDogbV9y
ZWdpc3RyYXRpb25zLnZhbHVlcygpKSB7CiAgICAgICAgIGlmICghcmVnaXN0cmF0aW9uLT5rZXko
KS5pc01hdGNoaW5nKHRvcE9yaWdpbiwgY2xpZW50VVJMKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
CmluZGV4IDU2YWMzM2FmYThjZThlM2UxMWZlN2Y0YzY0MTUyNWY0OTRiNTM1YjAuLjNlMjkwZTFk
N2I0ZWRiMmY5MGI0ZmI5NWM0OWI4ZWRjMTNkNmJkNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTc0LDcgKzc0LDcgQEAgcHVi
bGljOgogICAgICAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KIAogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFJlc29sdmVSZWdp
c3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKTsKLSAg
ICAgICAgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmco
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
KSBjb25zdCB7IHJldHVybiBtX3NlcnZlci5kb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKHRvcE9yaWdp
biwgY2xpZW50VVJMKTsgfQorICAgICAgICBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3Ry
YXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3Qg
VVJMJiBjbGllbnRVUkwpIHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0cmF0aW9uTWF0Y2hpbmco
dG9wT3JpZ2luLCBjbGllbnRVUkwpOyB9CiAKICAgICAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIGNs
aWVudCBXZWJQcm9jZXNzCiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25T
dGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckRhdGE+JikgPSAwOwpAQCAtMTQwLDYgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdvcmtl
ckNvbnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29ya2VyJik7CiAgICAgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZmluZENsaWVudEJ5SWRlbnRpZmllcihjb25zdCBDbGll
bnRPcmlnaW4mLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAgICAgdm9pZCBtYXRj
aEFsbChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlv
bnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJik7CisgICAgdm9pZCBj
bGFpbShTV1NlcnZlcldvcmtlciYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uQ3JlYXRlZCgpOwogICAgIApAQCAtMTY2LDcgKzE2Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5l
Y3Rpb24mLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBy
ZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBjb25z
dCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1h
dGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNs
aWVudFVSTCk7CiAKICAgICB2b2lkIGluc3RhbGxDb250ZXh0RGF0YShjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA4ZWE2
ZmNlZmZjN2E2NzQ1NWRhYjUyMDE5ZTA1MjQ2OTkxOWVjM2VjLi41MjhmMzRkZDljMmMyMTA0NTY3
MGZkN2M5MjM0OTA4NzRhNWU5NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAt
Mjk3LDYgKzI5NywxNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpoYW5kbGVDbGllbnRV
bmxvYWQoKQogICAgIHRyeUFjdGl2YXRlKCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRp
b246OmNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmll
cikKK3sKKyAgICBBU1NFUlQoYWN0aXZlV29ya2VyKCkpOworCisgICAgYWRkQ2xpZW50VXNpbmdS
ZWdpc3RyYXRpb24oaWRlbnRpZmllcik7CisKKyAgICBIYXNoU2V0PERvY3VtZW50SWRlbnRpZmll
cj4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIuY29udGV4dElk
ZW50aWZpZXIpOworICAgIG1fc2VydmVyLmdldENvbm5lY3Rpb24oaWRlbnRpZmllci5zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciktPm5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoaWRl
bnRpZmllcnMsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmgKaW5kZXggMTBlNzBhZTNlMThmZmQ4Y2FiYmI3NGMzNGJkMzI4YzRkYWNjNDAyZi4u
ZjMzMzZjNGMxNjQ3OWU0ODU3ZDBjMGFlODM0MDQzN2QwM2U0YjRmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdp
c3RyYXRpb24uaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVy
U2VydmVyQ29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIHZv
aWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZSgpOworICAgIHZvaWQgY29udHJvbENs
aWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNsZWFyKCk7
CiAgICAgYm9vbCB0cnlDbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwCmluZGV4IDIzMWI5YjRjOGMwNDY1MDRmNDc1NTgyMDFjZDEyNzc0MDU1MWYxNmYuLmIy
M2FmMWM3OTU2ZDhiNzZhYWYxOWM1NzExNTBkOTAwZThmOGFkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTEyMyw2ICsxMjMsMTQgQEAgdm9pZCBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1hdGNoQWxsKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBTZXJ2aWNlV28KICAgICB9CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpjbGFpbSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpCit7CisgICAgaWYgKGF1dG8qIHdvcmtlciA9
IFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2VydmljZVdvcmtl
cklkZW50aWZpZXIpKSB7CisgICAgICAgIHdvcmtlci0+Y2xhaW0oKTsKKyAgICAgICAgZ2xvYmFs
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpLT5jbGFpbUNvbXBsZXRlZChyZXF1ZXN0SWRlbnRp
Zmllcik7CisgICAgfQorfQorCiB2b2lkIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6c2tp
cFdhaXRpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8qIHdvcmtlciA9IFNXU2VydmVy
V29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggMWJlODdmNTNl
NGE1YzRkOGVlZGY4NGFkMGJiOWI1NGExNGJkZjg5MC4uZDA5YjQzMzQ4Y2ZlZGJkNzk0MjM2ZTg2
OWE4NzVjZTM5MmQ3Mjk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
CkBAIC01NSw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3luY1Rlcm1pbmF0
ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBm
aW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVy
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJvb2wgaGFz
U2VjdXJpdHlFcnJvcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGll
bnRJbmZvcm1hdGlvbj4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsYWltQ29tcGxldGVkKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpID0gMDsKIAogICAgIC8vIE1lc3NhZ2Vz
IGJhY2sgZnJvbSB0aGUgU1cgaG9zdCBwcm9jZXNzCkBAIC02Nyw2ICs2OCw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdvcmtlclRlcm1pbmF0ZWQoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmll
cih1aW50NjRfdCBjbGllbnRJZFJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbWF0Y2hBbGwodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjbGFpbSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpOwogCiAgICAgc3RhdGljIFNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbiogY29ubmVjdGlvbkZvcklkZW50aWZpZXIoU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKaW5kZXggODA3NjcxNGE2MWQzNmM4MDg4
MWRkMzE5YjA4MjI3NTVjMGY0YmE1Mi4uNTA2OGIwZDY4YzRhZDdjNGU0YTVkMDBhMTIyZjk5YzQy
NzhiNTg5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAKQEAgLTExNiw2ICsxMTYsMTEgQEAgdm9pZCBTV1Nl
cnZlcldvcmtlcjo6bWF0Y2hBbGwoY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9u
cyYgb3B0aW9ucywgU2UKICAgICByZXR1cm4gbV9zZXJ2ZXIubWF0Y2hBbGwoKnRoaXMsIG9wdGlv
bnMsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBTV1NlcnZlcldvcmtlcjo6Y2xhaW0o
KQoreworICAgIHJldHVybiBtX3NlcnZlci5jbGFpbSgqdGhpcyk7Cit9CisKIHZvaWQgU1dTZXJ2
ZXJXb3JrZXI6OnNraXBXYWl0aW5nKCkKIHsKICAgICBtX2lzU2tpcFdhaXRpbmdGbGFnU2V0ID0g
dHJ1ZTsKQEAgLTEyNSw2ICsxMzAsMjMgQEAgdm9pZCBTV1NlcnZlcldvcmtlcjo6c2tpcFdhaXRp
bmcoKQogICAgIHJlZ2lzdHJhdGlvbi0+dHJ5QWN0aXZhdGUoKTsKIH0KIAordm9pZCBTV1NlcnZl
cldvcmtlcjo6c2V0SGFzUGVuZGluZ0V2ZW50cyhib29sIGhhc1BlbmRpbmdFdmVudHMpCit7Cisg
ICAgaWYgKG1faGFzUGVuZGluZ0V2ZW50cyA9PSBoYXNQZW5kaW5nRXZlbnRzKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2hhc1BlbmRpbmdFdmVudHMgPSBoYXNQZW5kaW5nRXZlbnRzOworICAg
IGlmIChtX2hhc1BlbmRpbmdFdmVudHMpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvIHRy
eUNsZWFyL3RyeUFjdGl2YXRlLCBhcyBwZXIgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VX
b3JrZXIvI3dhaXQtdW50aWwtbWV0aG9kLgorICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IG1fc2Vy
dmVyLmdldFJlZ2lzdHJhdGlvbihtX3JlZ2lzdHJhdGlvbktleSk7CisgICAgQVNTRVJUKHJlZ2lz
dHJhdGlvbik7CisgICAgaWYgKHJlZ2lzdHJhdGlvbi0+aXNVbmluc3RhbGxpbmcoKSAmJiByZWdp
c3RyYXRpb24tPnRyeUNsZWFyKCkpCisgICAgICAgIHJldHVybjsKKyAgICByZWdpc3RyYXRpb24t
PnRyeUFjdGl2YXRlKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAppbmRleCAzYzUyMDhlMTM1ODc2NDI3
NDU2ZDdiZWYwMTRkYjA0MmMyZjBhM2NjLi5mYjhkZjg0MDUxOTQwMzQyNGQ3Y2I3YTZmYThjZjEw
ODJjYTgwZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC04MSw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFN0YXRlKFNlcnZpY2VXb3JrZXJTdGF0ZSBzdGF0ZSkgeyBtX2RhdGEuc3RhdGUgPSBz
dGF0ZTsgfQogCiAgICAgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9o
YXNQZW5kaW5nRXZlbnRzOyB9Ci0gICAgdm9pZCBzZXRIYXNQZW5kaW5nRXZlbnRzKGJvb2wgdmFs
dWUpIHsgbV9oYXNQZW5kaW5nRXZlbnRzID0gdmFsdWU7IH0KKyAgICB2b2lkIHNldEhhc1BlbmRp
bmdFdmVudHMoYm9vbCk7CiAKICAgICB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KGNv
bnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSk7CiAgICAgdm9pZCBzY3JpcHRDb250ZXh0U3RhcnRlZChjb25zdCBz
dGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4mKTsKQEAgLTkwLDYg
KzkwLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29udGV4dFRlcm1pbmF0ZWQoKTsKICAgICBzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBmaW5kQ2xpZW50QnlJZGVudGlmaWVy
KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKTsKICAgICB2b2lkIG1hdGNoQWxsKGNvbnN0
IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01h
dGNoQWxsQ2FsbGJhY2smJik7CisgICAgdm9pZCBjbGFpbSgpOwogCiAgICAgdm9pZCBza2lwV2Fp
dGluZygpOwogICAgIGJvb2wgaXNTa2lwV2FpdGluZ0ZsYWdTZXQoKSBjb25zdCB7IHJldHVybiBt
X2lzU2tpcFdhaXRpbmdGbGFnU2V0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGE1YTliYzk5YjZmNjk1MTQ0YzFmMjk4YzM1
OGFmYjJlN2NmNzI2MmEuLjE4NjhlMjg3MTMwZDg3MGFmYWNiNTE4NGVjYzdiZGUyZjYxMTk3ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCkBAIC05MSw2ICs5MSwxMSBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZQogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpNYXRjaEFsbENvbXBsZXRl
ZCB7IHJlcXVlc3RJZGVudGlmaWVyLCBjbGllbnRzRGF0YSB9KTsKIH0KIAordm9pZCBXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246OmNsYWltQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpDbGFpbUNvbXBsZXRlZCB7IHJlcXVlc3RJZGVudGlmaWVyIH0pOworfQorCiB2b2lk
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZGlkRmluaXNoU2tpcFdhaXRpbmcodWlu
dDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6RGlkRmluaXNoU2tpcFdhaXRpbmcgeyBjYWxsYmFja0lEIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IGM2
NDAyNTY1YjU5ZWNhNjZkMGJhZWIxMTJkMGNlNjMxMWFkNDZkZTEuLmY4MzllNjdiNmQxYzMxMzI3
YjU4Mzg1MDQzZGUxYjA1MjkzYTkwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIp
IGZpbmFsOwogICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YT4mLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpIGZpbmFsOwogICAgIHZv
aWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JikgZmluYWw7Cisg
ICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcikgZmluYWw7
CiAgICAgdm9pZCBkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5h
bDsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1faXBjQ29ubmVjdGlvbjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCmluZGV4IDEwMWQzZDQ0MGY2M2E0YWU3MjFkOTczYTIzODZjNmQyN2Y5ZDRlMDguLjM0
MDVhNWE3ZGFkNWFkOGIyMzNkYzU0OGI2NTlmMmJiYjE0MTMzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMzQsNiArMzQsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24gewogICAgIFdvcmtlclRlcm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgaWRlbnRpZmllcik7CiAgICAgRmluZENsaWVudEJ5SWRlbnRpZmllcih1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBjbGllbnRJZGVudGlmaWVyKTsKICAgICBNYXRjaEFsbCh1aW50NjRfdCBtYXRjaEFs
bFJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRR
dWVyeU9wdGlvbnMgb3B0aW9ucyk7CisgICAgQ2xhaW0odWludDY0X3QgY2xhaW1SZXF1ZXN0SWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDYyODUxMjM4NWIzYjgxZGUwMTAxMWRj
MTgxZWU1MmYxOGJhODgxY2YuLmE0NmU2YmU4NjQ2ZTA4OTRlNzhiZGZiZTZlOWVlNjk5ZDkxZDkz
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTI0NSw2ICsyNDUs
MTkgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0
ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShj
bGllbnRzRGF0YSkpOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpj
bGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8g
cmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBt
X2NsYWltUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
CisgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpDbGFpbSB7IHJlcXVlc3RJZGVudGlmaWVyLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciB9LCAwKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmll
cikKK3sKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2xhaW1SZXF1ZXN0cy50YWtlKGNsYWlt
UmVxdWVzdElkZW50aWZpZXIpKQorICAgICAgICBjYWxsYmFjaygpOworfQorCiB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBj
YWxsYmFja0lEKQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9za2lwV2FpdGluZ1JlcXVl
c3RzLnRha2UoY2FsbGJhY2tJRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRl
eCA3MDc1MGMzNDM2NzUyZDEyZGMxZjQ0NWQ2MDc0ZjBhYzgwOWIxODUzLi5lMjk1M2ExM2ZlYWI3
YmNiMGJjMTM4NGNjOThiOWI5OGZjZWQxZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdvcmtlclRlcm1pbmF0
ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZmlu
ZENsaWVudEJ5SWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIEZpbmRDbGllbnRCeUlkZW50aWZp
ZXJDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIG1hdGNoQWxsKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlP
cHRpb25zJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrJiYp
IGZpbmFsOworICAgIHZvaWQgY2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIHNraXBX
YWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjYWxsYmFjaykgZmluYWw7CiAKICAgICAvLyBJUEMgbWVzc2FnZXMuCkBAIC04MCw2
ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8TWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHk+JiYpOwogICAg
IHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4m
JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKICAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVp
bnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JiYpOworICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWlu
dDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaW5pc2hTa2lwV2Fp
dGluZyh1aW50NjRfdCBjYWxsYmFja0lEKTsKIAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3M7CkBAIC04OCw2ICs5MCw3IEBAIHByaXZhdGU6CiAK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2s+IG1f
ZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjaz4gbV9tYXRjaEFsbFJl
cXVlc3RzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPj4gbV9jbGFpbVJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rp
b248dm9pZCgpPj4gbV9za2lwV2FpdGluZ1JlcXVlc3RzOwogICAgIHVpbnQ2NF90IG1fcHJldmlv
dXNSZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDgyMWRjZGY4NmZkMjA5NzZmYTdkOGRmZWI2
YmYyOTc0YmQ5NDRkZDYuLjM5ODJiNDUwYTk3ODg2MDRhYTMzNDYxZmUwMTQ0ZTEyMjZlNzA2Yjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0zMyw2ICszMyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
IHsKICAgICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+ICgpIERlbGF5ZWQKICAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGEsIGJvb2wgaGFzU2VjdXJp
dHlFcnJvcikKICAgICBNYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJ
ZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9u
PiBjbGllbnRzRGF0YSkKKyAgICBDbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJ
ZGVudGlmaWVyKQogICAgIERpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQp
CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxOTE1YjBiZGZmNDllNWQ0ZTFhMTgzZDljMmY3NjgzMWI2YmIyMzBmLi43
YzE5NDAxY2VhYzllNmZkODRhYmI3ZGI3MTUwZjkwZWVkMGE4NDk3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTYgQEAKIDIwMTctMTItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCisg
ICAgICAgIEltcGxlbWVudCBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jY2xp
ZW50cy1jbGFpbQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwMjYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS13
b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xh
aW0uaHR0cHMuaHRtbDogQWRkZWQuCisKKzIwMTctMTItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCiAgICAgICAgIFVuc2tpcCBzb21lIG1vcmUgU2VydmljZSBXb3JrZXIg
dGVzdHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDQyOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiNDFhMDYyM2E4N2I1ZGI5
ZWEyOTNjOWJiNzFhNjJiZjIxMjg5NTBmLi5iMTIxNjczNDlkZGExZjkzYzhjYjJmOTEzZWFiZjQ2
ZWM4NDU4MzI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNCBA
QAogMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAgICAg
ICAgSW1wbGVtZW50IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjbGllbnRz
LWNsYWltCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODAyNjEKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlv
bi5odHRwcy1leHBlY3RlZC50eHQ6CisKKzIwMTctMTItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCiAgICAgICAgIFVuc2tpcCBzb21lIG1vcmUgU2VydmljZSBXb3JrZXIg
dGVzdHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDQyOAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS13b3JrZXIu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOGRlMDNmMzAxOTIzNzRhMzAzNTkzNWE2ZjEzZjc0NDNmYmQ3NGQ3Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLXdvcmtlci5qcwpAQCAtMCwwICsxLDM0IEBACitz
ZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgYXN5bmMgKGV2ZW50KSA9PiB7CisgICAgaWYg
KGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoInBpbmtlbGVwaGFudCIpICE9PSAtMSkKKyAgICAg
ICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKCJQQVNTIikpOworfSk7CisKK3ZhciB0
cnlDbGFpbVByb21pc2UgPSBzZWxmLmNsaWVudHMuY2xhaW0oKS50aGVuKCgpID0+IHsKKyAgICBy
ZXR1cm4gIkZBSUw6IGNsYWltIGRpZCBub3QgdGhyb3ciOworfSwgKGUpID0+IHsKKyAgICByZXR1
cm4gIlBBU1MsIHJlY2VpdmVkIGV4Y2VwdGlvbiAiICsgZTsKK30pOworCithc3luYyBmdW5jdGlv
biBkb1Rlc3QoZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LmRhdGEgIT09ICJzdGFydCIpIHsKKyAg
ICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVk
IG1lc3NhZ2UgZnJvbSBjbGllbnQiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHZh
ciByZXN1bHQgPSBhd2FpdCB0cnlDbGFpbVByb21pc2U7CisgICAgaWYgKCFyZXN1bHQuc3RhcnRz
V2l0aCgiUEFTUyIpKSB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2VsZi5jbGllbnRzLmNsYWltKCkudGhl
bigoKSA9PiB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiQ0xBSU1FRCIpOwor
ICAgIH0sICgpID0+IHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiBy
ZWNlaXZlZCBleGNlcHRpb24gIiArIGUpOworICAgIH0pOworfQorCisKK3NlbGYuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIGRvVGVzdCk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
MWFhMjFkZDliMDZmZGI0YTA2ZGYyMjM3ZWI1YTVhZWRiMzNhNTY3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNs
aWVudHMtY2xhaW0uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFNl
dHVwIHdvcmtlciAKK1BBU1MgVGVzdCBzZWxmLmNsaWVudHMuY2xhaW0gCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGll
bnRzLWNsYWltLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFpbS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5
NTI2MjEyYmIwYWVkZDZlYzlkYmRiZmUwZTYzYmJmODgzZGVmODEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xp
ZW50cy1jbGFpbS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgc2NvcGUgPSAiL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
d29ya2VyY2xpZW50cy1jbGFpbS5odHRwcy5odG1sIjsKK3ZhciBhY3RpdmVXb3JrZXI7CisKK3By
b21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2Fp
dCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUpOworICAgIGlm
IChyZWdpc3RyYXRpb24gJiYgcmVnaXN0cmF0aW9uLnNjb3BlID09PSBzY29wZSkKKyAgICAgICAg
YXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKworICAgIHZhciByZWdpc3RyYXRpb24g
PSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic2VydmljZXdvcmtlcmNs
aWVudHMtY2xhaW0td29ya2VyLmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIGFjdGl2ZVdv
cmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgaWYgKGFjdGl2ZVdvcmtlcikKKyAgICAg
ICAgcmV0dXJuOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwor
ICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZlV29ya2Vy
LmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgaWYg
KGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlz
ZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiQ0xBSU1FRCIpIHsKKyAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgKCFldmVudC5kYXRhLnN0YXJ0c1dpdGgoIlBBU1MiKSkgeworICAgICAg
ICAgICAgICAgIHJlamVjdChldmVudC5kYXRhKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0pKTsKKyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5w
b3N0TWVzc2FnZSgic3RhcnQiKTsKKyAgICBhd2FpdCBwcm9taXNlOworCisgICAgdmFyIHJlc3Bv
bnNlID0gYXdhaXQgZmV0Y2goInBpbmtlbGVwaGFudCIpOworICAgIHZhciB0ZXh0ID0gYXdhaXQg
cmVzcG9uc2UudGV4dCgpOworICAgIGFzc2VydF9lcXVhbHModGV4dCwgIlBBU1MiKTsKK30sICJU
ZXN0IHNlbGYuY2xpZW50cy5jbGFpbSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4
IGZlZTRhYjA1ZDY1MTBlZTJjODA3ODcyOTQ1NWM4MjMyYjExOTZhZmIuLjAyMzg3ZmM5OGNiMzBl
MWRiN2JkZjdhZjEwMzllMzJlMmU2ZGUwOGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2FjdGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2Fj
dGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNyBAQAogCiAKLUZBSUwgbG9z
cyBvZiBjb250cm9sbGVlcyB0cmlnZ2VycyBhY3RpdmF0aW9uIGFzc2VydF9ub3RfZXF1YWxzOiBn
b3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxsCi1GQUlMIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dl
cnMgYWN0aXZhdGlvbiBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgbnVs
bAotRkFJTCBza2lwV2FpdGluZyBieXBhc3NlcyBubyBjb250cm9sbGVlIHJlcXVpcmVtZW50IGFz
c2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxsCi1GQUlMIGZpbmlzaGlu
ZyBhIHJlcXVlc3QgdHJpZ2dlcnMgdW5yZWdpc3RlciBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgbnVsbAorUEFTUyBsb3NzIG9mIGNvbnRyb2xsZWVzIHRyaWdnZXJzIGFj
dGl2YXRpb24gCitQQVNTIGZpbmlzaGluZyBhIHJlcXVlc3QgdHJpZ2dlcnMgYWN0aXZhdGlvbiAK
K1BBU1Mgc2tpcFdhaXRpbmcgYnlwYXNzZXMgbm8gY29udHJvbGxlZSByZXF1aXJlbWVudCAKK0ZB
SUwgZmluaXNoaW5nIGEgcmVxdWVzdCB0cmlnZ2VycyB1bnJlZ2lzdGVyIGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIG51bGwgYnV0IGdvdCBvYmplY3QgIltvYmplY3QgU2VydmljZVdvcmtlcl0iCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328490</attachid>
            <date>2017-12-05 13:26:31 -0800</date>
            <delta_ts>2017-12-05 13:51:46 -0800</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-180261-20171205132630.patch</filename>
            <type>text/plain</type>
            <size>32204</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE3MTQ3Y2RkZjJhNjJm
NzVkNjgxZmQ1ZDhkMGU2NDY0ZjE5NWFkYS4uZGVlYTUxNWYzMzk1YmQ5ZmI0YmIxYmE2MWQ5NGQ3
ODVhNzcxMGQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDE3LTEyLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBJbXBsZW1lbnQgaHR0cHM6
Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwKKworICAgICAg
ICBJbXBsZW1lbnQgY2xhaW0gYnkgZ29pbmcgdG8gdGhlIHN0b3JhZ2UgcHJvY2VzcyBhbmQgdGhl
biBpdGVyYXRlIG92ZXIgY2xpZW50cyB0byBzZWUgd2hldGhlciBhY3RpdmUgd29ya2VyIGNhbiBi
ZSBzZXQuCisgICAgICAgIFVwZGF0ZSBTV1NlcnZlcldvcmtlciB0byBjYWxsIHJlZ2lzdHJhdGlv
biB0cnlDbGVhci90cnlBY3RpdmF0ZSB3aGVuZXZlciBhIHNlcnZpY2Ugd29ya2VyIGhhcyBubyBw
ZW5kaW5nIGV2ZW50LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGFp
bSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNsYWltKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
Ojpkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpk
b1JlZ2lzdHJhdGlvbk1hdGNoaW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
Q29ubmVjdGlvbjo6ZG9SZWdpc3RyYXRpb25NYXRjaGluZyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xhaW0pOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcldvcmtlcjo6Y2xhaW0pOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKworMjAxNy0xMi0wNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKICAgICAgICAgQ2FsbCAiVGVybWluYXRlIFNl
cnZpY2UgV29ya2VyIiBvbiBhbGwgd29ya2VycyB3aGVuIGFsbCB0aGVpciBjbGllbnRzIGFyZSBn
b25lCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzk1
NTIKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1ODM2MzIzPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAzMjJhNWNk
MjJkYmE4ZTIwZTM0M2Y1ODFlNDkxYTBlYzJkNDA3NTEyLi40MzIxMmIxNzI0MjcyZjY5ZDgwNDRh
NWUzNTE1ZWYyZTc1N2U4MzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE3LTEyLTA1
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQg
aHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtY2xhaW0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDI2MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEFkZCBJUEMgcGx1bWJlcnkg
Zm9yIGNsaWVudHMgY2xhaW0gYmV0d2VlbiBTZXJ2aWNlV29ya2VyIHByb2Nlc3MgYW5kIFN0b3Jh
Z2UgcHJvY2Vzcy4KKworICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjbGFpbUNvbXBsZXRlZCk6CisgICAgICAgICogU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW0pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0xMi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLnByb3Rv
dHlwZS5yZWFkeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dD
bGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA2ZmU5OGY1M2ZiYTgxNWI0MWY4NmEyZTc0NGZjMzAy
OWE1NWQ4NzJhLi45OGE0MjI5Y2Y2YjBiNDg5Njg2MDFlZGE4YzU1OTJiNzBhNGQ1NTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmNwcApAQCAtMjE4LDggKzIxOCw3IEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpub3Rp
ZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJCiAgICAg
ICAgIGlmICghY2xpZW50KQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgQVNTRVJU
KGNsaWVudC0+YWN0aXZlU2VydmljZVdvcmtlcigpKTsKLSAgICAgICAgQVNTRVJUKGNsaWVudC0+
YWN0aXZlU2VydmljZVdvcmtlcigpLT5pZGVudGlmaWVyKCkgIT0gbmV3Q29udHJvbGxlci5pZGVu
dGlmaWVyKTsKKyAgICAgICAgQVNTRVJUKCFjbGllbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSB8
fCBjbGllbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKS0+aWRlbnRpZmllcigpICE9IG5ld0NvbnRy
b2xsZXIuaWRlbnRpZmllcik7CiAgICAgICAgIGNsaWVudC0+c2V0QWN0aXZlU2VydmljZVdvcmtl
cihTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZSgqY2xpZW50LCBTZXJ2aWNlV29ya2VyRGF0YSB7
IG5ld0NvbnRyb2xsZXIgfSkpOwogICAgICAgICBpZiAoYXV0byogY29udGFpbmVyID0gY2xpZW50
LT5zZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkpCiAgICAgICAgICAgICBjb250YWluZXItPnNjaGVk
dWxlVGFza1RvRmlyZUNvbnRyb2xsZXJDaGFuZ2VFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKaW5kZXgg
NDUwNGY1M2E4MWFiMmNmOWRhNGUyYzRmYWQ4ZGM4NDExMGJkOWQzMy4uNjE2ODdmOTc1ODFiYWRk
OTc3MDNlZmNiOTBjNjNhNmViY2QzMTdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCkBAIC0xMDcsOSArMTA3
LDI5IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6Om9wZW5XaW5kb3coU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsCiAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJSUxpdGVyYWwoImNsaWVudHMub3BlbldpbmRv
dygpIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIikgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlckNs
aWVudHM6OmNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGFpbShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7
Ci0gICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCBBU0NJ
SUxpdGVyYWwoImNsaWVudHMuY2xhaW0oKSBpcyBub3QgeWV0IHN1cHBvcnRlZCIpIH0pOworICAg
IGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZT4oY29udGV4dCk7CisKKyAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
ID0gc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKKworICAg
IGlmICghc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLnJlZ2lzdHJhdGlvbigpLmFjdGl2ZSgpIHx8
IHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5yZWdpc3RyYXRpb24oKS5hY3RpdmUoKS0+aWRlbnRp
ZmllcigpICE9IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSB7CisgICAgICAgIHByb21pc2UtPnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgQVNDSUlMaXRlcmFsKCJTZXJ2aWNl
IHdvcmtlciBpcyBub3QgYWN0aXZlIikgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBhdXRvIHByb21pc2VQb2ludGVyID0gcHJvbWlzZS5wdHIoKTsKKyAgICBtX3BlbmRpbmdQcm9t
aXNlcy5hZGQocHJvbWlzZVBvaW50ZXIsIFdURk1vdmUocHJvbWlzZSkpOworCisgICAgY2FsbE9u
TWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXSAoKSBt
dXRhYmxlIHsKKyAgICAgICAgYXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuY29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLT5jbGFpbShzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
cl0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24o
KS5wb3N0VGFza1RvU2VydmljZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21p
c2VQb2ludGVyXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChh
dXRvIHByb21pc2UgPSBzY29wZS5jbGllbnRzKCkubV9wZW5kaW5nUHJvbWlzZXMudGFrZShwcm9t
aXNlUG9pbnRlcikpCisgICAgICAgICAgICAgICAgICAgIHByb21pc2UudmFsdWUoKS0+cmVzb2x2
ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggNWExNDU0MWJhMTk5YjhiOThl
NjZjNTA0NGIzODFjZDBmZjhmMzhjOC4uZjRlMDIyMTljYWY1ZDhhMzNhY2NkYzc3NTAyYzE1ZWIw
YmI2MTRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHVzaW5nIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayA9IFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPj4mJik+OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRp
ZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBtYXRjaEFsbChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxs
YmFjayYmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBjbGFpbShTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB9Owog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDb25uZWN0aW9uKHN0ZDo6dW5pcXVlX3B0cjxD
b25uZWN0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKaW5kZXggYjNiMDlmMTliMDExYmYwZDJmMWRkOTNiYjQ3Y2Y4ZDg3
NDFhNjU2Zi4uMWJjZjk3OWUwMmU3MWI1OGM5NDU5YzQ4NmI3MTY0MzI0MGY2MTZjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
QEAgLTM0NCw2ICszNDQsMzEgQEAgdm9pZCBTV1NlcnZlcjo6bWF0Y2hBbGwoU1dTZXJ2ZXJXb3Jr
ZXImIHdvcmtlciwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3AKICAgICBjYWxsYmFj
ayhXVEZNb3ZlKGNsaWVudHMpKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6Y2xhaW0oU1dTZXJ2ZXJX
b3JrZXImIHdvcmtlcikKK3sKKyAgICBhdXRvJiBvcmlnaW4gPSB3b3JrZXIub3JpZ2luKCk7Cisg
ICAgYXV0byBpdGVyYXRvciA9IG1fY2xpZW50cy5maW5kKG9yaWdpbik7CisgICAgaWYgKGl0ZXJh
dG9yID09IG1fY2xpZW50cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgY2xp
ZW50cyA9IGl0ZXJhdG9yLT52YWx1ZS5jbGllbnRzOworICAgIGZvciAoYXV0byYgY2xpZW50IDog
Y2xpZW50cykgeworICAgICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBkb1JlZ2lzdHJhdGlvbk1h
dGNoaW5nKG9yaWdpbi50b3BPcmlnaW4sIGNsaWVudC5kYXRhLnVybCk7CisgICAgICAgIGlmICgh
KHJlZ2lzdHJhdGlvbiAmJiByZWdpc3RyYXRpb24tPmtleSgpID09IHdvcmtlci5yZWdpc3RyYXRp
b25LZXkoKSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBhdXRvIHJlc3VsdCA9
IG1fY2xpZW50VG9Db250cm9sbGluZ1dvcmtlci5hZGQoY2xpZW50LmlkZW50aWZpZXIsIHdvcmtl
ci5pZGVudGlmaWVyKCkpOworICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5KSB7CisgICAg
ICAgICAgICBpZiAocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9PSB3b3JrZXIuaWRlbnRpZmllcigp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgaWYgKGF1dG8qIGNvbnRy
b2xsaW5nUmVnaXN0cmF0aW9uID0gcmVnaXN0cmF0aW9uRnJvbVNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpKQorICAgICAgICAgICAgICAgIGNvbnRyb2xsaW5n
UmVnaXN0cmF0aW9uLT5yZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjbGllbnQuaWRlbnRp
Zmllcik7CisgICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gd29ya2VyLmlkZW50
aWZpZXIoKTsKKyAgICAgICAgfQorICAgICAgICByZWdpc3RyYXRpb24tPmNvbnRyb2xDbGllbnQo
Y2xpZW50LmlkZW50aWZpZXIpOworICAgIH0KK30KKwogdm9pZCBTV1NlcnZlcjo6ZGlkUmVzb2x2
ZVJlZ2lzdHJhdGlvblByb21pc2UoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleSYgcmVnaXN0cmF0aW9uS2V5KQogewogICAgIEFTU0VSVF9V
TlVTRUQoY29ubmVjdGlvbiwgbV9jb25uZWN0aW9ucy5jb250YWlucyhjb25uZWN0aW9uLmlkZW50
aWZpZXIoKSkpOwpAQCAtNTY2LDkgKzU5MSw5IEBAIHZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJD
b25uZWN0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+
dW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbi5pZGVudGlmaWVyKCkpOwogfQog
Ci1jb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogU1dTZXJ2ZXI6OmRvUmVnaXN0cmF0aW9uTWF0
Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMKSBjb25zdAorU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIFNXU2VydmVyOjpkb1JlZ2lzdHJh
dGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBV
UkwmIGNsaWVudFVSTCkKIHsKLSAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogc2VsZWN0
ZWRSZWdpc3RyYXRpb24gPSBudWxscHRyOworICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBzZWxl
Y3RlZFJlZ2lzdHJhdGlvbiA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiByZWdpc3RyYXRpb24g
OiBtX3JlZ2lzdHJhdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24t
PmtleSgpLmlzTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpKQogICAgICAgICAgICAgY29u
dGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKaW5kZXggOGYzODAxMGU4MjFlODdlYzY4ZjRlOThhNjI1Y2U2MjYwNTIwZTJiYy4uMzE5
OWE2MDQ1OTAzNDg4MmUzMjQ3ZGU0NzMwYTZiNmI1MjAyNzMyMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNzQsNyArNzQsNyBA
QCBwdWJsaWM6CiAgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVzb2x2
ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYp
OwotICAgICAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3RyYXRpb25NYXRj
aGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGll
bnRVUkwpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcodG9w
T3JpZ2luLCBjbGllbnRVUkwpOyB9CisgICAgICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1Jl
Z2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBVUkwmIGNsaWVudFVSTCkgeyByZXR1cm4gbV9zZXJ2ZXIuZG9SZWdpc3RyYXRpb25NYXRj
aGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCk7IH0KICAgICAgICAgdm9pZCByZXNvbHZlUmVnaXN0
cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiAgICAgICAgIC8v
IE1lc3NhZ2VzIHRvIHRoZSBjbGllbnQgV2ViUHJvY2VzcwpAQCAtMTUwLDYgKzE1MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHdvcmtlckNvbnRleHRUZXJtaW5hdGVkKFNXU2VydmVyV29ya2VyJik7
CiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZmluZENsaWVudEJ5
SWRlbnRpZmllcihjb25zdCBDbGllbnRPcmlnaW4mLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcik7CiAgICAgdm9pZCBtYXRjaEFsbChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2Fs
bGJhY2smJik7CisgICAgdm9pZCBjbGFpbShTV1NlcnZlcldvcmtlciYpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uQ3JlYXRlZCgpOwogICAgIApA
QCAtMTc3LDcgKzE3OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRDbGllbnRTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CiAgICAgdm9pZCByZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
KENvbm5lY3Rpb24mLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3RyYXRp
b25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJM
JiBjbGllbnRVUkwpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyUmVnaXN0cmF0
aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
T3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCk7CiAKICAgICB2b2lkIGluc3RhbGxDb250ZXh0
RGF0YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmNwcAppbmRleCBmNTI3NzBmYzFjMWViOTNiNjZjOTY3ZjVmNmZlZTcwZTI4NTBkMTg2
Li5mMDZmMGU1MTUwY2RmMjA0YjE5MjIzOTg1MjVmYmM2N2Y1NmNiZjQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcApAQCAtMzAwLDYgKzMwMCwxNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0
cmF0aW9uOjpoYW5kbGVDbGllbnRVbmxvYWQoKQogICAgIHRyeUFjdGl2YXRlKCk7CiB9CiAKK3Zv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoYWN0aXZlV29ya2VyKCkpOwor
CisgICAgYWRkQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oaWRlbnRpZmllcik7CisKKyAgICBIYXNo
U2V0PERvY3VtZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMuYWRk
KGlkZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIpOworICAgIG1fc2VydmVyLmdldENvbm5lY3Rp
b24oaWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciktPm5vdGlmeUNsaWVudHNP
ZkNvbnRyb2xsZXJDaGFuZ2UoaWRlbnRpZmllcnMsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOwor
fQorCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzZXRJc1VuaW5zdGFsbGluZyhib29sIHZh
bHVlKQogewogICAgIGlmIChtX3VuaW5zdGFsbGluZyA9PSB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaAppbmRleCA3NjI3NDlhOWUxZDcyYzhkNzkyYjI4NzViZTgxN2FlZTY2YzU0ZjRlLi5k
YzRhNGIwM2NkZmE2MzZhYTc3Zjk4ODM0MzQ5MTY2NGZhMTM1ZTA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5oCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVucmVnaXN0ZXJT
ZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCiAgICAgdm9p
ZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKCk7CisgICAgdm9pZCBjb250cm9sQ2xp
ZW50KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgY2xlYXIoKTsK
ICAgICBib29sIHRyeUNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHAKaW5kZXggMjMxYjliNGM4YzA0NjUwNGY0NzU1ODIwMWNkMTI3NzQwNTUxZjE2Zi4uYjIz
YWYxYzc5NTZkOGI3NmFhZjE5YzU3MTE1MGQ5MDBlOGY4YWQ1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMTIzLDYgKzEyMywxNCBAQCB2b2lkIFNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hBbGwodWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIFNlcnZpY2VXbwogICAgIH0KIH0KIAordm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b246OmNsYWltKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogd29ya2VyID0g
U1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikpIHsKKyAgICAgICAgd29ya2VyLT5jbGFpbSgpOworICAgICAgICBnbG9iYWxT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCktPmNsYWltQ29tcGxldGVkKHJlcXVlc3RJZGVudGlm
aWVyKTsKKyAgICB9Cit9CisKIHZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpza2lw
V2FpdGluZyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
dWludDY0X3QgY2FsbGJhY2tJRCkKIHsKICAgICBpZiAoYXV0byogd29ya2VyID0gU1dTZXJ2ZXJX
b3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCAxYmU4N2Y1M2U0
YTVjNGQ4ZWVkZjg0YWQwYmI5YjU0YTE0YmRmODkwLi5kMDliNDMzNDhjZmVkYmQ3OTQyMzZlODY5
YTg3NWNlMzkyZDcyOTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgK
QEAgLTU1LDYgKzU1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWluYXRl
V29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZp
bmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNT
ZWN1cml0eUVycm9yKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVu
dEluZm9ybWF0aW9uPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xhaW1Db21wbGV0ZWQodWlu
dDY0X3QgcmVxdWVzdElkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
U2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkgPSAwOwogCiAgICAgLy8gTWVzc2FnZXMg
YmFjayBmcm9tIHRoZSBTVyBob3N0IHByb2Nlc3MKQEAgLTY3LDYgKzY4LDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd29ya2VyVGVybWluYXRlZChTZXJ2aWNlV29ya2VySWRl
bnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVy
KHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBtYXRjaEFsbCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNsYWltKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICBzdGF0aWMgU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uKiBjb25uZWN0aW9uRm9ySWRlbnRpZmllcihTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCA4MDc2NzE0YTYxZDM2YzgwODgx
ZGQzMTliMDgyMjc1NWMwZjRiYTUyLi41MDY4YjBkNjhjNGFkN2M0ZTRhNWQwMGExMjJmOTljNDI3
OGI1ODllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtMTE2LDYgKzExNiwxMSBAQCB2b2lkIFNXU2Vy
dmVyV29ya2VyOjptYXRjaEFsbChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25z
JiBvcHRpb25zLCBTZQogICAgIHJldHVybiBtX3NlcnZlci5tYXRjaEFsbCgqdGhpcywgb3B0aW9u
cywgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIFNXU2VydmVyV29ya2VyOjpjbGFpbSgp
Cit7CisgICAgcmV0dXJuIG1fc2VydmVyLmNsYWltKCp0aGlzKTsKK30KKwogdm9pZCBTV1NlcnZl
cldvcmtlcjo6c2tpcFdhaXRpbmcoKQogewogICAgIG1faXNTa2lwV2FpdGluZ0ZsYWdTZXQgPSB0
cnVlOwpAQCAtMTI1LDYgKzEzMCwyMyBAQCB2b2lkIFNXU2VydmVyV29ya2VyOjpza2lwV2FpdGlu
ZygpCiAgICAgcmVnaXN0cmF0aW9uLT50cnlBY3RpdmF0ZSgpOwogfQogCit2b2lkIFNXU2VydmVy
V29ya2VyOjpzZXRIYXNQZW5kaW5nRXZlbnRzKGJvb2wgaGFzUGVuZGluZ0V2ZW50cykKK3sKKyAg
ICBpZiAobV9oYXNQZW5kaW5nRXZlbnRzID09IGhhc1BlbmRpbmdFdmVudHMpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faGFzUGVuZGluZ0V2ZW50cyA9IGhhc1BlbmRpbmdFdmVudHM7CisgICAg
aWYgKG1faGFzUGVuZGluZ0V2ZW50cykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG8gdHJ5
Q2xlYXIvdHJ5QWN0aXZhdGUsIGFzIHBlciBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdv
cmtlci8jd2FpdC11bnRpbC1tZXRob2QuCisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gbV9zZXJ2
ZXIuZ2V0UmVnaXN0cmF0aW9uKG1fcmVnaXN0cmF0aW9uS2V5KTsKKyAgICBBU1NFUlQocmVnaXN0
cmF0aW9uKTsKKyAgICBpZiAocmVnaXN0cmF0aW9uLT5pc1VuaW5zdGFsbGluZygpICYmIHJlZ2lz
dHJhdGlvbi0+dHJ5Q2xlYXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIHJlZ2lzdHJhdGlvbi0+
dHJ5QWN0aXZhdGUoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCmluZGV4IDNjNTIwOGUxMzU4NzY0Mjc0
NTZkN2JlZjAxNGRiMDQyYzJmMGEzY2MuLmZiOGRmODQwNTE5NDAzNDI0ZDdjYjdhNmZhOGNmMTA4
MmNhODBkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U3RhdGUoU2VydmljZVdvcmtlclN0YXRlIHN0YXRlKSB7IG1fZGF0YS5zdGF0ZSA9IHN0
YXRlOyB9CiAKICAgICBib29sIGhhc1BlbmRpbmdFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2hh
c1BlbmRpbmdFdmVudHM7IH0KLSAgICB2b2lkIHNldEhhc1BlbmRpbmdFdmVudHMoYm9vbCB2YWx1
ZSkgeyBtX2hhc1BlbmRpbmdFdmVudHMgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0SGFzUGVuZGlu
Z0V2ZW50cyhib29sKTsKIAogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29u
c3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKTsKICAgICB2b2lkIHNjcmlwdENvbnRleHRTdGFydGVkKGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYpOwpAQCAtOTAsNiAr
OTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb250ZXh0VGVybWluYXRlZCgpOwogICAgIHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGZpbmRDbGllbnRCeUlkZW50aWZpZXIo
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOwogICAgIHZvaWQgbWF0Y2hBbGwoY29uc3Qg
U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0
Y2hBbGxDYWxsYmFjayYmKTsKKyAgICB2b2lkIGNsYWltKCk7CiAKICAgICB2b2lkIHNraXBXYWl0
aW5nKCk7CiAgICAgYm9vbCBpc1NraXBXYWl0aW5nRmxhZ1NldCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNTa2lwV2FpdGluZ0ZsYWdTZXQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggYTVhOWJjOTliNmY2OTUxNDRjMWYyOThjMzU4
YWZiMmU3Y2Y3MjYyYS4uMTg2OGUyODcxMzBkODcwYWZhY2I1MTg0ZWNjN2JkZTJmNjExOTdkZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAKQEAgLTkxLDYgKzkxLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Ok1hdGNoQWxsQ29tcGxldGVk
IHsgcmVxdWVzdElkZW50aWZpZXIsIGNsaWVudHNEYXRhIH0pOwogfQogCit2b2lkIFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Y2xhaW1Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OkNsYWltQ29tcGxldGVkIHsgcmVxdWVzdElkZW50aWZpZXIgfSk7Cit9CisKIHZvaWQg
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50
NjRfdCBjYWxsYmFja0lEKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpEaWRGaW5pc2hTa2lwV2FpdGluZyB7IGNhbGxiYWNrSUQgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYzY0
MDI1NjViNTllY2E2NmQwYmFlYjExMmQwY2U2MzExYWQ0NmRlMS4uZjgzOWU2N2I2ZDFjMzEzMjdi
NTgzODUwNDNkZTFiMDUyOTNhOTBmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNjIsNiArNjIsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcikgZmluYWw7CiAgICAgdm9p
ZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mKSBmaW5hbDsKKyAg
ICB2b2lkIGNsYWltQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFs
OwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9pcGNDb25uZWN0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggMTAxZDNkNDQwZjYzYTRhZTcyMWQ5NzNhMjM4NmM2ZDI3ZjlkNGUwOC4uMzQw
NWE1YTdkYWQ1YWQ4YjIzM2RjNTQ4YjY1OWYyYmJiMTQxMzMzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0zNCw2ICszNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbiB7CiAgICAgV29ya2VyVGVybWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBpZGVudGlmaWVyKTsKICAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIpOwogICAgIE1hdGNoQWxsKHVpbnQ2NF90IG1hdGNoQWxs
UmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1
ZXJ5T3B0aW9ucyBvcHRpb25zKTsKKyAgICBDbGFpbSh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllcik7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNjI4NTEyMzg1YjNiODFkZTAxMDExZGMx
ODFlZTUyZjE4YmE4ODFjZi4uYTQ2ZTZiZTg2NDZlMDg5NGU3OGJkZmJlNmU5ZWU2OTlkOTFkOTM3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMjQ1LDYgKzI0NSwx
OSBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcgogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKGNs
aWVudHNEYXRhKSk7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNs
YWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgYXV0byBy
ZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c1JlcXVlc3RJZGVudGlmaWVyOworICAgIG1f
Y2xhaW1SZXF1ZXN0cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsK
KyAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246OkNsYWltIHsgcmVxdWVzdElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIH0sIDApOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVy
KQoreworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jbGFpbVJlcXVlc3RzLnRha2UoY2xhaW1S
ZXF1ZXN0SWRlbnRpZmllcikpCisgICAgICAgIGNhbGxiYWNrKCk7Cit9CisKIHZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNh
bGxiYWNrSUQpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3NraXBXYWl0aW5nUmVxdWVz
dHMudGFrZShjYWxsYmFja0lEKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4
IDcwNzUwYzM0MzY3NTJkMTJkYzFmNDQ1ZDYwNzRmMGFjODA5YjE4NTMuLmUyOTUzYTEzZmVhYjdi
Y2IwYmMxMzg0Y2M5OGI5Yjk4ZmNlZDFkYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaApAQCAtNjYsNiArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd29ya2VyVGVybWluYXRl
ZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaW5k
Q2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgRmluZENsaWVudEJ5SWRlbnRpZmll
ckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgbWF0Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJikg
ZmluYWw7CisgICAgdm9pZCBjbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgc2tpcFdh
aXRpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIGNhbGxiYWNrKSBmaW5hbDsKIAogICAgIC8vIElQQyBtZXNzYWdlcy4KQEAgLTgwLDYg
KzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3JrZXI6OkRlbGF5ZWRSZXBseT4mJik7CiAgICAg
dm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYm
LCBib29sIGhhc1NlY3VyaXR5RXJyb3IpOwogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWlu
dDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mJik7CisgICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50
NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0
aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKQEAgLTg4LDYgKzkwLDcgQEAgcHJpdmF0ZToKIAog
ICAgIEhhc2hNYXA8dWludDY0X3QsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjaz4gbV9m
aW5kQ2xpZW50QnlJZGVudGlmaWVyUmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrPiBtX21hdGNoQWxsUmVx
dWVzdHM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+PiBtX2NsYWltUmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlv
bjx2b2lkKCk+PiBtX3NraXBXYWl0aW5nUmVxdWVzdHM7CiAgICAgdWludDY0X3QgbV9wcmV2aW91
c1JlcXVlc3RJZGVudGlmaWVyIHsgMCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggODIxZGNkZjg2ZmQyMDk3NmZhN2Q4ZGZlYjZi
ZjI5NzRiZDk0NGRkNi4uMzk4MmI0NTBhOTc4ODYwNGFhMzM0NjFmZTAxNDRlMTIyNmU3MDZiOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAg
LTMzLDYgKzMzLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24g
ewogICAgIFN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikgLT4gKCkgRGVsYXllZAogICAgIEZpbmRDbGllbnRCeUlkZW50aWZpZXJD
b21wbGV0ZWQodWludDY0X3QgY2xpZW50SWRSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZGF0YSwgYm9vbCBoYXNTZWN1cml0
eUVycm9yKQogICAgIE1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElk
ZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+
IGNsaWVudHNEYXRhKQorICAgIENsYWltQ29tcGxldGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElk
ZW50aWZpZXIpCiAgICAgRGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDE5MTViMGJkZmY0OWU1ZDRlMWExODNkOWMyZjc2ODMxYjZiYjIzMGYuLjdj
MTk0MDFjZWFjOWU2ZmQ4NGFiYjdkYjcxNTBmOTBlZWQwYTg0OTcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwx
NiBAQAogMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKKyAg
ICAgICAgSW1wbGVtZW50IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNjbGll
bnRzLWNsYWltCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODAyNjEKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLXdv
cmtlci5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1jbGFp
bS5odHRwcy5odG1sOiBBZGRlZC4KKworMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKICAgICAgICAgVW5za2lwIHNvbWUgbW9yZSBTZXJ2aWNlIFdvcmtlciB0
ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
NDI4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDM3MDNkNDI0MTVhYzMyMGMz
NWIyYmUxMDIyMjVhNzhlODYwOTAxNWQuLjczYjg1Mjc4NDI0NzU4OTQzNzM4NGIxOWU2MzYxZTI0
MmFmMDRmNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBA
CiAyMDE3LTEyLTA1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAg
ICBJbXBsZW1lbnQgaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMt
Y2xhaW0KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDI2MQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9hY3RpdmF0aW9u
Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKworMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKICAgICAgICAgVW5za2lwIHNvbWUgbW9yZSBTZXJ2aWNlIFdvcmtlciB0
ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgw
NDI4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLXdvcmtlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi44ZGUwM2YzMDE5MjM3NGEzMDM1OTM1YTZmMTNmNzQ0M2ZiZDc0ZDdmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0td29ya2VyLmpzCkBAIC0wLDAgKzEsMzQgQEAKK3Nl
bGYuYWRkRXZlbnRMaXN0ZW5lcigiZmV0Y2giLCBhc3luYyAoZXZlbnQpID0+IHsKKyAgICBpZiAo
ZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZigicGlua2VsZXBoYW50IikgIT09IC0xKQorICAgICAg
ICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UoIlBBU1MiKSk7Cit9KTsKKwordmFyIHRy
eUNsYWltUHJvbWlzZSA9IHNlbGYuY2xpZW50cy5jbGFpbSgpLnRoZW4oKCkgPT4geworICAgIHJl
dHVybiAiRkFJTDogY2xhaW0gZGlkIG5vdCB0aHJvdyI7Cit9LCAoZSkgPT4geworICAgIHJldHVy
biAiUEFTUywgcmVjZWl2ZWQgZXhjZXB0aW9uICIgKyBlOworfSk7CisKK2FzeW5jIGZ1bmN0aW9u
IGRvVGVzdChldmVudCkKK3sKKyAgICBpZiAoZXZlbnQuZGF0YSAhPT0gInN0YXJ0IikgeworICAg
ICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJlY2VpdmVkIHVuZXhwZWN0ZWQg
bWVzc2FnZSBmcm9tIGNsaWVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdmFy
IHJlc3VsdCA9IGF3YWl0IHRyeUNsYWltUHJvbWlzZTsKKyAgICBpZiAoIXJlc3VsdC5zdGFydHNX
aXRoKCJQQVNTIikpIHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZWxmLmNsaWVudHMuY2xhaW0oKS50aGVu
KCgpID0+IHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJDTEFJTUVEIik7Cisg
ICAgfSwgKCkgPT4geworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJl
Y2VpdmVkIGV4Y2VwdGlvbiAiICsgZSk7CisgICAgfSk7Cit9CisKKworc2VsZi5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgZG9UZXN0KTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZXdvcmtlcmNsaWVudHMtY2xhaW0uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYx
YWEyMWRkOWIwNmZkYjRhMDZkZjIyMzdlYjVhNWFlZGIzM2E1NjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xp
ZW50cy1jbGFpbS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgU2V0
dXAgd29ya2VyIAorUEFTUyBUZXN0IHNlbGYuY2xpZW50cy5jbGFpbSAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVu
dHMtY2xhaW0uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTk1
MjYyMTJiYjBhZWRkNmVjOWRiZGJmZTBlNjNiYmY4ODNkZWY4MQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGll
bnRzLWNsYWltLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK3ZhciBzY29wZSA9ICIvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3
b3JrZXJjbGllbnRzLWNsYWltLmh0dHBzLmh0bWwiOwordmFyIGFjdGl2ZVdvcmtlcjsKKworcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbihzY29wZSk7CisgICAgaWYg
KHJlZ2lzdHJhdGlvbiAmJiByZWdpc3RyYXRpb24uc2NvcGUgPT09IHNjb3BlKQorICAgICAgICBh
d2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworCisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzZXJ2aWNld29ya2VyY2xp
ZW50cy1jbGFpbS13b3JrZXIuanMiLCB7IHNjb3BlIDogc2NvcGUgfSk7CisgICAgYWN0aXZlV29y
a2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAoYWN0aXZlV29ya2VyKQorICAgICAg
ICByZXR1cm47CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7Cisg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBhY3RpdmVXb3JrZXIu
YWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICBpZiAo
YWN0aXZlV29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikKKyAgICAgICAgICAgICAgICByZXNv
bHZlKCk7CisgICAgICAgIH0pOworICAgIH0pOworfSwgIlNldHVwIHdvcmtlciIpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNl
KChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3Quc3RlcF9mdW5jKChldmVudCkgPT4gewor
ICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJDTEFJTUVEIikgeworICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3RhcnRzV2l0aCgiUEFTUyIpKSB7CisgICAgICAg
ICAgICAgICAgcmVqZWN0KGV2ZW50LmRhdGEpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSkpOworICAgIH0pOworCisgICAgYWN0aXZlV29ya2VyLnBv
c3RNZXNzYWdlKCJzdGFydCIpOworICAgIGF3YWl0IHByb21pc2U7CisKKyAgICB2YXIgcmVzcG9u
c2UgPSBhd2FpdCBmZXRjaCgicGlua2VsZXBoYW50Iik7CisgICAgdmFyIHRleHQgPSBhd2FpdCBy
ZXNwb25zZS50ZXh0KCk7CisgICAgYXNzZXJ0X2VxdWFscyh0ZXh0LCAiUEFTUyIpOworfSwgIlRl
c3Qgc2VsZi5jbGllbnRzLmNsYWltIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2FjdGl2YXRpb24uaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvYWN0aXZhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
ZmVlNGFiMDVkNjUxMGVlMmM4MDc4NzI5NDU1YzgyMzJiMTE5NmFmYi4uMDIzODdmYzk4Y2IzMGUx
ZGI3YmRmN2FmMTAzOWUzMmUyZTZkZTA4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
YWN0aXZhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvYWN0
aXZhdGlvbi5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNyArMSw3IEBACiAKIAotRkFJTCBsb3Nz
IG9mIGNvbnRyb2xsZWVzIHRyaWdnZXJzIGFjdGl2YXRpb24gYXNzZXJ0X25vdF9lcXVhbHM6IGdv
dCBkaXNhbGxvd2VkIHZhbHVlIG51bGwKLUZBSUwgZmluaXNoaW5nIGEgcmVxdWVzdCB0cmlnZ2Vy
cyBhY3RpdmF0aW9uIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSBudWxs
Ci1GQUlMIHNraXBXYWl0aW5nIGJ5cGFzc2VzIG5vIGNvbnRyb2xsZWUgcmVxdWlyZW1lbnQgYXNz
ZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIG51bGwKLUZBSUwgZmluaXNoaW5n
IGEgcmVxdWVzdCB0cmlnZ2VycyB1bnJlZ2lzdGVyIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlz
YWxsb3dlZCB2YWx1ZSBudWxsCitQQVNTIGxvc3Mgb2YgY29udHJvbGxlZXMgdHJpZ2dlcnMgYWN0
aXZhdGlvbiAKK1BBU1MgZmluaXNoaW5nIGEgcmVxdWVzdCB0cmlnZ2VycyBhY3RpdmF0aW9uIAor
UEFTUyBza2lwV2FpdGluZyBieXBhc3NlcyBubyBjb250cm9sbGVlIHJlcXVpcmVtZW50IAorRkFJ
TCBmaW5pc2hpbmcgYSByZXF1ZXN0IHRyaWdnZXJzIHVucmVnaXN0ZXIgYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVjdCBTZXJ2aWNlV29ya2VyXSIKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>