<?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>180566</bug_id>
          
          <creation_ts>2017-12-07 19:05:45 -0800</creation_ts>
          <short_desc>Service Worker should use a correct user agent</short_desc>
          <delta_ts>2017-12-08 21:36:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1379446</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-07 19:05:45 -0800</bug_when>
    <thetext>Currently, it is the empty string</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379447</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-07 19:06:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/35926295&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379744</commentid>
    <comment_count>2</comment_count>
      <attachid>328861</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 13:26:25 -0800</bug_when>
    <thetext>Created attachment 328861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379745</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-08 13:28:36 -0800</bug_when>
    <thetext>Attachment 328861 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:91:  The parameter name &quot;userAgent&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379795</commentid>
    <comment_count>4</comment_count>
      <attachid>328870</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 14:31:34 -0800</bug_when>
    <thetext>Created attachment 328870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379798</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-08 14:34:35 -0800</bug_when>
    <thetext>Attachment 328870 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:90:  The parameter name &quot;userAgent&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 2 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379841</commentid>
    <comment_count>6</comment_count>
      <attachid>328877</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 15:20:37 -0800</bug_when>
    <thetext>Created attachment 328877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379842</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-08 15:21:50 -0800</bug_when>
    <thetext>Attachment 328877 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:90:  The parameter name &quot;userAgent&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379845</commentid>
    <comment_count>8</comment_count>
      <attachid>328870</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-08 15:24:53 -0800</bug_when>
    <thetext>Comment on attachment 328870
Patch

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

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:2355
&gt; +    process().processPool().updateServiceWorkerUserAgent(userAgent());

Seems like it would be more robust if this were in WebPageProxy::setUserAgent(), no?
Also, this looks hackish so I think it deserves a FIXME comment.

&gt; Source/WebKit/UIProcess/WebProcessPool.cpp:1030
&gt; +    updateServiceWorkerUserAgent(pageProxy-&gt;userAgent());

Won&apos;t this temporarily reset the SW user agent to some default one until WebPageProxy::setUserAgent() gets called with the proper one?

Given that the SW process is shared between all pages, I slightly worry about frequent changes to the SW process user agent (especially with sometimes a wrong user agent). A ServiceWorker may get spawned at any time, and one it is spawned, its user agent persists. Therefore, if it ended up using a bad user agent (bad luck), it is stuck with this bad user agent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379862</commentid>
    <comment_count>9</comment_count>
      <attachid>328882</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 16:18:11 -0800</bug_when>
    <thetext>Created attachment 328882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379863</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2017-12-08 16:20:27 -0800</bug_when>
    <thetext>Attachment 328882 did not pass style-queue:


ERROR: Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.h:90:  The parameter name &quot;userAgent&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:74:  Missing spaces around :  [whitespace/init] [4]
Total errors found: 2 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379887</commentid>
    <comment_count>11</comment_count>
      <attachid>328882</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-08 17:06:02 -0800</bug_when>
    <thetext>Comment on attachment 328882
Patch

Clearing flags on attachment: 328882

Committed r225716: &lt;https://trac.webkit.org/changeset/225716&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379890</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-08 17:06:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379935</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 21:04:30 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379936</commentid>
    <comment_count>14</comment_count>
      <attachid>328901</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 21:04:32 -0800</bug_when>
    <thetext>Created attachment 328901
Addendum</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379937</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-08 21:05:28 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #14)
&gt; Created attachment 328901 [details]
&gt; Addendum

We actually need to set the user agent when starting the SW for Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379942</commentid>
    <comment_count>16</comment_count>
      <attachid>328901</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-08 21:36:40 -0800</bug_when>
    <thetext>Comment on attachment 328901
Addendum

Clearing flags on attachment: 328901

Committed r225720: &lt;https://trac.webkit.org/changeset/225720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379943</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-08 21:36:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328861</attachid>
            <date>2017-12-08 13:26:25 -0800</date>
            <delta_ts>2017-12-08 14:31:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180566-20171208132624.patch</filename>
            <type>text/plain</type>
            <size>27653</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4YWJlMWZiMzM4OGIx
OWM2OWEyZjRiMTc2MGE2Mjk5YjRhODM3MS4uYTA2MmZhNWVkMDkxYjRjZTU4NjQ1NGRkNDEyMmI4
NGI4YmUzM2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTEyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlIFdvcmtlciBz
aG91bGQgdXNlIGEgY29ycmVjdCB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1
OTI2Mjk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMuaHRtbAorCisg
ICAgICAgIE1ha2UgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IHJldHVybiBhIHZhbGlk
IFVzZXJBZ2VudC4KKyAgICAgICAgUGFzcyB1c2VyIGFnZW50IHRvIFNlcnZpY2VXb3JrZXJUaHJl
YWQgc28gdGhhdCBuYXZpZ2F0aW9uLnVzZXJBZ2VudCBpcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQu
CisgICAgICAgIEFsbG93IFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCB0byBjbGVhbiBp
dHNlbGYgd2hlbiBubyBsb25nZXIgbmVlZGVkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJl
YWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpmcmFtZUxvYWRlckNsaWVudCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5Lmg6CisKIDIwMTctMTItMDggIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB3cm9uZyBsZXR0ZXIgY2FzZSBpbiAjaW1w
b3J0IEhUTUxJZnJhbWVFbGVtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGY4NjdiMjA5MTYyOWFjZWMwZDNl
ZmIzNzVjYTAyMzVkNzEwZGJiMC4uMTdlMjQxNDM3MjYyZDFiYTMxY2Y4Y2YzMzIwNWU0OTgzYWUx
Mzc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVz
ZSBhIGNvcnJlY3QgdXNlciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgwNTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTkyNjI5NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3Vw
cG9ydCB0byBzZXQgc2VydmljZSB3b3JrZXIgdXNlciBhZ2VudCBmcm9tIFVJUHJvY2VzcyB0byBz
ZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgorICAgICAgICBPbmUgdXNlciBhZ2VudCBpcyBjdXJyZW50
bHkgc3VwcG9ydGVkIHBlciBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgorCisgICAgICAgIFRoaXMg
c2V0cyBib3RoIG5hdmlnYXRvci51c2VyQWdlbnQgYW5kIFVzZXItQWdlbnQgaGVhZGVyIG5hbWUg
dXNlZCBmb3IgZmV0Y2ggd2l0aGluIGEgc2VydmljZSB3b3JrZXIuCisKKyAgICAgICAgQ29tcHV0
ZSB0aGUgc2VydmljZSB3b3JrZXIgcHJvY2VzcyB1c2VyIGFnZW50IGJ5IHBpY2tpbmcgdGhlIGxh
c3QgdXNlciBhZ2VudCBzZXQgZm9yIGEgd2ViIHBhZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
U2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHk6OnN0YXJ0KToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtl
clByb2Nlc3NQcm94eTo6c2V0VXNlckFnZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFwcGxpY2F0aW9uTmFtZUZv
clVzZXJBZ2VudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnVwZGF0
ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzZXRVc2VyQWdlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAxNy0xMi0wOCAgTWljaGFlbCBDYXRhbnphcm8gIDxt
Y2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViSW5zcGVjdG9yUHJveHlD
bGllbnQgbmVlZHMgYSB2aXJ0dWFsIGRlc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDMyNjgwOTQ5ZWU4ZmNjMWQ5YTI3NWI2
NThmMTcwZWZjNmI0N2NhOGMuLmJjYjAwZjI0MDlmZDI2ZjI1YTEzNTQ3YjlmMThkYWZiYzljN2Yy
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQu
aApAQCAtMzAsNyArMzAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBXRUJDT1JFX0VY
UE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsK
ICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJikgb3ZlcnJpZGU7CiAKLSAgICB2b2lk
IGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmluYWwgeyB9CisgICAgdm9pZCBmcmFtZUxvYWRlckRl
c3Ryb3llZCgpIG92ZXJyaWRlIHsgfQogCiAgICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CkBAIC0xNDksNyArMTQ5LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQg
RW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAg
dm9pZCB1cGRhdGVDYWNoZWREb2N1bWVudExvYWRlcihEb2N1bWVudExvYWRlciYpIGZpbmFsIHsg
fQogICAgIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFVS
TCYpIGZpbmFsIHsgfQogCi0gICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7
IHJldHVybiBlbXB0eVN0cmluZygpOyB9CisgICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwm
KSBvdmVycmlkZSB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAKICAgICB2b2lkIHNhdmVQbGF0
Zm9ybURhdGFUb0NhY2hlZEZyYW1lKENhY2hlZEZyYW1lKikgZmluYWwgeyB9CiAgICAgdm9pZCB0
cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqKSBmaW5hbCB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggZjA2NDRkOWVhMWU2OGQ4MzUyNzBl
ZjA3NTdlNDY1YWRjZmRmOGEwOS4uNjdjOTgwNjFkNzE4MzMwNjM2Yzk5Mjk1YWRlOGExYjZjOTkz
MDlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTY3LDEyICs2NywxMSBAQCBw
cml2YXRlOgogCiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyUmVwb3J0aW5nUHJveHkKIC8v
IEZJWE1FOiBVc2UgYSB2YWxpZCBXb3JrZXJPYmplY3RQcm94eQotLy8gRklYTUU6IFVzZSBhIHZh
bGlkIHVzZXIgYWdlbnQKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCBpc09ubGluZSBmbGFnCiAvLyBG
SVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAotU2VydmljZVdvcmtlclRocmVhZDo6U2Vy
dmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBB
TDo6U2Vzc2lvbklELCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVn
Z2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBp
ZGJDb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKLSAgICA6
IFdvcmtlclRocmVhZChkYXRhLnNjcmlwdFVSTCwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rv
cjo6SWRlbnRpZmllcnNGYWN0b3J5OjpjcmVhdGVJZGVudGlmaWVyKCksIEFTQ0lJTGl0ZXJhbCgi
V29ya2VyVXNlckFnZW50IiksIC8qIGlzT25saW5lICovIGZhbHNlLCBkYXRhLnNjcmlwdCwgbG9h
ZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpz
aGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyB7IH0sIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRh
dGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93KCksIGlkYkNvbm5lY3Rpb25Q
cm94eSwgc29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVk
KCksIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorU2VydmljZVdvcmtlclRocmVhZDo6
U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEs
IFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIFdvcmtlckxvYWRlclByb3h5JiBs
b2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdnZXJQcm94eSwgSURCQ2xpZW50
OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNvbm5lY3Rpb25Qcm94eSwgU29ja2V0UHJvdmlkZXIq
IHNvY2tldFByb3ZpZGVyKQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCAic2Vy
dmljZXdvcmtlcjoiICsgSW5zcGVjdG9yOjpJZGVudGlmaWVyc0ZhY3Rvcnk6OmNyZWF0ZUlkZW50
aWZpZXIoKSwgV1RGTW92ZSh1c2VyQWdlbnQpLCAvKiBpc09ubGluZSAqLyBmYWxzZSwgZGF0YS5z
Y3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxzZSwgU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShkYXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25pY1RpbWU6Om5vdygpLCBpZGJD
b25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRl
QWxsRW5hYmxlZCgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAsIG1fZGF0
YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV93b3JrZXJPYmplY3RQcm94eShEdW1teVNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkKCkpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmgKaW5kZXggYzVmZDcxODMxMzdkODg5NmRiYTU1MzE1N2RkNTg5N2ZkMmRmMzhhNS4uMWRkYmRj
ZDBlYzI0YzhmMWZlNWM1MWY4NDFmMTU3NjZmMThiNmNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuaApAQCAtNzMsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5FdmVudExvb3Ao
KSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2Vy
VGhyZWFkKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBX
b3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlckRlYnVnZ2VyUHJveHkmLCBJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNl
c3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlckRl
YnVnZ2VyUHJveHkmLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3Zp
ZGVyKik7CiAKICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgbV9kYXRhOwogICAgIFdvcmtl
ck9iamVjdFByb3h5JiBtX3dvcmtlck9iamVjdFByb3h5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKaW5kZXggMDFkYzQxNzc5NTY1Mzg2OWM4ZGJjOWI1ZTUxZTRlOGQ5Zjg1
NTljNS4uNGU2MDgxZWM4MTNiMzZmMWJlMGMwODYxOGNhYTk0NGVjYWRlZDY2YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC01NiwxMCArNTYsMTAgQEAgc3RhdGlj
IGlubGluZSBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5
KERvY3VtZW50JiBkb2N1bWUKICNlbmRpZgogfQogCi1TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmIHBhZ2VDb25maWd1
cmF0aW9uLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVy
KQorU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFn
ZUNvbmZpZ3VyYXRpb24mJiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJB
Z2VudCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKQogICAgIDog
bV9wYWdlKGNyZWF0ZVBhZ2VGb3JTZXJ2aWNlV29ya2VyKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pLCBkYXRhLnNjcmlwdFVSTCkpCiAgICAgLCBtX2RvY3VtZW50KCptX3BhZ2UtPm1haW5GcmFt
ZSgpLmRvY3VtZW50KCkpCi0gICAgLCBtX3NlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtl
clRocmVhZDo6Y3JlYXRlKGRhdGEsIHNlc3Npb25JRCwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0
aW9uUHJveHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQorICAg
ICwgbV9zZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRh
LCBzZXNzaW9uSUQsIFdURk1vdmUodXNlckFnZW50KSwgKnRoaXMsICp0aGlzLCBpZGJDb25uZWN0
aW9uUHJveHkobV9kb2N1bWVudCksIG1fZG9jdW1lbnQtPnNvY2tldFByb3ZpZGVyKCkpKQogICAg
ICwgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKICAgICAsIG1f
c2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1faW5zcGVjdG9yUHJveHkoKnRoaXMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCmluZGV4IDAzMGRjZjEwZWQ4MzAzNjllYTAwNTRk
NTk1OTQ5NzM1ODhmZjNmN2EuLjczMjJhNzZjOWQ3N2MxYjlkYTU0NGIyOTRlZTU2ODQzYWNmYWI0
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCkBAIC02MCw3ICs2MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldFRlcm1pbmF0aW5nT3JUZXJtaW5hdGVkKGJvb2wgdGVybWlu
YXRpbmcpIHsgbV9pc1Rlcm1pbmF0aW5nT3JUZXJtaW5hdGVkID0gdGVybWluYXRpbmc7IH0KIAog
cHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFn
ZUNvbmZpZ3VyYXRpb24mJiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpT
ZXNzaW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJik7CisgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiB1c2VyQWdlbnQsIENh
Y2hlU3RvcmFnZVByb3ZpZGVyJik7CiAKICAgICAvLyBXb3JrZXJMb2FkZXJQcm94eQogICAgIGJv
b2wgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYgbW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDhk
ZjdkOTg3YjAyYTg0M2MzNzM3Zjk2MTRmMzU3NDhkNjg1MTdmYWUuLjE3YzM3Y2M3NDI5NGM5NmJl
YjQ2NjY5N2U0YjBmOTQ4MWZkMDcyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02MSw3ICs2MiwxMiBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5j
aGVyOjpMYXVuY2hPcHRpb25zJgogCiB2b2lkIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnN0
YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogewotICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3M6OkVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdl
UHJvY2VzcyhtX3NlcnZpY2VXb3JrZXJQYWdlSUQsIHN0b3JlKSwgMCk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3Jh
Z2VQcm9jZXNzIHsgbV9zZXJ2aWNlV29ya2VyUGFnZUlELCBzdG9yZSB9LCAwKTsKK30KKwordm9p
ZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OlNldFVzZXJBZ2VudCB7IHVzZXJBZ2VudCB9LCAwKTsKIH0KIAogdm9pZCBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWlu
dDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVu
Z2VQcm94eT4mJiBjaGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKaW5kZXggMWFjNDU1NjJhNzMzYjY5YTFmZDFjOThh
Y2YyNTEzZDYwNDYwMWRkMC4uNjkzMGVhM2MyYzYyZTYxODVhM2VkYjYxNWFmOWYxNDA0ZGFkNjFk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9j
ZXNzUHJveHkuaApAQCAtMzksNiArMzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlE
LCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJik7CiAKICAgICB2b2lkIHN0YXJ0
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKKyAgICB2b2lkIHNldFVzZXJBZ2VudChjb25z
dCBTdHJpbmcmKTsKKwogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vy
dmljZVdvcmtlclBhZ2VJRDsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggM2QyMWJlMDA4MDYxZjc2YTIzNWYyMGZhMDlmNTU3YTNjNjBj
M2Q1MS4uM2M1MmUwYTNiYWQ2N2ViMjhhOWJlODRjNWUwMDAzOGQ2YWM2OTliYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzUxLDYgKzIzNTEsOSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25OYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBzZXRVc2VyQWdl
bnQoc3RhbmRhcmRVc2VyQWdlbnQobV9hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpKTsKKyNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgcHJvY2VzcygpLnByb2Nlc3NQb29sKCkudXBk
YXRlU2VydmljZVdvcmtlclVzZXJBZ2VudCh1c2VyQWdlbnQoKSk7CisjZW5kaWYKIH0KIAogdm9p
ZCBXZWJQYWdlUHJveHk6OnNldEN1c3RvbVVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGN1c3RvbVVz
ZXJBZ2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCAyMDk5OWNiMzc3MTY2YjlhMWVmM2M5MGYxZTI4N2RmZGQ2NjUxN2VhLi45ODJkNDIwOGRhMDEw
ODk0MjAyMDdhZGQyMzgzNjhhMTdjZTRlOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC02MTMsNyArNjEzLDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyhTdG9y
YWdlUHJvCiAgICAgbV9zZXJ2aWNlV29ya2VyUHJvY2VzcyA9IHNlcnZpY2VXb3JrZXJQcm9jZXNz
UHJveHkucHRyKCk7CiAgICAgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3Moc2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eS5nZXQoKSwgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkp
OwogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChXVEZNb3ZlKHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkpKTsKKwogICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3MtPnN0YXJ0KG1fZGVmYXVsdFBhZ2VH
cm91cC0+cHJlZmVyZW5jZXMoKS5zdG9yZSgpKTsKKyAgICBpZiAoIW1fc2VydmljZVdvcmtlclVz
ZXJBZ2VudC5pc051bGwoKSkKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyUHJvY2Vzcy0+c2V0VXNl
ckFnZW50KG1fc2VydmljZVdvcmtlclVzZXJBZ2VudCk7CiB9CiAjZW5kaWYKIApAQCAtMTAyMSw4
ICsxMDI0LDI1IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQ
YWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgQVNTRVJUKHByb2Nlc3Mu
Z2V0KCkgIT0gbV9zZXJ2aWNlV29ya2VyUHJvY2Vzcyk7CiAjZW5kaWYKIAotICAgIHJldHVybiBw
cm9jZXNzLT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKKyAgICBhdXRvIHBhZ2VQcm94eSA9IHByb2Nlc3MtPmNyZWF0ZVdlYlBhZ2UocGFnZUNs
aWVudCwgV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOworCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorICAgIHVwZGF0ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQocGFnZVByb3h5LT51c2Vy
QWdlbnQoKSk7CisjZW5kaWYKKworICAgIHJldHVybiBwYWdlUHJveHk7Cit9CisKKyNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRhdGVTZXJ2aWNlV29y
a2VyVXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIGlmIChtX3NlcnZp
Y2VXb3JrZXJVc2VyQWdlbnQgPT0gdXNlckFnZW50KQorICAgICAgICByZXR1cm47CisgICAgbV9z
ZXJ2aWNlV29ya2VyVXNlckFnZW50ID0gdXNlckFnZW50OworICAgIGlmIChtX3NlcnZpY2VXb3Jr
ZXJQcm9jZXNzKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzLT5zZXRVc2VyQWdlbnQo
bV9zZXJ2aWNlV29ya2VyVXNlckFnZW50KTsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpwYWdlQWRkZWRUb1Byb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYmNkMzE2NTQ1NzYxNTg2ZGEwOWQy
ZWFiZDMxNjI4YTkxNTFhNGE1Yy4uNjRhMDQ1ZDE0NTQxN2ViZTUxZWJhZmRiYzhkMDQ2YWU3NDIz
YmE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zMjgs
NiArMzI4LDcgQEAgcHVibGljOgogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIHNlcnZp
Y2VXb3JrZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclByb2Nlc3M7IH0K
ICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlcihib29s
IGFsbG93cykgeyBtX2FsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdvcmtlciA9IGFs
bG93czsgfQogICAgIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2Vy
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3Jr
ZXI7IH0KKyAgICB2b2lkIHVwZGF0ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQoY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTQ5NCw2ICs0
OTUsNyBAQCBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkqIG1fc2Vydmlj
ZVdvcmtlclByb2Nlc3MgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3dhaXRpbmdGb3JXb3JrZXJD
b250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9hbGxvd3NBbnlT
U0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIgeyBmYWxzZSB9OworICAgIFN0cmluZyBtX3Nl
cnZpY2VXb3JrZXJVc2VyQWdlbnQ7CiAjZW5kaWYKIAogICAgIFJlZjxXZWJQYWdlR3JvdXA+IG1f
ZGVmYXVsdFBhZ2VHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRl
eCAwZjM5ZTZhZWFlZDgyNDhlZTViNjY2OWExYTdmYWE4ZWM3ZTdiZjhiLi42YWIxNzA2OGRlOGE2
ZDFjZTc3Njk0MmEzY2NkMmIzNTNkMGYwNmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwCkBAIC02MywyNiArNjMsMzUgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGll
bnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZy
YW1lSUQpCi0gICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgIFNlcnZpY2VXb3Jr
ZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQorICAgICAgICA6IG1fY29ubmVjdGlv
bihjb25uZWN0aW9uKQorICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAgICAg
LCBtX3BhZ2VJRChwYWdlSUQpCiAgICAgICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCisgICAgICAg
ICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAgIHsKICAgICB9CiAKKyAgICB2b2lkIHNldFVz
ZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpIHsgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJB
Z2VudCk7IH0KKwogcHJpdmF0ZToKICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZURvY3Vt
ZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3RpdHV0
ZURhdGEmIHN1YnN0aXR1dGVEYXRhKSBmaW5hbAogICAgIHsKICAgICAgICAgcmV0dXJuIFdlYkRv
Y3VtZW50TG9hZGVyOjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwogICAgIH0KIAor
ICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBmaW5hbCB7IG1fY29ubmVjdGlvbi5yZW1v
dmVGcmFtZUxvYWRlckNsaWVudCgqdGhpcyk7IH0KKwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAgICAgdWludDY0X3Qg
cGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KICAgICB1aW50NjRfdCBm
cmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisgICAgU3RyaW5nIHVz
ZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVybiBtX3VzZXJBZ2VudDsgfQogCisgICAg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKICAgICBQQUw6OlNl
c3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICB1aW50NjRfdCBtX3BhZ2VJRCB7IDAgfTsKICAgICB1
aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIAog
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0X3QgcGFnZUlELCBj
b25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKQEAgLTkyLDYgKzEwMSw4IEBAIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbihS
ZWY8SVBDOjpDb25uZWN0aW9uCiAgICAgdXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUpOwogfQogCitX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6fldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uKCkgPSBkZWZhdWx0OworCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp1
cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKICAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNlcnZpY2VXb3Jr
ZXJFbmFibGVkKHRydWUpOwpAQCAtMTE2LDE1ICsxMjcsMjkgQEAgdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgU2VydmljZVdvcmtl
ckNvbnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgbW92ZWQgZGlyZWN0
bHkgdG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbgogICAgIC8vIElmIGl0
IHdlcmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCdzIGRlcGVuZGVuY2Ug
b24gV2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFkeSBoYXBwZW4uCi0gICAgYXV0
byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckZyYW1l
TG9hZGVyQ2xpZW50PihzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29y
a2VySUQpOwotICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSA9
IGZyYW1lTG9hZGVyQ2xpZW50LnJlbGVhc2UoKTsKKyAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KCp0aGlz
LCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQsIG1fdXNl
ckFnZW50KTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWluRnJhbWUg
PSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKKyAgICBtX2xvYWRlcnMuYWRkKHBhZ2VDb25maWd1
cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5GcmFtZSwgV1RGTW92ZShmcmFtZUxvYWRlckNsaWVu
dCkpOwogCi0gICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk6OmNyZWF0ZShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSwgZGF0YSwgc2Vz
c2lvbklELCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpKTsK
KyAgICBhdXRvIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eTo6Y3JlYXRlKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzZXNzaW9uSUQs
IFN0cmluZyB7IG1fdXNlckFnZW50IH0sIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3Rv
cmFnZVByb3ZpZGVyKCkpOwogICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnJlZ2lz
dGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkpKTsKIAogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGV4dCBwcm9jZXNzIFBJ
RDogJWkgY3JlYXRlZCB3b3JrZXIgdGhyZWFkXG4iLCBnZXRwaWQoKSk7CiB9CiAKK3ZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdl
bnQpCit7CisgICAgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVzZXJBZ2VudCk7CisgICAgZm9yIChh
dXRvJiBsb2FkZXIgOiBtX2xvYWRlcnMudmFsdWVzKCkpCisgICAgICAgIGxvYWRlci0+c2V0VXNl
ckFnZW50KFN0cmluZyB7IG1fdXNlckFnZW50IH0pOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpyZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQmIGNsaWVudCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1fbG9hZGVycy5y
ZW1vdmUoJmNsaWVudCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7Cit9CisK
IHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVk
V2l0aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+
IGpvYkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewogICAgIGlmIChl
eGNlcHRpb25NZXNzYWdlLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5o
CmluZGV4IDBjM2YyYWFiMmI0ZTI4ZmE2NTcyZTkwZThhZTJmMWQ1YjgwMjVlZDkuLjUyZmE1Njc4
NDAwZjI3OTY1ODljNDkyYjkzNWNhYTE3NzFlZWRlZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0K
IAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRnJhbWVMb2FkZXJDbGllbnQ7CiBzdHJ1Y3Qg
RmV0Y2hPcHRpb25zOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0IFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YTsKQEAgLTQ2LDE1ICs0NywxOSBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgU2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50Owogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiAKIGNsYXNzIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ29u
dGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBw
dWJsaWM6CiAgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVj
dGlvbj4mJiwgdWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7Cisg
ICAgfldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKCk7CiAKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZv
aWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYs
IHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKKyAgICB2b2lkIHJlbW92
ZUZyYW1lTG9hZGVyQ2xpZW50KFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCYpOworCiBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYpOwogCkBAIC04MywxNiArODgsMTkgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1hdGNoQWxs
Q29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JiYpOwogICAgIHZvaWQgY2xhaW1D
b21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRG
aW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHNldFVzZXJB
Z2VudChTdHJpbmcmJiB1c2VyQWdlbnQpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKICAgICB1aW50NjRfdCBtX3BhZ2VJRCB7IDAgfTsK
ICAgICB1aW50NjRfdCBtX3ByZXZpb3VzU2VydmljZVdvcmtlcklEIHsgMCB9OwogCisgICAgSGFz
aE1hcDxXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCosIHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNl
V29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+PiBtX2xvYWRlcnM7CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrPiBtX2ZpbmRDbGllbnRCeUlkZW50aWZp
ZXJSZXF1ZXN0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50c01hdGNoQWxsQ2FsbGJhY2s+IG1fbWF0Y2hBbGxSZXF1ZXN0czsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fY2xhaW1SZXF1ZXN0
czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1fc2tpcFdh
aXRpbmdSZXF1ZXN0czsKICAgICB1aW50NjRfdCBtX3ByZXZpb3VzUmVxdWVzdElkZW50aWZpZXIg
eyAwIH07CisgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDQ0MjA3ZGM0ZGE0ZTM5OWEwMzBhMDkwOTM1Zjc1YjBlNWRhNGFjNjkuLmYzZjZiYmI4MTBi
MWFmZjY2NTFlNjJiYzg2NjBiZjM4ZGU0NmZmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNSw2ICszNSw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKICAgICBNYXRjaEFsbENvbXBsZXRlZCh1
aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiBjbGllbnRzRGF0YSkKICAgICBDbGFpbUNvbXBsZXRl
ZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKQogICAgIERpZEZpbmlzaFNraXBXYWl0
aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgU2V0VXNlckFnZW50KFN0cmluZyB1c2VyQWdl
bnQpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZmNGM3YzM2MDRkNGY1YzE2MGJmNWI4OWY0NGE1Njc0
MTI2YWVkYjQuLjhhMmFkOTNjZDA3M2ZkZDA2MmNlYmUxMWQzMjAzMTAxODNlYTY1Y2YgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVzZSBhIGNvcnJlY3QgdXNl
ciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgwNTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTkyNjI5NT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy91c2VyYWdlbnQtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jLmRvVGVzdCk6
CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2Vy
YWdlbnQuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMTctMTItMDcgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgaU9TOiBNYW55IEFNUCBwYWdlcyBoaXQgYSByZWxl
YXNlIGFzc2VydGlvbiBpbnNpZGUgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQtd29y
a2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC13
b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzllMjFjYjc2MTRhZDQzZDI5Nzk3MzQ4ZmI0MDM3MWVjMmMw
MTY5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy91c2VyYWdlbnQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMjUgQEAKK29uYWN0aXZhdGUgPSAo
ZSkgPT4gZS53YWl0VW50aWwoY2xpZW50cy5jbGFpbSgpKTsKKworYXN5bmMgZnVuY3Rpb24gZG9U
ZXN0KGV2ZW50KQoreworICAgIGlmICghZXZlbnQuZGF0YS5zdGFydHNXaXRoKCJVU0VSQUdFTlQi
KSkgeworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJlY2VpdmVkIHVu
ZXhwZWN0ZWQgbWVzc2FnZSBmcm9tIGNsaWVudCIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJVU0VSQUdFTlQtTkFWSUdBVE9SIikgeworICAgICAg
ICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UobmF2aWdhdG9yLnVzZXJBZ2VudCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIlVTRVJBR0VOVC1GRVRD
SCIpIHsKKyAgICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goIi9mZXRjaC9hcGkvcmVz
b3VyY2VzL2luc3BlY3QtaGVhZGVycy5weT9oZWFkZXJzPVVzZXItQWdlbnQiKQorICAgICAgICBl
dmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzcG9uc2UuaGVhZGVycy5nZXQoIngtcmVxdWVzdC11
c2VyLWFnZW50IikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZXZlbnQuc291cmNl
LnBvc3RNZXNzYWdlKCJGQUlMOiBVbmtub3duIHRlc3QiKTsKK30KKworCitzZWxmLmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCBkb1Rlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFnZW50Lmh0dHBzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wOWJjNzUwMTY2NjAxYzc0M2I2OWU2YmJhNjMyMTA1MGFiNzc2MjQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L3VzZXJhZ2VudC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgU2V0
dXAgd29ya2VyIAorUEFTUyBUZXN0IHNlcnZpY2Ugd29ya2VyIG5hdmlnYXRvci51c2VyQWdlbnQg
CitQQVNTIFRlc3Qgc2VydmljZSB3b3JrZXIgVXNlci1BZ2VudCBoZWFkZXIgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0
cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMWU5ZjBiMWFhNjlkYjU1ZDc4Y2I3NTllZTg2NWQ2ZWYxM2Iz
NWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3VzZXJhZ2VudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgc2NvcGUgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtl
cnMvdXNlcmFnZW50Lmh0dHBzLmh0bWwiOwordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1c2VyQWdl
bnQ7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciByZWdpc3RyYXRp
b24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUp
OworICAgIGlmIChyZWdpc3RyYXRpb24gJiYgcmVnaXN0cmF0aW9uLnNjb3BlID09PSBzY29wZSkK
KyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKworICAgIHZhciByZXNw
b25zZSA9IGF3YWl0IGZldGNoKCIvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMu
cHk/aGVhZGVycz1Vc2VyLUFnZW50IikKKyAgICB1c2VyQWdlbnQgPSByZXNwb25zZS5oZWFkZXJz
LmdldCgieC1yZXF1ZXN0LXVzZXItYWdlbnQiKTsKKworICAgIHZhciByZWdpc3RyYXRpb24gPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigidXNlcmFnZW50LXdvcmtlci5q
cyIsIHsgc2NvcGUgOiBzY29wZSB9KTsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24u
YWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhY3Rp
dmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICByZXR1cm4gbmV3IFByb21p
c2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdz
dGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUg
PT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7
CisgICAgfSk7Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVz
dCkgPT4geworICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJt
ZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiVVNF
UkFHRU5ULU5BVklHQVRPUiIpOworICAgIHZhciBzZXJ2aWNlV29ya2VyVXNlckFnZW50ID0gYXdh
aXQgcHJvbWlzZTsKKworICAgIGFzc2VydF9lcXVhbHMoc2VydmljZVdvcmtlclVzZXJBZ2VudCwg
bmF2aWdhdG9yLnVzZXJBZ2VudCk7Cit9LCAiVGVzdCBzZXJ2aWNlIHdvcmtlciBuYXZpZ2F0b3Iu
dXNlckFnZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciBw
cm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9
PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOworICAgICAgICB9KTsKKyAgICB9
KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiVVNFUkFHRU5ULUZFVENIIik7Cisg
ICAgdmFyIHNlcnZpY2VXb3JrZXJVc2VyQWdlbnQgPSBhd2FpdCBwcm9taXNlOworCisgICAgYXNz
ZXJ0X2VxdWFscyhzZXJ2aWNlV29ya2VyVXNlckFnZW50LCB1c2VyQWdlbnQpOworfSwgIlRlc3Qg
c2VydmljZSB3b3JrZXIgVXNlci1BZ2VudCBoZWFkZXIiKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328870</attachid>
            <date>2017-12-08 14:31:34 -0800</date>
            <delta_ts>2017-12-08 16:08:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180566-20171208143133.patch</filename>
            <type>text/plain</type>
            <size>27489</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4YWJlMWZiMzM4OGIx
OWM2OWEyZjRiMTc2MGE2Mjk5YjRhODM3MS4uYTA2MmZhNWVkMDkxYjRjZTU4NjQ1NGRkNDEyMmI4
NGI4YmUzM2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTEyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlIFdvcmtlciBz
aG91bGQgdXNlIGEgY29ycmVjdCB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1
OTI2Mjk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMuaHRtbAorCisg
ICAgICAgIE1ha2UgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IHJldHVybiBhIHZhbGlk
IFVzZXJBZ2VudC4KKyAgICAgICAgUGFzcyB1c2VyIGFnZW50IHRvIFNlcnZpY2VXb3JrZXJUaHJl
YWQgc28gdGhhdCBuYXZpZ2F0aW9uLnVzZXJBZ2VudCBpcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQu
CisgICAgICAgIEFsbG93IFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCB0byBjbGVhbiBp
dHNlbGYgd2hlbiBubyBsb25nZXIgbmVlZGVkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJl
YWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpmcmFtZUxvYWRlckNsaWVudCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5Lmg6CisKIDIwMTctMTItMDggIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB3cm9uZyBsZXR0ZXIgY2FzZSBpbiAjaW1w
b3J0IEhUTUxJZnJhbWVFbGVtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGY4NjdiMjA5MTYyOWFjZWMwZDNl
ZmIzNzVjYTAyMzVkNzEwZGJiMC4uMjc3ZGEyNWU4M2FmZjM0MThkY2FiM2E1MWU1ZjMyYWNhOTQ4
M2MwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVz
ZSBhIGNvcnJlY3QgdXNlciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgwNTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTkyNjI5NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3Vw
cG9ydCB0byBzZXQgc2VydmljZSB3b3JrZXIgdXNlciBhZ2VudCBmcm9tIFVJUHJvY2VzcyB0byBz
ZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgorICAgICAgICBPbmUgdXNlciBhZ2VudCBpcyBjdXJyZW50
bHkgc3VwcG9ydGVkIHBlciBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIGFuZCBpdCBjYW4gYmUgY2hh
bmdlZCBhdCBhbnkgZ2l2ZW4gdGltZS4KKyAgICAgICAgT25seSBuZXcgc2VydmljZSB3b3JrZXIg
d2lsbCB1c2UgdGhlIG5ldyB2YWx1ZS4KKyAgICAgICAgT25jZSBhIHNlcnZpY2Ugd29ya2VyIGlz
IGxhdW5jaGVkLCBpdCB3aWxsIHN0YXkgd2l0aCB0aGUgc2FtZSB1c2VyIGFnZW50IHZhbHVlLgor
CisgICAgICAgIFRoaXMgc2V0cyBib3RoIG5hdmlnYXRvci51c2VyQWdlbnQgYW5kIFVzZXItQWdl
bnQgaGVhZGVyIG5hbWUgdXNlZCBmb3IgZmV0Y2ggd2l0aGluIGEgc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIENvbXB1dGUgdGhlIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgdXNlciBhZ2VudCBieSBw
aWNraW5nIHRoZSBsYXN0IHVzZXIgYWdlbnQgc2V0IGZvciBhIHdlYiBwYWdlLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6
OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnNldFVzZXJBZ2VudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1cGRhdGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0VXNlckFnZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnJlbW92ZUZyYW1lTG9h
ZGVyQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTItMDggIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYklu
c3BlY3RvclByb3h5Q2xpZW50IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzMjY4MDk0OWVl
OGZjYzFkOWEyNzViNjU4ZjE3MGVmYzZiNDdjYThjLi5iY2IwMGYyNDA5ZmQyNmYyNWExMzU0N2I5
ZjE4ZGFmYmM5YzdmMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxv
YWRlckNsaWVudCB7CiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRl
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIGZpbmFsIHsgfQorICAgIHZvaWQg
ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAogICAgIHVpbnQ2NF90IGZyYW1l
SUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdWludDY0X3QgcGFnZUlEKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJD
bGllbnQgewogICAgIHZvaWQgdXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXImKSBmaW5hbCB7IH0KICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rp
b24mLCBjb25zdCBVUkwmKSBmaW5hbCB7IH0KIAotICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
VVJMJikgZmluYWwgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQorICAgIFN0cmluZyB1c2VyQWdl
bnQoY29uc3QgVVJMJikgb3ZlcnJpZGUgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogCiAgICAg
dm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopIGZpbmFsIHsg
fQogICAgIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZy
YW1lKikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGYwNjQ0ZDll
YTFlNjhkODM1MjcwZWYwNzU3ZTQ2NWFkY2ZkZjhhMDkuLjY3Yzk4MDYxZDcxODMzMDYzNmM5OTI5
NWFkZThhMWI2Yzk5MzA5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC02Nywx
MiArNjcsMTEgQEAgcHJpdmF0ZToKIAogLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlclJlcG9y
dGluZ1Byb3h5CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKLS8vIEZJ
WE1FOiBVc2UgYSB2YWxpZCB1c2VyIGFnZW50CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgaXNPbmxp
bmUgZmxhZwogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKLVNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJv
dmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsICJzZXJ2aWNld29ya2Vy
OiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBB
U0NJSUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIpLCAvKiBpc09ubGluZSAqLyBmYWxzZSwgZGF0
YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxzZSwgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShkYXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25pY1RpbWU6Om5vdygpLCBp
ZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3Jl
YXRlQWxsRW5hYmxlZCgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKK1NlcnZpY2VX
b3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJM
b2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJv
eHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNv
Y2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKKyAgICA6IFdvcmtlclRocmVhZChkYXRhLnNj
cmlwdFVSTCwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5
OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgLyogaXNPbmxpbmUgKi8g
ZmFsc2UsIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5v
cm1hbCwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgfSwgZmFsc2UsIFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgpLCBNb25vdG9uaWNUaW1l
Ojpub3coKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1l
RmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
CiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0
UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCmluZGV4IGM1ZmQ3MTgzMTM3ZDg4OTZkYmE1NTMxNTdkZDU4OTdmZDJk
ZjM4YTUuLjFkZGJkY2QwZWMyNGM4ZjFmZTVjNTFmODQxZjE1NzY2ZjE4YjZjYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKQEAgLTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
cnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6
OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOworICAgIFdFQkNP
UkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyTG9hZGVyUHJv
eHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
LCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgU2VydmljZVdvcmtlckNvbnRleHREYXRhIG1fZGF0
YTsKICAgICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IDAxZGM0MTc3OTU2NTM4NjljOGRiYzli
NWU1MWU0ZThkOWY4NTU5YzUuLjRlNjA4MWVjODEzYjM2ZjFiZTBjMDg2MThjYWE5NDRlY2FkZWQ2
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNTYsMTAgKzU2
LDEwIEBAIHN0YXRpYyBpbmxpbmUgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNv
bm5lY3Rpb25Qcm94eShEb2N1bWVudCYgZG9jdW1lCiAjZW5kaWYKIH0KIAotU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0
b3JhZ2VQcm92aWRlcikKK1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlcikKICAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uKSwgZGF0YS5zY3JpcHRVUkwpKQogICAgICwgbV9kb2N1bWVudCgqbV9w
YWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQotICAgICwgbV9zZXJ2aWNlV29ya2VyVGhyZWFk
KFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNzaW9uSUQsICp0aGlzLCAqdGhp
cywgaWRiQ29ubmVjdGlvblByb3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92
aWRlcigpKSkKKyAgICAsIG1fc2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFk
OjpjcmVhdGUoZGF0YSwgc2Vzc2lvbklELCBXVEZNb3ZlKHVzZXJBZ2VudCksICp0aGlzLCAqdGhp
cywgaWRiQ29ubmVjdGlvblByb3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92
aWRlcigpKSkKICAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoY2FjaGVTdG9yYWdlUHJvdmlk
ZXIpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2luc3BlY3RvclByb3h5
KCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAwMzBkY2YxMGVk
ODMwMzY5ZWEwMDU0ZDU5NTk0OTczNTg4ZmYzZjdhLi43MzIyYTc2YzlkNzdjMWI5ZGE1NDRiMjk0
ZWU1Njg0M2FjZmFiNGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAt
NjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXJtaW5hdGluZ09yVGVybWluYXRl
ZChib29sIHRlcm1pbmF0aW5nKSB7IG1faXNUZXJtaW5hdGluZ09yVGVybWluYXRlZCA9IHRlcm1p
bmF0aW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOworICAgIFdFQkNP
UkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmLCBj
b25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYg
dXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOwogCiAgICAgLy8gV29ya2VyTG9hZGVy
UHJveHkKICAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA4ZGY3ZDk4N2IwMmE4NDNjMzczN2Y5NjE0ZjM1NzQ4ZDY4NTE3ZmFlLi4xN2Mz
N2NjNzQyOTRjOTZiZWI0NjY2OTdlNGIwZjk0ODFmZDA3MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1
ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjEsNyAr
NjIsMTIgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25z
KFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYKIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5OjpzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MobV9zZXJ2aWNlV29ya2VyUGFnZUlELCBzdG9yZSksIDApOwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVzdGFibGlzaFdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyB7IG1fc2VydmljZVdvcmtlclBhZ2VJRCwgc3RvcmUgfSwg
MCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6c2V0VXNlckFnZW50KGNv
bnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTZXRVc2VyQWdlbnQgeyB1c2VyQWdlbnQgfSwgMCk7CiB9CiAK
IHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCmluZGV4IDFhYzQ1NTYyYTcz
M2I2OWExZmQxYzk4YWNmMjUxM2Q2MDQ2MDFkZDAuLjY5MzBlYTNjMmM2MmU2MTg1YTNlZGI2MTVh
ZjlmMTQwNGRhZDYxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAg
ICAgdm9pZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CisgICAgdm9pZCBzZXRV
c2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CisKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7
IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSUQ7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNkMjFiZTAwODA2MWY3NmEyMzVmMjBm
YTA5ZjU1N2EzYzYwYzNkNTEuLjNjNTJlMGEzYmFkNjdlYjI4YTliZTg0YzVlMDAwMzhkNmFjNjk5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjM1MSw2
ICsyMzUxLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldEFwcGxpY2F0aW9uTmFtZUZvclVzZXJB
Z2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgc2V0VXNlckFnZW50KHN0YW5kYXJkVXNlckFnZW50KG1fYXBwbGljYXRpb25OYW1lRm9yVXNl
ckFnZW50KSk7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIHByb2Nlc3MoKS5wcm9j
ZXNzUG9vbCgpLnVwZGF0ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQodXNlckFnZW50KCkpOworI2Vu
ZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRDdXN0b21Vc2VyQWdlbnQoY29uc3QgU3Ry
aW5nJiBjdXN0b21Vc2VyQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggMjA5OTljYjM3NzE2NmI5YTFlZjNjOTBmMWUyODdkZmRkNjY1MTdlYS4u
OTgyZDQyMDhkYTAxMDg5NDIwMjA3YWRkMjM4MzY4YTE3Y2U0ZTkzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNjEzLDcgKzYxMywxMCBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFn
ZVByb2Nlc3MoU3RvcmFnZVBybwogICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3MgPSBzZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5LnB0cigpOwogICAgIGluaXRpYWxpemVOZXdXZWJQcm9jZXNzKHNl
cnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuZ2V0KCksIG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0
ZURhdGFTdG9yZSgpKTsKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQoV1RGTW92ZShzZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5KSk7CisKICAgICBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzLT5zdGFydCht
X2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuc3RvcmUoKSk7CisgICAgaWYgKCFtX3Nl
cnZpY2VXb3JrZXJVc2VyQWdlbnQuaXNOdWxsKCkpCisgICAgICAgIG1fc2VydmljZVdvcmtlclBy
b2Nlc3MtPnNldFVzZXJBZ2VudChtX3NlcnZpY2VXb3JrZXJVc2VyQWdlbnQpOwogfQogI2VuZGlm
CiAKQEAgLTEwMjEsOCArMTAyNCwyNSBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9v
bDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogICAgIEFT
U0VSVChwcm9jZXNzLmdldCgpICE9IG1fc2VydmljZVdvcmtlclByb2Nlc3MpOwogI2VuZGlmCiAK
LSAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2ViUGFnZShwYWdlQ2xpZW50LCBXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uKSk7CisgICAgYXV0byBwYWdlUHJveHkgPSBwcm9jZXNzLT5jcmVhdGVX
ZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKKworI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKKyAgICB1cGRhdGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KHBh
Z2VQcm94eS0+dXNlckFnZW50KCkpOworI2VuZGlmCisKKyAgICByZXR1cm4gcGFnZVByb3h5Owor
fQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6dXBk
YXRlU2VydmljZVdvcmtlclVzZXJBZ2VudChjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKK3sKKyAg
ICBpZiAobV9zZXJ2aWNlV29ya2VyVXNlckFnZW50ID09IHVzZXJBZ2VudCkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fc2VydmljZVdvcmtlclVzZXJBZ2VudCA9IHVzZXJBZ2VudDsKKyAgICBpZiAo
bV9zZXJ2aWNlV29ya2VyUHJvY2VzcykKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyUHJvY2Vzcy0+
c2V0VXNlckFnZW50KG1fc2VydmljZVdvcmtlclVzZXJBZ2VudCk7CiB9CisjZW5kaWYKIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGFnZUFkZGVkVG9Qcm9jZXNzKFdlYlBhZ2VQcm94eSYgcGFnZSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGJjZDMxNjU0
NTc2MTU4NmRhMDlkMmVhYmQzMTYyOGE5MTUxYTRhNWMuLjY0YTA0NWQxNDU0MTdlYmU1MWViYWZk
YmM4ZDA0NmFlNzQyM2JhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaApAQCAtMzI4LDYgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5KiBzZXJ2aWNlV29ya2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3Jr
ZXJQcm9jZXNzOyB9CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZp
Y2VXb3JrZXIoYm9vbCBhbGxvd3MpIHsgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZp
Y2VXb3JrZXIgPSBhbGxvd3M7IH0KICAgICBib29sIGFsbG93c0FueVNTTENlcnRpZmljYXRlRm9y
U2VydmljZVdvcmtlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVG
b3JTZXJ2aWNlV29ya2VyOyB9CisgICAgdm9pZCB1cGRhdGVTZXJ2aWNlV29ya2VyVXNlckFnZW50
KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CkBAIC00OTQsNiArNDk1LDcgQEAgcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5KiBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzIHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV93YWl0
aW5nRm9yV29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBib29s
IG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyIHsgZmFsc2UgfTsKKyAg
ICBTdHJpbmcgbV9zZXJ2aWNlV29ya2VyVXNlckFnZW50OwogI2VuZGlmCiAKICAgICBSZWY8V2Vi
UGFnZUdyb3VwPiBtX2RlZmF1bHRQYWdlR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHAKaW5kZXggMGYzOWU2YWVhZWQ4MjQ4ZWU1YjY2NjlhMWE3ZmFhOGVjN2U3YmY4Yi4u
NjhkY2M3ZWNlMjY4M2Q5ZDVhMmY2YWFlNWM2MzI0OWRiMzkwNmZmOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtNjMsMjYgKzYzLDM1IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwgOiBwdWJs
aWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlEKQotICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKKyAg
ICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFn
ZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKKyAgICAgICAg
OiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKKyAgICAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCiAgICAgICAgICwgbV9wYWdlSUQocGFnZUlEKQogICAgICAgICAsIG1fZnJhbWVJRChmcmFt
ZUlEKQorICAgICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKICAgICB7CiAgICAgfQogCisg
ICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KSB7IG1fdXNlckFnZW50ID0g
V1RGTW92ZSh1c2VyQWdlbnQpOyB9CisKIHByaXZhdGU6CiAgICAgUmVmPERvY3VtZW50TG9hZGVy
PiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkgZmluYWwKICAgICB7CiAgICAgICAg
IHJldHVybiBXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KTsKICAgICB9CiAKKyAgICB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmluYWwgeyBtX2Nv
bm5lY3Rpb24ucmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQoKnRoaXMpOyB9CisKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQog
ICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFnZUlEOyB9CiAg
ICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJRDsgfQor
ICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgZmluYWwgeyByZXR1cm4gbV91c2VyQWdl
bnQ7IH0KIAorICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBtX2Nvbm5lY3Rpb247
CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgdWludDY0X3QgbV9wYWdlSUQg
eyAwIH07CiAgICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFN0cmluZyBtX3VzZXJB
Z2VudDsKIH07CiAKIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCkBAIC05Miw2ICsx
MDEsOCBAQCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbgogICAgIHVwZGF0ZVByZWZlcmVuY2VzKHN0
b3JlKTsKIH0KIAorV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246On5XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKwogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUpCiB7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5z
ZXRTZXJ2aWNlV29ya2VyRW5hYmxlZCh0cnVlKTsKQEAgLTExNiwxNSArMTI3LDI3IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250CiAKICAgICAvLyBGSVhNRTogVGhpcyBtZXRob2Qgc2hvdWxkIGJl
IG1vdmVkIGRpcmVjdGx5IHRvIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24K
ICAgICAvLyBJZiBpdCB3ZXJlbid0IGZvciBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQn
cyBkZXBlbmRlbmNlIG9uIFdlYkRvY3VtZW50TG9hZGVyLCB0aGlzIGNvdWxkIGFscmVhZHkgaGFw
cGVuLgotICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZp
Y2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4oc2Vzc2lvbklELCBtX3BhZ2VJRCwgKyttX3ByZXZp
b3VzU2VydmljZVdvcmtlcklEKTsKLSAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5yZWxlYXNlKCk7CisgICAgYXV0byBmcmFt
ZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtlckZyYW1lTG9hZGVy
Q2xpZW50PigqdGhpcywgc2Vzc2lvbklELCBtX3BhZ2VJRCwgKyttX3ByZXZpb3VzU2VydmljZVdv
cmtlcklELCBtX3VzZXJBZ2VudCk7CisgICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50
Rm9yTWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCk7CisgICAgbV9sb2FkZXJzLmFk
ZChXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xpZW50KSk7CiAKLSAgICBhdXRvIHNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKFdURk1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24pLCBkYXRhLCBzZXNzaW9uSUQsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkpOworICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZFBy
b3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdlQ29uZmln
dXJhdGlvbiksIGRhdGEsIHNlc3Npb25JRCwgU3RyaW5nIHsgbV91c2VyQWdlbnQgfSwgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSk7CiAgICAgU1dDb250ZXh0
TWFuYWdlcjo6c2luZ2xldG9uKCkucmVnaXN0ZXJTZXJ2aWNlV29ya2VyVGhyZWFkRm9ySW5zdGFs
bChXVEZNb3ZlKHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkpOwogCiAgICAgTE9HKFNlcnZpY2VX
b3JrZXIsICJDb250ZXh0IHByb2Nlc3MgUElEOiAlaSBjcmVhdGVkIHdvcmtlciB0aHJlYWRcbiIs
IGdldHBpZCgpKTsKIH0KIAordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0
VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCkKK3sKKyAgICBtX3VzZXJBZ2VudCA9IFdURk1v
dmUodXNlckFnZW50KTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
cmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQoU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50JiBj
bGllbnQpCit7CisgICAgYXV0byByZXN1bHQgPSBtX2xvYWRlcnMucmVtb3ZlKCZjbGllbnQpOwor
ICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQpOworfQorCiB2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiBqb2JEYXRhSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkKIHsKICAgICBpZiAoZXhjZXB0aW9uTWVzc2FnZS5p
c0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCAwYzNmMmFhYjJi
NGUyOGZhNjU3MmU5MGU4YWUyZjFkNWI4MDI1ZWQ5Li5hMjgzNjFjMTczODUxNjFkYzQyMWMxMjkw
ZGUzMTJiMDcxOTljM2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTQ2
LDE1ICs0NiwxOSBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorY2xhc3MgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Owogc3Ry
dWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiAKIGNsYXNzIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rp
b24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAgV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgdWludDY0X3QgcGFn
ZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CisgICAgfldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6
OkVuY29kZXI+JikgZmluYWw7CiAKKyAgICB2b2lkIHJlbW92ZUZyYW1lTG9hZGVyQ2xpZW50KFNl
cnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCYpOworCiBwcml2YXRlOgogICAgIHZvaWQgdXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwogCkBAIC04MywxNiAr
ODcsMTkgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1h
dGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50SW5mb3JtYXRpb24+JiYpOwogICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xh
aW1SZXF1ZXN0SWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50
NjRfdCBjYWxsYmFja0lEKTsKKyAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdl
bnQpOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJv
Y2VzczsKICAgICB1aW50NjRfdCBtX3BhZ2VJRCB7IDAgfTsKICAgICB1aW50NjRfdCBtX3ByZXZp
b3VzU2VydmljZVdvcmtlcklEIHsgMCB9OwogCisgICAgSGFzaFNldDxzdGQ6OnVuaXF1ZV9wdHI8
U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Pj4gbV9sb2FkZXJzOwogICAgIEhhc2hNYXA8
dWludDY0X3QsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjaz4gbV9maW5kQ2xpZW50QnlJ
ZGVudGlmaWVyUmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrPiBtX21hdGNoQWxsUmVxdWVzdHM7CiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+PiBtX2NsYWlt
UmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkKCk+PiBt
X3NraXBXYWl0aW5nUmVxdWVzdHM7CiAgICAgdWludDY0X3QgbV9wcmV2aW91c1JlcXVlc3RJZGVu
dGlmaWVyIHsgMCB9OworICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgppbmRleCA0NDIwN2RjNGRhNGUzOTlhMDMwYTA5MDkzNWY3NWIwZTVkYTRhYzY5Li5mM2Y2
YmJiODEwYjFhZmY2NjUxZTYyYmM4NjYwYmYzOGRlNDZmZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzUsNiArMzUsNyBAQCBtZXNz
YWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7CiAgICAgTWF0Y2hBbGxDb21w
bGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4gY2xpZW50c0RhdGEpCiAgICAgQ2xhaW1D
b21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcikKICAgICBEaWRGaW5pc2hT
a2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKQorICAgIFNldFVzZXJBZ2VudChTdHJpbmcg
dXNlckFnZW50KQogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZjRjN2MzNjA0ZDRmNWMxNjBiZjViODlm
NDRhNTY3NDEyNmFlZGI0Li44YTJhZDkzY2QwNzNmZGQwNjJjZWJlMTFkMzIwMzEwMTgzZWE2NWNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTItMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIFNlcnZpY2UgV29ya2VyIHNob3VsZCB1c2UgYSBjb3Jy
ZWN0IHVzZXIgYWdlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDU2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU5MjYyOTU+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvdXNlcmFnZW50LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgIChhc3luYy5k
b1Rlc3QpOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0
cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvdXNlcmFnZW50Lmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDE3LTEyLTA3ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIGlPUzogTWFueSBBTVAgcGFnZXMgaGl0
IGEgcmVsZWFzZSBhc3NlcnRpb24gaW5zaWRlIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVk
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFn
ZW50LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2Vy
YWdlbnQtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5ZTIxY2I3NjE0YWQ0M2QyOTc5NzM0OGZiNDAz
NzFlYzJjMDE2OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvdXNlcmFnZW50LXdvcmtlci5qcwpAQCAtMCwwICsxLDI1IEBACitvbmFjdGl2
YXRlID0gKGUpID0+IGUud2FpdFVudGlsKGNsaWVudHMuY2xhaW0oKSk7CisKK2FzeW5jIGZ1bmN0
aW9uIGRvVGVzdChldmVudCkKK3sKKyAgICBpZiAoIWV2ZW50LmRhdGEuc3RhcnRzV2l0aCgiVVNF
UkFHRU5UIikpIHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiByZWNl
aXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2UgZnJvbSBjbGllbnQiKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChldmVudC5kYXRhID09PSAiVVNFUkFHRU5ULU5BVklHQVRPUiIpIHsK
KyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKG5hdmlnYXRvci51c2VyQWdlbnQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJVU0VSQUdF
TlQtRkVUQ0giKSB7CisgICAgICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGZldGNoKCIvZmV0Y2gv
YXBpL3Jlc291cmNlcy9pbnNwZWN0LWhlYWRlcnMucHk/aGVhZGVycz1Vc2VyLUFnZW50IikKKyAg
ICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3BvbnNlLmhlYWRlcnMuZ2V0KCJ4LXJl
cXVlc3QtdXNlci1hZ2VudCIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGV2ZW50
LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogVW5rbm93biB0ZXN0Iik7Cit9CisKKworc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZG9UZXN0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDliYzc1MDE2NjYwMWM3NDNiNjllNmJiYTYzMjEwNTBh
Yjc3NjI0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy91c2VyYWdlbnQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQ
QVNTIFNldHVwIHdvcmtlciAKK1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBuYXZpZ2F0b3IudXNl
ckFnZW50IAorUEFTUyBUZXN0IHNlcnZpY2Ugd29ya2VyIFVzZXItQWdlbnQgaGVhZGVyIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFnZW50
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFn
ZW50Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjFlOWYwYjFhYTY5ZGI1NWQ3OGNiNzU5ZWU4NjVk
NmVmMTNiMzVlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMuaHRtbApAQCAtMCwwICsxLDYwIEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIHNjb3BlID0gIi9XZWJLaXQvc2Vydmlj
ZS13b3JrZXJzL3VzZXJhZ2VudC5odHRwcy5odG1sIjsKK3ZhciBhY3RpdmVXb3JrZXI7Cit2YXIg
dXNlckFnZW50OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcmVn
aXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0UmVnaXN0cmF0aW9u
KHNjb3BlKTsKKyAgICBpZiAocmVnaXN0cmF0aW9uICYmIHJlZ2lzdHJhdGlvbi5zY29wZSA9PT0g
c2NvcGUpCisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisKKyAgICB2
YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgiL2ZldGNoL2FwaS9yZXNvdXJjZXMvaW5zcGVjdC1o
ZWFkZXJzLnB5P2hlYWRlcnM9VXNlci1BZ2VudCIpCisgICAgdXNlckFnZW50ID0gcmVzcG9uc2Uu
aGVhZGVycy5nZXQoIngtcmVxdWVzdC11c2VyLWFnZW50Iik7CisKKyAgICB2YXIgcmVnaXN0cmF0
aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInVzZXJhZ2VudC13
b3JrZXIuanMiLCB7IHNjb3BlIDogc2NvcGUgfSk7CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0
cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAoYWN0aXZlV29ya2VyKQorICAgICAgICByZXR1cm47Cisg
ICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgcmV0dXJuIG5l
dyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBhY3RpdmVXb3JrZXIuYWRkRXZlbnRMaXN0
ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICBpZiAoYWN0aXZlV29ya2Vy
LnN0YXRlID09PSAiYWN0aXZhdGVkIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAg
ICAgIH0pOworICAgIH0pOworfSwgIlNldHVwIHdvcmtlciIpOworCitwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKKyAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgcmVzb2x2ZShldmVudC5k
YXRhKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3Nh
Z2UoIlVTRVJBR0VOVC1OQVZJR0FUT1IiKTsKKyAgICB2YXIgc2VydmljZVdvcmtlclVzZXJBZ2Vu
dCA9IGF3YWl0IHByb21pc2U7CisKKyAgICBhc3NlcnRfZXF1YWxzKHNlcnZpY2VXb3JrZXJVc2Vy
QWdlbnQsIG5hdmlnYXRvci51c2VyQWdlbnQpOworfSwgIlRlc3Qgc2VydmljZSB3b3JrZXIgbmF2
aWdhdG9yLnVzZXJBZ2VudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAg
ICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAg
ICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChl
dmVudCkgPT4geworICAgICAgICAgICAgcmVzb2x2ZShldmVudC5kYXRhKTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoIlVTRVJBR0VOVC1GRVRD
SCIpOworICAgIHZhciBzZXJ2aWNlV29ya2VyVXNlckFnZW50ID0gYXdhaXQgcHJvbWlzZTsKKwor
ICAgIGFzc2VydF9lcXVhbHMoc2VydmljZVdvcmtlclVzZXJBZ2VudCwgdXNlckFnZW50KTsKK30s
ICJUZXN0IHNlcnZpY2Ugd29ya2VyIFVzZXItQWdlbnQgaGVhZGVyIik7Cis8L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328877</attachid>
            <date>2017-12-08 15:20:37 -0800</date>
            <delta_ts>2017-12-08 16:08:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180566-20171208152036.patch</filename>
            <type>text/plain</type>
            <size>28628</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4YWJlMWZiMzM4OGIx
OWM2OWEyZjRiMTc2MGE2Mjk5YjRhODM3MS4uYTA2MmZhNWVkMDkxYjRjZTU4NjQ1NGRkNDEyMmI4
NGI4YmUzM2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTEyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlIFdvcmtlciBz
aG91bGQgdXNlIGEgY29ycmVjdCB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1
OTI2Mjk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMuaHRtbAorCisg
ICAgICAgIE1ha2UgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IHJldHVybiBhIHZhbGlk
IFVzZXJBZ2VudC4KKyAgICAgICAgUGFzcyB1c2VyIGFnZW50IHRvIFNlcnZpY2VXb3JrZXJUaHJl
YWQgc28gdGhhdCBuYXZpZ2F0aW9uLnVzZXJBZ2VudCBpcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQu
CisgICAgICAgIEFsbG93IFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCB0byBjbGVhbiBp
dHNlbGYgd2hlbiBubyBsb25nZXIgbmVlZGVkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJl
YWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpmcmFtZUxvYWRlckNsaWVudCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5Lmg6CisKIDIwMTctMTItMDggIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB3cm9uZyBsZXR0ZXIgY2FzZSBpbiAjaW1w
b3J0IEhUTUxJZnJhbWVFbGVtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGY4NjdiMjA5MTYyOWFjZWMwZDNl
ZmIzNzVjYTAyMzVkNzEwZGJiMC4uMjc3ZGEyNWU4M2FmZjM0MThkY2FiM2E1MWU1ZjMyYWNhOTQ4
M2MwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVz
ZSBhIGNvcnJlY3QgdXNlciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgwNTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTkyNjI5NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3Vw
cG9ydCB0byBzZXQgc2VydmljZSB3b3JrZXIgdXNlciBhZ2VudCBmcm9tIFVJUHJvY2VzcyB0byBz
ZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgorICAgICAgICBPbmUgdXNlciBhZ2VudCBpcyBjdXJyZW50
bHkgc3VwcG9ydGVkIHBlciBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIGFuZCBpdCBjYW4gYmUgY2hh
bmdlZCBhdCBhbnkgZ2l2ZW4gdGltZS4KKyAgICAgICAgT25seSBuZXcgc2VydmljZSB3b3JrZXIg
d2lsbCB1c2UgdGhlIG5ldyB2YWx1ZS4KKyAgICAgICAgT25jZSBhIHNlcnZpY2Ugd29ya2VyIGlz
IGxhdW5jaGVkLCBpdCB3aWxsIHN0YXkgd2l0aCB0aGUgc2FtZSB1c2VyIGFnZW50IHZhbHVlLgor
CisgICAgICAgIFRoaXMgc2V0cyBib3RoIG5hdmlnYXRvci51c2VyQWdlbnQgYW5kIFVzZXItQWdl
bnQgaGVhZGVyIG5hbWUgdXNlZCBmb3IgZmV0Y2ggd2l0aGluIGEgc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIENvbXB1dGUgdGhlIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgdXNlciBhZ2VudCBieSBw
aWNraW5nIHRoZSBsYXN0IHVzZXIgYWdlbnQgc2V0IGZvciBhIHdlYiBwYWdlLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6
OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnNldFVzZXJBZ2VudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1cGRhdGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0VXNlckFnZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnJlbW92ZUZyYW1lTG9h
ZGVyQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTItMDggIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYklu
c3BlY3RvclByb3h5Q2xpZW50IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzMjY4MDk0OWVl
OGZjYzFkOWEyNzViNjU4ZjE3MGVmYzZiNDdjYThjLi5iY2IwMGYyNDA5ZmQyNmYyNWExMzU0N2I5
ZjE4ZGFmYmM5YzdmMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxv
YWRlckNsaWVudCB7CiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRl
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIGZpbmFsIHsgfQorICAgIHZvaWQg
ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAogICAgIHVpbnQ2NF90IGZyYW1l
SUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdWludDY0X3QgcGFnZUlEKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJD
bGllbnQgewogICAgIHZvaWQgdXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXImKSBmaW5hbCB7IH0KICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rp
b24mLCBjb25zdCBVUkwmKSBmaW5hbCB7IH0KIAotICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
VVJMJikgZmluYWwgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQorICAgIFN0cmluZyB1c2VyQWdl
bnQoY29uc3QgVVJMJikgb3ZlcnJpZGUgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogCiAgICAg
dm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopIGZpbmFsIHsg
fQogICAgIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZy
YW1lKikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGYwNjQ0ZDll
YTFlNjhkODM1MjcwZWYwNzU3ZTQ2NWFkY2ZkZjhhMDkuLjY3Yzk4MDYxZDcxODMzMDYzNmM5OTI5
NWFkZThhMWI2Yzk5MzA5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC02Nywx
MiArNjcsMTEgQEAgcHJpdmF0ZToKIAogLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlclJlcG9y
dGluZ1Byb3h5CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKLS8vIEZJ
WE1FOiBVc2UgYSB2YWxpZCB1c2VyIGFnZW50CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgaXNPbmxp
bmUgZmxhZwogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKLVNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJv
dmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsICJzZXJ2aWNld29ya2Vy
OiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBB
U0NJSUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIpLCAvKiBpc09ubGluZSAqLyBmYWxzZSwgZGF0
YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxzZSwgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShkYXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25pY1RpbWU6Om5vdygpLCBp
ZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3Jl
YXRlQWxsRW5hYmxlZCgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKK1NlcnZpY2VX
b3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJM
b2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJv
eHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNv
Y2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKKyAgICA6IFdvcmtlclRocmVhZChkYXRhLnNj
cmlwdFVSTCwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5
OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgLyogaXNPbmxpbmUgKi8g
ZmFsc2UsIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5v
cm1hbCwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgfSwgZmFsc2UsIFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgpLCBNb25vdG9uaWNUaW1l
Ojpub3coKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1l
RmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
CiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0
UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCmluZGV4IGM1ZmQ3MTgzMTM3ZDg4OTZkYmE1NTMxNTdkZDU4OTdmZDJk
ZjM4YTUuLjFkZGJkY2QwZWMyNGM4ZjFmZTVjNTFmODQxZjE1NzY2ZjE4YjZjYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKQEAgLTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
cnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6
OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOworICAgIFdFQkNP
UkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyTG9hZGVyUHJv
eHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
LCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgU2VydmljZVdvcmtlckNvbnRleHREYXRhIG1fZGF0
YTsKICAgICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IDAxZGM0MTc3OTU2NTM4NjljOGRiYzli
NWU1MWU0ZThkOWY4NTU5YzUuLjRlNjA4MWVjODEzYjM2ZjFiZTBjMDg2MThjYWE5NDRlY2FkZWQ2
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNTYsMTAgKzU2
LDEwIEBAIHN0YXRpYyBpbmxpbmUgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNv
bm5lY3Rpb25Qcm94eShEb2N1bWVudCYgZG9jdW1lCiAjZW5kaWYKIH0KIAotU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0
b3JhZ2VQcm92aWRlcikKK1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlcikKICAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uKSwgZGF0YS5zY3JpcHRVUkwpKQogICAgICwgbV9kb2N1bWVudCgqbV9w
YWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQotICAgICwgbV9zZXJ2aWNlV29ya2VyVGhyZWFk
KFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNzaW9uSUQsICp0aGlzLCAqdGhp
cywgaWRiQ29ubmVjdGlvblByb3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92
aWRlcigpKSkKKyAgICAsIG1fc2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFk
OjpjcmVhdGUoZGF0YSwgc2Vzc2lvbklELCBXVEZNb3ZlKHVzZXJBZ2VudCksICp0aGlzLCAqdGhp
cywgaWRiQ29ubmVjdGlvblByb3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92
aWRlcigpKSkKICAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoY2FjaGVTdG9yYWdlUHJvdmlk
ZXIpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2luc3BlY3RvclByb3h5
KCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAwMzBkY2YxMGVk
ODMwMzY5ZWEwMDU0ZDU5NTk0OTczNTg4ZmYzZjdhLi43MzIyYTc2YzlkNzdjMWI5ZGE1NDRiMjk0
ZWU1Njg0M2FjZmFiNGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAt
NjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXJtaW5hdGluZ09yVGVybWluYXRl
ZChib29sIHRlcm1pbmF0aW5nKSB7IG1faXNUZXJtaW5hdGluZ09yVGVybWluYXRlZCA9IHRlcm1p
bmF0aW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOworICAgIFdFQkNP
UkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmLCBj
b25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYg
dXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOwogCiAgICAgLy8gV29ya2VyTG9hZGVy
UHJveHkKICAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA4ZGY3ZDk4N2IwMmE4NDNjMzczN2Y5NjE0ZjM1NzQ4ZDY4NTE3ZmFlLi4xN2Mz
N2NjNzQyOTRjOTZiZWI0NjY2OTdlNGIwZjk0ODFmZDA3MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1
ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjEsNyAr
NjIsMTIgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25z
KFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYKIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5OjpzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MobV9zZXJ2aWNlV29ya2VyUGFnZUlELCBzdG9yZSksIDApOwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVzdGFibGlzaFdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyB7IG1fc2VydmljZVdvcmtlclBhZ2VJRCwgc3RvcmUgfSwg
MCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6c2V0VXNlckFnZW50KGNv
bnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTZXRVc2VyQWdlbnQgeyB1c2VyQWdlbnQgfSwgMCk7CiB9CiAK
IHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCmluZGV4IDFhYzQ1NTYyYTcz
M2I2OWExZmQxYzk4YWNmMjUxM2Q2MDQ2MDFkZDAuLjY5MzBlYTNjMmM2MmU2MTg1YTNlZGI2MTVh
ZjlmMTQwNGRhZDYxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAg
ICAgdm9pZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CisgICAgdm9pZCBzZXRV
c2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CisKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7
IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSUQ7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNkMjFiZTAwODA2MWY3NmEyMzVmMjBm
YTA5ZjU1N2EzYzYwYzNkNTEuLjc5OWZiNWQyZTg3MjIzMTY3NWY5Y2YxZDVlYjk2NzMzZTBlODRi
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjMzMCwx
MSArMjMzMCwxNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQ
b2xpY3lBY3Rpb24gYWN0aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lLmZyYW1l
SUQoKSwgbGlzdGVuZXJJRCwgYWN0aW9uLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCkgOiAwLCBkb3dubG9hZElELCB3ZWJzaXRlUG9saWNpZXMpLCBtX3BhZ2VJRCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCkK
IHsKICAgICBpZiAobV91c2VyQWdlbnQgPT0gdXNlckFnZW50KQogICAgICAgICByZXR1cm47Ci0g
ICAgbV91c2VyQWdlbnQgPSB1c2VyQWdlbnQ7CisgICAgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVz
ZXJBZ2VudCk7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgcHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkudXBkYXRlU2VydmljZVdvcmtlclVzZXJBZ2VudChtX3VzZXJBZ2VudCk7Cisj
ZW5kaWYKIAogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC0yMzY1LDcg
KzIzNjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q3VzdG9tVXNlckFnZW50KGNvbnN0IFN0
cmluZyYgY3VzdG9tVXNlckFnZW50KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2V0
VXNlckFnZW50KG1fY3VzdG9tVXNlckFnZW50KTsKKyAgICBzZXRVc2VyQWdlbnQoU3RyaW5nIHsg
bV9jdXN0b21Vc2VyQWdlbnQgfSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXN1bWVBY3Rp
dmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDBkNWM4ZTFhMTc3YThiNTA0MGIxMDRkMmYyNjhjMGFlOTc5ZWIwOWIuLmMy
Y2RlMTFlY2RkZWFjZjlkMjdiMWJmODJhNjgxYjgxZjYwNjlhOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjY4LDcgKzEyNjgsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uKTsKICAgICB2b2lkIHJlc2V0U3RhdGVB
ZnRlclByb2Nlc3NFeGl0ZWQoKTsKIAotICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmKTsKIAogICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlBhZ2VQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCAyMDk5OWNiMzc3MTY2YjlhMWVmM2M5MGYxZTI4N2RmZGQ2NjUxN2VhLi45
ODJkNDIwOGRhMDEwODk0MjAyMDdhZGQyMzgzNjhhMTdjZTRlOTNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC02MTMsNyArNjEzLDEwIEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdl
UHJvY2VzcyhTdG9yYWdlUHJvCiAgICAgbV9zZXJ2aWNlV29ya2VyUHJvY2VzcyA9IHNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkucHRyKCk7CiAgICAgaW5pdGlhbGl6ZU5ld1dlYlByb2Nlc3Moc2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5nZXQoKSwgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRl
RGF0YVN0b3JlKCkpOwogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChXVEZNb3ZlKHNlcnZpY2VXb3Jr
ZXJQcm9jZXNzUHJveHkpKTsKKwogICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3MtPnN0YXJ0KG1f
ZGVmYXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS5zdG9yZSgpKTsKKyAgICBpZiAoIW1fc2Vy
dmljZVdvcmtlclVzZXJBZ2VudC5pc051bGwoKSkKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyUHJv
Y2Vzcy0+c2V0VXNlckFnZW50KG1fc2VydmljZVdvcmtlclVzZXJBZ2VudCk7CiB9CiAjZW5kaWYK
IApAQCAtMTAyMSw4ICsxMDI0LDI1IEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29s
OjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgQVNT
RVJUKHByb2Nlc3MuZ2V0KCkgIT0gbV9zZXJ2aWNlV29ya2VyUHJvY2Vzcyk7CiAjZW5kaWYKIAot
ICAgIHJldHVybiBwcm9jZXNzLT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24pKTsKKyAgICBhdXRvIHBhZ2VQcm94eSA9IHByb2Nlc3MtPmNyZWF0ZVdl
YlBhZ2UocGFnZUNsaWVudCwgV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbikpOworCisjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIHVwZGF0ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQocGFn
ZVByb3h5LT51c2VyQWdlbnQoKSk7CisjZW5kaWYKKworICAgIHJldHVybiBwYWdlUHJveHk7Cit9
CisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRh
dGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAg
IGlmIChtX3NlcnZpY2VXb3JrZXJVc2VyQWdlbnQgPT0gdXNlckFnZW50KQorICAgICAgICByZXR1
cm47CisgICAgbV9zZXJ2aWNlV29ya2VyVXNlckFnZW50ID0gdXNlckFnZW50OworICAgIGlmICht
X3NlcnZpY2VXb3JrZXJQcm9jZXNzKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzLT5z
ZXRVc2VyQWdlbnQobV9zZXJ2aWNlV29ya2VyVXNlckFnZW50KTsKIH0KKyNlbmRpZgogCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwYWdlQWRkZWRUb1Byb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYmNkMzE2NTQ1
NzYxNTg2ZGEwOWQyZWFiZDMxNjI4YTkxNTFhNGE1Yy4uNjRhMDQ1ZDE0NTQxN2ViZTUxZWJhZmRi
YzhkMDQ2YWU3NDIzYmE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCkBAIC0zMjgsNiArMzI4LDcgQEAgcHVibGljOgogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNz
UHJveHkqIHNlcnZpY2VXb3JrZXJQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtl
clByb2Nlc3M7IH0KICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2Vydmlj
ZVdvcmtlcihib29sIGFsbG93cykgeyBtX2FsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2Vydmlj
ZVdvcmtlciA9IGFsbG93czsgfQogICAgIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JT
ZXJ2aWNlV29ya2VyKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZv
clNlcnZpY2VXb3JrZXI7IH0KKyAgICB2b2lkIHVwZGF0ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQo
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQpOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkK
QEAgLTQ5NCw2ICs0OTUsNyBAQCBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJv
eHkqIG1fc2VydmljZVdvcmtlclByb2Nlc3MgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3dhaXRp
bmdGb3JXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24geyBmYWxzZSB9OwogICAgIGJvb2wg
bV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIgeyBmYWxzZSB9OworICAg
IFN0cmluZyBtX3NlcnZpY2VXb3JrZXJVc2VyQWdlbnQ7CiAjZW5kaWYKIAogICAgIFJlZjxXZWJQ
YWdlR3JvdXA+IG1fZGVmYXVsdFBhZ2VHcm91cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmNwcAppbmRleCAwZjM5ZTZhZWFlZDgyNDhlZTViNjY2OWExYTdmYWE4ZWM3ZTdiZjhiLi42
OGRjYzdlY2UyNjgzZDlkNWEyZjZhYWU1YzYzMjQ5ZGIzOTA2ZmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC02MywyNiArNjMsMzUgQEAgbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1Ymxp
YyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyRnJh
bWVMb2FkZXJDbGllbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQs
IHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAg
IFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdl
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQorICAgICAgICA6
IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25J
RCkKICAgICAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCiAgICAgICAgICwgbV9mcmFtZUlEKGZyYW1l
SUQpCisgICAgICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50KQogICAgIHsKICAgICB9CiAKKyAg
ICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpIHsgbV91c2VyQWdlbnQgPSBX
VEZNb3ZlKHVzZXJBZ2VudCk7IH0KKwogcHJpdmF0ZToKICAgICBSZWY8RG9jdW1lbnRMb2FkZXI+
IGNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29u
c3QgU3Vic3RpdHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKSBmaW5hbAogICAgIHsKICAgICAgICAg
cmV0dXJuIFdlYkRvY3VtZW50TG9hZGVyOjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEp
OwogICAgIH0KIAorICAgIHZvaWQgZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBmaW5hbCB7IG1fY29u
bmVjdGlvbi5yZW1vdmVGcmFtZUxvYWRlckNsaWVudCgqdGhpcyk7IH0KKwogICAgIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAg
ICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wYWdlSUQ7IH0KICAg
ICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9mcmFtZUlEOyB9Cisg
ICAgU3RyaW5nIHVzZXJBZ2VudChjb25zdCBVUkwmKSBmaW5hbCB7IHJldHVybiBtX3VzZXJBZ2Vu
dDsgfQogCisgICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsK
ICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICB1aW50NjRfdCBtX3BhZ2VJRCB7
IDAgfTsKICAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07CisgICAgU3RyaW5nIG1fdXNlckFn
ZW50OwogfTsKIAogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKQEAgLTkyLDYgKzEw
MSw4IEBAIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uCiAgICAgdXBkYXRlUHJlZmVyZW5jZXMoc3Rv
cmUpOwogfQogCitXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6fldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKIHsKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dFNlcnZpY2VXb3JrZXJFbmFibGVkKHRydWUpOwpAQCAtMTE2LDE1ICsxMjcsMjcgQEAgdm9pZCBX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3Qg
U2VydmljZVdvcmtlckNvbnQKIAogICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBzaG91bGQgYmUg
bW92ZWQgZGlyZWN0bHkgdG8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbgog
ICAgIC8vIElmIGl0IHdlcmVuJ3QgZm9yIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCdz
IGRlcGVuZGVuY2Ugb24gV2ViRG9jdW1lbnRMb2FkZXIsIHRoaXMgY291bGQgYWxyZWFkeSBoYXBw
ZW4uCi0gICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2Vydmlj
ZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PihzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlv
dXNTZXJ2aWNlV29ya2VySUQpOwotICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZv
ck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LnJlbGVhc2UoKTsKKyAgICBhdXRvIGZyYW1l
TG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJD
bGllbnQ+KCp0aGlzLCBzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2aWNlV29y
a2VySUQsIG1fdXNlckFnZW50KTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRG
b3JNYWluRnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5nZXQoKTsKKyAgICBtX2xvYWRlcnMuYWRk
KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKTsKIAotICAgIGF1dG8gc2VydmljZVdvcmtlclRo
cmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92ZShwYWdl
Q29uZmlndXJhdGlvbiksIGRhdGEsIHNlc3Npb25JRCwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKSk7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZShXVEZNb3ZlKHBhZ2VDb25maWd1
cmF0aW9uKSwgZGF0YSwgc2Vzc2lvbklELCBTdHJpbmcgeyBtX3VzZXJBZ2VudCB9LCBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigpKTsKICAgICBTV0NvbnRleHRN
YW5hZ2VyOjpzaW5nbGV0b24oKS5yZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxs
KFdURk1vdmUoc2VydmljZVdvcmtlclRocmVhZFByb3h5KSk7CiAKICAgICBMT0coU2VydmljZVdv
cmtlciwgIkNvbnRleHQgcHJvY2VzcyBQSUQ6ICVpIGNyZWF0ZWQgd29ya2VyIHRocmVhZFxuIiwg
Z2V0cGlkKCkpOwogfQogCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzZXRV
c2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KQoreworICAgIG1fdXNlckFnZW50ID0gV1RGTW92
ZSh1c2VyQWdlbnQpOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpy
ZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQmIGNs
aWVudCkKK3sKKyAgICBhdXRvIHJlc3VsdCA9IG1fbG9hZGVycy5yZW1vdmUoJmNsaWVudCk7Cisg
ICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCk7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+IGpvYkRhdGFJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKQogewogICAgIGlmIChleGNlcHRpb25NZXNzYWdlLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmluZGV4IDBjM2YyYWFiMmI0
ZTI4ZmE2NTcyZTkwZThhZTJmMWQ1YjgwMjVlZDkuLmEyODM2MWMxNzM4NTE2MWRjNDIxYzEyOTBk
ZTMxMmIwNzE5OWMzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNDYs
MTUgKzQ2LDE5IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCitjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ7CiBzdHJ1
Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIAogY2xhc3MgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlv
biwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCB1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKKyAgICB+V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6
RW5jb2Rlcj4mKSBmaW5hbDsKIAorICAgIHZvaWQgcmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQoU2Vy
dmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Jik7CisKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRh
dGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CiAKQEAgLTgzLDE2ICs4
NywxOSBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0
Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRJbmZvcm1hdGlvbj4mJik7CiAgICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFp
bVJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2
NF90IGNhbGxiYWNrSUQpOworICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2Vu
dCk7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9j
ZXNzOwogICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwogICAgIHVpbnQ2NF90IG1fcHJldmlv
dXNTZXJ2aWNlV29ya2VySUQgeyAwIH07CiAKKyAgICBIYXNoU2V0PHN0ZDo6dW5pcXVlX3B0cjxT
ZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+PiBtX2xvYWRlcnM7CiAgICAgSGFzaE1hcDx1
aW50NjRfdCwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrPiBtX2ZpbmRDbGllbnRCeUlk
ZW50aWZpZXJSZXF1ZXN0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2s+IG1fbWF0Y2hBbGxSZXF1ZXN0czsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+IG1fY2xhaW1S
ZXF1ZXN0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQoKT4+IG1f
c2tpcFdhaXRpbmdSZXF1ZXN0czsKICAgICB1aW50NjRfdCBtX3ByZXZpb3VzUmVxdWVzdElkZW50
aWZpZXIgeyAwIH07CisgICAgU3RyaW5nIG1fdXNlckFnZW50OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCmluZGV4IDQ0MjA3ZGM0ZGE0ZTM5OWEwMzBhMDkwOTM1Zjc1YjBlNWRhNGFjNjkuLmYzZjZi
YmI4MTBiMWFmZjY2NTFlNjJiYzg2NjBiZjM4ZGU0NmZmZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNSw2ICszNSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKICAgICBNYXRjaEFsbENvbXBs
ZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiBjbGllbnRzRGF0YSkKICAgICBDbGFpbUNv
bXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKQogICAgIERpZEZpbmlzaFNr
aXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCisgICAgU2V0VXNlckFnZW50KFN0cmluZyB1
c2VyQWdlbnQpCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZmNGM3YzM2MDRkNGY1YzE2MGJmNWI4OWY0
NGE1Njc0MTI2YWVkYjQuLjhhMmFkOTNjZDA3M2ZkZDA2MmNlYmUxMWQzMjAzMTAxODNlYTY1Y2Yg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVzZSBhIGNvcnJl
Y3QgdXNlciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgwNTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTkyNjI5NT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy91c2VyYWdlbnQtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jLmRv
VGVzdCk6CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5odHRw
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy91c2VyYWdlbnQuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMTctMTItMDcgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgaU9TOiBNYW55IEFNUCBwYWdlcyBoaXQg
YSByZWxlYXNlIGFzc2VydGlvbiBpbnNpZGUgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdl
bnQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJh
Z2VudC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzllMjFjYjc2MTRhZDQzZDI5Nzk3MzQ4ZmI0MDM3
MWVjMmMwMTY5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy91c2VyYWdlbnQtd29ya2VyLmpzCkBAIC0wLDAgKzEsMjUgQEAKK29uYWN0aXZh
dGUgPSAoZSkgPT4gZS53YWl0VW50aWwoY2xpZW50cy5jbGFpbSgpKTsKKworYXN5bmMgZnVuY3Rp
b24gZG9UZXN0KGV2ZW50KQoreworICAgIGlmICghZXZlbnQuZGF0YS5zdGFydHNXaXRoKCJVU0VS
QUdFTlQiKSkgeworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJlY2Vp
dmVkIHVuZXhwZWN0ZWQgbWVzc2FnZSBmcm9tIGNsaWVudCIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJVU0VSQUdFTlQtTkFWSUdBVE9SIikgewor
ICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UobmF2aWdhdG9yLnVzZXJBZ2VudCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIlVTRVJBR0VO
VC1GRVRDSCIpIHsKKyAgICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goIi9mZXRjaC9h
cGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVycy5weT9oZWFkZXJzPVVzZXItQWdlbnQiKQorICAg
ICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzcG9uc2UuaGVhZGVycy5nZXQoIngtcmVx
dWVzdC11c2VyLWFnZW50IikpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZXZlbnQu
c291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiBVbmtub3duIHRlc3QiKTsKK30KKworCitzZWxmLmFk
ZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBkb1Rlc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFnZW50Lmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWJjNzUwMTY2NjAxYzc0M2I2OWU2YmJhNjMyMTA1MGFi
Nzc2MjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3VzZXJhZ2VudC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BB
U1MgU2V0dXAgd29ya2VyIAorUEFTUyBUZXN0IHNlcnZpY2Ugd29ya2VyIG5hdmlnYXRvci51c2Vy
QWdlbnQgCitQQVNTIFRlc3Qgc2VydmljZSB3b3JrZXIgVXNlci1BZ2VudCBoZWFkZXIgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdl
bnQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMWU5ZjBiMWFhNjlkYjU1ZDc4Y2I3NTllZTg2NWQ2
ZWYxM2IzNWU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3VzZXJhZ2VudC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgc2NvcGUgPSAiL1dlYktpdC9zZXJ2aWNl
LXdvcmtlcnMvdXNlcmFnZW50Lmh0dHBzLmh0bWwiOwordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1
c2VyQWdlbnQ7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciByZWdp
c3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24o
c2NvcGUpOworICAgIGlmIChyZWdpc3RyYXRpb24gJiYgcmVnaXN0cmF0aW9uLnNjb3BlID09PSBz
Y29wZSkKKyAgICAgICAgYXdhaXQgcmVnaXN0cmF0aW9uLnVucmVnaXN0ZXIoKTsKKworICAgIHZh
ciByZXNwb25zZSA9IGF3YWl0IGZldGNoKCIvZmV0Y2gvYXBpL3Jlc291cmNlcy9pbnNwZWN0LWhl
YWRlcnMucHk/aGVhZGVycz1Vc2VyLUFnZW50IikKKyAgICB1c2VyQWdlbnQgPSByZXNwb25zZS5o
ZWFkZXJzLmdldCgieC1yZXF1ZXN0LXVzZXItYWdlbnQiKTsKKworICAgIHZhciByZWdpc3RyYXRp
b24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigidXNlcmFnZW50LXdv
cmtlci5qcyIsIHsgc2NvcGUgOiBzY29wZSB9KTsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3Ry
YXRpb24uYWN0aXZlOworICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsKKyAg
ICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICByZXR1cm4gbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIu
c3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodGVzdCkgPT4geworICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4geworICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRh
dGEpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2Fn
ZSgiVVNFUkFHRU5ULU5BVklHQVRPUiIpOworICAgIHZhciBzZXJ2aWNlV29ya2VyVXNlckFnZW50
ID0gYXdhaXQgcHJvbWlzZTsKKworICAgIGFzc2VydF9lcXVhbHMoc2VydmljZVdvcmtlclVzZXJB
Z2VudCwgbmF2aWdhdG9yLnVzZXJBZ2VudCk7Cit9LCAiVGVzdCBzZXJ2aWNlIHdvcmtlciBuYXZp
Z2F0b3IudXNlckFnZW50Iik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAg
IHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAg
ICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiVVNFUkFHRU5ULUZFVENI
Iik7CisgICAgdmFyIHNlcnZpY2VXb3JrZXJVc2VyQWdlbnQgPSBhd2FpdCBwcm9taXNlOworCisg
ICAgYXNzZXJ0X2VxdWFscyhzZXJ2aWNlV29ya2VyVXNlckFnZW50LCB1c2VyQWdlbnQpOworfSwg
IlRlc3Qgc2VydmljZSB3b3JrZXIgVXNlci1BZ2VudCBoZWFkZXIiKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328882</attachid>
            <date>2017-12-08 16:18:11 -0800</date>
            <delta_ts>2017-12-08 21:04:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180566-20171208161811.patch</filename>
            <type>text/plain</type>
            <size>28396</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU4YWJlMWZiMzM4OGIx
OWM2OWEyZjRiMTc2MGE2Mjk5YjRhODM3MS4uYTA2MmZhNWVkMDkxYjRjZTU4NjQ1NGRkNDEyMmI4
NGI4YmUzM2YzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE3LTEyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlIFdvcmtlciBz
aG91bGQgdXNlIGEgY29ycmVjdCB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1
OTI2Mjk1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMuaHRtbAorCisg
ICAgICAgIE1ha2UgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IHJldHVybiBhIHZhbGlk
IFVzZXJBZ2VudC4KKyAgICAgICAgUGFzcyB1c2VyIGFnZW50IHRvIFNlcnZpY2VXb3JrZXJUaHJl
YWQgc28gdGhhdCBuYXZpZ2F0aW9uLnVzZXJBZ2VudCBpcyBjb3JyZWN0bHkgaW5pdGlhbGl6ZWQu
CisgICAgICAgIEFsbG93IFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCB0byBjbGVhbiBp
dHNlbGYgd2hlbiBubyBsb25nZXIgbmVlZGVkLgorCisgICAgICAgICogbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJl
YWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpmcmFtZUxvYWRlckNsaWVudCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5Lmg6CisKIDIwMTctMTItMDggIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB3cm9uZyBsZXR0ZXIgY2FzZSBpbiAjaW1w
b3J0IEhUTUxJZnJhbWVFbGVtZW50LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGY4NjdiMjA5MTYyOWFjZWMwZDNl
ZmIzNzVjYTAyMzVkNzEwZGJiMC4uMjc3ZGEyNWU4M2FmZjM0MThkY2FiM2E1MWU1ZjMyYWNhOTQ4
M2MwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNy0xMi0wOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIHVz
ZSBhIGNvcnJlY3QgdXNlciBhZ2VudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgwNTY2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTkyNjI5NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3Vw
cG9ydCB0byBzZXQgc2VydmljZSB3b3JrZXIgdXNlciBhZ2VudCBmcm9tIFVJUHJvY2VzcyB0byBz
ZXJ2aWNlIHdvcmtlciBwcm9jZXNzLgorICAgICAgICBPbmUgdXNlciBhZ2VudCBpcyBjdXJyZW50
bHkgc3VwcG9ydGVkIHBlciBzZXJ2aWNlIHdvcmtlciBwcm9jZXNzIGFuZCBpdCBjYW4gYmUgY2hh
bmdlZCBhdCBhbnkgZ2l2ZW4gdGltZS4KKyAgICAgICAgT25seSBuZXcgc2VydmljZSB3b3JrZXIg
d2lsbCB1c2UgdGhlIG5ldyB2YWx1ZS4KKyAgICAgICAgT25jZSBhIHNlcnZpY2Ugd29ya2VyIGlz
IGxhdW5jaGVkLCBpdCB3aWxsIHN0YXkgd2l0aCB0aGUgc2FtZSB1c2VyIGFnZW50IHZhbHVlLgor
CisgICAgICAgIFRoaXMgc2V0cyBib3RoIG5hdmlnYXRvci51c2VyQWdlbnQgYW5kIFVzZXItQWdl
bnQgaGVhZGVyIG5hbWUgdXNlZCBmb3IgZmV0Y2ggd2l0aGluIGEgc2VydmljZSB3b3JrZXIuCisg
ICAgICAgIENvbXB1dGUgdGhlIHNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgdXNlciBhZ2VudCBieSBw
aWNraW5nIHRoZSBsYXN0IHVzZXIgYWdlbnQgc2V0IGZvciBhIHdlYiBwYWdlLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpzdGFydCk6CisgICAgICAgIChXZWJLaXQ6
OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnNldFVzZXJBZ2VudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBcHBs
aWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQb29sOjp1cGRhdGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2V0VXNlckFnZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnJlbW92ZUZyYW1lTG9h
ZGVyQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTItMDggIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYklu
c3BlY3RvclByb3h5Q2xpZW50IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAzMjY4MDk0OWVl
OGZjYzFkOWEyNzViNjU4ZjE3MGVmYzZiNDdjYThjLi5iY2IwMGYyNDA5ZmQyNmYyNWExMzU0N2I5
ZjE4ZGFmYmM5YzdmMjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlG
cmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBGcmFtZUxv
YWRlckNsaWVudCB7CiAgICAgUmVmPERvY3VtZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRl
cihjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdWJzdGl0dXRlRGF0YSYpIG92ZXJyaWRl
OwogCi0gICAgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgpIGZpbmFsIHsgfQorICAgIHZvaWQg
ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKSBvdmVycmlkZSB7IH0KIAogICAgIHVpbnQ2NF90IGZyYW1l
SUQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdWludDY0X3QgcGFnZUlEKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgRnJhbWVMb2FkZXJD
bGllbnQgewogICAgIHZvaWQgdXBkYXRlQ2FjaGVkRG9jdW1lbnRMb2FkZXIoRG9jdW1lbnRMb2Fk
ZXImKSBmaW5hbCB7IH0KICAgICB2b2lkIHNldFRpdGxlKGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rp
b24mLCBjb25zdCBVUkwmKSBmaW5hbCB7IH0KIAotICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3Qg
VVJMJikgZmluYWwgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQorICAgIFN0cmluZyB1c2VyQWdl
bnQoY29uc3QgVVJMJikgb3ZlcnJpZGUgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQogCiAgICAg
dm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNoZWRGcmFtZShDYWNoZWRGcmFtZSopIGZpbmFsIHsg
fQogICAgIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKENhY2hlZEZy
YW1lKikgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGYwNjQ0ZDll
YTFlNjhkODM1MjcwZWYwNzU3ZTQ2NWFkY2ZkZjhhMDkuLjY3Yzk4MDYxZDcxODMzMDYzNmM5OTI5
NWFkZThhMWI2Yzk5MzA5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC02Nywx
MiArNjcsMTEgQEAgcHJpdmF0ZToKIAogLy8gRklYTUU6IFVzZSBhIHZhbGlkIFdvcmtlclJlcG9y
dGluZ1Byb3h5CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgV29ya2VyT2JqZWN0UHJveHkKLS8vIEZJ
WE1FOiBVc2UgYSB2YWxpZCB1c2VyIGFnZW50CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgaXNPbmxp
bmUgZmxhZwogLy8gRklYTUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKLVNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Qcm94eSogaWRiQ29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJv
dmlkZXIpCi0gICAgOiBXb3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsICJzZXJ2aWNld29ya2Vy
OiIgKyBJbnNwZWN0b3I6OklkZW50aWZpZXJzRmFjdG9yeTo6Y3JlYXRlSWRlbnRpZmllcigpLCBB
U0NJSUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIpLCAvKiBpc09ubGluZSAqLyBmYWxzZSwgZGF0
YS5zY3JpcHQsIGxvYWRlclByb3h5LCBkZWJ1Z2dlclByb3h5LCBEdW1teVNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c2hhcmVkKCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxzZSwgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShkYXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25pY1RpbWU6Om5vdygpLCBp
ZGJDb25uZWN0aW9uUHJveHksIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3Jl
YXRlQWxsRW5hYmxlZCgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKK1NlcnZpY2VX
b3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgdXNlckFnZW50LCBXb3JrZXJM
b2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtlckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJv
eHksIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiBpZGJDb25uZWN0aW9uUHJveHksIFNv
Y2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlcikKKyAgICA6IFdvcmtlclRocmVhZChkYXRhLnNj
cmlwdFVSTCwgInNlcnZpY2V3b3JrZXI6IiArIEluc3BlY3Rvcjo6SWRlbnRpZmllcnNGYWN0b3J5
OjpjcmVhdGVJZGVudGlmaWVyKCksIFdURk1vdmUodXNlckFnZW50KSwgLyogaXNPbmxpbmUgKi8g
ZmFsc2UsIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgZGVidWdnZXJQcm94eSwgRHVtbXlTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5v
cm1hbCwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsgfSwgZmFsc2UsIFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgpLCBNb25vdG9uaWNUaW1l
Ojpub3coKSwgaWRiQ29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgSlNDOjpSdW50aW1l
RmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
CiAgICAgLCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0
UHJveHkoRHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oCmluZGV4IGM1ZmQ3MTgzMTM3ZDg4OTZkYmE1NTMxNTdkZDU4OTdmZDJk
ZjM4YTUuLjFkZGJkY2QwZWMyNGM4ZjFmZTVjNTFmODQxZjE1NzY2ZjE4YjZjYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKQEAgLTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQg
cnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
U2VydmljZVdvcmtlclRocmVhZChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6
OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOworICAgIFdFQkNP
UkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiwgUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIHVzZXJBZ2VudCwgV29ya2VyTG9hZGVyUHJv
eHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkq
LCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgU2VydmljZVdvcmtlckNvbnRleHREYXRhIG1fZGF0
YTsKICAgICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IDAxZGM0MTc3OTU2NTM4NjljOGRiYzli
NWU1MWU0ZThkOWY4NTU5YzUuLjRlNjA4MWVjODEzYjM2ZjFiZTBjMDg2MThjYWE5NDRlY2FkZWQ2
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtNTYsMTAgKzU2
LDEwIEBAIHN0YXRpYyBpbmxpbmUgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGlkYkNv
bm5lY3Rpb25Qcm94eShEb2N1bWVudCYgZG9jdW1lCiAjZW5kaWYKIH0KIAotU2VydmljZVdvcmtl
clRocmVhZFByb3h5OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoUGFnZUNvbmZpZ3VyYXRpb24m
JiBwYWdlQ29uZmlndXJhdGlvbiwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0
b3JhZ2VQcm92aWRlcikKK1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6U2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYgcGFnZUNvbmZpZ3VyYXRpb24sIGNvbnN0IFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBT
dHJpbmcmJiB1c2VyQWdlbnQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92
aWRlcikKICAgICA6IG1fcGFnZShjcmVhdGVQYWdlRm9yU2VydmljZVdvcmtlcihXVEZNb3ZlKHBh
Z2VDb25maWd1cmF0aW9uKSwgZGF0YS5zY3JpcHRVUkwpKQogICAgICwgbV9kb2N1bWVudCgqbV9w
YWdlLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpKQotICAgICwgbV9zZXJ2aWNlV29ya2VyVGhyZWFk
KFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShkYXRhLCBzZXNzaW9uSUQsICp0aGlzLCAqdGhp
cywgaWRiQ29ubmVjdGlvblByb3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92
aWRlcigpKSkKKyAgICAsIG1fc2VydmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFk
OjpjcmVhdGUoZGF0YSwgc2Vzc2lvbklELCBXVEZNb3ZlKHVzZXJBZ2VudCksICp0aGlzLCAqdGhp
cywgaWRiQ29ubmVjdGlvblByb3h5KG1fZG9jdW1lbnQpLCBtX2RvY3VtZW50LT5zb2NrZXRQcm92
aWRlcigpKSkKICAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoY2FjaGVTdG9yYWdlUHJvdmlk
ZXIpCiAgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX2luc3BlY3RvclByb3h5
KCp0aGlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCAwMzBkY2YxMGVk
ODMwMzY5ZWEwMDU0ZDU5NTk0OTczNTg4ZmYzZjdhLi43MzIyYTc2YzlkNzdjMWI5ZGE1NDRiMjk0
ZWU1Njg0M2FjZmFiNGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAt
NjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXJtaW5hdGluZ09yVGVybWluYXRl
ZChib29sIHRlcm1pbmF0aW5nKSB7IG1faXNUZXJtaW5hdGluZ09yVGVybWluYXRlZCA9IHRlcm1p
bmF0aW5nOyB9CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFBhZ2VDb25maWd1cmF0aW9uJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOworICAgIFdFQkNP
UkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShQYWdlQ29uZmlndXJhdGlvbiYmLCBj
b25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYg
dXNlckFnZW50LCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOwogCiAgICAgLy8gV29ya2VyTG9hZGVy
UHJveHkKICAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA4ZGY3ZDk4N2IwMmE4NDNjMzczN2Y5NjE0ZjM1NzQ4ZDY4NTE3ZmFlLi4xN2Mz
N2NjNzQyOTRjOTZiZWI0NjY2OTdlNGIwZjk0ODFmZDA3MjM3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorI2luY2x1
ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjEsNyAr
NjIsMTIgQEAgdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25z
KFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYKIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5OjpzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MobV9zZXJ2aWNlV29ya2VyUGFnZUlELCBzdG9yZSksIDApOwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkVzdGFibGlzaFdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyB7IG1fc2VydmljZVdvcmtlclBhZ2VJRCwgc3RvcmUgfSwg
MCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6c2V0VXNlckFnZW50KGNv
bnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpTZXRVc2VyQWdlbnQgeyB1c2VyQWdlbnQgfSwgMCk7CiB9CiAK
IHZvaWQgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgY2hhbGxlbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCmluZGV4IDFhYzQ1NTYyYTcz
M2I2OWExZmQxYzk4YWNmMjUxM2Q2MDQ2MDFkZDAuLjY5MzBlYTNjMmM2MmU2MTg1YTNlZGI2MTVh
ZjlmMTQwNGRhZDYxZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZp
Y2VXb3JrZXJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmgKQEAgLTM5LDYgKzM5LDggQEAgcHVibGljOgogICAgIHZv
aWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHVpbnQ2NF90IHBhZ2VJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYpOwogCiAg
ICAgdm9pZCBzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CisgICAgdm9pZCBzZXRV
c2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CisKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7
IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSUQ7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNkMjFiZTAwODA2MWY3NmEyMzVmMjBm
YTA5ZjU1N2EzYzYwYzNkNTEuLmZhNzkzMTE5ZjE5MmIwNzUxOWI1Yjc5ZGNkOWFlZWMyMGQ1NjNh
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMjMzMCwx
MSArMjMzMCwxNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQ
b2xpY3lBY3Rpb24gYWN0aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkUmVjZWl2ZVBvbGljeURlY2lzaW9uKGZyYW1lLmZyYW1l
SUQoKSwgbGlzdGVuZXJJRCwgYWN0aW9uLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCkgOiAwLCBkb3dubG9hZElELCB3ZWJzaXRlUG9saWNpZXMpLCBtX3BhZ2VJRCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQpCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCkK
IHsKICAgICBpZiAobV91c2VyQWdlbnQgPT0gdXNlckFnZW50KQogICAgICAgICByZXR1cm47Ci0g
ICAgbV91c2VyQWdlbnQgPSB1c2VyQWdlbnQ7CisgICAgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVz
ZXJBZ2VudCk7CisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgICAgLy8gV2UgdXBkYXRl
IHRoZSBzZXJ2aWNlIHdvcmtlciB0aGVyZSBhdCB0aGUgbW9tZW50IHRvIGJlIHN1cmUgd2UgdXNl
IHZhbHVlcyB1c2VkIGJ5IGFjdHVhbCB3ZWIgcGFnZXMuCisgICAgLy8gRklYTUU6IFJlZmFjdG9y
IHRoaXMgd2hlbiB3ZSBoYXZlIGEgYmV0dGVyIFVzZXItQWdlbnQgc3RvcnkuCisgICAgcHJvY2Vz
cygpLnByb2Nlc3NQb29sKCkudXBkYXRlU2VydmljZVdvcmtlclVzZXJBZ2VudChtX3VzZXJBZ2Vu
dCk7CisjZW5kaWYKIAogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CkBAIC0y
MzY1LDcgKzIzNzEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q3VzdG9tVXNlckFnZW50KGNv
bnN0IFN0cmluZyYgY3VzdG9tVXNlckFnZW50KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0g
ICAgc2V0VXNlckFnZW50KG1fY3VzdG9tVXNlckFnZW50KTsKKyAgICBzZXRVc2VyQWdlbnQoU3Ry
aW5nIHsgbV9jdXN0b21Vc2VyQWdlbnQgfSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXN1
bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDBkNWM4ZTFhMTc3YThiNTA0MGIxMDRkMmYyNjhjMGFlOTc5ZWIw
OWIuLmMyY2RlMTFlY2RkZWFjZjlkMjdiMWJmODJhNjgxYjgxZjYwNjlhOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjY4LDcgKzEyNjgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcmVzZXRTdGF0ZShSZXNldFN0YXRlUmVhc29uKTsKICAgICB2b2lkIHJlc2V0
U3RhdGVBZnRlclByb2Nlc3NFeGl0ZWQoKTsKIAotICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgc2V0VXNlckFnZW50KFN0cmluZyYmKTsKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVkIFdlYlBh
Z2VQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCAyMDk5OWNiMzc3MTY2YjlhMWVmM2M5MGYxZTI4N2RmZGQ2NjUx
N2VhLi41ZGRhYjUwODRjMzljMDhhNDQ4NDQ0YjBlMTI0ZjY5ZWNjNWZmMWE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMDI0LDYgKzEwMjQsMTcg
QEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNs
aWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToKICAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2Vi
UGFnZShwYWdlQ2xpZW50LCBXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiB9CiAKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCit2b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRhdGVTZXJ2aWNl
V29ya2VyVXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KQoreworICAgIGlmIChtX3Nl
cnZpY2VXb3JrZXJVc2VyQWdlbnQgPT0gdXNlckFnZW50KQorICAgICAgICByZXR1cm47CisgICAg
bV9zZXJ2aWNlV29ya2VyVXNlckFnZW50ID0gdXNlckFnZW50OworICAgIGlmIChtX3NlcnZpY2VX
b3JrZXJQcm9jZXNzKQorICAgICAgICBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzLT5zZXRVc2VyQWdl
bnQobV9zZXJ2aWNlV29ya2VyVXNlckFnZW50KTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYlByb2Nl
c3NQb29sOjpwYWdlQWRkZWRUb1Byb2Nlc3MoV2ViUGFnZVByb3h5JiBwYWdlKQogewogICAgIGF1
dG8gcmVzdWx0ID0gbV9zZXNzaW9uVG9QYWdlc01hcC5hZGQocGFnZS5zZXNzaW9uSUQoKSwgSGFz
aFNldDxXZWJQYWdlUHJveHkqPigpKS5pdGVyYXRvci0+dmFsdWUuYWRkKCZwYWdlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGJjZDMxNjU0NTc2MTU4NmRh
MDlkMmVhYmQzMTYyOGE5MTUxYTRhNWMuLjY0YTA0NWQxNDU0MTdlYmU1MWViYWZkYmM4ZDA0NmFl
NzQyM2JhNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAt
MzI4LDYgKzMyOCw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBz
ZXJ2aWNlV29ya2VyUHJveHkoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQcm9jZXNz
OyB9CiAgICAgdm9pZCBzZXRBbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIo
Ym9vbCBhbGxvd3MpIHsgbV9hbGxvd3NBbnlTU0xDZXJ0aWZpY2F0ZUZvclNlcnZpY2VXb3JrZXIg
PSBhbGxvd3M7IH0KICAgICBib29sIGFsbG93c0FueVNTTENlcnRpZmljYXRlRm9yU2VydmljZVdv
cmtlcigpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNl
V29ya2VyOyB9CisgICAgdm9pZCB1cGRhdGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KGNvbnN0IFN0
cmluZyYgdXNlckFnZW50KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC00OTQs
NiArNDk1LDcgQEAgcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5KiBtX3Nl
cnZpY2VXb3JrZXJQcm9jZXNzIHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV93YWl0aW5nRm9yV29y
a2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fYWxsb3dz
QW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2VyIHsgZmFsc2UgfTsKKyAgICBTdHJpbmcg
bV9zZXJ2aWNlV29ya2VyVXNlckFnZW50OwogI2VuZGlmCiAKICAgICBSZWY8V2ViUGFnZUdyb3Vw
PiBtX2RlZmF1bHRQYWdlR3JvdXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
aW5kZXggMGYzOWU2YWVhZWQ4MjQ4ZWU1YjY2NjlhMWE3ZmFhOGVjN2U3YmY4Yi4uMzUwMGYxYTIz
ZGVmNDc1MmZkM2ZlYTYzMDIyYjgxZDcwNzZmYjJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KIAogI2lmIFVTRShRVUlDS19MT09LKQpAQCAtNjMsMzUgKzY0LDQ3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwg
OiBwdWJsaWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdv
cmtlckZyYW1lTG9hZGVyQ2xpZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3Qg
cGFnZUlELCB1aW50NjRfdCBmcmFtZUlEKQotICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25J
RCkKKyAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0
X3QgcGFnZUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkKKyAg
ICAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKKyAgICAgICAgLCBtX3Nlc3Npb25JRChz
ZXNzaW9uSUQpCiAgICAgICAgICwgbV9wYWdlSUQocGFnZUlEKQogICAgICAgICAsIG1fZnJhbWVJ
RChmcmFtZUlEKQorICAgICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKICAgICB7CiAgICAg
fQogCisgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KSB7IG1fdXNlckFn
ZW50ID0gV1RGTW92ZSh1c2VyQWdlbnQpOyB9CisKIHByaXZhdGU6CiAgICAgUmVmPERvY3VtZW50
TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkgZmluYWwKICAgICB7CiAg
ICAgICAgIHJldHVybiBXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1YnN0aXR1
dGVEYXRhKTsKICAgICB9CiAKKyAgICB2b2lkIGZyYW1lTG9hZGVyRGVzdHJveWVkKCkgZmluYWwg
eyBtX2Nvbm5lY3Rpb24ucmVtb3ZlRnJhbWVMb2FkZXJDbGllbnQoKnRoaXMpOyB9CisKICAgICBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25J
RDsgfQogICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGFnZUlE
OyB9CiAgICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fZnJhbWVJ
RDsgfQorICAgIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgVVJMJikgZmluYWwgeyByZXR1cm4gbV91
c2VyQWdlbnQ7IH0KIAorICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uJiBtX2Nvbm5l
Y3Rpb247CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgdWludDY0X3QgbV9w
YWdlSUQgeyAwIH07CiAgICAgdWludDY0X3QgbV9mcmFtZUlEIHsgMCB9OworICAgIFN0cmluZyBt
X3VzZXJBZ2VudDsKIH07CiAKIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24s
IHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAg
OiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCiAgICAg
LCBtX3BhZ2VJRChwYWdlSUQpCisgICAgLCBtX3VzZXJBZ2VudChzdGFuZGFyZFVzZXJBZ2VudFdp
dGhBcHBsaWNhdGlvbk5hbWUoeyB9KSkKIHsKICAgICB1cGRhdGVQcmVmZXJlbmNlcyhzdG9yZSk7
CiB9CiAKK1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp+V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogewogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U2Vy
dmljZVdvcmtlckVuYWJsZWQodHJ1ZSk7CkBAIC0xMTYsMTUgKzEyOSwyNyBAQCB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlcihjb25zdCBTZXJ2
aWNlV29ya2VyQ29udAogCiAgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIHNob3VsZCBiZSBtb3Zl
ZCBkaXJlY3RseSB0byBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uCiAgICAg
Ly8gSWYgaXQgd2VyZW4ndCBmb3IgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50J3MgZGVw
ZW5kZW5jZSBvbiBXZWJEb2N1bWVudExvYWRlciwgdGhpcyBjb3VsZCBhbHJlYWR5IGhhcHBlbi4K
LSAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxTZXJ2aWNlV29y
a2VyRnJhbWVMb2FkZXJDbGllbnQ+KHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1Nl
cnZpY2VXb3JrZXJJRCk7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9hZGVyQ2xpZW50Rm9yTWFp
bkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQucmVsZWFzZSgpOworICAgIGF1dG8gZnJhbWVMb2Fk
ZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVu
dD4oKnRoaXMsIHNlc3Npb25JRCwgbV9wYWdlSUQsICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJ
RCwgbV91c2VyQWdlbnQpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1h
aW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LmdldCgpOworICAgIG1fbG9hZGVycy5hZGQoV1RG
TW92ZShmcmFtZUxvYWRlckNsaWVudCkpOwogCi0gICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZShXVEZNb3ZlKHBhZ2VDb25m
aWd1cmF0aW9uKSwgZGF0YSwgc2Vzc2lvbklELCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNo
ZVN0b3JhZ2VQcm92aWRlcigpKTsKKyAgICBhdXRvIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9
IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pLCBkYXRhLCBzZXNzaW9uSUQsIFN0cmluZyB7IG1fdXNlckFnZW50IH0sIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkpOwogICAgIFNXQ29udGV4dE1hbmFn
ZXI6OnNpbmdsZXRvbigpLnJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoV1RG
TW92ZShzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpKTsKIAogICAgIExPRyhTZXJ2aWNlV29ya2Vy
LCAiQ29udGV4dCBwcm9jZXNzIFBJRDogJWkgY3JlYXRlZCB3b3JrZXIgdGhyZWFkXG4iLCBnZXRw
aWQoKSk7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnNldFVzZXJB
Z2VudChTdHJpbmcmJiB1c2VyQWdlbnQpCit7CisgICAgbV91c2VyQWdlbnQgPSBXVEZNb3ZlKHVz
ZXJBZ2VudCk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnJlbW92
ZUZyYW1lTG9hZGVyQ2xpZW50KFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCYgY2xpZW50
KQoreworICAgIGF1dG8gcmVzdWx0ID0gbV9sb2FkZXJzLnJlbW92ZSgmY2xpZW50KTsKKyAgICBB
U1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0KTsKK30KKwogdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4gam9iRGF0YUlkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGV4Y2VwdGlvbk1lc3NhZ2UpCiB7CiAgICAgaWYgKGV4Y2VwdGlvbk1lc3NhZ2UuaXNFbXB0
eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggMGMzZjJhYWIyYjRlMjhm
YTY1NzJlOTBlOGFlMmYxZDViODAyNWVkOS4uYTI4MzYxYzE3Mzg1MTYxZGM0MjFjMTI5MGRlMzEy
YjA3MTk5YzNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC00NiwxNSAr
NDYsMTkgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKK2NsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudDsKIHN0cnVjdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlOwogCiBjbGFzcyBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
biBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uLCBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAgIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOworICAgIH5XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbigpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpIGZpbmFsOwogCisgICAgdm9pZCByZW1vdmVGcmFtZUxvYWRlckNsaWVudChTZXJ2aWNl
V29ya2VyRnJhbWVMb2FkZXJDbGllbnQmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVBy
ZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKIApAQCAtODMsMTYgKzg3LDE5
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFs
bFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElu
Zm9ybWF0aW9uPiYmKTsKICAgICB2b2lkIGNsYWltQ29tcGxldGVkKHVpbnQ2NF90IGNsYWltUmVx
dWVzdElkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3Qg
Y2FsbGJhY2tJRCk7CisgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3RyaW5nJiYgdXNlckFnZW50KTsK
IAogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3M7
CiAgICAgdWludDY0X3QgbV9wYWdlSUQgeyAwIH07CiAgICAgdWludDY0X3QgbV9wcmV2aW91c1Nl
cnZpY2VXb3JrZXJJRCB7IDAgfTsKIAorICAgIEhhc2hTZXQ8c3RkOjp1bmlxdWVfcHRyPFNlcnZp
Y2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudD4+IG1fbG9hZGVyczsKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2s+IG1fZmluZENsaWVudEJ5SWRlbnRp
ZmllclJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjaz4gbV9tYXRjaEFsbFJlcXVlc3RzOwogICAgIEhhc2hN
YXA8dWludDY0X3QsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPj4gbV9jbGFpbVJlcXVl
c3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdURjo6RnVuY3Rpb248dm9pZCgpPj4gbV9za2lw
V2FpdGluZ1JlcXVlc3RzOwogICAgIHVpbnQ2NF90IG1fcHJldmlvdXNSZXF1ZXN0SWRlbnRpZmll
ciB7IDAgfTsKKyAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
aW5kZXggNDQyMDdkYzRkYTRlMzk5YTAzMGEwOTA5MzVmNzViMGU1ZGE0YWM2OS4uZjNmNmJiYjgx
MGIxYWZmNjY1MWU2MmJjODY2MGJmMzhkZTQ2ZmZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM1LDYgKzM1LDcgQEAgbWVzc2FnZXMg
LT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIE1hdGNoQWxsQ29tcGxldGVk
KHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+IGNsaWVudHNEYXRhKQogICAgIENsYWltQ29tcGxl
dGVkKHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIpCiAgICAgRGlkRmluaXNoU2tpcFdh
aXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkKKyAgICBTZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJB
Z2VudCkKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmY0YzdjMzYwNGQ0ZjVjMTYwYmY1Yjg5ZjQ0YTU2
NzQxMjZhZWRiNC4uOGEyYWQ5M2NkMDczZmRkMDYyY2ViZTExZDMyMDMxMDE4M2VhNjVjZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTEyLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlIFdvcmtlciBzaG91bGQgdXNlIGEgY29ycmVjdCB1
c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODA1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1OTI2Mjk1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3VzZXJhZ2VudC13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAoYXN5bmMuZG9UZXN0
KToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFnZW50Lmh0dHBzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Vz
ZXJhZ2VudC5odHRwcy5odG1sOiBBZGRlZC4KKwogMjAxNy0xMi0wNyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBpT1M6IE1hbnkgQU1QIHBhZ2VzIGhpdCBhIHJl
bGVhc2UgYXNzZXJ0aW9uIGluc2lkZSBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC13
b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFnZW50
LXdvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OWUyMWNiNzYxNGFkNDNkMjk3OTczNDhmYjQwMzcxZWMy
YzAxNjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3VzZXJhZ2VudC13b3JrZXIuanMKQEAgLTAsMCArMSwyNSBAQAorb25hY3RpdmF0ZSA9
IChlKSA9PiBlLndhaXRVbnRpbChjbGllbnRzLmNsYWltKCkpOworCithc3luYyBmdW5jdGlvbiBk
b1Rlc3QoZXZlbnQpCit7CisgICAgaWYgKCFldmVudC5kYXRhLnN0YXJ0c1dpdGgoIlVTRVJBR0VO
VCIpKSB7CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQg
dW5leHBlY3RlZCBtZXNzYWdlIGZyb20gY2xpZW50Iik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAoZXZlbnQuZGF0YSA9PT0gIlVTRVJBR0VOVC1OQVZJR0FUT1IiKSB7CisgICAg
ICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShuYXZpZ2F0b3IudXNlckFnZW50KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChldmVudC5kYXRhID09PSAiVVNFUkFHRU5ULUZF
VENIIikgeworICAgICAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgiL2ZldGNoL2FwaS9y
ZXNvdXJjZXMvaW5zcGVjdC1oZWFkZXJzLnB5P2hlYWRlcnM9VXNlci1BZ2VudCIpCisgICAgICAg
IGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXNwb25zZS5oZWFkZXJzLmdldCgieC1yZXF1ZXN0
LXVzZXItYWdlbnQiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBldmVudC5zb3Vy
Y2UucG9zdE1lc3NhZ2UoIkZBSUw6IFVua25vd24gdGVzdCIpOworfQorCisKK3NlbGYuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIGRvVGVzdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvdXNlcmFnZW50Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy91c2VyYWdlbnQuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA5YmM3NTAxNjY2MDFjNzQzYjY5ZTZiYmE2MzIxMDUwYWI3NzYy
NDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvdXNlcmFnZW50Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBT
ZXR1cCB3b3JrZXIgCitQQVNTIFRlc3Qgc2VydmljZSB3b3JrZXIgbmF2aWdhdG9yLnVzZXJBZ2Vu
dCAKK1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBVc2VyLUFnZW50IGhlYWRlciAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3VzZXJhZ2VudC5o
dHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxZTlmMGIxYWE2OWRiNTVkNzhjYjc1OWVlODY1ZDZlZjEz
YjM1ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvdXNlcmFnZW50Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw2MCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBzY29wZSA9ICIvV2ViS2l0L3NlcnZpY2Utd29y
a2Vycy91c2VyYWdlbnQuaHR0cHMuaHRtbCI7Cit2YXIgYWN0aXZlV29ya2VyOwordmFyIHVzZXJB
Z2VudDsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFyIHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbihzY29w
ZSk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbiAmJiByZWdpc3RyYXRpb24uc2NvcGUgPT09IHNjb3Bl
KQorICAgICAgICBhd2FpdCByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworCisgICAgdmFyIHJl
c3BvbnNlID0gYXdhaXQgZmV0Y2goIi9mZXRjaC9hcGkvcmVzb3VyY2VzL2luc3BlY3QtaGVhZGVy
cy5weT9oZWFkZXJzPVVzZXItQWdlbnQiKQorICAgIHVzZXJBZ2VudCA9IHJlc3BvbnNlLmhlYWRl
cnMuZ2V0KCJ4LXJlcXVlc3QtdXNlci1hZ2VudCIpOworCisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJ1c2VyYWdlbnQtd29ya2Vy
LmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlv
bi5hY3RpdmU7CisgICAgaWYgKGFjdGl2ZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworICAgIGFj
dGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
J3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0
ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIo
Im1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7
CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJV
U0VSQUdFTlQtTkFWSUdBVE9SIik7CisgICAgdmFyIHNlcnZpY2VXb3JrZXJVc2VyQWdlbnQgPSBh
d2FpdCBwcm9taXNlOworCisgICAgYXNzZXJ0X2VxdWFscyhzZXJ2aWNlV29ya2VyVXNlckFnZW50
LCBuYXZpZ2F0b3IudXNlckFnZW50KTsKK30sICJUZXN0IHNlcnZpY2Ugd29ya2VyIG5hdmlnYXRv
ci51c2VyQWdlbnQiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFy
IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5h
dmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQp
ID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7CisgICAgICAgIH0pOworICAg
IH0pOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJVU0VSQUdFTlQtRkVUQ0giKTsK
KyAgICB2YXIgc2VydmljZVdvcmtlclVzZXJBZ2VudCA9IGF3YWl0IHByb21pc2U7CisKKyAgICBh
c3NlcnRfZXF1YWxzKHNlcnZpY2VXb3JrZXJVc2VyQWdlbnQsIHVzZXJBZ2VudCk7Cit9LCAiVGVz
dCBzZXJ2aWNlIHdvcmtlciBVc2VyLUFnZW50IGhlYWRlciIpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328901</attachid>
            <date>2017-12-08 21:04:32 -0800</date>
            <delta_ts>2017-12-08 21:36:40 -0800</delta_ts>
            <desc>Addendum</desc>
            <filename>bug-180566-20171208210352.patch</filename>
            <type>text/plain</type>
            <size>1935</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI3N2RhMjVlODNhZmYzNDE4
ZGNhYjNhNTFlNWYzMmFjYTk0ODNjMDYuLmU0MDBjMTYxNWNlODg1NTRhZDBjOTVjNTJjNTc5ZDMy
YTJjNTc1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC00LDYgKzQsMjEgQEAKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDU2NgogICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzU5MjYyOTU+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgQWRkZW5kdW0gdG8gbGFuZGVkIHBhdGNoLgorICAgICAgICBUaGlzIGNoYW5nZSB3YXMgcmVt
b3ZlZCBmcm9tIHRoZSBsYXN0IHZlcnNpb24gb2YgdGhlIHBhdGNoIGJ1dCBwcm92ZXMgdG8gYmUg
bmVlZGVkIGJ5IFNhZmFyaS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250
ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICBBZGRlZCBiYWNrIHNldHRp
bmcgdGhlIHVzZXIgYWdlbnQgYXQgc3RhcnQgb2Ygc2VydmljZSB3b3JrZXIgaW4gY2FzZSBhIHBh
Z2UgaXMgYWxyZWFkeSBjcmVhdGVkLgorCisyMDE3LTEyLTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlIFdvcmtlciBzaG91bGQgdXNlIGEgY29y
cmVjdCB1c2VyIGFnZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODA1NjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1OTI2Mjk1PgorCiAgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCiAgICAgICAgIEFkZCBzdXBwb3J0IHRv
IHNldCBzZXJ2aWNlIHdvcmtlciB1c2VyIGFnZW50IGZyb20gVUlQcm9jZXNzIHRvIHNlcnZpY2Ug
d29ya2VyIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggNWRkYWI1MDg0YzM5YzA4YTQ0ODQ0NGIwZTEyNGY2OWVjYzVmZjFhNy4uYWU5YmIy
MGUxY2VmNTlkY2FmZmI0OTFiOWZmYTkyNmYwM2FiZTQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNjEzLDcgKzYxMywxMCBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nl
c3MoU3RvcmFnZVBybwogICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3MgPSBzZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LnB0cigpOwogICAgIGluaXRpYWxpemVOZXdXZWJQcm9jZXNzKHNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuZ2V0KCksIG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFT
dG9yZSgpKTsKICAgICBtX3Byb2Nlc3Nlcy5hcHBlbmQoV1RGTW92ZShzZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5KSk7CisKICAgICBtX3NlcnZpY2VXb3JrZXJQcm9jZXNzLT5zdGFydChtX2RlZmF1
bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuc3RvcmUoKSk7CisgICAgaWYgKCFtX3NlcnZpY2VX
b3JrZXJVc2VyQWdlbnQuaXNOdWxsKCkpCisgICAgICAgIG1fc2VydmljZVdvcmtlclByb2Nlc3Mt
PnNldFVzZXJBZ2VudChtX3NlcnZpY2VXb3JrZXJVc2VyQWdlbnQpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>