<?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>178684</bug_id>
          
          <creation_ts>2017-10-23 14:46:33 -0700</creation_ts>
          <short_desc>Enable service worker to use cache storage api</short_desc>
          <delta_ts>2017-11-15 12:55:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Other</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>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1363407</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-23 14:46:33 -0700</bug_when>
    <thetext>Enable service worker to use cache storage api</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363764</commentid>
    <comment_count>1</comment_count>
      <attachid>324686</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 11:17:31 -0700</bug_when>
    <thetext>Created attachment 324686
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363807</commentid>
    <comment_count>2</comment_count>
      <attachid>324699</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 12:17:39 -0700</bug_when>
    <thetext>Created attachment 324699
Making test more stable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363872</commentid>
    <comment_count>3</comment_count>
      <attachid>324699</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-24 13:49:06 -0700</bug_when>
    <thetext>Comment on attachment 324699
Making test more stable

Let&apos;s call this ServiceWorkerThreadProxy instead of ServiceWorkerThreadContainer (It&apos;s implementing WorkerLoader*PROXY*, and ServiceWorkerContainer is a spec defined concept.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363893</commentid>
    <comment_count>4</comment_count>
      <attachid>324719</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 14:16:16 -0700</bug_when>
    <thetext>Created attachment 324719
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363906</commentid>
    <comment_count>5</comment_count>
      <attachid>324719</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 14:27:50 -0700</bug_when>
    <thetext>Comment on attachment 324719
Patch for landing

Patch conflicts with the one chris landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363907</commentid>
    <comment_count>6</comment_count>
      <attachid>324723</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 14:28:08 -0700</bug_when>
    <thetext>Created attachment 324723
Rebasing patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363925</commentid>
    <comment_count>7</comment_count>
      <attachid>324728</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-10-24 14:53:35 -0700</bug_when>
    <thetext>Created attachment 324728
Rebasing patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363961</commentid>
    <comment_count>8</comment_count>
      <attachid>324728</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-24 15:28:48 -0700</bug_when>
    <thetext>Comment on attachment 324728
Rebasing patch for landing

Clearing flags on attachment: 324728

Committed r223935: &lt;https://trac.webkit.org/changeset/223935&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363962</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-24 15:28:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372273</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:55:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568318&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324686</attachid>
            <date>2017-10-24 11:17:31 -0700</date>
            <delta_ts>2017-10-24 12:17:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178684-20171024111730.patch</filename>
            <type>text/plain</type>
            <size>47198</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhMDhiZDQ4ODk5ZTc5
M2EzY2M0MzRjY2I4ODcyZWQ3MjExNTliZC4uN2NjYTBjODBlYjlhNDg1YzhkYzgyODdmYTMwMGIy
ODFlZmMzOTRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTEwLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgc2VydmljZSB3
b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMuaHRtbAorCisgICAgICAgIFVwZGF0ZWQgV29y
a2VyTG9hZGVyUHJveHkgc28gdGhhdCBpdCBjYW4gY3JlYXRlIGEgQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi4KKyAgICAgICAgVXBkYXRlIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gdGFr
ZSBiZW5lZml0IG9mIHRoYXQuCisgICAgICAgIFRoaXMgYWxsb3dzIGNyZWF0aW5nIGEgQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbiBiYXNlZCBvbiB0aGUgcGFnZSBmb3IgcmVndWxhciB3b3JrZXJzIGFu
ZCBkaWZmZXJlbnRseSBmb3IgU2VydmljZSBXb3JrZXIgY29udGV4dC4KKworICAgICAgICBBZGRl
ZCBTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyIGFzIGEgY29udGFpbmVyIHRvIFNlcnZpY2VX
b3JrZXJUaHJlYWQuCisgICAgICAgIFRoaXMgY29udGFpbmVyIGlzIGluIHBhcnRpY3VsYXIgcmVz
cG9uc2libGUgdG8gZG8gcHJveHkgZm9yIGxvYWRpbmcgdGFza3MuCisgICAgICAgIFRoaXMgY29u
dGFpbmVyIGltcGxlbWVudHMgY2FjaGUgQVBJIHN1cHBvcnQgZm9yIHNlcnZpY2Ugd29ya2VyIGJ5
IGNyZWF0aW5nIGEgZGVkaWNhdGVkIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24uCisKKyAgICAgICAg
KiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmRvT3Blbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpkb1JlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZXJlZmVyZW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoRGVs
ZXRlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hQdXRPcGVyYXRpb24pOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5Lmg6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRDb250
YWluZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRD
b250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
Q29udGFpbmVyOjpTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXI6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2Vy
R2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZENvbnRh
aW5lcjo6cG9zdFRhc2tUb0xvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkQ29udGFpbmVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmg6
IEFkZGVkLgorCiAyMDE3LTEwLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBDcmVhdGUgYSBGZXRjaCBldmVudCB3aGVuIFNlcnZpY2VXb3JrZXIgaGFzIHRv
IGhhbmRsZSBhIGZldGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2OWFmMDI5NTVmZWIzNjJiYjA5ODA5MGY3Yjgy
ZThlMmRhZTVkN2MuLmQ0ZTVjNjY2Y2NlNDZhYTk1ZDVjOGQ0OTU4YzJkMGYxNjdjNjRkZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTctMTAtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBzZXJ2aWNlIHdvcmtlciB0byB1c2UgY2Fj
aGUgc3RvcmFnZSBhcGkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFBhc3NpbmcgdGhlIFdlYlByZWZlcmVuY2VzIHN0b3JlIG9mIHRoZSBkZWZhdWx0IHBh
Z2UgZ3JvdXAgb2YgdGhlIFdlYlByb2Nlc3NQb29sIHRvIGl0cyBTZXJ2aWNlV29ya2VyIHByb2Nl
c3MuCisgICAgICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB0aGVuIHVzZXMgaXQgdG8g
aW5pdGlhbGl6ZSB0aGUgcHJlZmVyZW5jZXMgYWNjb3JkaW5nbHkuCisgICAgICAgIFBhdGNoIGlz
IGNvdmVyZWQgYnkgbmV3IHRlc3Qgd2hpY2ggaXMgdXNpbmcgY2FjaGUgYXBpIHByZXZpb3VzbHkg
ZGlzYWJsZWQgYW5kIG5vdyBlbmFibGVkIHRocm91Z2ggdGhlIHN0b3JlLgorCisgICAgICAgIE1h
ZGUgdXNlIG9mIHRoZSBuZXcgU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lciBpbiBTZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXIgdG8gZW5hYmxlIGEgY2FjaGUgc3RvcmFnZSBjb25uZWN0aW9u
LgorICAgICAgICBGaXhlZCB0aGUgZGVmYXVsdCBzaXplIG9mIHF1b3RhIGluIFdlYnNpdGVEYXRh
U3RvcmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0U2VydmljZVdvcmtlcik6CisgICAgICAg
IChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oOgor
ICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENv
bm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNy0xMC0yMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDog
IW1fc2VydmljZVdvcmtlck1hbmFnZXIgaW4gV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENv
bm5lY3Rpb24oKSBvbiBBUEkgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFi
MjE5YjEyOWFjOWMyM2JjOTBjZTg5NzlhNTc4ZWYxMDBlZWM2YjIuLjA2M2I3MDIwMThmOTNmMDUw
MzE3MmQ1ZTE1MjRmNWYwYzNhN2EyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
OTEsMTIgKzkxLDkgQEAgc3RhdGljIFJlY29yZCBmcm9tQ3Jvc3NUaHJlYWRSZWNvcmREYXRhKENy
b3NzVGhyZWFkUmVjb3JkRGF0YSYmIGRhdGEpCiBSZWY8V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKFdvcmtlckdsb2JhbFNj
b3BlJiBzY29wZSkKIHsKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oc2NvcGUpKTsKLSAgICBjb25uZWN0aW9uLT5tX3Byb3h5
LnBvc3RUYXNrVG9Mb2FkZXIoW3Byb3RlY3RlZENvbm5lY3Rpb24gPSBtYWtlUmVmKGNvbm5lY3Rp
b24uZ2V0KCkpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRDb25uZWN0aW9uID0gY29ubmVjdGlvbi5jb3B5
UmVmKCldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKLQot
ICAgICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgpKTsKLSAgICAgICAgcHJvdGVjdGVkQ29ubmVj
dGlvbi0+bV9tYWluVGhyZWFkQ29ubmVjdGlvbiA9IGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9y
YWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3VtZW50LnBhZ2Uo
KS0+c2Vzc2lvbklEKCkpOworICAgICAgICBwcm90ZWN0ZWRDb25uZWN0aW9uLT5tX21haW5UaHJl
YWRDb25uZWN0aW9uID0gcHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9wcm94eS5jcmVhdGVDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIGNvbm5lY3Rpb247CiB9CkBA
IC0xMTEsMTIgKzEwOCwxMiBAQCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckdsb2JhbFNjb3BlJiBzYwogV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKQogewogICAg
IGlmIChtX21haW5UaHJlYWRDb25uZWN0aW9uKQotICAgICAgICBtX3Byb3h5LnBvc3RUYXNrVG9M
b2FkZXIoW21haW5UaHJlYWRDb25uZWN0aW9uID0gV1RGTW92ZShtX21haW5UaHJlYWRDb25uZWN0
aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeyB9KTsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbbWFpblRocmVhZENvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fbWFpblRocmVh
ZENvbm5lY3Rpb24pXSgpIG11dGFibGUgeyB9KTsKIH0KIAogdm9pZCBXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpkb09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSkKIHsKLSAgICBtX3Byb3h5LnBv
c3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVx
dWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgY2FjaGVOYW1l
ID0gY2FjaGVOYW1lLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0
YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29w
eSgpLCBjYWNoZU5hbWUgPSBjYWNoZU5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJl
YWRDb25uZWN0aW9uKTsKIApAQCAtMTMxLDcgKzEyOCw3IEBAIHZvaWQgV29ya2VyQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6ZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBT
dHJpCiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIHsKLSAgICBt
X3Byb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmll
cl0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
QVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0xNDcsNyArMTQ0LDcgQEAgdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JlbW92ZSh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3QKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlcikKIHsKLSAgICBtX3Byb3h5LnBvc3RU
YXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVz
dElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgdXBkYXRlQ291bnRl
cl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZp
ZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgdXBkYXRlQ291bnRlcl0oKSBtdXRh
YmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1f
bWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0xNjgsNyArMTY1LDcgQEAgdm9pZCBXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLAogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5j
ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9h
ZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmll
cl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oKSB7CiAg
ICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJl
YWRDb25uZWN0aW9uKTsKIApAQCAtMTc4LDcgKzE3NSw3IEBAIHZvaWQgV29ya2VyQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6cmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIAogdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZXJlZmVyZW5jZSh1aW50NjRfdCBjYWNo
ZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oKSB7CiAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsK
IApAQCAtMjEzLDcgKzIxMCw3IEBAIHN0YXRpYyBpbmxpbmUgUmVjb3Jkc09yRXJyb3IgcmVjb3Jk
c09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoRXhwZWN0ZWQ8VmVjdG9yPENyb3NzCiAKIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29yZHModWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwp
CiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHVybCA9
IHVybC5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgdXJsID0gdXJsLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
ICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAgLTIyOCw3ICsyMjUsNyBA
QCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVSZWNvcmRzKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLAogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVu
dGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3QgPSByZXF1ZXN0Lmlzb2xhdGVkQ29weSgp
LCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVx
dWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
ICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAgLTI0NCw3ICsyNDEsNyBA
QCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRp
b24odWludDY0X3QgcmVxdWVzdElkZW50aQogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzKQogewotICAg
IG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRGF0YSA9
IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29y
ZHNEYXRhID0gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhyZWNvcmRzKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1fbWFpblRocmVh
ZENvbm5lY3Rpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOTM2MGVkZWIxYTgwNzk5YTNhYjY0YjcyNzY0NDA5NGEwYzkx
ZWE3OS4uYzYxZTdhNWZkOGVlNDkyYTlmZmQ0NGE4MDNkZGIyZTkzZTM5YzQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkz
LDcgKzU5Myw3IEBACiAJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJDRjI3
MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCAqLzsgfTsKIAkJMTg4NjA0QjMwRjJF
NjU0QTAwMEI2NDQzIC8qIERPTVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE4ODYwNEIxMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5j
cHAgKi87IH07CiAJCTE4ODYwNEI0MEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTg4NjA0QjIwRjJFNjU0
QTAwMEI2NDQzIC8qIERPTVRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
OEY4MzFCNzBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCAqLzsgfTsKKwkJ
MThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4MDBE
OEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxOTIxMzI3NDExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmNwcCAqLzsgfTsKIAkJMTkyMTMyNzUxMUMwRTZCQjAwNDU2MjM4IC8qIFNW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxOTIxMzI3MjExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuaCAqLzsgfTsKIAkJMTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNW
R1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE5N0IxODBCMTUwNjM0QzAwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0
LmggKi87IH07CkBAIC0xNDk5LDYgKzE0OTksOCBAQAogCQk0MTEwM0FBRDFFMzk3OTEwMDA3NjlG
MTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAv
KiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oICovOyB9OwogCQk0MTEwM0FBRTFF
Mzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUFBMUUzOTc5MEEw
MDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwICovOyB9OwogCQk0MTEw
M0FBRTFFMzk3OTEwMDA3NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2Eu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNB
QUExRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cCAqLzsgfTsKKwkJNDExMkI1NDIxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDExMkI1NDExRjlGOUM5QzAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250
YWluZXIuY3BwICovOyB9OworCQk0MTEyQjU0MzFGOUY5Q0EwMDBFNjc4NzUgLyogU2VydmljZVdv
cmtlclRocmVhZENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRDb250YWluZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTIzMDgxQjEzOEM0Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4
MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4
QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAx
MzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk0MTI5Qzk4QTFGNTg3RkVC
MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFk
YWJsZVN0cmVhbVNpbmsuY3BwICovOyB9OwpAQCAtODc5Nyw2ICs4Nzk5LDggQEAKIAkJNDExMDNB
QTkxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUFBMUUzOTc5
MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMDNBQUExRTM5NzkwQTAwNzY5RjE0
IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1
IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTEyQjU0MTFGOUY5QzlDMDBFNjc4NzUgLyogU2VydmljZVdvcmtl
clRocmVhZENvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVG
NzFBRDgyMzI4MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBS
ZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFk
YWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE4NTg2LDYgKzE4NTkwLDggQEAKIAkJCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2Vy
dmljZVdvcmtlckZldGNoLmggKi8sCiAJCQkJNTE3Qzg3MTExRjhFRTcyRjAwRUI4MDc2IC8qIFNl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwICovLAogCQkJCTUxN0M4NzEwMUY4RUU3MkUwMEVCODA3NiAv
KiBTZXJ2aWNlV29ya2VyVGhyZWFkLmggKi8sCisJCQkJNDExMkI1NDExRjlGOUM5QzAwRTY3ODc1
IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuY3BwICovLAorCQkJCTQxMTJCNTNGMUY5
RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGNvbnRleHQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjg0
NTMsNiArMjg0NTksNyBAQAogCQkJCTgzNkIwOTU2MUY1RjM0RDkwMDNDMzcwMiAvKiBKU0hUTUxJ
bnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNjE0OEE3OTEyRTQx
RTNCMDA0NEE3ODQgLyogSlNIVE1MS2V5Z2VuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUFFMkFCMjIwQTFDRTYzQjAwQjQyQjI1IC8qIEpTSFRNTExhYmVsRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDExMkI1NDMxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTJBQjI0MEExQ0U2M0IwMEI0MkIy
NSAvKiBKU0hUTUxMZWdlbmRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUyQUIyNjBB
MUNFNjNCMDBCNDJCMjUgLyogSlNIVE1MTElFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
ODBFN0IwRDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MTGlua0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzI2NzIsNiArMzI2NzksNyBAQAogCQkJCUJDOTZEQjQ2MEYzQTg4MjIwMDU3M0NC
MyAvKiBSZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDg2
NTA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyQnV0dG9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDRTQ0MTMzMTJGNzQ4RTIwMDlCODRCOCAvKiBSZW5kZXJDb21iaW5lVGV4dC5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk0MTEyQjU0MjFGOUY5Q0EwMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRo
cmVhZENvbnRhaW5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzkyRjE0NDBBRDE4NUZFMDA2
OTFCRDQgLyogUmVuZGVyQ291bnRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VBNDg2RDA5
N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUQzMDI3NTQ5MTJBNUZFODQwMDRCRDgyOCAvKiBSZW5kZXJEZXRhaWxzTWFy
a2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJMb2FkZXJQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2Fk
ZXJQcm94eS5oCmluZGV4IGRhZmZlMWY3Yzk3MTY3NjkzODIwNzI4Njg1OGQ3NmI2OTc2MzQ1OTQu
LmJlZjc5NzQ5NjRlMmM2Y2YyZjdjYmRhNTA0MDY3MjA0MDg0NGZlZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKQEAgLTM0LDIyICszNCwyNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICAvLyBBIHByb3h5IHRvIHRhbGsgdG8gdGhlIGxvYWRl
ciBjb250ZXh0LiBOb3JtYWxseSwgdGhlIGRvY3VtZW50IG9uIHRoZSBtYWluIHRocmVhZAotICAg
IC8vIHByb3ZpZGVzIGxvYWRpbmcgc2VydmljZXMgZm9yIHRoZSBzdWJvcmRpbmF0ZSB3b3JrZXJz
LiBUaGlzIGludGVyZmFjZSBwcm92aWRlcyAyLXdheQotICAgIC8vIGNvbW11bmljYXRpb25zIHRv
IHRoZSBEb2N1bWVudCBjb250ZXh0IGFuZCBiYWNrIHRvIHRoZSB3b3JrZXIuCi0gICAgLy8gTm90
ZSB0aGF0IGluIG11bHRpLXByb2Nlc3MgYnJvd3NlcnMsIHRoZSBXb3JrZXIgb2JqZWN0IGNvbnRl
eHQgYW5kIHRoZSBEb2N1bWVudAotICAgIC8vIGNvbnRleHQgY2FuIGJlIGRpc3RpbmN0LgotICAg
IGNsYXNzIFdvcmtlckxvYWRlclByb3h5IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwg
fldvcmtlckxvYWRlclByb3h5KCkgPSBkZWZhdWx0OwotCi0gICAgICAgIC8vIFBvc3RzIGEgdGFz
ayB0byB0aGUgdGhyZWFkIHdoaWNoIHJ1bnMgdGhlIGxvYWRpbmcgY29kZSAobm9ybWFsbHksIHRo
ZSBtYWluIHRocmVhZCkuCi0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgPSAwOwotCi0gICAgICAgIC8vIFBvc3RzIGNh
bGxiYWNrcyBmcm9tIGxvYWRpbmcgY29kZSB0byB0aGUgV29ya2VyR2xvYmFsU2NvcGUuIFRoZSAn
bW9kZScgaXMgdXNlZCB0byBkaWZmZXJlbnRpYXRlCi0gICAgICAgIC8vIHNwZWNpZmljIHN5bmNo
cm9ub3VzIGxvYWRpbmcgcmVxdWVzdHMgc28gdGhleSBjYW4gYmUgJ25lc3RlZCcsIHBlciBzcGVj
LgotICAgICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHRhc2sgd2FzIHBvc3RlZCBzdWNjZXNz
ZnVsbHkuCi0gICAgICAgIHZpcnR1YWwgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2Rl
KSA9IDA7Ci0gICAgfTsKK2NsYXNzIENhY2hlU3RvcmFnZUNvbm5lY3Rpb247CisKKy8vIEEgcHJv
eHkgdG8gdGFsayB0byB0aGUgbG9hZGVyIGNvbnRleHQuIE5vcm1hbGx5LCB0aGUgZG9jdW1lbnQg
b24gdGhlIG1haW4gdGhyZWFkCisvLyBwcm92aWRlcyBsb2FkaW5nIHNlcnZpY2VzIGZvciB0aGUg
c3Vib3JkaW5hdGUgd29ya2Vycy4gVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgMi13YXkKKy8vIGNv
bW11bmljYXRpb25zIHRvIHRoZSBEb2N1bWVudCBjb250ZXh0IGFuZCBiYWNrIHRvIHRoZSB3b3Jr
ZXIuCisvLyBOb3RlIHRoYXQgaW4gbXVsdGktcHJvY2VzcyBicm93c2VycywgdGhlIFdvcmtlciBv
YmplY3QgY29udGV4dCBhbmQgdGhlIERvY3VtZW50CisvLyBjb250ZXh0IGNhbiBiZSBkaXN0aW5j
dC4KK2NsYXNzIFdvcmtlckxvYWRlclByb3h5IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Xb3Jr
ZXJMb2FkZXJQcm94eSgpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgUmVmPENhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSA9IDA7CisKKyAgICAv
LyBQb3N0cyBhIHRhc2sgdG8gdGhlIHRocmVhZCB3aGljaCBydW5zIHRoZSBsb2FkaW5nIGNvZGUg
KG5vcm1hbGx5LCB0aGUgbWFpbiB0aHJlYWQpLgorICAgIHZpcnR1YWwgdm9pZCBwb3N0VGFza1Rv
TG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgPSAwOworCisgICAgLy8gUG9z
dHMgY2FsbGJhY2tzIGZyb20gbG9hZGluZyBjb2RlIHRvIHRoZSBXb3JrZXJHbG9iYWxTY29wZS4g
VGhlICdtb2RlJyBpcyB1c2VkIHRvIGRpZmZlcmVudGlhdGUKKyAgICAvLyBzcGVjaWZpYyBzeW5j
aHJvbm91cyBsb2FkaW5nIHJlcXVlc3RzIHNvIHRoZXkgY2FuIGJlICduZXN0ZWQnLCBwZXIgc3Bl
Yy4KKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHRhc2sgd2FzIHBvc3RlZCBzdWNjZXNzZnVs
bHkuCisgICAgdmlydHVhbCBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpID0gMDsK
K307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNjg1YzU0ZjdhZjdkYWIxMjM0YzMzZmMz
ODc2MTJlYTgxZjNhZmY4OS4uNDVlOTdkMzIyMTdmNDkwMWQ1ZjM4MDkxNmNiYzdmOTAyMDg2ODM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oIgogCisjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIK
ICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtMzYsNiArMzcs
NyBAQAogI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIuaCIKICNpbmNsdWRlICJX
b3JrZXJJbnNwZWN0b3JQcm94eS5oIgpAQCAtMTMzLDYgKzEzNSwxMiBAQCB2b2lkIFdvcmtlck1l
c3NhZ2luZ1Byb3h5Ojpwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2smJiB0YXNrKQogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9zdFRhc2soV1RGTW92
ZSh0YXNrKSk7CiB9CiAKK1JlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBXb3JrZXJNZXNzYWdp
bmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCit7CisgICAgYXV0byYgZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Cisg
ICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5jcmVhdGVD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3VtZW50LnBhZ2UoKS0+c2Vzc2lvbklEKCkpOworfQor
CiBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcm
IG1vZGUpCiB7CiAgICAgaWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA4YjFmOGY4MDBmNTUxN2E2NWNm
MGNkOTNlZTFjMjQ4MzUxMTU3MTMxLi5hNjU4YmU5ZmVkNDZhMTQxMjUyMTRlNjQwZmM5ZDVjNTZj
MWM5OWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94
eS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gcmVxdWVzdHMgYW5kIHRvIHNl
bmQgY2FsbGJhY2tzIGJhY2sgdG8gV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgdm9pZCBwb3N0VGFz
a1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgZmluYWw7CiAgICAgYm9v
bCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKyAgICBSZWY8Q2FjaGVTdG9y
YWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFsOwogCiAg
ICAgdm9pZCB3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRlZFdvcmtlclRocmVhZCYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDM4MThlOTkxMWFkMzI3YTg0ODFiNmRmYTI5
ODQzOGQ4MTJiYzM2N2EuLjFjMDI3ZTljMGQ0OTYyNDI5ZTg2NjU5OTI3ZWVhOWMyNTkwODYyNDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDYWNoZVN0b3JhZ2VQcm92aWRlci5o
IgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoLmgi
CkBAIC00Miw3ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgU2VydmljZVdvcmtlclRocmVhZFByb3h5IDogcHVibGljIFdvcmtlckxv
YWRlclByb3h5LCBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgeworY2xhc3MgU2VydmljZVdvcmtl
clRocmVhZFByb3h5IDogcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgU2VydmljZVdvcmtlclRocmVhZFByb3h5JiBzaGFyZWREdW1teVByb3h5KCkKICAgICB7
CkBAIC01MSw4ICs1Miw2IEBAIHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBw
b3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgZmluYWwgeyB9
OwotICAgIGJvb2wgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9OwogICAgIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYs
IGludCwgaW50LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH07CiAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRvUGFnZUluc3BlY3Rvcihjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH07CiAgICAgdm9pZCB3b3Jr
ZXJHbG9iYWxTY29wZURlc3Ryb3llZCgpIGZpbmFsIHsgfTsKQEAgLTY5LDggKzY4LDggQEAgcHJp
dmF0ZToKIC8vIEZJWE1FOiBVc2UgYSB2YWxpZCB1c2VyIGFnZW50CiAvLyBGSVhNRTogVXNlIHZh
bGlkIHJ1bnRpbWUgZmxhZ3MKIAotU2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRo
cmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCkKLSAgICA6IFdvcmtlclRocmVh
ZChkYXRhLnNjcmlwdFVSTCwgZGF0YS53b3JrZXJJRCwgQVNDSUlMaXRlcmFsKCJXb3JrZXJVc2Vy
QWdlbnQiKSwgZGF0YS5zY3JpcHQsIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkRHVt
bXlQcm94eSgpLCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZER1bW15UHJveHkoKSwg
V29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3Bv
bnNlSGVhZGVycyB7IH0sIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0
VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIG51bGxwdHIsIEpTQzo6
UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpKQorU2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCh1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5
KQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0VVJMLCBkYXRhLndvcmtlcklELCBBU0NJ
SUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIpLCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkRHVtbXlQcm94eSgpLCBXb3JrZXJUaHJlYWRT
dGFydE1vZGU6Ok5vcm1hbCwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsg
fSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgpLCBN
b25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgbnVsbHB0ciwgSlNDOjpSdW50aW1lRmxhZ3M6
OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAg
LCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KQogICAgICwgbV9kYXRhKGRhdGEuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX3dvcmtlck9iamVj
dFByb3h5KFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkRHVtbXlQcm94eSgpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5oCmluZGV4IDk1NGRhZjYwODJjY2VmNmJkOTM1ODEyYTcwN2NkZWUw
YmYwM2M5YmIuLjM4YzgwYTNlNGVkMjk4MmY3MzdlMjczZWIzZGY4YTY1MzBjM2I1NTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKIGNsYXNzIENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKIGNsYXNzIFdvcmtlck9iamVjdFByb3h5Owogc3RydWN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKQEAgLTU1LDcgKzU2LDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09S
RV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQp
OworICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQodWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBB
TDo6U2Vzc2lvbklELCBXb3JrZXJMb2FkZXJQcm94eSYpOwogCiAgICAgdWludDY0X3QgbV9zZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgbV9k
YXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wNTUwZjUzMTM1MjYyMzE3OTk2N2NiMjRjZmQxMzdlZWQ2YjJhMTE1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZENvbnRhaW5lci5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVy
LmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0Nh
Y2hlU3RvcmFnZVByb3ZpZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5o
PgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVm
PFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXI+IFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWlu
ZXI6OmNyZWF0ZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlcikKK3sKKyAg
ICBhdXRvIHNlcnZpY2VXb3JrZXIgPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJUaHJlYWRD
b250YWluZXIgeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0YSwgc2Vzc2lvbklELCBj
YWNoZVN0b3JhZ2VQcm92aWRlciB9KTsKKyAgICBzZXJ2aWNlV29ya2VyLT5tX3NlcnZpY2VXb3Jr
ZXJUaHJlYWQtPnN0YXJ0KCk7CisgICAgcmV0dXJuIHNlcnZpY2VXb3JrZXI7Cit9CisKK1NlcnZp
Y2VXb3JrZXJUaHJlYWRDb250YWluZXI6OlNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWNoZVN0
b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIpCisgICAgOiBtX3NlcnZpY2VXb3Jr
ZXJUaHJlYWQoU2VydmljZVdvcmtlclRocmVhZDo6Y3JlYXRlKHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBkYXRhLCBzZXNzaW9uSUQsICp0aGlzKSkKKyAgICAsIG1fY2FjaGVTdG9yYWdlUHJv
dmlkZXIoY2FjaGVTdG9yYWdlUHJvdmlkZXIpCisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQp
Cit7CisgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkLT5zdGFydCgpOworfQorCitib29sIFNlcnZp
Y2VXb3JrZXJUaHJlYWRDb250YWluZXI6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2Nv
cGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9k
ZSkKK3sKKyAgICAvLyBGSVhNRTogSGFuZGxlIHRlcm1pbmF0aW9uIGNhc2UuCisgICAgbV9zZXJ2
aWNlV29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFdURk1vdmUodGFzayks
IG1vZGUpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRD
b250YWluZXI6OnBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
KQoreworICAgIC8vIEltcGxlbWVudCB0aGlzLgorfQorCitSZWY8Q2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcjo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbigpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBzZXNzaW9uSUQgcmV0cmlldmFs
LgorICAgIGlmICghbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uKQorICAgICAgICBtX2NhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24gPSBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyLmNyZWF0ZUNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24obV9zZXNzaW9uSUQpOworICAgIHJldHVybiAqbV9jYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWQxZjA4ZmMzZDQzOTI4MTlmNTMyOWJjMjgzYzBmNDFhODdlN2E4ZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRl
ICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclRocmVhZC5oIgorI2luY2x1ZGUg
IldvcmtlckxvYWRlclByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CitjbGFzcyBQYWdlQ29u
ZmlndXJhdGlvbjsKK3N0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CisKK2NsYXNzIFNl
cnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8U2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcj4sIHB1YmxpYyBXb3JrZXJMb2FkZXJQ
cm94eSB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZXJ2aWNlV29y
a2VyVGhyZWFkQ29udGFpbmVyPiBjcmVhdGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBD
YWNoZVN0b3JhZ2VQcm92aWRlciYpOworCisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclRocmVhZC0+aWRlbnRpZmllcigpOyB9CisgICAgU2Vy
dmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCkgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyVGhyZWFk
LmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcih1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJik7CisgICAg
Ym9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RU
YXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbDsKKyAgICBS
ZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigp
IGZpbmFsOworCisgICAgUmVmPFNlcnZpY2VXb3JrZXJUaHJlYWQ+IG1fc2VydmljZVdvcmtlclRo
cmVhZDsKKyAgICBDYWNoZVN0b3JhZ2VQcm92aWRlciYgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsK
KyAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0
aW9uOworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMzNiNzQ5MzZkZDlhNGNmYjRh
ZmNjYTdhMTIxNGRhMTNlYWJkYTY1YS4uOTcyMjZhZGQ5Mzc0YWQ5MzkyNzIyYTRhYTkxOTM3ZGI1
MmJhYThjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbihTdG9yYWdlUHJvY2Vzc1Byb3h5JiBwcm94CiAgICAgICAgIG1fd2Vi
c2l0ZURhdGFTdG9yZSA9IEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgp
LnB0cigpOwogICAgIGF1dG8mIG5ld1Byb2Nlc3MgPSBjcmVhdGVOZXdXZWJQcm9jZXNzKG1fd2Vi
c2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKICAgICBtX3dvcmtlckNvbnRleHRQ
cm9jZXNzID0gJm5ld1Byb2Nlc3M7Ci0gICAgbV93b3JrZXJDb250ZXh0UHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6R2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oKSwgMCk7Cisg
ICAgbV93b3JrZXJDb250ZXh0UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2V0
V29ya2VyQ29udGV4dENvbm5lY3Rpb24obV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygp
LnN0b3JlKCkpLCAwKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGlkR2V0V29ya2VyQ29u
dGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAppbmRleCBkZDBlYzkyOWVkZWEwNWNjNjZmMTRmOTBlZDBhMGQ3ZTdhNWMwODUx
Li5mZTZlODMzOWUzNmRiODcwYzRjMDg0OWI2NGI2YTUwZTRjMWNmZjY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CkBAIC02OCw5ICs2OCwxMSBAQCBlbnVtIGNsYXNzIFNob3VsZENsZWFyRmlyc3QgeyBObywgWWVz
IH07CiAKIGNsYXNzIFdlYnNpdGVEYXRhU3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJzaXRl
RGF0YVN0b3JlPiwgcHVibGljIFdlYlByb2Nlc3NMaWZldGltZU9ic2VydmVyLCBwdWJsaWMgSWRl
bnRpZmllZDxXZWJzaXRlRGF0YVN0b3JlPiAgewogcHVibGljOgorICAgIGNvbnN0ZXhwciBzdGF0
aWMgdWludDY0X3QgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhID0gMjAgKiAxMDI0
ICogMTAyNDsKKwogICAgIHN0cnVjdCBDb25maWd1cmF0aW9uIHsKICAgICAgICAgU3RyaW5nIGNh
Y2hlU3RvcmFnZURpcmVjdG9yeTsKLSAgICAgICAgdWludDY0X3QgY2FjaGVTdG9yYWdlUGVyT3Jp
Z2luUXVvdGE7CisgICAgICAgIHVpbnQ2NF90IGNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhIHsg
ZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhIH07CiAgICAgICAgIFN0cmluZyBuZXR3
b3JrQ2FjaGVEaXJlY3Rvcnk7CiAgICAgICAgIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0
b3J5OwogICAgICAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5
TmFtZTsKQEAgLTg4LDggKzkwLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURh
dGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRpb24sIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2aXJ0
dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7CiAKLSAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90
IGRlZmF1bHRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSA9IDIwICogMTAyNCAqIDEwMjQ7Ci0K
ICAgICBib29sIGlzUGVyc2lzdGVudCgpIGNvbnN0IHsgcmV0dXJuICFtX3Nlc3Npb25JRC5pc0Vw
aGVtZXJhbCgpOyB9CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1
cm4gbV9zZXNzaW9uSUQ7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKaW5kZXgg
MGRlZjM1NGMzY2NlYWQ3N2I5ZTFlZTQ0ODVhY2I2OTQyYzRjZGI1NC4uYTlhM2Q0YTQwMmNmNjE2
NWY3MGJkZTdlNDA5YmU1ODdhNTQxOWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIu
Y3BwCkBAIC0zMCwxMCArMzAsMTUgQEAKIAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRl
ICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJv
dmlkZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFBBTDsKQEAgLTQxLDMxICs0Niw0MSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbiwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCisgICAgOiBtX2Nvbm5lY3Rp
b25Ub1N0b3JhZ2VQcm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCit7CisgICAgdXBkYXRlUHJl
ZmVyZW5jZXMoc3RvcmUpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6
dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7Cisg
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDYWNoZUFQSUVu
YWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpjYWNoZUFQ
SUVuYWJsZWRLZXkoKSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0RmV0Y2hBUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6ZmV0Y2hBUElFbmFibGVkS2V5KCkpKTsKK30KKwogdm9pZCBTZXJ2aWNlV29y
a2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQog
ewogICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc2Vuc2ljYWwgc2Vzc2lvbiBJRC4KLSAgICBhdXRv
IHRocmVhZCA9IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZGF0YSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwotICAgIGF1dG8g
dGhyZWFkSWRlbnRpZmllciA9IHRocmVhZC0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gcmVzdWx0
ID0gbV93b3JrZXJUaHJlYWRNYXAuYWRkKHRocmVhZElkZW50aWZpZXIsIFdURk1vdmUodGhyZWFk
KSk7Ci0gICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKLQotICAgIHJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUtPnN0YXJ0KCk7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVy
ID0gU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcjo6Y3JlYXRlKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBkYXRhLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSk7CisgICAgYXV0byBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciA9IHNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXItPmlkZW50aWZp
ZXIoKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1fd29ya2VyTWFwLmFkZChzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyKSk7CisgICAgQVNT
RVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIExPRyhTZXJ2aWNl
V29ya2VyLCAiQ29udGV4dCBwcm9jZXNzIFBJRDogJWkgc3RhcnRlZCB3b3JrZXIgdGhyZWFkICVz
XG4iLCBnZXRwaWQoKSwgZGF0YS53b3JrZXJJRC51dGY4KCkuZGF0YSgpKTsKIAotICAgIG1fY29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpT
ZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0ZWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGRh
dGEucmVnaXN0cmF0aW9uS2V5LCB0aHJlYWRJZGVudGlmaWVyLCBkYXRhLndvcmtlcklEKSwgMCk7
CisgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFn
ZVByb2Nlc3M6OlNlcnZpY2VXb3JrZXJDb250ZXh0U3RhcnRlZChzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZGF0YS5yZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBk
YXRhLndvcmtlcklEKSwgMCk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIGF1
dG8gc2VydmljZVdvcmtlclRocmVhZCA9IG1fd29ya2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7Ci0gICAgaWYgKCFzZXJ2aWNlV29ya2VyVGhyZWFkKSB7CisgICAgYXV0
byBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpIHsKICAgICAgICAgbV9jb25uZWN0aW9uVG9TdG9y
YWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZE5vdEhhbmRsZUZl
dGNoKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpLCAwKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudDo6Y3JlYXRlKG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MuY29w
eVJlZigpLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKLSAg
ICBzZXJ2aWNlV29ya2VyVGhyZWFkLT5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAgc2VydmljZVdvcmtlci0+dGhy
ZWFkKCkucG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUocmVxdWVzdCksIFdU
Rk1vdmUob3B0aW9ucykpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlci5oCmluZGV4IDhkMjAwYzBmMzQwNWQ0MGRkNzMzYzVkMzliN2I4NTc0Yjg0
ZmJmMmYuLjdlNWYzNTJkMzc2M2FhZDRhNjQzOWYxMTM4YTU1Nzk5Zjc4Yzc2YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVGhyZWFkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VGhyZWFkQ29udGFpbmVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzksMjIgKzM5LDIyIEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworc3RydWN0IFdlYlByZWZlcmVuY2VzU3Rv
cmU7CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciA6IHB1YmxpYyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICAgICAgOiBt
X2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgewot
ICAgIH0KKyAgICBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlv
bj4mJiwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogcHJpdmF0
ZToKKyAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KTsKKwogICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsK
ICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7
CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNz
OwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhy
ZWFkPj4gbV93b3JrZXJUaHJlYWRNYXA7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXI+PiBtX3dvcmtlck1hcDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDFkZWY3MWMyYTA5YTlmNjg4NmQxYTBkMzAzNWMwOWQ3MmNhMjY5YmEuLjY2NTFiNzk2
YTQwY2Y3ZWRkNDA4Mzc2ZGZmNmEzOTM2NTdlMmZhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE2NDAsNyArMTY0MCw3IEBAIExpYldlYlJUQ05ldHdvcmsm
IFdlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmsoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCi12b2lkIFdlYlByb2Nlc3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0aW9u
KCkKK3ZvaWQgV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiB7CiAgICAgQVNTRVJUKCFtX3NlcnZpY2VXb3JrZXJN
YW5hZ2VyKTsKIApAQCAtMTY2NCw3ICsxNjY0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvbigpCiAKICAgICBhdXRvIHdvcmtlckNvbnRleHRDb25uZWN0aW9u
ID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVu
dGlmaWVyLCAqdGhpcyk7CiAgICAgd29ya2VyQ29udGV4dENvbm5lY3Rpb24tPm9wZW4oKTsKLSAg
ICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyID0gIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcihX
VEZNb3ZlKHdvcmtlckNvbnRleHRDb25uZWN0aW9uKSk7CisgICAgbV9zZXJ2aWNlV29ya2VyTWFu
YWdlciA9ICBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoV1RGTW92ZSh3b3JrZXJDb250ZXh0
Q29ubmVjdGlvbiksIHN0b3JlKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEdl
dFdvcmtlckNvbnRleHRDb25uZWN0aW9uKGNvbm5lY3Rpb25DbGllbnRQb3J0KSwgMCk7CiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRhMWE1MjZjM2Ri
MzYwNGRjMzY4NTJiNGIyZGZhNDM3MDYyZTBkMzAuLjUwN2IzZDRkMzU3MzMzNjE3MGQwNmM1Y2Jj
ZjgzMzdjMmVlMTJkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAt
Mjk5LDcgKzI5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXROZXR3b3JrUHJveHlTZXR0aW5n
cyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MmKTsKICNlbmRpZgogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lkIGdldFdvcmtlckNvbnRleHRDb25uZWN0
aW9uKCk7CisgICAgdm9pZCBnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihjb25zdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlJik7CiAjZW5kaWYKIAogICAgIHZvaWQgcmVsZWFzZVBhZ2VDYWNoZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA2MzdlNmYyOGQ2MGFlMDAxZWE0ZWU3ZjU5NTViYzg2Y2ZhMTcwZDViLi45NjA4OTFmMzcwNGQ5
MmViNTMyNTczY2YxZGY1MzkwOTBlMjUyOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTE1LDYgKzExNSw2IEBAIG1lc3NhZ2Vz
IC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCi0gICAgR2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oKQorICAgIEdldFdv
cmtlckNvbnRleHRDb25uZWN0aW9uKHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUg
c3RvcmUpCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5Y2Q4YTZjYzNjMThhODYwNTlkYTJiYTg3NDUyMGQz
OTZjNjgxYjNiLi5mMjA2YmMzMGE1Nzg4NzkyOTIwN2UzNjE1YjdjMDU5N2I3ZDU4NzIyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTAtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIEVuYWJsZSBzZXJ2aWNlIHdvcmtlciB0byB1c2UgY2FjaGUgc3Rv
cmFnZSBhcGkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3ODY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNh
Y2hlLWFwaS13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanM6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFw
aS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy5odG1sOiBBZGRlZC4KKwog
MjAxNy0xMC0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
TXVsdGlwbGUgaW1wb3J0ZWQgbGF5b3V0IHRlc3RzIGFyZSBjcmFzaGluZyBhbmQgdGltaW5nIG91
dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hl
LWFwaS13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M2NzA3YjNhN2FkZTVjZWNlZDY5ZTNhODI2MWYw
YjI1Y2Q1YTc3MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2VyLmpz
CkBAIC0wLDAgKzEsMzMgQEAKK3ZhciBzdGF0dXMgPSAibm8gc3RhdHVzIjsKK3ZhciBjYWNoZTsK
K3ZhciB3b3JrZXIgPSBzZWxmOworCithc3luYyBmdW5jdGlvbiBwcmVwYXJlQ2FjaGUoKQorewor
ICAgIHN0YXR1cyA9ICJvcGVuaW5nIGNhY2hlIjsKKyAgICBjYWNoZSA9IGF3YWl0IGNhY2hlcy5v
cGVuKCJ0ZXN0Iik7CisgICAgc3RhdHVzID0gImNyZWF0aW5nIHJlc3BvbnNlIjsKKyAgICB2YXIg
cmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UobmV3IEFycmF5QnVmZmVyKDEyOTQwKSwgeyBzdGF0dXM6
IDIwMCwgc3RhdHVzVGV4dDogIk9LIn0pOworICAgIHN0YXR1cyA9ICJmaWxsaW5nIGNhY2hlIjsK
KyAgICBhd2FpdCBjYWNoZS5wdXQoIi9yZXNvdXJjZXMvc3F1YXJlMTAwLnBuZyIsIHJlc3BvbnNl
KTsKKyAgICBzdGF0dXMgPSAiY2FjaGUgaXMgcmVhZHkiOworfQorCitzZWxmLmFkZEV2ZW50TGlz
dGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmlu
ZGV4T2YoInN0YXR1cyIpICE9PSAtMSkgeworICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcg
UmVzcG9uc2UobnVsbCwge3N0YXR1czogMjAwLCBzdGF0dXNUZXh0OiBzdGF0dXN9KSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFldmVudC5yZXF1ZXN0LnVybC5lbmRzV2l0aCgi
LmZyb21zZXJ2aWNld29ya2VyIikpIHsKKyAgICAgICAgc3RhdGUgPSAidW5rbm93biB1cmwiOwor
ICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UobnVsbCwge3N0YXR1czogNDA0
LCBzdGF0dXNUZXh0OiAiTm90IEZvdW5kIn0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAg
ICBldmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oKCkgPT4geworICAgICAgICBzdGF0dXMg
PSBldmVudC5yZXF1ZXN0LnVybC5zdWJzdHJpbmcoMCwgZXZlbnQucmVxdWVzdC51cmwubGVuZ3Ro
IC0gMTgpOworICAgICAgICByZXR1cm4gY2FjaGVzLm9wZW4oInRlc3QiKS50aGVuKChjYWNoZSkg
PT4geworICAgICAgICAgICAgcmV0dXJuIGNhY2hlLm1hdGNoKGV2ZW50LnJlcXVlc3QudXJsLnN1
YnN0cmluZygwLCBldmVudC5yZXF1ZXN0LnVybC5sZW5ndGggLSAxOCkpOworICAgICAgICB9KTsK
KyAgICB9KSk7Cit9KTsKK3ZhciBwcm9taXNlID0gcHJlcGFyZUNhY2hlKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2Vydmlj
ZS13b3JrZXItY2FjaGUtYXBpLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
YzBiODY5YjM2NjRhNTNkODI3NmRhZGY3OTIyODRlNjBlNmNiMjk4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZp
Y2Utd29ya2VyLWNhY2hlLWFwaS5qcwpAQCAtMCwwICsxLDMxIEBACitmdW5jdGlvbiBkb25lKCkK
K3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gbG9nU3RhdHVzKCkK
K3sKKyAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgic3RhdHVzIik7CisgICAgbG9nKCJT
dGF0dXMgaXMgIiArIHJlc3BvbnNlLnN0YXR1c1RleHQpOworfQorCithc3luYyBmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtl
ci5yZWdpc3RlcigicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanMi
LCB7IH0pOworCisgICAgICAgIGF3YWl0IGxvZ1N0YXR1cygpOworCisgICAgICAgIHZhciByZXNw
b25zZSA9IGF3YWl0IGZldGNoKCIvcmVzb3VyY2VzL3NxdWFyZTEwMC5wbmcuZnJvbXNlcnZpY2V3
b3JrZXIiKTsKKyAgICAgICAgdmFyIGJ1ZmZlciA9ICBhd2FpdCByZXNwb25zZS5hcnJheUJ1ZmZl
cigpOworICAgICAgICBsb2coIlJlc3BvbnNlIGJ1ZmZlciBieXRlIGxlbmd0aCBpcyAiICsgYnVm
ZmVyLmJ5dGVMZW5ndGgpOworCisgICAgICAgIGF3YWl0IGxvZ1N0YXR1cygpOworICAgIH0gY2F0
Y2goZSkgeworICAgICAgICBhd2FpdCBsb2dTdGF0dXMoKTsKKyAgICAgICAgbG9nKCJHb3QgZXhj
ZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVzdCgpOworfQorCit0ZXN0KCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTY4ODlmZTUzZmI0ZTVlODIyNDViODZkMjdjYzU2NGQx
YWM4M2IxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1N0YXR1cyBpcyBjYWNoZSBpcyByZWFkeQorUmVzcG9uc2UgYnVmZmVyIGJ5
dGUgbGVuZ3RoIGlzIDEyOTQwCitTdGF0dXMgaXMgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9yZXNv
dXJjZXMvc3F1YXJlMTAwLnBuZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hl
LWFwaS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDJhNTQwNjE3ZmEwOWVlZWZiOGU2ZDdiYmQ4
ODgxYjNhYTg4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMuaHRtbApAQCAtMCww
ICsxLDggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3N3LXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324699</attachid>
            <date>2017-10-24 12:17:39 -0700</date>
            <delta_ts>2017-10-24 14:16:15 -0700</delta_ts>
            <desc>Making test more stable</desc>
            <filename>bug-178684-20171024121738.patch</filename>
            <type>text/plain</type>
            <size>47495</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhMDhiZDQ4ODk5ZTc5
M2EzY2M0MzRjY2I4ODcyZWQ3MjExNTliZC4uN2NjYTBjODBlYjlhNDg1YzhkYzgyODdmYTMwMGIy
ODFlZmMzOTRhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTEwLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgc2VydmljZSB3
b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMuaHRtbAorCisgICAgICAgIFVwZGF0ZWQgV29y
a2VyTG9hZGVyUHJveHkgc28gdGhhdCBpdCBjYW4gY3JlYXRlIGEgQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbi4KKyAgICAgICAgVXBkYXRlIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24gdG8gdGFr
ZSBiZW5lZml0IG9mIHRoYXQuCisgICAgICAgIFRoaXMgYWxsb3dzIGNyZWF0aW5nIGEgQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbiBiYXNlZCBvbiB0aGUgcGFnZSBmb3IgcmVndWxhciB3b3JrZXJzIGFu
ZCBkaWZmZXJlbnRseSBmb3IgU2VydmljZSBXb3JrZXIgY29udGV4dC4KKworICAgICAgICBBZGRl
ZCBTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyIGFzIGEgY29udGFpbmVyIHRvIFNlcnZpY2VX
b3JrZXJUaHJlYWQuCisgICAgICAgIFRoaXMgY29udGFpbmVyIGlzIGluIHBhcnRpY3VsYXIgcmVz
cG9uc2libGUgdG8gZG8gcHJveHkgZm9yIGxvYWRpbmcgdGFza3MuCisgICAgICAgIFRoaXMgY29u
dGFpbmVyIGltcGxlbWVudHMgY2FjaGUgQVBJIHN1cHBvcnQgZm9yIHNlcnZpY2Ugd29ya2VyIGJ5
IGNyZWF0aW5nIGEgZGVkaWNhdGVkIENhY2hlU3RvcmFnZUNvbm5lY3Rpb24uCisKKyAgICAgICAg
KiBNb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmRvT3Blbik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VD
b25uZWN0aW9uOjpkb1JlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKToKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpX
b3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZXJlZmVyZW5jZSk6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlUmVjb3Jkcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoRGVs
ZXRlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hQdXRPcGVyYXRpb24pOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckxvYWRlclByb3h5Lmg6
CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bik6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCk6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRDb250
YWluZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRD
b250YWluZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
Q29udGFpbmVyOjpTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXI6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2Vy
R2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZENvbnRh
aW5lcjo6cG9zdFRhc2tUb0xvYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VGhyZWFkQ29udGFpbmVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmg6
IEFkZGVkLgorCiAyMDE3LTEwLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBDcmVhdGUgYSBGZXRjaCBldmVudCB3aGVuIFNlcnZpY2VXb3JrZXIgaGFzIHRv
IGhhbmRsZSBhIGZldGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2OWFmMDI5NTVmZWIzNjJiYjA5ODA5MGY3Yjgy
ZThlMmRhZTVkN2MuLmQ0ZTVjNjY2Y2NlNDZhYTk1ZDVjOGQ0OTU4YzJkMGYxNjdjNjRkZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTctMTAtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBzZXJ2aWNlIHdvcmtlciB0byB1c2UgY2Fj
aGUgc3RvcmFnZSBhcGkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3ODY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFBhc3NpbmcgdGhlIFdlYlByZWZlcmVuY2VzIHN0b3JlIG9mIHRoZSBkZWZhdWx0IHBh
Z2UgZ3JvdXAgb2YgdGhlIFdlYlByb2Nlc3NQb29sIHRvIGl0cyBTZXJ2aWNlV29ya2VyIHByb2Nl
c3MuCisgICAgICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB0aGVuIHVzZXMgaXQgdG8g
aW5pdGlhbGl6ZSB0aGUgcHJlZmVyZW5jZXMgYWNjb3JkaW5nbHkuCisgICAgICAgIFBhdGNoIGlz
IGNvdmVyZWQgYnkgbmV3IHRlc3Qgd2hpY2ggaXMgdXNpbmcgY2FjaGUgYXBpIHByZXZpb3VzbHkg
ZGlzYWJsZWQgYW5kIG5vdyBlbmFibGVkIHRocm91Z2ggdGhlIHN0b3JlLgorCisgICAgICAgIE1h
ZGUgdXNlIG9mIHRoZSBuZXcgU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lciBpbiBTZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXIgdG8gZW5hYmxlIGEgY2FjaGUgc3RvcmFnZSBjb25uZWN0aW9u
LgorICAgICAgICBGaXhlZCB0aGUgZGVmYXVsdCBzaXplIG9mIHF1b3RhIGluIFdlYnNpdGVEYXRh
U3RvcmUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Z2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpT
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0U2VydmljZVdvcmtlcik6CisgICAgICAg
IChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oOgor
ICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENv
bm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNy0xMC0yMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDog
IW1fc2VydmljZVdvcmtlck1hbmFnZXIgaW4gV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENv
bm5lY3Rpb24oKSBvbiBBUEkgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NhY2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFi
MjE5YjEyOWFjOWMyM2JjOTBjZTg5NzlhNTc4ZWYxMDBlZWM2YjIuLjA2M2I3MDIwMThmOTNmMDUw
MzE3MmQ1ZTE1MjRmNWYwYzNhN2EyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
OTEsMTIgKzkxLDkgQEAgc3RhdGljIFJlY29yZCBmcm9tQ3Jvc3NUaHJlYWRSZWNvcmREYXRhKENy
b3NzVGhyZWFkUmVjb3JkRGF0YSYmIGRhdGEpCiBSZWY8V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKFdvcmtlckdsb2JhbFNj
b3BlJiBzY29wZSkKIHsKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oc2NvcGUpKTsKLSAgICBjb25uZWN0aW9uLT5tX3Byb3h5
LnBvc3RUYXNrVG9Mb2FkZXIoW3Byb3RlY3RlZENvbm5lY3Rpb24gPSBtYWtlUmVmKGNvbm5lY3Rp
b24uZ2V0KCkpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRDb25uZWN0aW9uID0gY29ubmVjdGlvbi5jb3B5
UmVmKCldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAg
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKLQot
ICAgICAgICBBU1NFUlQoZG9jdW1lbnQucGFnZSgpKTsKLSAgICAgICAgcHJvdGVjdGVkQ29ubmVj
dGlvbi0+bV9tYWluVGhyZWFkQ29ubmVjdGlvbiA9IGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9y
YWdlUHJvdmlkZXIoKS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3VtZW50LnBhZ2Uo
KS0+c2Vzc2lvbklEKCkpOworICAgICAgICBwcm90ZWN0ZWRDb25uZWN0aW9uLT5tX21haW5UaHJl
YWRDb25uZWN0aW9uID0gcHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9wcm94eS5jcmVhdGVDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIGNvbm5lY3Rpb247CiB9CkBA
IC0xMTEsMTIgKzEwOCwxMiBAQCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uKFdvcmtlckdsb2JhbFNjb3BlJiBzYwogV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKQogewogICAg
IGlmIChtX21haW5UaHJlYWRDb25uZWN0aW9uKQotICAgICAgICBtX3Byb3h5LnBvc3RUYXNrVG9M
b2FkZXIoW21haW5UaHJlYWRDb25uZWN0aW9uID0gV1RGTW92ZShtX21haW5UaHJlYWRDb25uZWN0
aW9uKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeyB9KTsKKyAgICAgICAgY2Fs
bE9uTWFpblRocmVhZChbbWFpblRocmVhZENvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fbWFpblRocmVh
ZENvbm5lY3Rpb24pXSgpIG11dGFibGUgeyB9KTsKIH0KIAogdm9pZCBXb3JrZXJDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uOjpkb09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGNhY2hlTmFtZSkKIHsKLSAgICBtX3Byb3h5LnBv
c3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVx
dWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgY2FjaGVOYW1l
ID0gY2FjaGVOYW1lLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0
YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29w
eSgpLCBjYWNoZU5hbWUgPSBjYWNoZU5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAg
ICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJl
YWRDb25uZWN0aW9uKTsKIApAQCAtMTMxLDcgKzEyOCw3IEBAIHZvaWQgV29ya2VyQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6ZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBT
dHJpCiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIHsKLSAgICBt
X3Byb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmll
cl0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
QVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0xNDcsNyArMTQ0LDcgQEAgdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JlbW92ZSh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3QKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG9yaWdpbiwgdWludDY0X3QgdXBkYXRlQ291bnRlcikKIHsKLSAgICBtX3Byb3h5LnBvc3RU
YXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVz
dElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgdXBkYXRlQ291bnRl
cl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZp
ZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgdXBkYXRlQ291bnRlcl0oKSBtdXRh
YmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1f
bWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0xNjgsNyArMTY1LDcgQEAgdm9pZCBXb3JrZXJD
YWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLAogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5j
ZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9h
ZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmll
cl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oKSB7CiAg
ICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJl
YWRDb25uZWN0aW9uKTsKIApAQCAtMTc4LDcgKzE3NSw3IEBAIHZvaWQgV29ya2VyQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6cmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIAogdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkZXJlZmVyZW5jZSh1aW50NjRfdCBjYWNo
ZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oKSB7CiAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsK
IApAQCAtMjEzLDcgKzIxMCw3IEBAIHN0YXRpYyBpbmxpbmUgUmVjb3Jkc09yRXJyb3IgcmVjb3Jk
c09yRXJyb3JGcm9tUmVjb3Jkc0RhdGEoRXhwZWN0ZWQ8VmVjdG9yPENyb3NzCiAKIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29yZHModWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwp
CiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHVybCA9
IHVybC5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgdXJsID0gdXJsLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
ICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAgLTIyOCw3ICsyMjUsNyBA
QCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVSZWNvcmRzKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLAogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBDYWNoZVF1ZXJ5T3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVu
dGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3QgPSByZXF1ZXN0Lmlzb2xhdGVkQ29weSgp
LCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVx
dWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVk
Q29weSgpXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAg
ICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAgLTI0NCw3ICsyNDEsNyBA
QCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRp
b24odWludDY0X3QgcmVxdWVzdElkZW50aQogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb246OmRvQmF0Y2hQdXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzKQogewotICAg
IG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRGF0YSA9
IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29y
ZHNEYXRhID0gcmVjb3Jkc0RhdGFGcm9tUmVjb3JkcyhyZWNvcmRzKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1fbWFpblRocmVh
ZENvbm5lY3Rpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOTM2MGVkZWIxYTgwNzk5YTNhYjY0YjcyNzY0NDA5NGEwYzkx
ZWE3OS4uYmFiMjZiOTAxNTI3MTZlYjNjNzU3ODZlNTkwMmZkNmJkYjEwYTQ1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkz
LDcgKzU5Myw3IEBACiAJCTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJDRjI3
MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCAqLzsgfTsKIAkJMTg4NjA0QjMwRjJF
NjU0QTAwMEI2NDQzIC8qIERPTVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE4ODYwNEIxMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5j
cHAgKi87IH07CiAJCTE4ODYwNEI0MEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTg4NjA0QjIwRjJFNjU0
QTAwMEI2NDQzIC8qIERPTVRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRl
clByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
OEY4MzFCNzBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCAqLzsgfTsKKwkJ
MThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4MDBE
OEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxOTIxMzI3NDExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVN
YXRyaXhFbGVtZW50LmNwcCAqLzsgfTsKIAkJMTkyMTMyNzUxMUMwRTZCQjAwNDU2MjM4IC8qIFNW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxOTIxMzI3MjExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuaCAqLzsgfTsKIAkJMTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNW
R1JlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE5N0IxODBCMTUwNjM0QzAwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0
LmggKi87IH07CkBAIC0xNDk5LDYgKzE0OTksOCBAQAogCQk0MTEwM0FBRDFFMzk3OTEwMDA3NjlG
MTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAv
KiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5oICovOyB9OwogCQk0MTEwM0FBRTFF
Mzk3OTEwMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUFBMUUzOTc5MEEw
MDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwICovOyB9OwogCQk0MTEw
M0FBRTFFMzk3OTEwMDA3NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2Eu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNB
QUExRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cCAqLzsgfTsKKwkJNDExMkI1NDIxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRDb250YWluZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDExMkI1NDExRjlGOUM5QzAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250
YWluZXIuY3BwICovOyB9OworCQk0MTEyQjU0MzFGOUY5Q0EwMDBFNjc4NzUgLyogU2VydmljZVdv
cmtlclRocmVhZENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRDb250YWluZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTIzMDgxQjEzOEM0Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4g
RnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4
MjQ1RTVBMDAxRTlBQkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4
QzQyRkYwMEJDQ0ZDQSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAx
MzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk0MTI5Qzk4QTFGNTg3RkVC
MDA5RDc0MDMgLyogUmVhZGFibGVTdHJlYW1TaW5rLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMjlDOTg3MUY1ODY2MkQwMDlENzQwMyAvKiBSZWFk
YWJsZVN0cmVhbVNpbmsuY3BwICovOyB9OwpAQCAtODc5Nyw2ICs4Nzk5LDggQEAKIAkJNDExMDNB
QTkxRTM5NzkwQTAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1Nv
dXJjZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUFBMUUzOTc5
MEEwMDc2OUYwMyAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDExMDNBQUExRTM5NzkwQTAwNzY5RjE0
IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDExMkI1M0YxRjlGOUM5QjAwRTY3ODc1
IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MTEyQjU0MTFGOUY5QzlDMDBFNjc4NzUgLyogU2VydmljZVdvcmtl
clRocmVhZENvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVs
dENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVm
YXVsdENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVG
NzFBRDgyMzI4MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBS
ZWFkYWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFk
YWJsZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE4NTg2LDYgKzE4NTkwLDggQEAKIAkJCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2Vy
dmljZVdvcmtlckZldGNoLmggKi8sCiAJCQkJNTE3Qzg3MTExRjhFRTcyRjAwRUI4MDc2IC8qIFNl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwICovLAogCQkJCTUxN0M4NzEwMUY4RUU3MkUwMEVCODA3NiAv
KiBTZXJ2aWNlV29ya2VyVGhyZWFkLmggKi8sCisJCQkJNDExMkI1NDExRjlGOUM5QzAwRTY3ODc1
IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuY3BwICovLAorCQkJCTQxMTJCNTNGMUY5
RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmggKi8sCiAJCQkp
OwogCQkJcGF0aCA9IGNvbnRleHQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjk4
NDgsNiArMjk4NTQsNyBAQAogCQkJCTUxN0E1MzI5MUY0QjkwQjkwMERDREMwQSAvKiBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUYxNzU2OTFGM0VC
QzgzMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQkNDRTMwMUY4RjE3OUUwMDZCQTBFRCAvKiBTZXJ2aWNlV29ya2VyVGhy
ZWFkLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTEyQjU0MzFGOUY5Q0EwMDBFNjc4NzUgLyogU2Vy
dmljZVdvcmtlclRocmVhZENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NkMx
RjNFQkM4MzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDZFRjE0MkExRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTEwMDk5RTY0OTIwMDU2RTU4MSAv
KiBTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjk0NSw2ICsz
Mjk1Miw3IEBACiAJCQkJNTE3QTUzMjgxRjRCOTBCOTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGNjQ1QTIxRjRCRjUzQzAw
QjU0REVEIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxQkNDRTJGMUY4RjE3OTUwMDZCQTBFRCAvKiBTZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQxMTJCNTQyMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2
aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2RUYxNDJF
MUY5N0I3RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzMzA5RTBGMDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRl
Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0QjEzMEIwRjhBMDBGNUNEQjEg
LyogU2V0U2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaAppbmRleCBkYWZmZTFmN2M5NzE2NzY5MzgyMDcy
ODY4NThkNzZiNjk3NjM0NTk0Li40YTYzMzc5MmMyMjlhYmFjZDM3YjU2YWIxZWI4MzFjYzk4NjIw
MTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2FkZXJQcm94eS5oCkBAIC0z
NCwyMiArMzQsMjcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgLy8gQSBwcm94eSB0
byB0YWxrIHRvIHRoZSBsb2FkZXIgY29udGV4dC4gTm9ybWFsbHksIHRoZSBkb2N1bWVudCBvbiB0
aGUgbWFpbiB0aHJlYWQKLSAgICAvLyBwcm92aWRlcyBsb2FkaW5nIHNlcnZpY2VzIGZvciB0aGUg
c3Vib3JkaW5hdGUgd29ya2Vycy4gVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgMi13YXkKLSAgICAv
LyBjb21tdW5pY2F0aW9ucyB0byB0aGUgRG9jdW1lbnQgY29udGV4dCBhbmQgYmFjayB0byB0aGUg
d29ya2VyLgotICAgIC8vIE5vdGUgdGhhdCBpbiBtdWx0aS1wcm9jZXNzIGJyb3dzZXJzLCB0aGUg
V29ya2VyIG9iamVjdCBjb250ZXh0IGFuZCB0aGUgRG9jdW1lbnQKLSAgICAvLyBjb250ZXh0IGNh
biBiZSBkaXN0aW5jdC4KLSAgICBjbGFzcyBXb3JrZXJMb2FkZXJQcm94eSB7Ci0gICAgcHVibGlj
OgotICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJMb2FkZXJQcm94eSgpID0gZGVmYXVsdDsKLQotICAg
ICAgICAvLyBQb3N0cyBhIHRhc2sgdG8gdGhlIHRocmVhZCB3aGljaCBydW5zIHRoZSBsb2FkaW5n
IGNvZGUgKG5vcm1hbGx5LCB0aGUgbWFpbiB0aHJlYWQpLgotICAgICAgICB2aXJ0dWFsIHZvaWQg
cG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpID0gMDsKLQot
ICAgICAgICAvLyBQb3N0cyBjYWxsYmFja3MgZnJvbSBsb2FkaW5nIGNvZGUgdG8gdGhlIFdvcmtl
ckdsb2JhbFNjb3BlLiBUaGUgJ21vZGUnIGlzIHVzZWQgdG8gZGlmZmVyZW50aWF0ZQotICAgICAg
ICAvLyBzcGVjaWZpYyBzeW5jaHJvbm91cyBsb2FkaW5nIHJlcXVlc3RzIHNvIHRoZXkgY2FuIGJl
ICduZXN0ZWQnLCBwZXIgc3BlYy4KLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB0YXNr
IHdhcyBwb3N0ZWQgc3VjY2Vzc2Z1bGx5LgotICAgICAgICB2aXJ0dWFsIGJvb2wgcG9zdFRhc2tG
b3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYs
IGNvbnN0IFN0cmluZyYgbW9kZSkgPSAwOwotICAgIH07CitjbGFzcyBDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOworCisvLyBBIHByb3h5IHRvIHRhbGsgdG8gdGhlIGxvYWRlciBjb250ZXh0LiBOb3Jt
YWxseSwgdGhlIGRvY3VtZW50IG9uIHRoZSBtYWluIHRocmVhZAorLy8gcHJvdmlkZXMgbG9hZGlu
ZyBzZXJ2aWNlcyBmb3IgdGhlIHN1Ym9yZGluYXRlIHdvcmtlcnMuIFRoaXMgaW50ZXJmYWNlIHBy
b3ZpZGVzIDItd2F5CisvLyBjb21tdW5pY2F0aW9ucyB0byB0aGUgRG9jdW1lbnQgY29udGV4dCBh
bmQgYmFjayB0byB0aGUgd29ya2VyLgorLy8gTm90ZSB0aGF0IGluIG11bHRpLXByb2Nlc3MgYnJv
d3NlcnMsIHRoZSBXb3JrZXIgb2JqZWN0IGNvbnRleHQgYW5kIHRoZSBEb2N1bWVudAorLy8gY29u
dGV4dCBjYW4gYmUgZGlzdGluY3QuCitjbGFzcyBXb3JrZXJMb2FkZXJQcm94eSB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+V29ya2VyTG9hZGVyUHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBD
cmVhdGVzIGEgY2FjaGUgc3RvcmFnZSBjb25uZWN0aW9uIHRvIGJlIHVzZWQgb24gdGhlIG1haW4g
dGhyZWFkLiBNZXRob2QgbXVzdCBiZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIHZp
cnR1YWwgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24oKSA9IDA7CisKKyAgICAvLyBQb3N0cyBhIHRhc2sgdG8gdGhlIHRocmVhZCB3aGljaCBy
dW5zIHRoZSBsb2FkaW5nIGNvZGUgKG5vcm1hbGx5LCB0aGUgbWFpbiB0aHJlYWQpLgorICAgIHZp
cnR1YWwgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sm
JikgPSAwOworCisgICAgLy8gUG9zdHMgY2FsbGJhY2tzIGZyb20gbG9hZGluZyBjb2RlIHRvIHRo
ZSBXb3JrZXJHbG9iYWxTY29wZS4gVGhlICdtb2RlJyBpcyB1c2VkIHRvIGRpZmZlcmVudGlhdGUK
KyAgICAvLyBzcGVjaWZpYyBzeW5jaHJvbm91cyBsb2FkaW5nIHJlcXVlc3RzIHNvIHRoZXkgY2Fu
IGJlICduZXN0ZWQnLCBwZXIgc3BlYy4KKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHRhc2sg
d2FzIHBvc3RlZCBzdWNjZXNzZnVsbHkuCisgICAgdmlydHVhbCBib29sIHBvc3RUYXNrRm9yTW9k
ZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25z
dCBTdHJpbmcmIG1vZGUpID0gMDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNjg1
YzU0ZjdhZjdkYWIxMjM0YzMzZmMzODc2MTJlYTgxZjNhZmY4OS4uZTg2YTNhMmI5MWEzMGU2ZmY5
ZmE1NmRjZjEzNDRkNGE2OTkzZjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogCisjaW5jbHVkZSAiQ2Fj
aGVTdG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIK
ICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZS5oIgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJX
b3JrZXIuaCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JQcm94eS5oIgpAQCAtMTMzLDYgKzEz
NSwxMyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza1RvTG9hZGVyKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC0+cG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7CiB9CiAKK1JlZjxDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uPiBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9
IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICByZXR1
cm4gZG9jdW1lbnQucGFnZSgpLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24oZG9jdW1lbnQucGFnZSgpLT5zZXNzaW9uSUQoKSk7Cit9CisKIGJvb2wg
V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkK
IHsKICAgICBpZiAobV9hc2tlZFRvVGVybWluYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDhiMWY4ZjgwMGY1NTE3YTY1Y2YwY2Q5M2Vl
MWMyNDgzNTExNTcxMzEuLmE2NThiZTlmZWQ0NmExNDEyNTIxNGU2NDBmYzlkNWM1NmMxYzk5ZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAg
LTY3LDYgKzY3LDcgQEAgcHJpdmF0ZToKICAgICAvLyByZXF1ZXN0cyBhbmQgdG8gc2VuZCBjYWxs
YmFja3MgYmFjayB0byBXb3JrZXJHbG9iYWxTY29wZS4KICAgICB2b2lkIHBvc3RUYXNrVG9Mb2Fk
ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbDsKICAgICBib29sIHBvc3RU
YXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpIGZpbmFsOworICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uPiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICB2b2lk
IHdvcmtlclRocmVhZENyZWF0ZWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkJik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKaW5kZXggMzgxOGU5OTExYWQzMjdhODQ4MWI2ZGZhMjk4NDM4ZDgx
MmJjMzY3YS4uMWMwMjdlOWMwZDQ5NjI0MjllODY2NTk5MjdlZWE5YzI1OTA4NjI0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIKQEAgLTQy
LDcgKzQzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1jbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyTG9hZGVyUHJv
eHksIHB1YmxpYyBXb3JrZXJPYmplY3RQcm94eSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkgOiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkmIHNoYXJlZER1bW15UHJveHkoKQogICAgIHsKQEAgLTUx
LDggKzUyLDYgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHBvc3RUYXNr
VG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbCB7IH07Ci0gICAg
Ym9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH07CiAg
ICAgdm9pZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiwgaW50LCBp
bnQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9QYWdl
SW5zcGVjdG9yKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHdvcmtlckdsb2Jh
bFNjb3BlRGVzdHJveWVkKCkgZmluYWwgeyB9OwpAQCAtNjksOCArNjgsOCBAQCBwcml2YXRlOgog
Ly8gRklYTUU6IFVzZSBhIHZhbGlkIHVzZXIgYWdlbnQKIC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVu
dGltZSBmbGFncwogCi1TZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29u
dGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklEKQotICAgIDogV29ya2VyVGhyZWFkKGRhdGEu
c2NyaXB0VVJMLCBkYXRhLndvcmtlcklELCBBU0NJSUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIp
LCBkYXRhLnNjcmlwdCwgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWREdW1teVByb3h5
KCksIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkRHVtbXlQcm94eSgpLCBXb3JrZXJU
aHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzIHsgfSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdl
dCgpLCBNb25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgbnVsbHB0ciwgSlNDOjpSdW50aW1l
RmxhZ3M6OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkp
CitTZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKHVpbnQ2NF90IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRh
dGEsIFBBTDo6U2Vzc2lvbklELCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHkpCisgICAg
OiBXb3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsIGRhdGEud29ya2VySUQsIEFTQ0lJTGl0ZXJh
bCgiV29ya2VyVXNlckFnZW50IiksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgU2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzaGFyZWREdW1teVByb3h5KCksIFdvcmtlclRocmVhZFN0YXJ0TW9k
ZTo6Tm9ybWFsLCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxz
ZSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShkYXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25p
Y1RpbWU6Om5vdygpLCBudWxscHRyLCBudWxscHRyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRl
QWxsRW5hYmxlZCgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAsIG1fc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAg
LCBtX2RhdGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHko
U2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWREdW1teVByb3h5KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmgKaW5kZXggOTU0ZGFmNjA4MmNjZWY2YmQ5MzU4MTJhNzA3Y2RlZTBiZjAzYzli
Yi4uMzhjODBhM2U0ZWQyOTgyZjczN2UyNzNlYjNkZjhhNjUzMGMzYjU1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K2NsYXNzIENhY2hlU3RvcmFnZVByb3ZpZGVyOwogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5
UmVzcG9uc2VIZWFkZXJzOwogY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiBzdHJ1Y3QgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhOwpAQCAtNTUsNyArNTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBydW5FdmVudExvb3AoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9S
VCBTZXJ2aWNlV29ya2VyVGhyZWFkKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNz
aW9uSUQsIFdvcmtlckxvYWRlclByb3h5Jik7CiAKICAgICB1aW50NjRfdCBtX3NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyOwogICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBtX2RhdGE7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUz
Mzc5NTUyZmNjNDQzYmE4OWI4Y2VmOWVkYTZlNmI4ODM4MmVlN2UKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkQ29udGFpbmVyLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWluZXIuaCIKKwor
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9y
YWdlUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U2Vydmlj
ZVdvcmtlclRocmVhZENvbnRhaW5lcj4gU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcjo6Y3Jl
YXRlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVByb3ZpZGVyKQoreworICAgIGF1dG8g
c2VydmljZVdvcmtlciA9IGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5l
ciB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLCBzZXNzaW9uSUQsIGNhY2hlU3Rv
cmFnZVByb3ZpZGVyIH0pOworICAgIHNlcnZpY2VXb3JrZXItPm1fc2VydmljZVdvcmtlclRocmVh
ZC0+c3RhcnQoKTsKKyAgICByZXR1cm4gc2VydmljZVdvcmtlcjsKK30KKworU2VydmljZVdvcmtl
clRocmVhZENvbnRhaW5lcjo6U2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcih1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNv
bnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENhY2hlU3RvcmFnZVBy
b3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlcikKKyAgICA6IG1fc2VydmljZVdvcmtlclRocmVh
ZChTZXJ2aWNlV29ya2VyVGhyZWFkOjpjcmVhdGUoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IGRhdGEsIHNlc3Npb25JRCwgKnRoaXMpKQorICAgICwgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcihj
YWNoZVN0b3JhZ2VQcm92aWRlcikKKyAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKK3sKKyAg
ICBtX3NlcnZpY2VXb3JrZXJUaHJlYWQtPnN0YXJ0KCk7Cit9CisKK2Jvb2wgU2VydmljZVdvcmtl
clRocmVhZENvbnRhaW5lcjo6cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQorewor
ICAgIC8vIEZJWE1FOiBIYW5kbGUgdGVybWluYXRpb24gY2FzZS4KKyAgICBtX3NlcnZpY2VXb3Jr
ZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5l
cjo6cG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpCit7Cisg
ICAgLy8gSW1wbGVtZW50IHRoaXMuCit9CisKK1JlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBT
ZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyOjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9jYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKQorICAgICAgICBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24gPSBtX2NhY2hl
U3RvcmFnZVByb3ZpZGVyLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24obV9zZXNzaW9uSUQp
OworICAgIHJldHVybiAqbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQxZjA4ZmMzZDQz
OTI4MTlmNTMyOWJjMjgzYzBmNDFhODdlN2E4ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRDb250YWlu
ZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAi
U2VydmljZVdvcmtlclRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCisj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2Fj
aGVTdG9yYWdlUHJvdmlkZXI7CitjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE7CisKK2NsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWRDb250YWlu
ZXIgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VydmljZVdvcmtlclRocmVh
ZENvbnRhaW5lcj4sIHB1YmxpYyBXb3JrZXJMb2FkZXJQcm94eSB7CitwdWJsaWM6CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyPiBjcmVh
dGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOwor
CisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtl
clRocmVhZC0+aWRlbnRpZmllcigpOyB9CisgICAgU2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFk
KCkgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyVGhyZWFkLmdldCgpOyB9CisKK3ByaXZhdGU6Cisg
ICAgU2VydmljZVdvcmtlclRocmVhZENvbnRhaW5lcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9u
SUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJik7CisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dv
cmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3Ry
aW5nJiBtb2RlKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbDsKKyAgICBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlv
bj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFsOworCisgICAgUmVmPFNlcnZp
Y2VXb3JrZXJUaHJlYWQ+IG1fc2VydmljZVdvcmtlclRocmVhZDsKKyAgICBDYWNoZVN0b3JhZ2VQ
cm92aWRlciYgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKKyAgICBSZWZQdHI8Q2FjaGVTdG9yYWdl
Q29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOworICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKaW5kZXggMzNiNzQ5MzZkZDlhNGNmYjRhZmNjYTdhMTIxNGRhMTNlYWJkYTY1YS4u
OTcyMjZhZGQ5Mzc0YWQ5MzkyNzIyYTRhYTkxOTM3ZGI1MmJhYThjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbihTdG9yYWdl
UHJvY2Vzc1Byb3h5JiBwcm94CiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZSA9IEFQSTo6V2Vi
c2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLnB0cigpOwogICAgIGF1dG8mIG5ld1By
b2Nlc3MgPSBjcmVhdGVOZXdXZWJQcm9jZXNzKG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURh
dGFTdG9yZSgpKTsKICAgICBtX3dvcmtlckNvbnRleHRQcm9jZXNzID0gJm5ld1Byb2Nlc3M7Ci0g
ICAgbV93b3JrZXJDb250ZXh0UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2V0
V29ya2VyQ29udGV4dENvbm5lY3Rpb24oKSwgMCk7CisgICAgbV93b3JrZXJDb250ZXh0UHJvY2Vz
cy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24o
bV9kZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnN0b3JlKCkpLCAwKTsKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6ZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNv
bnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBkZDBlYzky
OWVkZWEwNWNjNjZmMTRmOTBlZDBhMGQ3ZTdhNWMwODUxLi5mZTZlODMzOWUzNmRiODcwYzRjMDg0
OWI2NGI2YTUwZTRjMWNmZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02OCw5ICs2OCwxMSBAQCBlbnVt
IGNsYXNzIFNob3VsZENsZWFyRmlyc3QgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYnNpdGVEYXRh
U3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJzaXRlRGF0YVN0b3JlPiwgcHVibGljIFdlYlBy
b2Nlc3NMaWZldGltZU9ic2VydmVyLCBwdWJsaWMgSWRlbnRpZmllZDxXZWJzaXRlRGF0YVN0b3Jl
PiAgewogcHVibGljOgorICAgIGNvbnN0ZXhwciBzdGF0aWMgdWludDY0X3QgZGVmYXVsdENhY2hl
U3RvcmFnZVBlck9yaWdpblF1b3RhID0gMjAgKiAxMDI0ICogMTAyNDsKKwogICAgIHN0cnVjdCBD
b25maWd1cmF0aW9uIHsKICAgICAgICAgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeTsKLSAg
ICAgICAgdWludDY0X3QgY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7CisgICAgICAgIHVpbnQ2
NF90IGNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhIHsgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9y
aWdpblF1b3RhIH07CiAgICAgICAgIFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CiAgICAg
ICAgIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5OwogICAgICAgICBTdHJpbmcgYXBw
bGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZTsKQEAgLTg4LDggKzkwLDYgQEAg
cHVibGljOgogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3Vy
YXRpb24sIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7
CiAKLSAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90IGRlZmF1bHRDYWNoZVN0b3JhZ2VQZXJP
cmlnaW5RdW90YSA9IDIwICogMTAyNCAqIDEwMjQ7Ci0KICAgICBib29sIGlzUGVyc2lzdGVudCgp
IGNvbnN0IHsgcmV0dXJuICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9CiAgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggMGRlZjM1NGMzY2NlYWQ3N2I5ZTFlZTQ0
ODVhY2I2OTQyYzRjZGI1NC4uYTlhM2Q0YTQwMmNmNjE2NWY3MGJkZTdlNDA5YmU1ODdhNTQxOWU4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0zMCwxMCArMzAsMTUgQEAK
IAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2Vz
LmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNw
b25zZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKQEAgLTQxLDMx
ICs0Niw0MSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKK1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6U2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYgc3RvcmUpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFdURk1v
dmUoY29ubmVjdGlvbikpCit7CisgICAgdXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUpOworfQorCit2
b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDYWNoZUFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpjYWNoZUFQSUVuYWJsZWRLZXkoKSkpOworICAgIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RmV0Y2hBUElFbmFibGVk
KHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElFbmFi
bGVkS2V5KCkpKTsKK30KKwogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0
U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQogewogICAgIC8vIEZJWE1FOiBQcm92aWRl
IGEgc2Vuc2ljYWwgc2Vzc2lvbiBJRC4KLSAgICBhdXRvIHRocmVhZCA9IFNlcnZpY2VXb3JrZXJU
aHJlYWQ6OmNyZWF0ZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0YSwgU2Vzc2lvbklE
OjpkZWZhdWx0U2Vzc2lvbklEKCkpOwotICAgIGF1dG8gdGhyZWFkSWRlbnRpZmllciA9IHRocmVh
ZC0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gcmVzdWx0ID0gbV93b3JrZXJUaHJlYWRNYXAuYWRk
KHRocmVhZElkZW50aWZpZXIsIFdURk1vdmUodGhyZWFkKSk7Ci0gICAgQVNTRVJUKHJlc3VsdC5p
c05ld0VudHJ5KTsKLQotICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPnN0YXJ0KCk7CisgICAg
YXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyID0gU2VydmljZVdvcmtlclRocmVhZENv
bnRhaW5lcjo6Y3JlYXRlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLCBTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9y
YWdlUHJvdmlkZXIoKSk7CisgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHNlcnZp
Y2VXb3JrZXJUaHJlYWRDb250YWluZXItPmlkZW50aWZpZXIoKTsKKyAgICBhdXRvIHJlc3VsdCA9
IG1fd29ya2VyTWFwLmFkZChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGTW92ZShzZXJ2aWNl
V29ya2VyVGhyZWFkQ29udGFpbmVyKSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3Vs
dC5pc05ld0VudHJ5KTsKIAogICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGV4dCBwcm9jZXNz
IFBJRDogJWkgc3RhcnRlZCB3b3JrZXIgdGhyZWFkICVzXG4iLCBnZXRwaWQoKSwgZGF0YS53b3Jr
ZXJJRC51dGY4KCkuZGF0YSgpKTsKIAotICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpTZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0
ZWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGRhdGEucmVnaXN0cmF0aW9uS2V5LCB0aHJl
YWRJZGVudGlmaWVyLCBkYXRhLndvcmtlcklEKSwgMCk7CisgICAgbV9jb25uZWN0aW9uVG9TdG9y
YWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OlNlcnZpY2VXb3JrZXJD
b250ZXh0U3RhcnRlZChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0YS5yZWdpc3RyYXRp
b25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBkYXRhLndvcmtlcklEKSwgMCk7CiB9CiAK
IHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpzdGFydEZldGNoKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2
NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBG
ZXRjaE9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZCA9
IG1fd29ya2VyVGhyZWFkTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0gICAgaWYg
KCFzZXJ2aWNlV29ya2VyVGhyZWFkKSB7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyID0gbV93b3Jr
ZXJNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3Jr
ZXIpIHsKICAgICAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6U3RvcmFnZVByb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoKHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBmZXRjaElkZW50aWZpZXIpLCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y3JlYXRl
KG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MuY29weVJlZigpLCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKLSAgICBzZXJ2aWNlV29ya2VyVGhyZWFkLT5w
b3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShv
cHRpb25zKSk7CisgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9zdEZldGNoVGFzayhXVEZN
b3ZlKGNsaWVudCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCmluZGV4IDhk
MjAwYzBmMzQwNWQ0MGRkNzMzYzVkMzliN2I4NTc0Yjg0ZmJmMmYuLjdlNWYzNTJkMzc2M2FhZDRh
NjQzOWYxMTM4YTU1Nzk5Zjc4Yzc2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oCkBA
IC0yOSw3ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVGhyZWFkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVGhyZWFkQ29udGFpbmVyLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzksMjIgKzM5
LDIyIEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiB9CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgeworc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiAKIGNsYXNzIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlciA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyKFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9j
ZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgewotICAgIH0KKyAgICBTZXJ2aWNlV29ya2Vy
Q29udGV4dE1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVByZWZl
cmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKKwogICAgIHZvaWQgc3RhcnRTZXJ2
aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsKICAgICB2b2lkIHN0YXJ0RmV0Y2godWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmll
ciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwotICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZlB0cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkPj4gbV93b3JrZXJUaHJlYWRNYXA7
CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWRD
b250YWluZXI+PiBtX3dvcmtlck1hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDFkZWY3MWMyYTA5YTlmNjg4
NmQxYTBkMzAzNWMwOWQ3MmNhMjY5YmEuLjY2NTFiNzk2YTQwY2Y3ZWRkNDA4Mzc2ZGZmNmEzOTM2
NTdlMmZhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE2
NDAsNyArMTY0MCw3IEBAIExpYldlYlJUQ05ldHdvcmsmIFdlYlByb2Nlc3M6OmxpYldlYlJUQ05l
dHdvcmsoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi12b2lkIFdlYlBy
b2Nlc3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKCkKK3ZvaWQgV2ViUHJvY2Vzczo6Z2V0
V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUp
CiB7CiAgICAgQVNTRVJUKCFtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyKTsKIApAQCAtMTY2NCw3ICsx
NjY0LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigpCiAK
ICAgICBhdXRvIHdvcmtlckNvbnRleHRDb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjcmVh
dGVTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgd29y
a2VyQ29udGV4dENvbm5lY3Rpb24tPm9wZW4oKTsKLSAgICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2Vy
ID0gIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcihXVEZNb3ZlKHdvcmtlckNvbnRleHRDb25u
ZWN0aW9uKSk7CisgICAgbV9zZXJ2aWNlV29ya2VyTWFuYWdlciA9ICBTZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXIoV1RGTW92ZSh3b3JrZXJDb250ZXh0Q29ubmVjdGlvbiksIHN0b3JlKTsKICAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEdldFdvcmtlckNvbnRleHRDb25uZWN0aW9u
KGNvbm5lY3Rpb25DbGllbnRQb3J0KSwgMCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IGRhMWE1MjZjM2RiMzYwNGRjMzY4NTJiNGIyZGZhNDM3MDYy
ZTBkMzAuLjUwN2IzZDRkMzU3MzMzNjE3MGQwNmM1Y2JjZjgzMzdjMmVlMTJkNzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjk5LDcgKzI5OSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzZXROZXR3b3JrUHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0
d29ya1Byb3h5U2V0dGluZ3MmKTsKICNlbmRpZgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LSAgICB2b2lkIGdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKCk7CisgICAgdm9pZCBnZXRXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvbihjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CiAjZW5kaWYK
IAogICAgIHZvaWQgcmVsZWFzZVBhZ2VDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA2MzdlNmYyOGQ2MGFlMDAxZWE0ZWU3
ZjU5NTViYzg2Y2ZhMTcwZDViLi45NjA4OTFmMzcwNGQ5MmViNTMyNTczY2YxZGY1MzkwOTBlMjUy
OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtMTE1LDYgKzExNSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgR2V0V29y
a2VyQ29udGV4dENvbm5lY3Rpb24oKQorICAgIEdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKHN0
cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUpCiAjZW5kaWYKIH0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA5Y2Q4YTZjYzNjMThhODYwNTlkYTJiYTg3NDUyMGQzOTZjNjgxYjNiLi5mMjA2YmMzMGE1Nzg4
NzkyOTIwN2UzNjE1YjdjMDU5N2I3ZDU4NzIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTct
MTAtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJs
ZSBzZXJ2aWNlIHdvcmtlciB0byB1c2UgY2FjaGUgc3RvcmFnZSBhcGkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanM6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNl
LXdvcmtlci1jYWNoZS1hcGkuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2Vy
LWNhY2hlLWFwaS5odHRwcy5odG1sOiBBZGRlZC4KKwogMjAxNy0xMC0yMyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTXVsdGlwbGUgaW1wb3J0ZWQgbGF5b3V0
IHRlc3RzIGFyZSBjcmFzaGluZyBhbmQgdGltaW5nIG91dC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1j
YWNoZS1hcGktd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjZmMTllMTRmYmExODA2MTlkOTlhYTRjZDg3Zjk0ZDRkYWQ4YTIxNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9z
ZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2VyLmpzCkBAIC0wLDAgKzEsMzggQEAKK3ZhciBz
dGF0dXMgPSAibm8gc3RhdHVzIjsKK3ZhciBjYWNoZTsKK3ZhciB3b3JrZXIgPSBzZWxmOworCith
c3luYyBmdW5jdGlvbiBwcmVwYXJlQ2FjaGUoKQoreworICAgIHN0YXR1cyA9ICJvcGVuaW5nIGNh
Y2hlIjsKKyAgICBjYWNoZSA9IGF3YWl0IGNhY2hlcy5vcGVuKCJ0ZXN0Iik7CisgICAgc3RhdHVz
ID0gImNyZWF0aW5nIHJlc3BvbnNlIjsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uo
bmV3IEFycmF5QnVmZmVyKDEyOTQwKSwgeyBzdGF0dXM6IDIwMCwgc3RhdHVzVGV4dDogIk9LIn0p
OworICAgIHN0YXR1cyA9ICJmaWxsaW5nIGNhY2hlIjsKKyAgICBhd2FpdCBjYWNoZS5wdXQoIi9y
ZXNvdXJjZXMvc3F1YXJlMTAwLnBuZyIsIHJlc3BvbnNlKTsKKyAgICBzdGF0dXMgPSAiY2FjaGUg
aXMgcmVhZHkiOworfQorCitmdW5jdGlvbiBzdGF0dXNSZXNwb25zZSgpCit7CisgICAgcmV0dXJu
IG5ldyBSZXNwb25zZShudWxsLCB7c3RhdHVzOiAyMDAsIHN0YXR1c1RleHQ6IHN0YXR1c30pOwor
fQorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7CisgICAgaWYg
KGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoInN0YXR1cyIpICE9PSAtMSkgeworICAgICAgICBl
dmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oc3RhdHVzUmVzcG9uc2UsIHN0YXR1c1Jlc3Bv
bnNlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFldmVudC5yZXF1ZXN0LnVy
bC5lbmRzV2l0aCgiLmZyb21zZXJ2aWNld29ya2VyIikpIHsKKyAgICAgICAgc3RhdGUgPSAidW5r
bm93biB1cmwiOworICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2UobnVsbCwg
e3N0YXR1czogNDA0LCBzdGF0dXNUZXh0OiAiTm90IEZvdW5kIn0pKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBldmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oKCkgPT4geworICAg
ICAgICBzdGF0dXMgPSBldmVudC5yZXF1ZXN0LnVybC5zdWJzdHJpbmcoMCwgZXZlbnQucmVxdWVz
dC51cmwubGVuZ3RoIC0gMTgpOworICAgICAgICByZXR1cm4gY2FjaGVzLm9wZW4oInRlc3QiKS50
aGVuKChjYWNoZSkgPT4geworICAgICAgICAgICAgcmV0dXJuIGNhY2hlLm1hdGNoKGV2ZW50LnJl
cXVlc3QudXJsLnN1YnN0cmluZygwLCBldmVudC5yZXF1ZXN0LnVybC5sZW5ndGggLSAxOCkpOwor
ICAgICAgICB9KTsKKyAgICB9KSk7Cit9KTsKK3ZhciBwcm9taXNlID0gcHJlcGFyZUNhY2hlKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mYzBiODY5YjM2NjRhNTNkODI3NmRhZGY3OTIyODRlNjBlNmNiMjk4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qcwpAQCAtMCwwICsxLDMxIEBACitmdW5j
dGlvbiBkb25lKCkKK3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
bG9nU3RhdHVzKCkKK3sKKyAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgic3RhdHVzIik7
CisgICAgbG9nKCJTdGF0dXMgaXMgIiArIHJlc3BvbnNlLnN0YXR1c1RleHQpOworfQorCithc3lu
YyBmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFw
aS13b3JrZXIuanMiLCB7IH0pOworCisgICAgICAgIGF3YWl0IGxvZ1N0YXR1cygpOworCisgICAg
ICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGZldGNoKCIvcmVzb3VyY2VzL3NxdWFyZTEwMC5wbmcu
ZnJvbXNlcnZpY2V3b3JrZXIiKTsKKyAgICAgICAgdmFyIGJ1ZmZlciA9ICBhd2FpdCByZXNwb25z
ZS5hcnJheUJ1ZmZlcigpOworICAgICAgICBsb2coIlJlc3BvbnNlIGJ1ZmZlciBieXRlIGxlbmd0
aCBpcyAiICsgYnVmZmVyLmJ5dGVMZW5ndGgpOworCisgICAgICAgIGF3YWl0IGxvZ1N0YXR1cygp
OworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBhd2FpdCBsb2dTdGF0dXMoKTsKKyAgICAgICAg
bG9nKCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVzdCgpOwor
fQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUt
YXBpLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTY4ODlmZTUzZmI0ZTVlODIyNDVi
ODZkMjdjYzU2NGQxYWM4M2IxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1N0YXR1cyBpcyBjYWNoZSBpcyByZWFkeQorUmVzcG9u
c2UgYnVmZmVyIGJ5dGUgbGVuZ3RoIGlzIDEyOTQwCitTdGF0dXMgaXMgaHR0cHM6Ly8xMjcuMC4w
LjE6ODQ0My9yZXNvdXJjZXMvc3F1YXJlMTAwLnBuZworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWNhY2hlLWFwaS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDJhNTQwNjE3ZmEwOWVl
ZWZiOGU2ZDdiYmQ4ODgxYjNhYTg4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMu
aHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324719</attachid>
            <date>2017-10-24 14:16:16 -0700</date>
            <delta_ts>2017-10-24 14:28:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-178684-20171024141615.patch</filename>
            <type>text/plain</type>
            <size>47273</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzODM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTFhMDhiZDQ4ODk5ZTc5
M2EzY2M0MzRjY2I4ODcyZWQ3MjExNTliZC4uYzAyMWI4ODc4NzQ0Y2ZhYWFkYzU1OGEzM2ZmZDRi
ZTg2OTViOTRjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTEwLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgc2VydmljZSB3
b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFk
eSBFaWRzb24uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwKKworICAgICAgICBVcGRhdGVkIFdvcmtl
ckxvYWRlclByb3h5IHNvIHRoYXQgaXQgY2FuIGNyZWF0ZSBhIENhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uCisgICAgICAgIFVwZGF0ZSBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHRvIHRha2Ug
YmVuZWZpdCBvZiB0aGF0LgorICAgICAgICBUaGlzIGFsbG93cyBjcmVhdGluZyBhIENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24gYmFzZWQgb24gdGhlIHBhZ2UgZm9yIHJlZ3VsYXIgd29ya2VycyBhbmQg
ZGlmZmVyZW50bHkgZm9yIFNlcnZpY2UgV29ya2VyIGNvbnRleHQuCisKKyAgICAgICAgQWRkZWQg
U2VydmljZVdvcmtlclRocmVhZFByb3h5IGFzIGEgcHJveHkgdG8gU2VydmljZVdvcmtlclRocmVh
ZC4KKyAgICAgICAgSXQgaXMgaW4gcGFydGljdWxhciByZXNwb25zaWJsZSB0byBkbyBwcm94eSBm
b3IgbG9hZGluZyB0YXNrcy4KKyAgICAgICAgSXQgaW1wbGVtZW50cyBjYWNoZSBBUEkgc3VwcG9y
dCBmb3Igc2VydmljZSB3b3JrZXIgYnkgY3JlYXRpbmcgYSBkZWRpY2F0ZWQgQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9PcGVuKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVDYWNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmVmZXJlbmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRlcmVm
ZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OmRvUmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9CYXRjaFB1dE9wZXJhdGlvbik6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyTG9hZGVyUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpjcmVh
dGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFBy
b3h5Ojpwb3N0VGFza1RvTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6IEFkZGVkLgor
CiAyMDE3LTEwLTIzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmVhdGUgYSBGZXRjaCBldmVudCB3aGVuIFNlcnZpY2VXb3JrZXIgaGFzIHRvIGhhbmRsZSBh
IGZldGNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGI2OWFmMDI5NTVmZWIzNjJiYjA5ODA5MGY3YjgyZThlMmRhZTVk
N2MuLjJjMGU0NTM0NGM5ODQyNzZiN2U5MGI3YTk1ZmUwNzg4MTUxZjM2Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzIgQEAKKzIwMTctMTAtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIEVuYWJsZSBzZXJ2aWNlIHdvcmtlciB0byB1c2UgY2FjaGUgc3RvcmFn
ZSBhcGkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
ODY4NAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICBQYXNz
aW5nIHRoZSBXZWJQcmVmZXJlbmNlcyBzdG9yZSBvZiB0aGUgZGVmYXVsdCBwYWdlIGdyb3VwIG9m
IHRoZSBXZWJQcm9jZXNzUG9vbCB0byBpdHMgU2VydmljZVdvcmtlciBwcm9jZXNzLgorICAgICAg
ICBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIgdGhlbiB1c2VzIGl0IHRvIGluaXRpYWxpemUg
dGhlIHByZWZlcmVuY2VzIGFjY29yZGluZ2x5LgorICAgICAgICBQYXRjaCBpcyBjb3ZlcmVkIGJ5
IG5ldyB0ZXN0IHdoaWNoIGlzIHVzaW5nIGNhY2hlIGFwaSBwcmV2aW91c2x5IGRpc2FibGVkIGFu
ZCBub3cgZW5hYmxlZCB0aHJvdWdoIHRoZSBzdG9yZS4KKworICAgICAgICBNYWRlIHVzZSBvZiB0
aGUgbmV3IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSBpbiBTZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIgdG8gZW5hYmxlIGEgY2FjaGUgc3RvcmFnZSBjb25uZWN0aW9uLgorICAgICAgICBGaXhl
ZCB0aGUgZGVmYXVsdCBzaXplIG9mIHF1b3RhIGluIFdlYnNpdGVEYXRhU3RvcmUuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6Z2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
cjo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXI6OnN0YXJ0U2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJLaXQ6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0
OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
cik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNy0xMC0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogIW1fc2VydmljZVdvcmtl
ck1hbmFnZXIgaW4gV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oKSBvbiBB
UEkgdGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2Vy
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hl
L1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDFiMjE5YjEyOWFjOWMyM2Jj
OTBjZTg5NzlhNTc4ZWYxMDBlZWM2YjIuLjA2M2I3MDIwMThmOTNmMDUwMzE3MmQ1ZTE1MjRmNWYw
YzNhN2EyODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV29ya2Vy
Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtOTEsMTIgKzkxLDkgQEAg
c3RhdGljIFJlY29yZCBmcm9tQ3Jvc3NUaHJlYWRSZWNvcmREYXRhKENyb3NzVGhyZWFkUmVjb3Jk
RGF0YSYmIGRhdGEpCiBSZWY8V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4gV29ya2VyQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlKFdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSkKIHsK
ICAgICBhdXRvIGNvbm5lY3Rpb24gPSBhZG9wdFJlZigqbmV3IFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24oc2NvcGUpKTsKLSAgICBjb25uZWN0aW9uLT5tX3Byb3h5LnBvc3RUYXNrVG9Mb2Fk
ZXIoW3Byb3RlY3RlZENvbm5lY3Rpb24gPSBtYWtlUmVmKGNvbm5lY3Rpb24uZ2V0KCkpXShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFtwcm90ZWN0ZWRDb25uZWN0aW9uID0gY29ubmVjdGlvbi5jb3B5UmVmKCldKCkgbXV0YWJs
ZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgICAgIERvY3VtZW50JiBk
b2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKLQotICAgICAgICBBU1NFUlQo
ZG9jdW1lbnQucGFnZSgpKTsKLSAgICAgICAgcHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9tYWluVGhy
ZWFkQ29ubmVjdGlvbiA9IGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5j
cmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3VtZW50LnBhZ2UoKS0+c2Vzc2lvbklEKCkp
OworICAgICAgICBwcm90ZWN0ZWRDb25uZWN0aW9uLT5tX21haW5UaHJlYWRDb25uZWN0aW9uID0g
cHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9wcm94eS5jcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
KCk7CiAgICAgfSk7CiAgICAgcmV0dXJuIGNvbm5lY3Rpb247CiB9CkBAIC0xMTEsMTIgKzEwOCwx
MiBAQCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uKFdvcmtlckdsb2JhbFNjb3BlJiBzYwogV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlv
bjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKQogewogICAgIGlmIChtX21haW5UaHJl
YWRDb25uZWN0aW9uKQotICAgICAgICBtX3Byb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW21haW5UaHJl
YWRDb25uZWN0aW9uID0gV1RGTW92ZShtX21haW5UaHJlYWRDb25uZWN0aW9uKV0oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpIG11dGFibGUgeyB9KTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
bWFpblRocmVhZENvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fbWFpblRocmVhZENvbm5lY3Rpb24pXSgp
IG11dGFibGUgeyB9KTsKIH0KIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpk
b09wZW4odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBj
b25zdCBTdHJpbmcmIGNhY2hlTmFtZSkKIHsKLSAgICBtX3Byb3h5LnBvc3RUYXNrVG9Mb2FkZXIo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIs
IG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgY2FjaGVOYW1lID0gY2FjaGVOYW1lLmlz
b2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0YWJsZSB7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1
ZXN0SWRlbnRpZmllciwgb3JpZ2luID0gb3JpZ2luLmlzb2xhdGVkQ29weSgpLCBjYWNoZU5hbWUg
PSBjYWNoZU5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsK
IApAQCAtMTMxLDcgKzEyOCw3IEBAIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
ZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpCiAKIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIHsKLSAgICBtX3Byb3h5LnBvc3RUYXNr
VG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElk
ZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFi
bGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsK
ICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1fbWFpblRo
cmVhZENvbm5lY3Rpb24pOwogCkBAIC0xNDcsNyArMTQ0LDcgQEAgdm9pZCBXb3JrZXJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpkb1JlbW92ZSh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3QKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlQ2Fj
aGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgdWlu
dDY0X3QgdXBkYXRlQ291bnRlcikKIHsKLSAgICBtX3Byb3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIG9y
aWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwgdXBkYXRlQ291bnRlcl0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9y
aWdpbi5pc29sYXRlZENvcHkoKSwgdXBkYXRlQ291bnRlcl0oKSBtdXRhYmxlIHsKICAgICAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1fbWFpblRocmVhZENvbm5l
Y3Rpb24pOwogCkBAIC0xNjgsNyArMTY1LDcgQEAgdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpkb1JldHJpZXZlQ2FjaGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLAogCiB2
b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OnJlZmVyZW5jZSh1aW50NjRfdCBjYWNo
ZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oKSB7CiAgICAgICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsK
IApAQCAtMTc4LDcgKzE3NSw3IEBAIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6
cmVmZXJlbmNlKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllcikKIAogdm9pZCBXb3JrZXJDYWNoZVN0
b3JhZ2VDb25uZWN0aW9uOjpkZXJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7
Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIGNhY2hlSWRlbnRpZmllcl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIHsK
KyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNhY2hlSWRlbnRpZmllcl0oKSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsKIApAQCAtMjEzLDcgKzIx
MCw3IEBAIHN0YXRpYyBpbmxpbmUgUmVjb3Jkc09yRXJyb3IgcmVjb3Jkc09yRXJyb3JGcm9tUmVj
b3Jkc0RhdGEoRXhwZWN0ZWQ8VmVjdG9yPENyb3NzCiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjo6ZG9SZXRyaWV2ZVJlY29yZHModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgbV9wcm94
eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHVybCA9IHVybC5pc29sYXRlZENv
cHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgeworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcmVxdWVzdElkZW50
aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgdXJsID0gdXJsLmlzb2xhdGVkQ29weSgpXSgpIG11dGFi
bGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9t
YWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAgLTIyOCw3ICsyMjUsNyBAQCB2b2lkIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLAogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hE
ZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hl
SWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBDYWNoZVF1ZXJ5T3B0
aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlk
ZW50aWZpZXIsIHJlcXVlc3QgPSByZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLCBvcHRpb25zID0gb3B0
aW9ucy5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUgewor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVxdWVzdCA9IHJlcXVlc3Qu
aXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpXSgpIG11dGFi
bGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9t
YWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAgLTI0NCw3ICsyNDEsNyBAQCB2b2lkIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRpb24odWludDY0X3QgcmVx
dWVzdElkZW50aQogCiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvQmF0Y2hQ
dXRPcGVyYXRpb24odWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IGNhY2hlSWRl
bnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzKQogewotICAgIG1fcHJveHkucG9zdFRh
c2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0
SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRGF0YSA9IHJlY29yZHNEYXRhRnJv
bVJlY29yZHMocmVjb3JkcyldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlY29yZHNEYXRhID0gcmVjb3Jk
c0RhdGFGcm9tUmVjb3JkcyhyZWNvcmRzKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICAgICAgQVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggOTM2MGVkZWIxYTgwNzk5YTNhYjY0YjcyNzY0NDA5NGEwYzkxZWE3OS4uZWMxNTBjYzhh
MzUwMDdkMmQxYzNhYjE4ZGE1OGE4Y2QzYjExZjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkzLDcgKzU5Myw3IEBACiAJ
CTE4NUJDRjI5MEYzMjc5Q0UwMDBFQTI2MiAvKiBUaHJlYWRUaW1lcnMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4NUJDRjI3MEYzMjc5Q0UwMDBFQTI2
MiAvKiBUaHJlYWRUaW1lcnMuaCAqLzsgfTsKIAkJMTg4NjA0QjMwRjJFNjU0QTAwMEI2NDQzIC8q
IERPTVRpbWVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE4ODYwNEIxMEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5jcHAgKi87IH07CiAJCTE4
ODYwNEI0MEYyRTY1NEEwMDBCNjQ0MyAvKiBET01UaW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTg4NjA0QjIwRjJFNjU0QTAwMEI2NDQzIC8qIERP
TVRpbWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
LQkJMThGODMxQjgwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4
MDBEOEM1NkIgLyogV29ya2VyTG9hZGVyUHJveHkuaCAqLzsgfTsKKwkJMThGODMxQjgwRkQ0OEM3
ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOEY4MzFCNzBGRDQ4Qzc4MDBEOEM1NkIgLyogV29ya2Vy
TG9hZGVyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxOTIxMzI3NDExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTkyMTMyNzExMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNw
cCAqLzsgfTsKIAkJMTkyMTMyNzUxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxOTIxMzI3MjExQzBFNkJCMDA0NTYyMzggLyogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQu
aCAqLzsgfTsKIAkJMTk3QjE4MEMxNTA2MzUzMjAwRTRBREE4IC8qIFNWR1JlbmRlcmluZ0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE5N0Ix
ODBCMTUwNjM0QzAwMEU0QURBOCAvKiBTVkdSZW5kZXJpbmdDb250ZXh0LmggKi87IH07CkBAIC0x
NDk5LDYgKzE0OTksOCBAQAogCQk0MTEwM0FBRDFFMzk3OTEwMDA3NjlGMTQgLyogUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5oICovOyB9OwogCQk0MTEwM0FBRTFFMzk3OTEwMDA3NjlGMDMg
LyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUFBMUUzOTc5MEEwMDc2OUYwMyAvKiBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwICovOyB9OwogCQk0MTEwM0FBRTFFMzk3OTEwMDA3
NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMDNBQUExRTM5NzkwQTAwNzY5
RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCAqLzsgfTsKKwkJNDEx
MkI1NDIxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEyQjU0MTFGOUY5
QzlDMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCAqLzsgfTsKKwkJNDEx
MkI1NDMxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDExMkI1M0YxRjlGOUM5
QjAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxMjMwODFCMTM4QzQyOTcwMEJDQ0ZD
QSAvKiBXZWJDb3JlLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRjE5QjFBMDgyNDVFNUEwMDFFOUFCQyAvKiBXZWJDb3JlLmZyYW1l
d29yayAqLzsgfTsKIAkJNDEyMzA5MTMxMzhDNDJGRjAwQkNDRkNBIC8qIEphdmFTY3JpcHRDb3Jl
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY4MjE2Mjk5MDI5RjRGQjUwMTAwMDEzMSAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
Ki87IH07CiAJCTQxMjlDOThBMUY1ODdGRUIwMDlENzQwMyAvKiBSZWFkYWJsZVN0cmVhbVNpbmsu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEyOUM5
ODcxRjU4NjYyRDAwOUQ3NDAzIC8qIFJlYWRhYmxlU3RyZWFtU2luay5jcHAgKi87IH07CkBAIC04
Nzk3LDYgKzg3OTksOCBAQAogCQk0MTEwM0FBOTFFMzk3OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDExMDNBQUExRTM5NzkwQTAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdB
dWRpb1NvdXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFs
dGltZUluY29taW5nQXVkaW9Tb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTEwM0FBQTFFMzk3OTBBMDA3NjlGMTQgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNl
Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVhbHRpbWVJ
bmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0MTEyQjUzRjFGOUY5QzlCMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTEyQjU0MTFGOUY5QzlDMDBFNjc4
NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5MEEwRCAvKiBSZWFkYWJsZVN0
cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJs
ZVN0cmVhbURlZmF1bHRDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExODlFRjcxQUQ4MjMyODAwQjkzRjY0IC8qIFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xs
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlQnl0ZVN0cmVhbUNvbnRyb2xs
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgyMzI4MDBC
OTU2NzIgLyogUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVhZGFibGVTdHJlYW1CWU9CUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xODU4Niw2ICsxODU5MCw4IEBACiAJCQkJNDE5QUNGOEUxRjk3RTdENTAwOUYx
QTgzIC8qIFNlcnZpY2VXb3JrZXJGZXRjaC5oICovLAogCQkJCTUxN0M4NzExMUY4RUU3MkYwMEVC
ODA3NiAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCAqLywKIAkJCQk1MTdDODcxMDFGOEVFNzJF
MDBFQjgwNzYgLyogU2VydmljZVdvcmtlclRocmVhZC5oICovLAorCQkJCTQxMTJCNTQxMUY5RjlD
OUMwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwICovLAorCQkJCTQxMTJC
NTNGMUY5RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gY29udGV4dDsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0y
OTg0OCw2ICsyOTg1NCw3IEBACiAJCQkJNTE3QTUzMjkxRjRCOTBCOTAwRENEQzBBIC8qIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTY5MUYz
RUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFCQ0NFMzAxRjhGMTc5RTAwNkJBMEVEIC8qIFNlcnZpY2VXb3JrZXJU
aHJlYWQuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxMTJCNTQzMUY5RjlDQTAwMEU2Nzg3NSAvKiBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjE3NTZDMUYz
RUJDODMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2RUYxNDJBMUY5N0I3RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxMDA5OUU2NDkyMDA1NkU1ODEgLyog
U2V0Tm9kZUF0dHJpYnV0ZUNvbW1hbmQuaCBpbiBIZWFkZXJzICovLApAQCAtMzI5NDUsNiArMzI5
NTIsNyBAQAogCQkJCTUxN0E1MzI4MUY0QjkwQjkwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjY0NUEyMUY0QkY1M0MwMEI1
NERFRCAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uT3B0aW9ucy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUJDQ0UyRjFGOEYxNzk1MDA2QkEwRUQgLyogU2VydmljZVdvcmtlclRocmVhZC5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0MTEyQjU0MjFGOUY5Q0EwMDBFNjc4NzUgLyogU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2RUYxNDJFMUY5N0I3
RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTkzMzA5RTBGMDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29tbWFu
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCOERCREI0QjEzMEIwRjhBMDBGNUNEQjEgLyogU2V0
U2VsZWN0aW9uQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVyUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyTG9hZGVyUHJveHkuaAppbmRleCBkYWZmZTFmN2M5NzE2NzY5MzgyMDcyODY4NThk
NzZiNjk3NjM0NTk0Li40YTYzMzc5MmMyMjlhYmFjZDM3YjU2YWIxZWI4MzFjYzk4NjIwMTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJMb2FkZXJQcm94eS5oCkBAIC0zNCwyMiAr
MzQsMjcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgLy8gQSBwcm94eSB0byB0YWxr
IHRvIHRoZSBsb2FkZXIgY29udGV4dC4gTm9ybWFsbHksIHRoZSBkb2N1bWVudCBvbiB0aGUgbWFp
biB0aHJlYWQKLSAgICAvLyBwcm92aWRlcyBsb2FkaW5nIHNlcnZpY2VzIGZvciB0aGUgc3Vib3Jk
aW5hdGUgd29ya2Vycy4gVGhpcyBpbnRlcmZhY2UgcHJvdmlkZXMgMi13YXkKLSAgICAvLyBjb21t
dW5pY2F0aW9ucyB0byB0aGUgRG9jdW1lbnQgY29udGV4dCBhbmQgYmFjayB0byB0aGUgd29ya2Vy
LgotICAgIC8vIE5vdGUgdGhhdCBpbiBtdWx0aS1wcm9jZXNzIGJyb3dzZXJzLCB0aGUgV29ya2Vy
IG9iamVjdCBjb250ZXh0IGFuZCB0aGUgRG9jdW1lbnQKLSAgICAvLyBjb250ZXh0IGNhbiBiZSBk
aXN0aW5jdC4KLSAgICBjbGFzcyBXb3JrZXJMb2FkZXJQcm94eSB7Ci0gICAgcHVibGljOgotICAg
ICAgICB2aXJ0dWFsIH5Xb3JrZXJMb2FkZXJQcm94eSgpID0gZGVmYXVsdDsKLQotICAgICAgICAv
LyBQb3N0cyBhIHRhc2sgdG8gdGhlIHRocmVhZCB3aGljaCBydW5zIHRoZSBsb2FkaW5nIGNvZGUg
KG5vcm1hbGx5LCB0aGUgbWFpbiB0aHJlYWQpLgotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRh
c2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpID0gMDsKLQotICAgICAg
ICAvLyBQb3N0cyBjYWxsYmFja3MgZnJvbSBsb2FkaW5nIGNvZGUgdG8gdGhlIFdvcmtlckdsb2Jh
bFNjb3BlLiBUaGUgJ21vZGUnIGlzIHVzZWQgdG8gZGlmZmVyZW50aWF0ZQotICAgICAgICAvLyBz
cGVjaWZpYyBzeW5jaHJvbm91cyBsb2FkaW5nIHJlcXVlc3RzIHNvIHRoZXkgY2FuIGJlICduZXN0
ZWQnLCBwZXIgc3BlYy4KLSAgICAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSB0YXNrIHdhcyBw
b3N0ZWQgc3VjY2Vzc2Z1bGx5LgotICAgICAgICB2aXJ0dWFsIGJvb2wgcG9zdFRhc2tGb3JNb2Rl
VG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0
IFN0cmluZyYgbW9kZSkgPSAwOwotICAgIH07CitjbGFzcyBDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
OworCisvLyBBIHByb3h5IHRvIHRhbGsgdG8gdGhlIGxvYWRlciBjb250ZXh0LiBOb3JtYWxseSwg
dGhlIGRvY3VtZW50IG9uIHRoZSBtYWluIHRocmVhZAorLy8gcHJvdmlkZXMgbG9hZGluZyBzZXJ2
aWNlcyBmb3IgdGhlIHN1Ym9yZGluYXRlIHdvcmtlcnMuIFRoaXMgaW50ZXJmYWNlIHByb3ZpZGVz
IDItd2F5CisvLyBjb21tdW5pY2F0aW9ucyB0byB0aGUgRG9jdW1lbnQgY29udGV4dCBhbmQgYmFj
ayB0byB0aGUgd29ya2VyLgorLy8gTm90ZSB0aGF0IGluIG11bHRpLXByb2Nlc3MgYnJvd3NlcnMs
IHRoZSBXb3JrZXIgb2JqZWN0IGNvbnRleHQgYW5kIHRoZSBEb2N1bWVudAorLy8gY29udGV4dCBj
YW4gYmUgZGlzdGluY3QuCitjbGFzcyBXb3JrZXJMb2FkZXJQcm94eSB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+V29ya2VyTG9hZGVyUHJveHkoKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBDcmVhdGVz
IGEgY2FjaGUgc3RvcmFnZSBjb25uZWN0aW9uIHRvIGJlIHVzZWQgb24gdGhlIG1haW4gdGhyZWFk
LiBNZXRob2QgbXVzdCBiZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLgorICAgIHZpcnR1YWwg
UmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24o
KSA9IDA7CisKKyAgICAvLyBQb3N0cyBhIHRhc2sgdG8gdGhlIHRocmVhZCB3aGljaCBydW5zIHRo
ZSBsb2FkaW5nIGNvZGUgKG5vcm1hbGx5LCB0aGUgbWFpbiB0aHJlYWQpLgorICAgIHZpcnR1YWwg
dm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgPSAw
OworCisgICAgLy8gUG9zdHMgY2FsbGJhY2tzIGZyb20gbG9hZGluZyBjb2RlIHRvIHRoZSBXb3Jr
ZXJHbG9iYWxTY29wZS4gVGhlICdtb2RlJyBpcyB1c2VkIHRvIGRpZmZlcmVudGlhdGUKKyAgICAv
LyBzcGVjaWZpYyBzeW5jaHJvbm91cyBsb2FkaW5nIHJlcXVlc3RzIHNvIHRoZXkgY2FuIGJlICdu
ZXN0ZWQnLCBwZXIgc3BlYy4KKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHRhc2sgd2FzIHBv
c3RlZCBzdWNjZXNzZnVsbHkuCisgICAgdmlydHVhbCBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJp
bmcmIG1vZGUpID0gMDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKaW5kZXggNjg1YzU0Zjdh
ZjdkYWIxMjM0YzMzZmMzODc2MTJlYTgxZjNhZmY4OS4uZTg2YTNhMmI5MWEzMGU2ZmY5ZmE1NmRj
ZjEzNDRkNGE2OTkzZjI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJXb3JrZXJNZXNzYWdpbmdQcm94eS5oIgogCisjaW5jbHVkZSAiQ2FjaGVTdG9y
YWdlUHJvdmlkZXIuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNs
dWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5o
IgpAQCAtMzYsNiArMzcsNyBAQAogI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXIu
aCIKICNpbmNsdWRlICJXb3JrZXJJbnNwZWN0b3JQcm94eS5oIgpAQCAtMTMzLDYgKzEzNSwxMyBA
QCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrKQogICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+
cG9zdFRhc2soV1RGTW92ZSh0YXNrKSk7CiB9CiAKK1JlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiBXb3JrZXJNZXNzYWdpbmdQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBhdXRvJiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAgICByZXR1cm4gZG9j
dW1lbnQucGFnZSgpLT5jYWNoZVN0b3JhZ2VQcm92aWRlcigpLmNyZWF0ZUNhY2hlU3RvcmFnZUNv
bm5lY3Rpb24oZG9jdW1lbnQucGFnZSgpLT5zZXNzaW9uSUQoKSk7Cit9CisKIGJvb2wgV29ya2Vy
TWVzc2FnaW5nUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmIHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKIHsKICAg
ICBpZiAobV9hc2tlZFRvVGVybWluYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJNZXNzYWdpbmdQcm94eS5oCmluZGV4IDhiMWY4ZjgwMGY1NTE3YTY1Y2YwY2Q5M2VlMWMyNDgz
NTExNTcxMzEuLmE2NThiZTlmZWQ0NmExNDEyNTIxNGU2NDBmYzlkNWM1NmMxYzk5ZTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmgKQEAgLTY3LDYg
KzY3LDcgQEAgcHJpdmF0ZToKICAgICAvLyByZXF1ZXN0cyBhbmQgdG8gc2VuZCBjYWxsYmFja3Mg
YmFjayB0byBXb3JrZXJHbG9iYWxTY29wZS4KICAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbDsKICAgICBib29sIHBvc3RUYXNrRm9y
TW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBj
b25zdCBTdHJpbmcmIG1vZGUpIGZpbmFsOworICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
PiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkgZmluYWw7CiAKICAgICB2b2lkIHdvcmtl
clRocmVhZENyZWF0ZWQoRGVkaWNhdGVkV29ya2VyVGhyZWFkJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZC5jcHAKaW5kZXggMzgxOGU5OTExYWQzMjdhODQ4MWI2ZGZhMjk4NDM4ZDgxMmJjMzY3
YS4uMWMwMjdlOWMwZDQ5NjI0MjllODY2NTk5MjdlZWE5YzI1OTA4NjI0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKIAorI2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAi
Q29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzLmgiCiAjaW5jbHVkZSAiU2VjdXJp
dHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2guaCIKQEAgLTQyLDcgKzQz
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFBBTDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyTG9hZGVyUHJveHksIHB1
YmxpYyBXb3JrZXJPYmplY3RQcm94eSB7CitjbGFzcyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkg
OiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgewogcHVibGljOgogICAgIHN0YXRpYyBTZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkmIHNoYXJlZER1bW15UHJveHkoKQogICAgIHsKQEAgLTUxLDggKzUy
LDYgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHBvc3RUYXNrVG9Mb2Fk
ZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmKSBmaW5hbCB7IH07Ci0gICAgYm9vbCBw
b3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2smJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH07CiAgICAgdm9p
ZCBwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiwgaW50LCBpbnQsIGNv
bnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9QYWdlSW5zcGVj
dG9yKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKICAgICB2b2lkIHdvcmtlckdsb2JhbFNjb3Bl
RGVzdHJveWVkKCkgZmluYWwgeyB9OwpAQCAtNjksOCArNjgsOCBAQCBwcml2YXRlOgogLy8gRklY
TUU6IFVzZSBhIHZhbGlkIHVzZXIgYWdlbnQKIC8vIEZJWE1FOiBVc2UgdmFsaWQgcnVudGltZSBm
bGFncwogCi1TZXJ2aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEmIGRhdGEsIFBBTDo6U2Vzc2lvbklEKQotICAgIDogV29ya2VyVGhyZWFkKGRhdGEuc2NyaXB0
VVJMLCBkYXRhLndvcmtlcklELCBBU0NJSUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIpLCBkYXRh
LnNjcmlwdCwgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWREdW1teVByb3h5KCksIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkRHVtbXlQcm94eSgpLCBXb3JrZXJUaHJlYWRT
dGFydE1vZGU6Ok5vcm1hbCwgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzIHsg
fSwgZmFsc2UsIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoZGF0YS5zY3JpcHRVUkwpLmdldCgpLCBN
b25vdG9uaWNUaW1lOjpub3coKSwgbnVsbHB0ciwgbnVsbHB0ciwgSlNDOjpSdW50aW1lRmxhZ3M6
OmNyZWF0ZUFsbEVuYWJsZWQoKSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCitTZXJ2
aWNlV29ya2VyVGhyZWFkOjpTZXJ2aWNlV29ya2VyVGhyZWFkKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBB
TDo6U2Vzc2lvbklELCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHkpCisgICAgOiBXb3Jr
ZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsIGRhdGEud29ya2VySUQsIEFTQ0lJTGl0ZXJhbCgiV29y
a2VyVXNlckFnZW50IiksIGRhdGEuc2NyaXB0LCBsb2FkZXJQcm94eSwgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzaGFyZWREdW1teVByb3h5KCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9y
bWFsLCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxzZSwgU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShkYXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25pY1RpbWU6
Om5vdygpLCBudWxscHRyLCBudWxscHRyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5h
YmxlZCgpLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSkKICAgICAsIG1fc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgLCBtX2Rh
dGEoZGF0YS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWREdW1teVByb3h5KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmgKaW5kZXggOTU0ZGFmNjA4MmNjZWY2YmQ5MzU4MTJhNzA3Y2RlZTBiZjAzYzliYi4uMzhj
ODBhM2U0ZWQyOTgyZjczN2UyNzNlYjNkZjhhNjUzMGMzYjU1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuaApAQCAtMzQsNiArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IENhY2hlU3RvcmFnZVByb3ZpZGVyOwogY2xhc3MgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9u
c2VIZWFkZXJzOwogY2xhc3MgV29ya2VyT2JqZWN0UHJveHk7CiBzdHJ1Y3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOwpAQCAtNTUsNyArNTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBydW5F
dmVudExvb3AoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2
aWNlV29ya2VyVGhyZWFkKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQs
IFdvcmtlckxvYWRlclByb3h5Jik7CiAKICAgICB1aW50NjRfdCBtX3NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyOwogICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBtX2RhdGE7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGUzNDNhNTgwMzM2NTE0
Yjk4MDA0ZGJjOGI4NGQ1OGRhNmEyZTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQorCisjaW5jbHVkZSA8V2ViQ29yZS9DYWNoZVN0b3JhZ2VQcm92aWRlci5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5o
PgorI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1JlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+IFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3Rv
cmFnZVByb3ZpZGVyKQoreworICAgIGF1dG8gc2VydmljZVdvcmtlciA9IGFkb3B0UmVmKCpuZXcg
U2VydmljZVdvcmtlclRocmVhZFByb3h5IHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGRh
dGEsIHNlc3Npb25JRCwgY2FjaGVTdG9yYWdlUHJvdmlkZXIgfSk7CisgICAgc2VydmljZVdvcmtl
ci0+bV9zZXJ2aWNlV29ya2VyVGhyZWFkLT5zdGFydCgpOworICAgIHJldHVybiBzZXJ2aWNlV29y
a2VyOworfQorCitTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENhY2hlU3RvcmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlcikKKyAgICA6IG1fc2Vy
dmljZVdvcmtlclRocmVhZChTZXJ2aWNlV29ya2VyVGhyZWFkOjpjcmVhdGUoc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIGRhdGEsIHNlc3Npb25JRCwgKnRoaXMpKQorICAgICwgbV9jYWNoZVN0
b3JhZ2VQcm92aWRlcihjYWNoZVN0b3JhZ2VQcm92aWRlcikKKyAgICAsIG1fc2Vzc2lvbklEKHNl
c3Npb25JRCkKK3sKKyAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWQtPnN0YXJ0KCk7Cit9CisKK2Jv
b2wgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2Jh
bFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBTdHJpbmcm
IG1vZGUpCit7CisgICAgLy8gRklYTUU6IEhhbmRsZSB0ZXJtaW5hdGlvbiBjYXNlLgorICAgIG1f
c2VydmljZVdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShXVEZNb3ZlKHRh
c2spLCBtb2RlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk6OnBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
KQoreworICAgIC8vIEltcGxlbWVudCB0aGlzLgorfQorCitSZWY8Q2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0
aW9uKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIGlmICghbV9jYWNoZVN0
b3JhZ2VDb25uZWN0aW9uKQorICAgICAgICBtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24gPSBtX2Nh
Y2hlU3RvcmFnZVByb3ZpZGVyLmNyZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24obV9zZXNzaW9u
SUQpOworICAgIHJldHVybiAqbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyZTZmMTI2MjhkZWRlNGNi
OWVkNmY5MDExOWM0MWRiNGM5MWNkMjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlclRocmVhZC5oIgorI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCisjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ2FjaGVTdG9yYWdl
UHJvdmlkZXI7CitjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGE7CisKK2NsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSBmaW5hbCA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+LCBwdWJs
aWMgV29ya2VyTG9hZGVyUHJveHkgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8U2VydmljZVdvcmtlclRocmVhZFByb3h5PiBjcmVhdGUodWludDY0X3Qgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6
U2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VQcm92aWRlciYpOworCisgICAgdWludDY0X3QgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclRocmVhZC0+aWRlbnRpZmllcigp
OyB9CisgICAgU2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCkgeyByZXR1cm4gbV9zZXJ2aWNl
V29ya2VyVGhyZWFkLmdldCgpOyB9CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlclRocmVh
ZFByb3h5KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXIm
KTsKKyAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpIGZpbmFsOworICAgIHZv
aWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYpIGZpbmFs
OworICAgIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uKCkgZmluYWw7CisKKyAgICBSZWY8U2VydmljZVdvcmtlclRocmVhZD4gbV9zZXJ2aWNl
V29ya2VyVGhyZWFkOworICAgIENhY2hlU3RvcmFnZVByb3ZpZGVyJiBtX2NhY2hlU3RvcmFnZVBy
b3ZpZGVyOworICAgIFJlZlB0cjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBtX2NhY2hlU3RvcmFn
ZUNvbm5lY3Rpb247CisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzM2I3NDkzNmRk
OWE0Y2ZiNGFmY2NhN2ExMjE0ZGExM2VhYmRhNjVhLi45NzIyNmFkZDkzNzRhZDkzOTI3MjJhNGFh
OTE5MzdkYjUyYmFhOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC01OTYsNyArNTk2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0V29ya2Vy
Q29udGV4dFByb2Nlc3NDb25uZWN0aW9uKFN0b3JhZ2VQcm9jZXNzUHJveHkmIHByb3gKICAgICAg
ICAgbV93ZWJzaXRlRGF0YVN0b3JlID0gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0RGF0
YVN0b3JlKCkucHRyKCk7CiAgICAgYXV0byYgbmV3UHJvY2VzcyA9IGNyZWF0ZU5ld1dlYlByb2Nl
c3MobV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkpOwogICAgIG1fd29ya2Vy
Q29udGV4dFByb2Nlc3MgPSAmbmV3UHJvY2VzczsKLSAgICBtX3dvcmtlckNvbnRleHRQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigp
LCAwKTsKKyAgICBtX3dvcmtlckNvbnRleHRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZl
cmVuY2VzKCkuc3RvcmUoKSksIDApOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaWRHZXRX
b3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25u
ZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGRkMGVjOTI5ZWRlYTA1Y2M2NmYxNGY5MGVkMGEwZDdl
N2E1YzA4NTEuLmZlNmU4MzM5ZTM2ZGI4NzBjNGMwODQ5YjY0YjZhNTBlNGMxY2ZmNjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTY4LDkgKzY4LDExIEBAIGVudW0gY2xhc3MgU2hvdWxkQ2xlYXJGaXJzdCB7
IE5vLCBZZXMgfTsKIAogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZSA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYnNpdGVEYXRhU3RvcmU+LCBwdWJsaWMgV2ViUHJvY2Vzc0xpZmV0aW1lT2JzZXJ2ZXIsIHB1
YmxpYyBJZGVudGlmaWVkPFdlYnNpdGVEYXRhU3RvcmU+ICB7CiBwdWJsaWM6CisgICAgY29uc3Rl
eHByIHN0YXRpYyB1aW50NjRfdCBkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEgPSAy
MCAqIDEwMjQgKiAxMDI0OworCiAgICAgc3RydWN0IENvbmZpZ3VyYXRpb24gewogICAgICAgICBT
dHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5OwotICAgICAgICB1aW50NjRfdCBjYWNoZVN0b3Jh
Z2VQZXJPcmlnaW5RdW90YTsKKyAgICAgICAgdWludDY0X3QgY2FjaGVTdG9yYWdlUGVyT3JpZ2lu
UXVvdGEgeyBkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGEgfTsKICAgICAgICAgU3Ry
aW5nIG5ldHdvcmtDYWNoZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIGFwcGxpY2F0aW9uQ2Fj
aGVEaXJlY3Rvcnk7CiAgICAgICAgIFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJk
aXJlY3RvcnlOYW1lOwpAQCAtODgsOCArOTAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxX
ZWJzaXRlRGF0YVN0b3JlPiBjcmVhdGUoQ29uZmlndXJhdGlvbiwgUEFMOjpTZXNzaW9uSUQpOwog
ICAgIHZpcnR1YWwgfldlYnNpdGVEYXRhU3RvcmUoKTsKIAotICAgIGNvbnN0ZXhwciBzdGF0aWMg
dWludDY0X3QgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhID0gMjAgKiAxMDI0ICog
MTAyNDsKLQogICAgIGJvb2wgaXNQZXJzaXN0ZW50KCkgY29uc3QgeyByZXR1cm4gIW1fc2Vzc2lv
bklELmlzRXBoZW1lcmFsKCk7IH0KICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25z
dCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNw
cAppbmRleCAwZGVmMzU0YzNjY2VhZDc3YjllMWVlNDQ4NWFjYjY5NDJjNGNkYjU0Li4yM2M3M2Vk
MGFkNjY3MjBlOGQ5ODhhMmE5Y2FmMDA5YTczMjc3MDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlci5jcHAKQEAgLTMwLDEwICszMCwxNSBAQAogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDYWNoZVN0
b3JhZ2VQcm92aWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3Rv
cmUuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtl
ckZldGNoVGFza0NsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgog
CiB1c2luZyBuYW1lc3BhY2UgUEFMOwpAQCAtNDEsMzEgKzQ2LDQxIEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4m
JiBjb25uZWN0aW9uLCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKKyAgICA6IG1f
Y29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAgICB1
cGRhdGVQcmVmZXJlbmNlcyhzdG9yZSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9y
ZSkKK3sKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENh
Y2hlQVBJRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OmNhY2hlQVBJRW5hYmxlZEtleSgpKSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpmZXRjaEFQSUVuYWJsZWRLZXkoKSkpOworfQorCiB2b2lkIFNl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEm
IGRhdGEpCiB7CiAgICAgLy8gRklYTUU6IFByb3ZpZGUgYSBzZW5zaWNhbCBzZXNzaW9uIElELgot
ICAgIGF1dG8gdGhyZWFkID0gU2VydmljZVdvcmtlclRocmVhZDo6Y3JlYXRlKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBkYXRhLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7Ci0g
ICAgYXV0byB0aHJlYWRJZGVudGlmaWVyID0gdGhyZWFkLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0
byByZXN1bHQgPSBtX3dvcmtlclRocmVhZE1hcC5hZGQodGhyZWFkSWRlbnRpZmllciwgV1RGTW92
ZSh0aHJlYWQpKTsKLSAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwotCi0gICAgcmVzdWx0
Lml0ZXJhdG9yLT52YWx1ZS0+c3RhcnQoKTsKKyAgICBhdXRvIFNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBkYXRhLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSk7CisgICAgYXV0byBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+aWRlbnRpZmllcigp
OworICAgIGF1dG8gcmVzdWx0ID0gbV93b3JrZXJNYXAuYWRkKHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBXVEZNb3ZlKFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkpOworICAgIEFTU0VSVF9VTlVT
RUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiAKICAgICBMT0coU2VydmljZVdvcmtlciwg
IkNvbnRleHQgcHJvY2VzcyBQSUQ6ICVpIHN0YXJ0ZWQgd29ya2VyIHRocmVhZCAlc1xuIiwgZ2V0
cGlkKCksIGRhdGEud29ya2VySUQudXRmOCgpLmRhdGEoKSk7CiAKLSAgICBtX2Nvbm5lY3Rpb25U
b1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6U2VydmljZVdv
cmtlckNvbnRleHRTdGFydGVkKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLnJlZ2lz
dHJhdGlvbktleSwgdGhyZWFkSWRlbnRpZmllciwgZGF0YS53b3JrZXJJRCksIDApOworICAgIG1f
Y29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNz
OjpTZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0ZWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IGRhdGEucmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZGF0YS53b3Jr
ZXJJRCksIDApOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRG
ZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJ
ZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucykKIHsKLSAgICBhdXRvIHNlcnZp
Y2VXb3JrZXJUaHJlYWQgPSBtX3dvcmtlclRocmVhZE1hcC5nZXQoc2VydmljZVdvcmtlcklkZW50
aWZpZXIpOwotICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZCkgeworICAgIGF1dG8gc2Vydmlj
ZVdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAg
aWYgKCFzZXJ2aWNlV29ya2VyKSB7CiAgICAgICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nl
c3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaChzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSwgMCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBhdXRvIGNsaWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLmNvcHlSZWYoKSwg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcik7Ci0gICAgc2Vydmlj
ZVdvcmtlclRocmVhZC0+cG9zdEZldGNoVGFzayhXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucykpOworICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBv
c3RGZXRjaFRhc2soV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9w
dGlvbnMpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIuaAppbmRleCA4ZDIwMGMwZjM0MDVkNDBkZDczM2M1ZDM5YjdiODU3NGI4NGZiZjJmLi5i
MjlkY2VlODg5MWZkNmQ4MTJmNTgzNjNhYzk3NjNhYzIxOThlMzU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXIuaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclRocmVhZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzksMjIgKzM5LDIyIEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiB9CiAK
IG5hbWVzcGFjZSBXZWJLaXQgeworc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiAKIGNsYXNz
IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyKFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICAgICAgOiBtX2Nvbm5lY3Rpb25U
b1N0b3JhZ2VQcm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgewotICAgIH0KKyAgICBT
ZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKIAogcHJpdmF0ZToKKyAgICB2b2lk
IHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKKwogICAgIHZv
aWQgc3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsKICAgICB2b2lkIHN0
YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZl
dGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7CiAKICAgICBSZWY8
SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOwotICAgIEhhc2hN
YXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkPj4gbV93b3Jr
ZXJUaHJlYWRNYXA7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eT4+IG1fd29ya2VyTWFwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMWRlZjcxYzJh
MDlhOWY2ODg2ZDFhMGQzMDM1YzA5ZDcyY2EyNjliYS4uNjY1MWI3OTZhNDBjZjdlZGQ0MDgzNzZk
ZmY2YTM5MzY1N2UyZmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cApAQCAtMTY0MCw3ICsxNjQwLDcgQEAgTGliV2ViUlRDTmV0d29yayYgV2ViUHJvY2Vzczo6bGli
V2ViUlRDTmV0d29yaygpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLXZv
aWQgV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oKQordm9pZCBXZWJQcm9j
ZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
JiBzdG9yZSkKIHsKICAgICBBU1NFUlQoIW1fc2VydmljZVdvcmtlck1hbmFnZXIpOwogCkBAIC0x
NjY0LDcgKzE2NjQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0
aW9uKCkKIAogICAgIGF1dG8gd29ya2VyQ29udGV4dENvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rp
b246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsK
ICAgICB3b3JrZXJDb250ZXh0Q29ubmVjdGlvbi0+b3BlbigpOwotICAgIG1fc2VydmljZVdvcmtl
ck1hbmFnZXIgPSAgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyKFdURk1vdmUod29ya2VyQ29u
dGV4dENvbm5lY3Rpb24pKTsKKyAgICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyID0gIFNlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlcihXVEZNb3ZlKHdvcmtlckNvbnRleHRDb25uZWN0aW9uKSwgc3Rv
cmUpOwogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkR2V0V29ya2VyQ29udGV4dENv
bm5lY3Rpb24oY29ubmVjdGlvbkNsaWVudFBvcnQpLCAwKTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5kZXggZGExYTUyNmMzZGIzNjA0ZGMzNjg1MmI0YjJk
ZmE0MzcwNjJlMGQzMC4uNTA3YjNkNGQzNTczMzM2MTcwZDA2YzVjYmNmODMzN2MyZWUxMmQ3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC0yOTksNyArMjk5LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldE5ldHdvcmtQcm94eVNldHRpbmdzKGNvbnN0IFdlYkNvcmU6
OlNvdXBOZXR3b3JrUHJveHlTZXR0aW5ncyYpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotICAgIHZvaWQgZ2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oKTsKKyAgICB2b2lk
IGdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsK
ICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUGFnZUNhY2hlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDYzN2U2ZjI4ZDYwYWUw
MDFlYTRlZTdmNTk1NWJjODZjZmExNzBkNWIuLjk2MDg5MWYzNzA0ZDkyZWI1MzI1NzNjZjFkZjUz
OTA5MGUyNTI5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluCkBAIC0xMTUsNiArMTE1LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAg
ICBHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigpCisgICAgR2V0V29ya2VyQ29udGV4dENvbm5l
Y3Rpb24oc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDljZDhhNmNjM2MxOGE4NjA1OWRhMmJhODc0NTIwZDM5NmM2ODFiM2IuLjljZGRk
NGVjM2VlODQxZWU0NTg0OTc3YjMwYWY3NmQ2ZTAyZGRhMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAxNy0xMC0yNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRW5hYmxlIHNlcnZpY2Ugd29ya2VyIHRvIHVzZSBjYWNoZSBzdG9yYWdlIGFwaQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc4Njg0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanM6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9z
ZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWNhY2hlLWFwaS5odHRwcy5odG1sOiBBZGRlZC4KKwogMjAxNy0xMC0yMyAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTXVsdGlwbGUgaW1wb3J0ZWQg
bGF5b3V0IHRlc3RzIGFyZSBjcmFzaGluZyBhbmQgdGltaW5nIG91dC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1jYWNoZS1hcGktd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjZmMTllMTRmYmExODA2MTlkOTlhYTRjZDg3Zjk0ZDRkYWQ4YTIxNgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2VyLmpzCkBAIC0wLDAgKzEsMzggQEAK
K3ZhciBzdGF0dXMgPSAibm8gc3RhdHVzIjsKK3ZhciBjYWNoZTsKK3ZhciB3b3JrZXIgPSBzZWxm
OworCithc3luYyBmdW5jdGlvbiBwcmVwYXJlQ2FjaGUoKQoreworICAgIHN0YXR1cyA9ICJvcGVu
aW5nIGNhY2hlIjsKKyAgICBjYWNoZSA9IGF3YWl0IGNhY2hlcy5vcGVuKCJ0ZXN0Iik7CisgICAg
c3RhdHVzID0gImNyZWF0aW5nIHJlc3BvbnNlIjsKKyAgICB2YXIgcmVzcG9uc2UgPSBuZXcgUmVz
cG9uc2UobmV3IEFycmF5QnVmZmVyKDEyOTQwKSwgeyBzdGF0dXM6IDIwMCwgc3RhdHVzVGV4dDog
Ik9LIn0pOworICAgIHN0YXR1cyA9ICJmaWxsaW5nIGNhY2hlIjsKKyAgICBhd2FpdCBjYWNoZS5w
dXQoIi9yZXNvdXJjZXMvc3F1YXJlMTAwLnBuZyIsIHJlc3BvbnNlKTsKKyAgICBzdGF0dXMgPSAi
Y2FjaGUgaXMgcmVhZHkiOworfQorCitmdW5jdGlvbiBzdGF0dXNSZXNwb25zZSgpCit7CisgICAg
cmV0dXJuIG5ldyBSZXNwb25zZShudWxsLCB7c3RhdHVzOiAyMDAsIHN0YXR1c1RleHQ6IHN0YXR1
c30pOworfQorCitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7Cisg
ICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluZGV4T2YoInN0YXR1cyIpICE9PSAtMSkgeworICAg
ICAgICBldmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oc3RhdHVzUmVzcG9uc2UsIHN0YXR1
c1Jlc3BvbnNlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKCFldmVudC5yZXF1
ZXN0LnVybC5lbmRzV2l0aCgiLmZyb21zZXJ2aWNld29ya2VyIikpIHsKKyAgICAgICAgc3RhdGUg
PSAidW5rbm93biB1cmwiOworICAgICAgICBldmVudC5yZXNwb25kV2l0aChuZXcgUmVzcG9uc2Uo
bnVsbCwge3N0YXR1czogNDA0LCBzdGF0dXNUZXh0OiAiTm90IEZvdW5kIn0pKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBldmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oKCkgPT4g
eworICAgICAgICBzdGF0dXMgPSBldmVudC5yZXF1ZXN0LnVybC5zdWJzdHJpbmcoMCwgZXZlbnQu
cmVxdWVzdC51cmwubGVuZ3RoIC0gMTgpOworICAgICAgICByZXR1cm4gY2FjaGVzLm9wZW4oInRl
c3QiKS50aGVuKChjYWNoZSkgPT4geworICAgICAgICAgICAgcmV0dXJuIGNhY2hlLm1hdGNoKGV2
ZW50LnJlcXVlc3QudXJsLnN1YnN0cmluZygwLCBldmVudC5yZXF1ZXN0LnVybC5sZW5ndGggLSAx
OCkpOworICAgICAgICB9KTsKKyAgICB9KSk7Cit9KTsKK3ZhciBwcm9taXNlID0gcHJlcGFyZUNh
Y2hlKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFw
aS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mYzBiODY5YjM2NjRhNTNkODI3NmRhZGY3OTIyODRlNjBlNmNiMjk4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qcwpAQCAtMCwwICsxLDMxIEBA
CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gbG9nU3RhdHVzKCkKK3sKKyAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgic3Rh
dHVzIik7CisgICAgbG9nKCJTdGF0dXMgaXMgIiArIHJlc3BvbnNlLnN0YXR1c1RleHQpOworfQor
Cithc3luYyBmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0cnkgeworICAgICAgICBhd2FpdCBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNh
Y2hlLWFwaS13b3JrZXIuanMiLCB7IH0pOworCisgICAgICAgIGF3YWl0IGxvZ1N0YXR1cygpOwor
CisgICAgICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGZldGNoKCIvcmVzb3VyY2VzL3NxdWFyZTEw
MC5wbmcuZnJvbXNlcnZpY2V3b3JrZXIiKTsKKyAgICAgICAgdmFyIGJ1ZmZlciA9ICBhd2FpdCBy
ZXNwb25zZS5hcnJheUJ1ZmZlcigpOworICAgICAgICBsb2coIlJlc3BvbnNlIGJ1ZmZlciBieXRl
IGxlbmd0aCBpcyAiICsgYnVmZmVyLmJ5dGVMZW5ndGgpOworCisgICAgICAgIGF3YWl0IGxvZ1N0
YXR1cygpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICBhd2FpdCBsb2dTdGF0dXMoKTsKKyAg
ICAgICAgbG9nKCJHb3QgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgfQorICAgIGZpbmlzaFNXVGVz
dCgpOworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXIt
Y2FjaGUtYXBpLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZTY4ODlmZTUzZmI0ZTVl
ODIyNDViODZkMjdjYzU2NGQxYWM4M2IxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK1N0YXR1cyBpcyBjYWNoZSBpcyByZWFkeQor
UmVzcG9uc2UgYnVmZmVyIGJ5dGUgbGVuZ3RoIGlzIDEyOTQwCitTdGF0dXMgaXMgaHR0cHM6Ly8x
MjcuMC4wLjE6ODQ0My9yZXNvdXJjZXMvc3F1YXJlMTAwLnBuZworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1h
cGkuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDJhNTQwNjE3
ZmEwOWVlZWZiOGU2ZDdiYmQ4ODgxYjNhYTg4ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGku
aHR0cHMuaHRtbApAQCAtMCwwICsxLDggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324723</attachid>
            <date>2017-10-24 14:28:08 -0700</date>
            <delta_ts>2017-10-24 14:37:25 -0700</delta_ts>
            <desc>Rebasing patch for landing</desc>
            <filename>bug-178684-20171024142808.patch</filename>
            <type>text/plain</type>
            <size>47623</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTEzYjRkYmZjMWI0NzJj
ZTgxNmIzMTNmMzdjMWMxNTVlMDQ0MWMxMC4uNjU4YjlmMTA5MzlmZDExNDI1ODZjM2VmYmRmNGVi
MDQzNjgxYTRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTEwLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgc2VydmljZSB3
b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFk
eSBFaWRzb24uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwKKworICAgICAgICBVcGRhdGVkIFdvcmtl
ckxvYWRlclByb3h5IHNvIHRoYXQgaXQgY2FuIGNyZWF0ZSBhIENhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uCisgICAgICAgIFVwZGF0ZSBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHRvIHRha2Ug
YmVuZWZpdCBvZiB0aGF0LgorICAgICAgICBUaGlzIGFsbG93cyBjcmVhdGluZyBhIENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24gYmFzZWQgb24gdGhlIHBhZ2UgZm9yIHJlZ3VsYXIgd29ya2VycyBhbmQg
ZGlmZmVyZW50bHkgZm9yIFNlcnZpY2UgV29ya2VyIGNvbnRleHQuCisKKyAgICAgICAgQWRkZWQg
U2VydmljZVdvcmtlclRocmVhZFByb3h5IGFzIGEgcHJveHkgdG8gU2VydmljZVdvcmtlclRocmVh
ZC4KKyAgICAgICAgSXQgaXMgaW4gcGFydGljdWxhciByZXNwb25zaWJsZSB0byBkbyBwcm94eSBm
b3IgbG9hZGluZyB0YXNrcy4KKyAgICAgICAgSXQgaW1wbGVtZW50cyBjYWNoZSBBUEkgc3VwcG9y
dCBmb3Igc2VydmljZSB3b3JrZXIgYnkgY3JlYXRpbmcgYSBkZWRpY2F0ZWQgQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9PcGVuKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVDYWNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmVmZXJlbmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRlcmVm
ZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OmRvUmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9CYXRjaFB1dE9wZXJhdGlvbik6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyTG9hZGVyUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpjcmVh
dGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFBy
b3h5Ojpwb3N0VGFza1RvTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6IEFkZGVkLgor
CiAyMDE3LTEwLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBmMzA4MWVlYzA0NjkzODE5ZTNiM2Q1MDRjODg3MzAzMWRmYTNhMGNjLi43
OWZiYWQxZmM1NjUzNzdlNDkwMDM3YmVjODBmMzRmM2ViN2ViODIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTEwLTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBFbmFibGUgc2VydmljZSB3b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQK
KworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgUGFzc2luZyB0
aGUgV2ViUHJlZmVyZW5jZXMgc3RvcmUgb2YgdGhlIGRlZmF1bHQgcGFnZSBncm91cCBvZiB0aGUg
V2ViUHJvY2Vzc1Bvb2wgdG8gaXRzIFNlcnZpY2VXb3JrZXIgcHJvY2Vzcy4KKyAgICAgICAgU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyIHRoZW4gdXNlcyBpdCB0byBpbml0aWFsaXplIHRoZSBw
cmVmZXJlbmNlcyBhY2NvcmRpbmdseS4KKyAgICAgICAgUGF0Y2ggaXMgY292ZXJlZCBieSBuZXcg
dGVzdCB3aGljaCBpcyB1c2luZyBjYWNoZSBhcGkgcHJldmlvdXNseSBkaXNhYmxlZCBhbmQgbm93
IGVuYWJsZWQgdGhyb3VnaCB0aGUgc3RvcmUuCisKKyAgICAgICAgTWFkZSB1c2Ugb2YgdGhlIG5l
dyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgaW4gU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
IHRvIGVuYWJsZSBhIGNhY2hlIHN0b3JhZ2UgY29ubmVjdGlvbi4KKyAgICAgICAgRml4ZWQgdGhl
IGRlZmF1bHQgc2l6ZSBvZiBxdW90YSBpbiBXZWJzaXRlRGF0YVN0b3JlLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnVw
ZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyOjpzdGFydFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29y
a2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0RmV0Y2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW46CisKIDIwMTctMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBmb3Igc2VydmljZVdv
cmtlci5wb3N0TWVzc2FnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAxYjIxOWIx
MjlhYzljMjNiYzkwY2U4OTc5YTU3OGVmMTAwZWVjNmIyLi4wNjNiNzAyMDE4ZjkzZjA1MDMxNzJk
NWUxNTI0ZjVmMGMzYTdhMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTkxLDEy
ICs5MSw5IEBAIHN0YXRpYyBSZWNvcmQgZnJvbUNyb3NzVGhyZWFkUmVjb3JkRGF0YShDcm9zc1Ro
cmVhZFJlY29yZERhdGEmJiBkYXRhKQogUmVmPFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+
IFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYg
c2NvcGUpCiB7CiAgICAgYXV0byBjb25uZWN0aW9uID0gYWRvcHRSZWYoKm5ldyBXb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKHNjb3BlKSk7Ci0gICAgY29ubmVjdGlvbi0+bV9wcm94eS5wb3N0
VGFza1RvTG9hZGVyKFtwcm90ZWN0ZWRDb25uZWN0aW9uID0gbWFrZVJlZihjb25uZWN0aW9uLmdl
dCgpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvdGVjdGVkQ29ubmVjdGlvbiA9IGNvbm5lY3Rpb24uY29weVJlZigp
XSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7Ci0KLSAgICAg
ICAgQVNTRVJUKGRvY3VtZW50LnBhZ2UoKSk7Ci0gICAgICAgIHByb3RlY3RlZENvbm5lY3Rpb24t
Pm1fbWFpblRocmVhZENvbm5lY3Rpb24gPSBkb2N1bWVudC5wYWdlKCktPmNhY2hlU3RvcmFnZVBy
b3ZpZGVyKCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihkb2N1bWVudC5wYWdlKCktPnNl
c3Npb25JRCgpKTsKKyAgICAgICAgcHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9tYWluVGhyZWFkQ29u
bmVjdGlvbiA9IHByb3RlY3RlZENvbm5lY3Rpb24tPm1fcHJveHkuY3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbigpOwogICAgIH0pOwogICAgIHJldHVybiBjb25uZWN0aW9uOwogfQpAQCAtMTEx
LDEyICsxMDgsMTIgQEAgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6V29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYgc2MKIFdvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkKIHsKICAgICBpZiAo
bV9tYWluVGhyZWFkQ29ubmVjdGlvbikKLSAgICAgICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVy
KFttYWluVGhyZWFkQ29ubmVjdGlvbiA9IFdURk1vdmUobV9tYWluVGhyZWFkQ29ubmVjdGlvbild
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsgfSk7CisgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW21haW5UaHJlYWRDb25uZWN0aW9uID0gV1RGTW92ZShtX21haW5UaHJlYWRDb25u
ZWN0aW9uKV0oKSBtdXRhYmxlIHsgfSk7CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6ZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiBjYWNoZU5hbWUpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFz
a1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJ
ZGVudGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhY2hlTmFtZSA9IGNh
Y2hlTmFtZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUg
eworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwg
Y2FjaGVOYW1lID0gY2FjaGVOYW1lLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29u
bmVjdGlvbik7CiAKQEAgLTEzMSw3ICsxMjgsNyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmRvT3Blbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaQog
CiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94
eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdKCkg
bXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VS
VChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsKIApAQCAtMTQ3LDcgKzE0NCw3IEBAIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIHVpbnQ2NF90CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9S
ZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBv
cmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVu
dGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCksIHVwZGF0ZUNvdW50ZXJdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBv
cmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCksIHVwZGF0ZUNvdW50ZXJdKCkgbXV0YWJsZSB7
CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5U
aHJlYWRDb25uZWN0aW9uKTsKIApAQCAtMTY4LDcgKzE2NSw3IEBAIHZvaWQgV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZWZlcmVuY2UodWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKCkgewogICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29u
bmVjdGlvbik7CiAKQEAgLTE3OCw3ICsxNzUsNyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OnJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiAKIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVyZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKCkgewogICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAg
LTIxMyw3ICsyMTAsNyBAQCBzdGF0aWMgaW5saW5lIFJlY29yZHNPckVycm9yIHJlY29yZHNPckVy
cm9yRnJvbVJlY29yZHNEYXRhKEV4cGVjdGVkPFZlY3RvcjxDcm9zcwogCiB2b2lkIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgdXJsKQogewot
ICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCB1cmwgPSB1cmwu
aXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJl
cXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHVybCA9IHVybC5pc29sYXRlZENvcHko
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
QVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0yMjgsNyArMjI1LDcgQEAgdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlUmVjb3Jkcyh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb0JhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2Fj
aGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRl
cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmll
ciwgY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgb3B0
aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBt
dXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3Qg
PSByZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHko
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
QVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0yNDQsNyArMjQxLDcgQEAgdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoRGVsZXRlT3BlcmF0aW9uKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGkKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb0JhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxSZWNvcmQ+JiYgcmVjb3JkcykKIHsKLSAgICBtX3By
b3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVjb3Jkc0RhdGEgPSByZWNv
cmRzRGF0YUZyb21SZWNvcmRzKHJlY29yZHMpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0
YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRGF0
YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25u
ZWN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDBhNmNjNGQ2ZTZjZDMxOTk3NDc1NjZiODhjOGIyZWI2YzZiYjllMzAu
LmJjNThiYmU2NjZjZGUyODQ3OWMzNjg5YzRlZGQwYjVhYjQxNjQ1Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU2NSw3ICs1
NjUsNyBAQAogCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0YyNzBGMzI3
OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggKi87IH07CiAJCTE4ODYwNEIzMEYyRTY1NEEw
MDBCNjQ0MyAvKiBET01UaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxODg2MDRCMTBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3BwICov
OyB9OwogCQkxODg2MDRCNDBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4ODYwNEIyMEYyRTY1NEEwMDBC
NjQ0MyAvKiBET01UaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMThGODMx
QjcwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggKi87IH07CisJCTE4Rjgz
MUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMThGODMxQjcwRkQ0OEM3ODAwRDhDNTZC
IC8qIFdvcmtlckxvYWRlclByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTkyMTMyNzQxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE5MjEzMjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHAgKi87IH07CiAJCTE5MjEzMjc1MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTkyMTMyNzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmggKi87IH07CiAJCTE5N0IxODBDMTUwNjM1MzIwMEU0QURBOCAvKiBTVkdSZW5k
ZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxOTdCMTgwQjE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oICov
OyB9OwpAQCAtMTM4Myw2ICsxMzgzLDggQEAKIAkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjE0IC8q
IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBOTFFMzk3OTBBMDA3NjlGMTQgLyogUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNBQUUxRTM5Nzkx
MDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBQTFFMzk3OTBBMDA3NjlG
MDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCAqLzsgfTsKIAkJNDExMDNBQUUx
RTM5NzkxMDAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUFBMUUz
OTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi87
IH07CisJCTQxMTJCNTQyMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEx
MkI1NDExRjlGOUM5QzAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgKi87
IH07CisJCTQxMTJCNTQzMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJC
NTNGMUY5RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTIzMDgxQjEzOEM0
Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2Vi
Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrICovOyB9OwogCQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTMwMTVENjFDN0I1NzA0MDAwOTFDNkYgLyogRmV0Y2hCb2R5U291cmNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgyMzIsNiArODIzNCw4IEBA
CiAJCTQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2VDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEw
M0FBQTFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUFBMUUzOTc5
MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2VDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTJCNTNGMUY5RjlD
OUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMTJCNTQxMUY5RjlDOUMwMEU2Nzg3NSAvKiBTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgy
MzI4MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBSZWFkYWJs
ZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTc4
LDYgKzE4MTgyLDggQEAKIAkJCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdv
cmtlckZldGNoLmggKi8sCiAJCQkJNTE3Qzg3MTExRjhFRTcyRjAwRUI4MDc2IC8qIFNlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwICovLAogCQkJCTUxN0M4NzEwMUY4RUU3MkUwMEVCODA3NiAvKiBTZXJ2
aWNlV29ya2VyVGhyZWFkLmggKi8sCisJCQkJNDExMkI1NDExRjlGOUM5QzAwRTY3ODc1IC8qIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgKi8sCisJCQkJNDExMkI1M0YxRjlGOUM5QjAwRTY3
ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBj
b250ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI5NTgwLDYgKzI5NTg2LDcg
QEAKIAkJCQk1MTdBNTMyOTFGNEI5MEI5MDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NjkxRjNFQkM4MzAwQzc0OTUwIC8q
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUJDQ0UzMDFGOEYxNzlFMDA2QkEwRUQgLyogU2VydmljZVdvcmtlclRocmVhZC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDExMkI1NDMxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NkMxRjNFQkM4MzAwQzc0OTUwIC8q
IFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZFRjE0
MkExRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5RTEwMDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjEwOCw2ICszMjExNSw3IEBACiAJCQkJNTE3
QTUzMjgxRjRCOTBCOTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGNjQ1QTIxRjRCRjUzQzAwQjU0REVEIC8qIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQkNDRTJG
MUY4RjE3OTUwMDZCQTBFRCAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTQxMTJCNTQyMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDZFRjE0MkUxRjk3QjdEODAwQzJBNTI0IC8qIFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENThERkQx
Rjk1NjVBODAwMTEyNzkxIC8qIFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQzY2
MEEyMUY5M0NCOTAwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKaW5kZXggZGFmZmUxZjdj
OTcxNjc2OTM4MjA3Mjg2ODU4ZDc2YjY5NzYzNDU5NC4uNGE2MzM3OTJjMjI5YWJhY2QzN2I1NmFi
MWViODMxY2M5ODYyMDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJMb2FkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVy
UHJveHkuaApAQCAtMzQsMjIgKzM0LDI3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAg
IC8vIEEgcHJveHkgdG8gdGFsayB0byB0aGUgbG9hZGVyIGNvbnRleHQuIE5vcm1hbGx5LCB0aGUg
ZG9jdW1lbnQgb24gdGhlIG1haW4gdGhyZWFkCi0gICAgLy8gcHJvdmlkZXMgbG9hZGluZyBzZXJ2
aWNlcyBmb3IgdGhlIHN1Ym9yZGluYXRlIHdvcmtlcnMuIFRoaXMgaW50ZXJmYWNlIHByb3ZpZGVz
IDItd2F5Ci0gICAgLy8gY29tbXVuaWNhdGlvbnMgdG8gdGhlIERvY3VtZW50IGNvbnRleHQgYW5k
IGJhY2sgdG8gdGhlIHdvcmtlci4KLSAgICAvLyBOb3RlIHRoYXQgaW4gbXVsdGktcHJvY2VzcyBi
cm93c2VycywgdGhlIFdvcmtlciBvYmplY3QgY29udGV4dCBhbmQgdGhlIERvY3VtZW50Ci0gICAg
Ly8gY29udGV4dCBjYW4gYmUgZGlzdGluY3QuCi0gICAgY2xhc3MgV29ya2VyTG9hZGVyUHJveHkg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+V29ya2VyTG9hZGVyUHJveHkoKSA9IGRl
ZmF1bHQ7Ci0KLSAgICAgICAgLy8gUG9zdHMgYSB0YXNrIHRvIHRoZSB0aHJlYWQgd2hpY2ggcnVu
cyB0aGUgbG9hZGluZyBjb2RlIChub3JtYWxseSwgdGhlIG1haW4gdGhyZWFkKS4KLSAgICAgICAg
dmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayYmKSA9IDA7Ci0KLSAgICAgICAgLy8gUG9zdHMgY2FsbGJhY2tzIGZyb20gbG9hZGluZyBjb2Rl
IHRvIHRoZSBXb3JrZXJHbG9iYWxTY29wZS4gVGhlICdtb2RlJyBpcyB1c2VkIHRvIGRpZmZlcmVu
dGlhdGUKLSAgICAgICAgLy8gc3BlY2lmaWMgc3luY2hyb25vdXMgbG9hZGluZyByZXF1ZXN0cyBz
byB0aGV5IGNhbiBiZSAnbmVzdGVkJywgcGVyIHNwZWMuCi0gICAgICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB0aGUgdGFzayB3YXMgcG9zdGVkIHN1Y2Nlc3NmdWxseS4KLSAgICAgICAgdmlydHVhbCBi
b29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpID0gMDsKLSAgICB9OworY2xhc3MgQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjsKKworLy8gQSBwcm94eSB0byB0YWxrIHRvIHRoZSBsb2FkZXIg
Y29udGV4dC4gTm9ybWFsbHksIHRoZSBkb2N1bWVudCBvbiB0aGUgbWFpbiB0aHJlYWQKKy8vIHBy
b3ZpZGVzIGxvYWRpbmcgc2VydmljZXMgZm9yIHRoZSBzdWJvcmRpbmF0ZSB3b3JrZXJzLiBUaGlz
IGludGVyZmFjZSBwcm92aWRlcyAyLXdheQorLy8gY29tbXVuaWNhdGlvbnMgdG8gdGhlIERvY3Vt
ZW50IGNvbnRleHQgYW5kIGJhY2sgdG8gdGhlIHdvcmtlci4KKy8vIE5vdGUgdGhhdCBpbiBtdWx0
aS1wcm9jZXNzIGJyb3dzZXJzLCB0aGUgV29ya2VyIG9iamVjdCBjb250ZXh0IGFuZCB0aGUgRG9j
dW1lbnQKKy8vIGNvbnRleHQgY2FuIGJlIGRpc3RpbmN0LgorY2xhc3MgV29ya2VyTG9hZGVyUHJv
eHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtlckxvYWRlclByb3h5KCkgPSBkZWZhdWx0
OworCisgICAgLy8gQ3JlYXRlcyBhIGNhY2hlIHN0b3JhZ2UgY29ubmVjdGlvbiB0byBiZSB1c2Vk
IG9uIHRoZSBtYWluIHRocmVhZC4gTWV0aG9kIG11c3QgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRo
cmVhZC4KKyAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKCkgPSAwOworCisgICAgLy8gUG9zdHMgYSB0YXNrIHRvIHRoZSB0
aHJlYWQgd2hpY2ggcnVucyB0aGUgbG9hZGluZyBjb2RlIChub3JtYWxseSwgdGhlIG1haW4gdGhy
ZWFkKS4KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrJiYpID0gMDsKKworICAgIC8vIFBvc3RzIGNhbGxiYWNrcyBmcm9tIGxvYWRp
bmcgY29kZSB0byB0aGUgV29ya2VyR2xvYmFsU2NvcGUuIFRoZSAnbW9kZScgaXMgdXNlZCB0byBk
aWZmZXJlbnRpYXRlCisgICAgLy8gc3BlY2lmaWMgc3luY2hyb25vdXMgbG9hZGluZyByZXF1ZXN0
cyBzbyB0aGV5IGNhbiBiZSAnbmVzdGVkJywgcGVyIHNwZWMuCisgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoZSB0YXNrIHdhcyBwb3N0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIHZpcnR1YWwgYm9vbCBw
b3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSA9IDA7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCmluZGV4IDY4NWM1NGY3YWY3ZGFiMTIzNGMzM2ZjMzg3NjEyZWE4MWYzYWZmODkuLmU4NmEz
YTJiOTFhMzBlNmZmOWZhNTZkY2YxMzQ0ZDRhNjk5M2YyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnaW5nUHJveHkuaCIKIAor
I2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3Vy
aXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFcnJvckV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yUHJveHkuaCIK
QEAgLTEzMyw2ICsxMzUsMTMgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tU
b0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKICAgICBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFdURk1vdmUodGFzaykpOwogfQogCitSZWY8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gV29ya2VyTWVzc2FnaW5nUHJveHk6OmNyZWF0ZUNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0
byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CisgICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5j
cmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3VtZW50LnBhZ2UoKS0+c2Vzc2lvbklEKCkp
OworfQorCiBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBT
dHJpbmcmIG1vZGUpCiB7CiAgICAgaWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA4YjFmOGY4MDBmNTUx
N2E2NWNmMGNkOTNlZTFjMjQ4MzUxMTU3MTMxLi5hNjU4YmU5ZmVkNDZhMTQxMjUyMTRlNjQwZmM5
ZDVjNTZjMWM5OWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gcmVxdWVzdHMgYW5k
IHRvIHNlbmQgY2FsbGJhY2tzIGJhY2sgdG8gV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgdm9pZCBw
b3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgZmluYWw7CiAg
ICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKyAgICBSZWY8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFs
OwogCiAgICAgdm9pZCB3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRlZFdvcmtlclRocmVhZCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDliNTEzNTcyN2UyNWFlYTVjNGNm
YWY3MzZhNjI2YzVkZDdlZmNmMzEuLmViNTgyYzA2MGI4NzVhNjFmNzViNDZlNGVhNmNhMjQ1MWE5
ZTc0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDYWNoZVN0b3JhZ2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5o
IgogI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgpAQCAtNDMsNyArNDQsNyBAQCB1c2luZyBuYW1lc3BhY2UgUEFMOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1Ymxp
YyBXb3JrZXJMb2FkZXJQcm94eSwgcHVibGljIFdvcmtlck9iamVjdFByb3h5IHsKK2NsYXNzIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eSA6IHB1YmxpYyBXb3JrZXJPYmplY3RQcm94eSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSYgc2hhcmVkRHVtbXlQcm94
eSgpCiAgICAgewpAQCAtNTIsOCArNTMsNiBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgot
ICAgIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYp
IGZpbmFsIHsgfTsKLSAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfTsKICAgICB2b2lkIHBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25z
dCBTdHJpbmcmLCBpbnQsIGludCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9OwogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9OwogICAg
IHZvaWQgd29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWQoKSBmaW5hbCB7IH07CkBAIC03MCw4ICs2
OSw4IEBAIHByaXZhdGU6CiAvLyBGSVhNRTogVXNlIGEgdmFsaWQgdXNlciBhZ2VudAogLy8gRklY
TUU6IFVzZSB2YWxpZCBydW50aW1lIGZsYWdzCiAKLVNlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZp
Y2VXb3JrZXJUaHJlYWQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQpCi0gICAgOiBX
b3JrZXJUaHJlYWQoZGF0YS5zY3JpcHRVUkwsIGRhdGEud29ya2VySUQsIEFTQ0lJTGl0ZXJhbCgi
V29ya2VyVXNlckFnZW50IiksIGRhdGEuc2NyaXB0LCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OnNoYXJlZER1bW15UHJveHkoKSwgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzaGFyZWREdW1t
eVByb3h5KCksIFdvcmtlclRocmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMgeyB9LCBmYWxzZSwgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShk
YXRhLnNjcmlwdFVSTCkuZ2V0KCksIE1vbm90b25pY1RpbWU6Om5vdygpLCBudWxscHRyLCBudWxs
cHRyLCBKU0M6OlJ1bnRpbWVGbGFnczo6Y3JlYXRlQWxsRW5hYmxlZCgpLCBTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSkKK1NlcnZpY2VXb3JrZXJUaHJlYWQ6OlNlcnZpY2VXb3JrZXJUaHJl
YWQodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQsIFdvcmtlckxvYWRlclByb3h5JiBs
b2FkZXJQcm94eSkKKyAgICA6IFdvcmtlclRocmVhZChkYXRhLnNjcmlwdFVSTCwgZGF0YS53b3Jr
ZXJJRCwgQVNDSUlMaXRlcmFsKCJXb3JrZXJVc2VyQWdlbnQiKSwgZGF0YS5zY3JpcHQsIGxvYWRl
clByb3h5LCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZER1bW15UHJveHkoKSwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyB7IH0sIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJM
KS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIG51bGxwdHIsIEpTQzo6UnVu
dGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25J
RCgpKQogICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcikKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV93
b3JrZXJPYmplY3RQcm94eShTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZER1bW15UHJv
eHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCA3MzcyODExYTk5MWQ0NWNmYWQ1YzVh
MGUwYWFjYzBhYzFmNzZhOGZjLi5kNTU5MjM5ZDAwODEwZThmOTA3Zjc0NjhlMTA0NWQyNjY3NmE0
MTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC0zNCw2ICszNCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVTdG9yYWdlUHJvdmlkZXI7CiBjbGFzcyBDb250
ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnM7CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5u
ZWw7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CkBAIC02MCw3ICs2MSw3IEBAIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHJ1bkV2ZW50TG9vcCgpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vz
c2lvbklEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEmLCBQQUw6OlNlc3Npb25JRCwgV29ya2VyTG9hZGVyUHJveHkmKTsKIAogICAgIHVpbnQ2NF90
IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhIG1fZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ0ZTM0M2E1ODAzMzY1MTRiOTgwMDRkYmM4Yjg0ZDU4ZGE2YTJlNDgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgiCisKKyNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlU3RvcmFn
ZVByb3ZpZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eT4gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWNoZVN0b3Jh
Z2VQcm92aWRlciYgY2FjaGVTdG9yYWdlUHJvdmlkZXIpCit7CisgICAgYXV0byBzZXJ2aWNlV29y
a2VyID0gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgeyBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgZGF0YSwgc2Vzc2lvbklELCBjYWNoZVN0b3JhZ2VQcm92aWRlciB9
KTsKKyAgICBzZXJ2aWNlV29ya2VyLT5tX3NlcnZpY2VXb3JrZXJUaHJlYWQtPnN0YXJ0KCk7Cisg
ICAgcmV0dXJuIHNlcnZpY2VXb3JrZXI7Cit9CisKK1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6
U2VydmljZVdvcmtlclRocmVhZFByb3h5KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImIGNhY2hlU3RvcmFnZVBy
b3ZpZGVyKQorICAgIDogbV9zZXJ2aWNlV29ya2VyVGhyZWFkKFNlcnZpY2VXb3JrZXJUaHJlYWQ6
OmNyZWF0ZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0YSwgc2Vzc2lvbklELCAqdGhp
cykpCisgICAgLCBtX2NhY2hlU3RvcmFnZVByb3ZpZGVyKGNhY2hlU3RvcmFnZVByb3ZpZGVyKQor
ICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQoreworICAgIG1fc2VydmljZVdvcmtlclRocmVh
ZC0+c3RhcnQoKTsKK30KKworYm9vbCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RUYXNr
Rm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYm
IHRhc2ssIGNvbnN0IFN0cmluZyYgbW9kZSkKK3sKKyAgICAvLyBGSVhNRTogSGFuZGxlIHRlcm1p
bmF0aW9uIGNhc2UuCisgICAgbV9zZXJ2aWNlV29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFdURk1vdmUodGFzayksIG1vZGUpOworICAgIHJldHVybiB0cnVlOworfQorCit2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrJiYpCit7CisgICAgLy8gSW1wbGVtZW50IHRoaXMuCit9CisKK1Jl
ZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0
ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CisgICAgaWYgKCFtX2NhY2hlU3RvcmFnZUNvbm5lY3Rpb24pCisgICAgICAgIG1fY2FjaGVTdG9y
YWdlQ29ubmVjdGlvbiA9IG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIuY3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbihtX3Nlc3Npb25JRCk7CisgICAgcmV0dXJuICptX2NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODJlNmYxMjYyOGRlZGU0Y2I5ZWQ2ZjkwMTE5YzQxZGI0YzkxY2QyNgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkLmgiCisjaW5jbHVkZSAiV29ya2VyTG9hZGVy
UHJveHkuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwor
c3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKKworY2xhc3MgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5IGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eT4sIHB1YmxpYyBXb3JrZXJMb2FkZXJQcm94eSB7CitwdWJsaWM6CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+IGNyZWF0
ZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQsIENhY2hlU3RvcmFnZVByb3ZpZGVyJik7CisK
KyAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2Vy
VGhyZWFkLT5pZGVudGlmaWVyKCk7IH0KKyAgICBTZXJ2aWNlV29ya2VyVGhyZWFkJiB0aHJlYWQo
KSB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJUaHJlYWQuZ2V0KCk7IH0KKworcHJpdmF0ZToKKyAg
ICBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBD
YWNoZVN0b3JhZ2VQcm92aWRlciYpOworICAgIGJvb2wgcG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJH
bG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYsIGNvbnN0IFN0cmluZyYg
bW9kZSkgZmluYWw7CisgICAgdm9pZCBwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2smJikgZmluYWw7CisgICAgUmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IGNy
ZWF0ZUNhY2hlU3RvcmFnZUNvbm5lY3Rpb24oKSBmaW5hbDsKKworICAgIFJlZjxTZXJ2aWNlV29y
a2VyVGhyZWFkPiBtX3NlcnZpY2VXb3JrZXJUaHJlYWQ7CisgICAgQ2FjaGVTdG9yYWdlUHJvdmlk
ZXImIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXI7CisgICAgUmVmUHRyPENhY2hlU3RvcmFnZUNvbm5l
Y3Rpb24+IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKKyAgICBQQUw6OlNlc3Npb25JRCBtX3Nl
c3Npb25JRDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCmluZGV4IDMzYjc0OTM2ZGQ5YTRjZmI0YWZjY2E3YTEyMTRkYTEzZWFiZGE2NWEuLjk3MjI2
YWRkOTM3NGFkOTM5MjcyMmE0YWE5MTkzN2RiNTJiYWE4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpnZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oU3RvcmFnZVByb2Nl
c3NQcm94eSYgcHJveAogICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUgPSBBUEk6OldlYnNpdGVE
YXRhU3RvcmU6OmRlZmF1bHREYXRhU3RvcmUoKS5wdHIoKTsKICAgICBhdXRvJiBuZXdQcm9jZXNz
ID0gY3JlYXRlTmV3V2ViUHJvY2VzcyhtX3dlYnNpdGVEYXRhU3RvcmUtPndlYnNpdGVEYXRhU3Rv
cmUoKSk7CiAgICAgbV93b3JrZXJDb250ZXh0UHJvY2VzcyA9ICZuZXdQcm9jZXNzOwotICAgIG1f
d29ya2VyQ29udGV4dFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdldFdvcmtl
ckNvbnRleHRDb25uZWN0aW9uKCksIDApOworICAgIG1fd29ya2VyQ29udGV4dFByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKG1fZGVm
YXVsdFBhZ2VHcm91cC0+cHJlZmVyZW5jZXMoKS5zdG9yZSgpKSwgMCk7CiB9CiAKIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmRpZEdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbihjb25zdCBJ
UEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZGQwZWM5MjllZGVh
MDVjYzY2ZjE0ZjkwZWQwYTBkN2U3YTVjMDg1MS4uZmU2ZTgzMzllMzZkYjg3MGM0YzA4NDliNjRi
NmE1MGU0YzFjZmY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtNjgsOSArNjgsMTEgQEAgZW51bSBjbGFz
cyBTaG91bGRDbGVhckZpcnN0IHsgTm8sIFllcyB9OwogCiBjbGFzcyBXZWJzaXRlRGF0YVN0b3Jl
IDogcHVibGljIFJlZkNvdW50ZWQ8V2Vic2l0ZURhdGFTdG9yZT4sIHB1YmxpYyBXZWJQcm9jZXNz
TGlmZXRpbWVPYnNlcnZlciwgcHVibGljIElkZW50aWZpZWQ8V2Vic2l0ZURhdGFTdG9yZT4gIHsK
IHB1YmxpYzoKKyAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90IGRlZmF1bHRDYWNoZVN0b3Jh
Z2VQZXJPcmlnaW5RdW90YSA9IDIwICogMTAyNCAqIDEwMjQ7CisKICAgICBzdHJ1Y3QgQ29uZmln
dXJhdGlvbiB7CiAgICAgICAgIFN0cmluZyBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7Ci0gICAgICAg
IHVpbnQ2NF90IGNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhOworICAgICAgICB1aW50NjRfdCBj
YWNoZVN0b3JhZ2VQZXJPcmlnaW5RdW90YSB7IGRlZmF1bHRDYWNoZVN0b3JhZ2VQZXJPcmlnaW5R
dW90YSB9OwogICAgICAgICBTdHJpbmcgbmV0d29ya0NhY2hlRGlyZWN0b3J5OwogICAgICAgICBT
dHJpbmcgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeTsKICAgICAgICAgU3RyaW5nIGFwcGxpY2F0
aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWU7CkBAIC04OCw4ICs5MCw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPFdlYnNpdGVEYXRhU3RvcmU+IGNyZWF0ZShDb25maWd1cmF0aW9u
LCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdmlydHVhbCB+V2Vic2l0ZURhdGFTdG9yZSgpOwogCi0g
ICAgY29uc3RleHByIHN0YXRpYyB1aW50NjRfdCBkZWZhdWx0Q2FjaGVTdG9yYWdlUGVyT3JpZ2lu
UXVvdGEgPSAyMCAqIDEwMjQgKiAxMDI0OwotCiAgICAgYm9vbCBpc1BlcnNpc3RlbnQoKSBjb25z
dCB7IHJldHVybiAhbV9zZXNzaW9uSUQuaXNFcGhlbWVyYWwoKTsgfQogICAgIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29y
a2VyQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IGRiMTdkZDM1OGE5ODJkNDkzOWM5ZjY4OGZmZGE1
ZTNiYjU2ODg0MGEuLmM2YTU5MjhmOTIzZjI5MWU5N2UwNDQwMjUzYjk4NTY5Y2MwYmQ0YzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcApAQCAtMzEsMTEgKzMxLDE2IEBACiAjaW5j
bHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJT
dG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVTdG9yYWdlUHJvdmlk
ZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQ
cmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaW5j
bHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5lbC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZVJlc3BvbnNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+CiAKQEAgLTQ0LDMxICs0OSw0MSBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
cjo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29u
bmVjdGlvbiwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCisgICAgOiBtX2Nvbm5l
Y3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCit7CisgICAgdXBkYXRl
UHJlZmVyZW5jZXMoc3RvcmUpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
cjo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7
CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDYWNoZUFQ
SUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpjYWNo
ZUFQSUVuYWJsZWRLZXkoKSkpOworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkuc2V0RmV0Y2hBUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElFbmFibGVkS2V5KCkpKTsKK30KKwogdm9pZCBTZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRh
KQogewogICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc2Vuc2ljYWwgc2Vzc2lvbiBJRC4KLSAgICBh
dXRvIHRocmVhZCA9IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OmNyZWF0ZShzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgZGF0YSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwotICAgIGF1
dG8gdGhyZWFkSWRlbnRpZmllciA9IHRocmVhZC0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gcmVz
dWx0ID0gbV93b3JrZXJUaHJlYWRNYXAuYWRkKHRocmVhZElkZW50aWZpZXIsIFdURk1vdmUodGhy
ZWFkKSk7Ci0gICAgQVNTRVJUKHJlc3VsdC5pc05ld0VudHJ5KTsKLQotICAgIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUtPnN0YXJ0KCk7CisgICAgYXV0byBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkg
PSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgZGF0YSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkpOworICAgIGF1dG8gc2VydmljZVdvcmtl
cklkZW50aWZpZXIgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmlkZW50aWZpZXIoKTsKKyAg
ICBhdXRvIHJlc3VsdCA9IG1fd29ya2VyTWFwLmFkZChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
V1RGTW92ZShTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJl
c3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwogCiAgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJDb250
ZXh0IHByb2Nlc3MgUElEOiAlaSBzdGFydGVkIHdvcmtlciB0aHJlYWQgJXNcbiIsIGdldHBpZCgp
LCBkYXRhLndvcmtlcklELnV0ZjgoKS5kYXRhKCkpOwogCi0gICAgbV9jb25uZWN0aW9uVG9TdG9y
YWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OlNlcnZpY2VXb3JrZXJD
b250ZXh0U3RhcnRlZChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0YS5yZWdpc3RyYXRp
b25LZXksIHRocmVhZElkZW50aWZpZXIsIGRhdGEud29ya2VySUQpLCAwKTsKKyAgICBtX2Nvbm5l
Y3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6U2Vy
dmljZVdvcmtlckNvbnRleHRTdGFydGVkKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRh
LnJlZ2lzdHJhdGlvbktleSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGRhdGEud29ya2VySUQp
LCAwKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0RmV0Y2go
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRp
ZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBzZXJ2aWNlV29y
a2VyVGhyZWFkID0gbV93b3JrZXJUaHJlYWRNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKLSAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWQpIHsKKyAgICBhdXRvIHNlcnZpY2VXb3Jr
ZXIgPSBtX3dvcmtlck1hcC5nZXQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIGlmICgh
c2VydmljZVdvcmtlcikgewogICAgICAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5z
ZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkTm90SGFuZGxlRmV0Y2goc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciksIDApOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgYXV0byBjbGllbnQgPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50OjpjcmVhdGUobV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy5jb3B5UmVmKCksIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwotICAgIHNlcnZpY2VXb3Jr
ZXJUaHJlYWQtPnBvc3RGZXRjaFRhc2soV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKG9wdGlvbnMpKTsKKyAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5wb3N0RmV0
Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25z
KSk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFu
YWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyLmgKaW5kZXggNjk0ZmY3NWYxYTg4NTM5NDQxZGYxNmJmYTgyMzc1NjMxNjIx
YTk1My4uYWZhYjBhZWI3NDA5ZTQ3NWQ0ZTgxZDc1MmUxYjcxYjdmZTY1NDdkOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3Jl
L1NlcnZpY2VXb3JrZXJUaHJlYWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTQyLDIwICs0MiwxOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsK
IHB1YmxpYzoKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoUmVmPElQ
Qzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQotICAgICAgICA6IG1fY29ubmVjdGlvblRvU3Rv
cmFnZVByb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICB7Ci0gICAgfQorICAgIFNlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCiBwcml2YXRlOgorICAgIHZvaWQgdXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOworCiAgICAgdm9pZCBz
dGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpOwogICAgIHZvaWQgc3RhcnRG
ZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJ
ZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmKTsKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6
OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKIAog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3M7Ci0g
ICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ+
PiBtX3dvcmtlclRocmVhZE1hcDsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViQ29y
ZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5Pj4gbV93b3JrZXJNYXA7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRl
eCAxZGVmNzFjMmEwOWE5ZjY4ODZkMWEwZDMwMzVjMDlkNzJjYTI2OWJhLi42NjUxYjc5NmE0MGNm
N2VkZDQwODM3NmRmZjZhMzkzNjU3ZTJmYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCkBAIC0xNjQwLDcgKzE2NDAsNyBAQCBMaWJXZWJSVENOZXR3b3JrJiBXZWJQ
cm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigpCit2
b2lkIFdlYlByb2Nlc3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogewogICAgIEFTU0VSVCghbV9zZXJ2aWNlV29ya2VyTWFuYWdl
cik7CiAKQEAgLTE2NjQsNyArMTY2NCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29u
dGV4dENvbm5lY3Rpb24oKQogCiAgICAgYXV0byB3b3JrZXJDb250ZXh0Q29ubmVjdGlvbiA9IElQ
Qzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9uSWRlbnRpZmll
ciwgKnRoaXMpOwogICAgIHdvcmtlckNvbnRleHRDb25uZWN0aW9uLT5vcGVuKCk7Ci0gICAgbV9z
ZXJ2aWNlV29ya2VyTWFuYWdlciA9ICBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoV1RGTW92
ZSh3b3JrZXJDb250ZXh0Q29ubmVjdGlvbikpOworICAgIG1fc2VydmljZVdvcmtlck1hbmFnZXIg
PSAgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyKFdURk1vdmUod29ya2VyQ29udGV4dENvbm5l
Y3Rpb24pLCBzdG9yZSk7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRHZXRXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvbihjb25uZWN0aW9uQ2xpZW50UG9ydCksIDApOwogfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBkYTFhNTI2YzNkYjM2MDRk
YzM2ODUyYjRiMmRmYTQzNzA2MmUwZDMwLi41MDdiM2Q0ZDM1NzMzMzYxNzBkMDZjNWNiY2Y4MzM3
YzJlZTEyZDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI5OSw3
ICsyOTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoY29u
c3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzJik7CiAjZW5kaWYKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigp
OworICAgIHZvaWQgZ2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZSYpOwogI2VuZGlmCiAKICAgICB2b2lkIHJlbGVhc2VQYWdlQ2FjaGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjM3
ZTZmMjhkNjBhZTAwMWVhNGVlN2Y1OTU1YmM4NmNmYTE3MGQ1Yi4uOTYwODkxZjM3MDRkOTJlYjUz
MjU3M2NmMWRmNTM5MDkwZTI1MjllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTExNSw2ICsxMTUsNiBAQCBtZXNzYWdlcyAtPiBX
ZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotICAgIEdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKCkKKyAgICBHZXRXb3JrZXJD
b250ZXh0Q29ubmVjdGlvbihzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3Jl
KQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzRkZjYyMjAxNGYyZWMyYjY0NWFhM2U5MGUxMDE2YWYzM2U5
MjQ5YS4uY2NlM2RkZTRkMWRhYzM5NTdmYTk5MmZjOTQxYjEwYTIyNGFiNjQ2MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDE3LTEwLTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBFbmFibGUgc2VydmljZSB3b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2Ug
YXBpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBp
LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
cmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qczogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDE3LTEw
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGluaXRp
YWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2UoKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Nl
cnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNmYxOWUxNGZiYTE4MDYxOWQ5OWFhNGNkODdmOTRkNGRhZDhhMjE2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS13b3JrZXIuanMKQEAgLTAsMCAr
MSwzOCBAQAordmFyIHN0YXR1cyA9ICJubyBzdGF0dXMiOwordmFyIGNhY2hlOwordmFyIHdvcmtl
ciA9IHNlbGY7CisKK2FzeW5jIGZ1bmN0aW9uIHByZXBhcmVDYWNoZSgpCit7CisgICAgc3RhdHVz
ID0gIm9wZW5pbmcgY2FjaGUiOworICAgIGNhY2hlID0gYXdhaXQgY2FjaGVzLm9wZW4oInRlc3Qi
KTsKKyAgICBzdGF0dXMgPSAiY3JlYXRpbmcgcmVzcG9uc2UiOworICAgIHZhciByZXNwb25zZSA9
IG5ldyBSZXNwb25zZShuZXcgQXJyYXlCdWZmZXIoMTI5NDApLCB7IHN0YXR1czogMjAwLCBzdGF0
dXNUZXh0OiAiT0sifSk7CisgICAgc3RhdHVzID0gImZpbGxpbmcgY2FjaGUiOworICAgIGF3YWl0
IGNhY2hlLnB1dCgiL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nIiwgcmVzcG9uc2UpOworICAgIHN0
YXR1cyA9ICJjYWNoZSBpcyByZWFkeSI7Cit9CisKK2Z1bmN0aW9uIHN0YXR1c1Jlc3BvbnNlKCkK
K3sKKyAgICByZXR1cm4gbmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6IDIwMCwgc3RhdHVzVGV4
dDogc3RhdHVzfSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigiZmV0Y2giLCAoZXZlbnQp
ID0+IHsKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5kZXhPZigic3RhdHVzIikgIT09IC0x
KSB7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHByb21pc2UudGhlbihzdGF0dXNSZXNwb25z
ZSwgc3RhdHVzUmVzcG9uc2UpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoIWV2
ZW50LnJlcXVlc3QudXJsLmVuZHNXaXRoKCIuZnJvbXNlcnZpY2V3b3JrZXIiKSkgeworICAgICAg
ICBzdGF0ZSA9ICJ1bmtub3duIHVybCI7CisgICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKG5ldyBS
ZXNwb25zZShudWxsLCB7c3RhdHVzOiA0MDQsIHN0YXR1c1RleHQ6ICJOb3QgRm91bmQifSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50LnJlc3BvbmRXaXRoKHByb21pc2UudGhl
bigoKSA9PiB7CisgICAgICAgIHN0YXR1cyA9IGV2ZW50LnJlcXVlc3QudXJsLnN1YnN0cmluZygw
LCBldmVudC5yZXF1ZXN0LnVybC5sZW5ndGggLSAxOCk7CisgICAgICAgIHJldHVybiBjYWNoZXMu
b3BlbigidGVzdCIpLnRoZW4oKGNhY2hlKSA9PiB7CisgICAgICAgICAgICByZXR1cm4gY2FjaGUu
bWF0Y2goZXZlbnQucmVxdWVzdC51cmwuc3Vic3RyaW5nKDAsIGV2ZW50LnJlcXVlc3QudXJsLmxl
bmd0aCAtIDE4KSk7CisgICAgICAgIH0pOworICAgIH0pKTsKK30pOwordmFyIHByb21pc2UgPSBw
cmVwYXJlQ2FjaGUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXIt
Y2FjaGUtYXBpLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjMGI4NjliMzY2NGE1M2Q4Mjc2ZGFkZjc5MjI4NGU2
MGU2Y2IyOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmpzCkBAIC0wLDAg
KzEsMzEgQEAKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGZpbmlzaFNXVGVzdCgpOworfQorCith
c3luYyBmdW5jdGlvbiBsb2dTdGF0dXMoKQoreworICAgIHZhciByZXNwb25zZSA9IGF3YWl0IGZl
dGNoKCJzdGF0dXMiKTsKKyAgICBsb2coIlN0YXR1cyBpcyAiICsgcmVzcG9uc2Uuc3RhdHVzVGV4
dCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvc2VydmljZS13
b3JrZXItY2FjaGUtYXBpLXdvcmtlci5qcyIsIHsgfSk7CisKKyAgICAgICAgYXdhaXQgbG9nU3Rh
dHVzKCk7CisKKyAgICAgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goIi9yZXNvdXJjZXMv
c3F1YXJlMTAwLnBuZy5mcm9tc2VydmljZXdvcmtlciIpOworICAgICAgICB2YXIgYnVmZmVyID0g
IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7CisgICAgICAgIGxvZygiUmVzcG9uc2UgYnVm
ZmVyIGJ5dGUgbGVuZ3RoIGlzICIgKyBidWZmZXIuYnl0ZUxlbmd0aCk7CisKKyAgICAgICAgYXdh
aXQgbG9nU3RhdHVzKCk7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGF3YWl0IGxvZ1N0YXR1
cygpOworICAgICAgICBsb2coIkdvdCBleGNlcHRpb246ICIgKyBlKTsKKyAgICB9CisgICAgZmlu
aXNoU1dUZXN0KCk7Cit9CisKK3Rlc3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1jYWNoZS1hcGkuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFlNjg4OWZl
NTNmYjRlNWU4MjI0NWI4NmQyN2NjNTY0ZDFhYzgzYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1h
cGkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorU3RhdHVzIGlzIGNhY2hlIGlz
IHJlYWR5CitSZXNwb25zZSBidWZmZXIgYnl0ZSBsZW5ndGggaXMgMTI5NDAKK1N0YXR1cyBpcyBo
dHRwczovLzEyNy4wLjAuMTo4NDQzL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2Vy
LWNhY2hlLWFwaS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJk
MmE1NDA2MTdmYTA5ZWVlZmI4ZTZkN2JiZDg4ODFiM2FhODhkMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNh
Y2hlLWFwaS5odHRwcy5odG1sCkBAIC0wLDAgKzEsOCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvc3ctdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324728</attachid>
            <date>2017-10-24 14:53:35 -0700</date>
            <delta_ts>2017-10-24 15:28:48 -0700</delta_ts>
            <desc>Rebasing patch for landing</desc>
            <filename>bug-178684-20171024145335.patch</filename>
            <type>text/plain</type>
            <size>48513</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzOTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTEzYjRkYmZjMWI0NzJj
ZTgxNmIzMTNmMzdjMWMxNTVlMDQ0MWMxMC4uNjU4YjlmMTA5MzlmZDExNDI1ODZjM2VmYmRmNGVi
MDQzNjgxYTRlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDE3LTEwLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgc2VydmljZSB3
b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFk
eSBFaWRzb24uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwKKworICAgICAgICBVcGRhdGVkIFdvcmtl
ckxvYWRlclByb3h5IHNvIHRoYXQgaXQgY2FuIGNyZWF0ZSBhIENhY2hlU3RvcmFnZUNvbm5lY3Rp
b24uCisgICAgICAgIFVwZGF0ZSBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uIHRvIHRha2Ug
YmVuZWZpdCBvZiB0aGF0LgorICAgICAgICBUaGlzIGFsbG93cyBjcmVhdGluZyBhIENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24gYmFzZWQgb24gdGhlIHBhZ2UgZm9yIHJlZ3VsYXIgd29ya2VycyBhbmQg
ZGlmZmVyZW50bHkgZm9yIFNlcnZpY2UgV29ya2VyIGNvbnRleHQuCisKKyAgICAgICAgQWRkZWQg
U2VydmljZVdvcmtlclRocmVhZFByb3h5IGFzIGEgcHJveHkgdG8gU2VydmljZVdvcmtlclRocmVh
ZC4KKyAgICAgICAgSXQgaXMgaW4gcGFydGljdWxhciByZXNwb25zaWJsZSB0byBkbyBwcm94eSBm
b3IgbG9hZGluZyB0YXNrcy4KKyAgICAgICAgSXQgaW1wbGVtZW50cyBjYWNoZSBBUEkgc3VwcG9y
dCBmb3Igc2VydmljZSB3b3JrZXIgYnkgY3JlYXRpbmcgYSBkZWRpY2F0ZWQgQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6fldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9PcGVuKToKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVDYWNoZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6cmVmZXJlbmNl
KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRlcmVm
ZXJlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246
OmRvUmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246OmRvQmF0Y2hEZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
V29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9CYXRjaFB1dE9wZXJhdGlvbik6CisgICAg
ICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtl
cnMvV29ya2VyTG9hZGVyUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5OjpjcmVh
dGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3Nh
Z2luZ1Byb3h5Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnBvc3RUYXNrRm9yTW9kZVRvV29y
a2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFBy
b3h5Ojpwb3N0VGFza1RvTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbik6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg6IEFkZGVkLgor
CiAyMDE3LTEwLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gZm9yIHNlcnZpY2VXb3JrZXIucG9zdE1lc3NhZ2Uo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBmMzA4MWVlYzA0NjkzODE5ZTNiM2Q1MDRjODg3MzAzMWRmYTNhMGNjLi43
OWZiYWQxZmM1NjUzNzdlNDkwMDM3YmVjODBmMzRmM2ViN2ViODIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTEwLTI0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBFbmFibGUgc2VydmljZSB3b3JrZXIgdG8gdXNlIGNhY2hlIHN0b3JhZ2UgYXBp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzg2ODQK
KworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgUGFzc2luZyB0
aGUgV2ViUHJlZmVyZW5jZXMgc3RvcmUgb2YgdGhlIGRlZmF1bHQgcGFnZSBncm91cCBvZiB0aGUg
V2ViUHJvY2Vzc1Bvb2wgdG8gaXRzIFNlcnZpY2VXb3JrZXIgcHJvY2Vzcy4KKyAgICAgICAgU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyIHRoZW4gdXNlcyBpdCB0byBpbml0aWFsaXplIHRoZSBw
cmVmZXJlbmNlcyBhY2NvcmRpbmdseS4KKyAgICAgICAgUGF0Y2ggaXMgY292ZXJlZCBieSBuZXcg
dGVzdCB3aGljaCBpcyB1c2luZyBjYWNoZSBhcGkgcHJldmlvdXNseSBkaXNhYmxlZCBhbmQgbm93
IGVuYWJsZWQgdGhyb3VnaCB0aGUgc3RvcmUuCisKKyAgICAgICAgTWFkZSB1c2Ugb2YgdGhlIG5l
dyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgaW4gU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
IHRvIGVuYWJsZSBhIGNhY2hlIHN0b3JhZ2UgY29ubmVjdGlvbi4KKyAgICAgICAgRml4ZWQgdGhl
IGRlZmF1bHQgc2l6ZSBvZiBxdW90YSBpbiBXZWJzaXRlRGF0YVN0b3JlLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnVw
ZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyOjpzdGFydFNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29y
a2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0RmV0Y2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6U2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nl
c3MubWVzc2FnZXMuaW46CisKIDIwMTctMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBmb3Igc2VydmljZVdv
cmtlci5wb3N0TWVzc2FnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jYWNoZS9Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAxYjIxOWIx
MjlhYzljMjNiYzkwY2U4OTc5YTU3OGVmMTAwZWVjNmIyLi4wNjNiNzAyMDE4ZjkzZjA1MDMxNzJk
NWUxNTI0ZjVmMGMzYTdhMjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nh
Y2hlL1dvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY2FjaGUvV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTkxLDEy
ICs5MSw5IEBAIHN0YXRpYyBSZWNvcmQgZnJvbUNyb3NzVGhyZWFkUmVjb3JkRGF0YShDcm9zc1Ro
cmVhZFJlY29yZERhdGEmJiBkYXRhKQogUmVmPFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb24+
IFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShXb3JrZXJHbG9iYWxTY29wZSYg
c2NvcGUpCiB7CiAgICAgYXV0byBjb25uZWN0aW9uID0gYWRvcHRSZWYoKm5ldyBXb3JrZXJDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKHNjb3BlKSk7Ci0gICAgY29ubmVjdGlvbi0+bV9wcm94eS5wb3N0
VGFza1RvTG9hZGVyKFtwcm90ZWN0ZWRDb25uZWN0aW9uID0gbWFrZVJlZihjb25uZWN0aW9uLmdl
dCgpKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvdGVjdGVkQ29ubmVjdGlvbiA9IGNvbm5lY3Rpb24uY29weVJlZigp
XSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgICAgICBE
b2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7Ci0KLSAgICAg
ICAgQVNTRVJUKGRvY3VtZW50LnBhZ2UoKSk7Ci0gICAgICAgIHByb3RlY3RlZENvbm5lY3Rpb24t
Pm1fbWFpblRocmVhZENvbm5lY3Rpb24gPSBkb2N1bWVudC5wYWdlKCktPmNhY2hlU3RvcmFnZVBy
b3ZpZGVyKCkuY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbihkb2N1bWVudC5wYWdlKCktPnNl
c3Npb25JRCgpKTsKKyAgICAgICAgcHJvdGVjdGVkQ29ubmVjdGlvbi0+bV9tYWluVGhyZWFkQ29u
bmVjdGlvbiA9IHByb3RlY3RlZENvbm5lY3Rpb24tPm1fcHJveHkuY3JlYXRlQ2FjaGVTdG9yYWdl
Q29ubmVjdGlvbigpOwogICAgIH0pOwogICAgIHJldHVybiBjb25uZWN0aW9uOwogfQpAQCAtMTEx
LDEyICsxMDgsMTIgQEAgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6V29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbihXb3JrZXJHbG9iYWxTY29wZSYgc2MKIFdvcmtlckNhY2hlU3RvcmFn
ZUNvbm5lY3Rpb246On5Xb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKCkKIHsKICAgICBpZiAo
bV9tYWluVGhyZWFkQ29ubmVjdGlvbikKLSAgICAgICAgbV9wcm94eS5wb3N0VGFza1RvTG9hZGVy
KFttYWluVGhyZWFkQ29ubmVjdGlvbiA9IFdURk1vdmUobV9tYWluVGhyZWFkQ29ubmVjdGlvbild
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsgfSk7CisgICAgICAgIGNhbGxPbk1h
aW5UaHJlYWQoW21haW5UaHJlYWRDb25uZWN0aW9uID0gV1RGTW92ZShtX21haW5UaHJlYWRDb25u
ZWN0aW9uKV0oKSBtdXRhYmxlIHsgfSk7CiB9CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjo6ZG9PcGVuKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG9yaWdpbiwgY29uc3QgU3RyaW5nJiBjYWNoZU5hbWUpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFz
a1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJ
ZGVudGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCksIGNhY2hlTmFtZSA9IGNh
Y2hlTmFtZS5pc29sYXRlZENvcHkoKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIG11dGFibGUg
eworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgcmVxdWVzdElkZW50aWZpZXIsIG9yaWdpbiA9IG9yaWdpbi5pc29sYXRlZENvcHkoKSwg
Y2FjaGVOYW1lID0gY2FjaGVOYW1lLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29u
bmVjdGlvbik7CiAKQEAgLTEzMSw3ICsxMjgsNyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmRvT3Blbih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaQog
CiB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlKHVpbnQ2NF90IHJl
cXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgbV9wcm94
eS5wb3N0VGFza1RvTG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXJdKCkg
bXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VS
VChtX21haW5UaHJlYWRDb25uZWN0aW9uKTsKIApAQCAtMTQ3LDcgKzE0NCw3IEBAIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUodWludDY0X3QgcmVxdWVzdElkZW50
aWZpZXIsIHVpbnQ2NF90CiAKIHZvaWQgV29ya2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZG9S
ZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBv
cmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50ZXIpCiB7Ci0gICAgbV9wcm94eS5wb3N0VGFza1Rv
TG9hZGVyKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVu
dGlmaWVyLCBvcmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCksIHVwZGF0ZUNvdW50ZXJdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBv
cmlnaW4gPSBvcmlnaW4uaXNvbGF0ZWRDb3B5KCksIHVwZGF0ZUNvdW50ZXJdKCkgbXV0YWJsZSB7
CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5U
aHJlYWRDb25uZWN0aW9uKTsKIApAQCAtMTY4LDcgKzE2NSw3IEBAIHZvaWQgV29ya2VyQ2FjaGVT
dG9yYWdlQ29ubmVjdGlvbjo6ZG9SZXRyaWV2ZUNhY2hlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpyZWZlcmVuY2UodWlu
dDY0X3QgY2FjaGVJZGVudGlmaWVyKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKCkgewogICAgICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29u
bmVjdGlvbik7CiAKQEAgLTE3OCw3ICsxNzUsNyBAQCB2b2lkIFdvcmtlckNhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OnJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiAKIHZvaWQgV29y
a2VyQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbjo6ZGVyZWZlcmVuY2UodWludDY0X3QgY2FjaGVJZGVu
dGlmaWVyKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjYWNoZUlkZW50aWZpZXJdKCkgewogICAgICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgICAgICBBU1NFUlQobV9tYWluVGhyZWFkQ29ubmVjdGlvbik7CiAKQEAg
LTIxMyw3ICsyMTAsNyBAQCBzdGF0aWMgaW5saW5lIFJlY29yZHNPckVycm9yIHJlY29yZHNPckVy
cm9yRnJvbVJlY29yZHNEYXRhKEV4cGVjdGVkPFZlY3RvcjxDcm9zcwogCiB2b2lkIFdvcmtlckNh
Y2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCB1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFVSTCYgdXJsKQogewot
ICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRlcihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCB1cmwgPSB1cmwu
aXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBtdXRhYmxlIHsKKyAgICBj
YWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHJl
cXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHVybCA9IHVybC5pc29sYXRlZENvcHko
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
QVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0yMjgsNyArMjI1LDcgQEAgdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb1JldHJpZXZlUmVjb3Jkcyh1aW50NjRf
dCByZXF1ZXN0SWRlbnRpZmllciwKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb0JhdGNoRGVsZXRlT3BlcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50
NjRfdCBjYWNoZUlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgQ2Fj
aGVRdWVyeU9wdGlvbnMmJiBvcHRpb25zKQogewotICAgIG1fcHJveHkucG9zdFRhc2tUb0xvYWRl
cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmll
ciwgY2FjaGVJZGVudGlmaWVyLCByZXF1ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgb3B0
aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBt
dXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyksIHJlcXVlc3RJZGVudGlmaWVyLCBjYWNoZUlkZW50aWZpZXIsIHJlcXVlc3Qg
PSByZXF1ZXN0Lmlzb2xhdGVkQ29weSgpLCBvcHRpb25zID0gb3B0aW9ucy5pc29sYXRlZENvcHko
KV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICAgICAg
QVNTRVJUKG1fbWFpblRocmVhZENvbm5lY3Rpb24pOwogCkBAIC0yNDQsNyArMjQxLDcgQEAgdm9p
ZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpkb0JhdGNoRGVsZXRlT3BlcmF0aW9uKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGkKIAogdm9pZCBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb0JhdGNoUHV0T3BlcmF0aW9uKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRf
dCBjYWNoZUlkZW50aWZpZXIsIFZlY3RvcjxSZWNvcmQ+JiYgcmVjb3JkcykKIHsKLSAgICBtX3By
b3h5LnBvc3RUYXNrVG9Mb2FkZXIoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgcmVxdWVzdElkZW50aWZpZXIsIGNhY2hlSWRlbnRpZmllciwgcmVjb3Jkc0RhdGEgPSByZWNv
cmRzRGF0YUZyb21SZWNvcmRzKHJlY29yZHMpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgbXV0
YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCByZXF1ZXN0SWRlbnRpZmllciwgY2FjaGVJZGVudGlmaWVyLCByZWNvcmRzRGF0
YSA9IHJlY29yZHNEYXRhRnJvbVJlY29yZHMocmVjb3JkcyldKCkgbXV0YWJsZSB7CiAgICAgICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIEFTU0VSVChtX21haW5UaHJlYWRDb25u
ZWN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDBhNmNjNGQ2ZTZjZDMxOTk3NDc1NjZiODhjOGIyZWI2YzZiYjllMzAu
LmJjNThiYmU2NjZjZGUyODQ3OWMzNjg5YzRlZGQwYjVhYjQxNjQ1Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU2NSw3ICs1
NjUsNyBAQAogCQkxODVCQ0YyOTBGMzI3OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxODVCQ0YyNzBGMzI3
OUNFMDAwRUEyNjIgLyogVGhyZWFkVGltZXJzLmggKi87IH07CiAJCTE4ODYwNEIzMEYyRTY1NEEw
MDBCNjQ0MyAvKiBET01UaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxODg2MDRCMTBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuY3BwICov
OyB9OwogCQkxODg2MDRCNDBGMkU2NTRBMDAwQjY0NDMgLyogRE9NVGltZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4ODYwNEIyMEYyRTY1NEEwMDBC
NjQ0MyAvKiBET01UaW1lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTE4RjgzMUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMThGODMx
QjcwRkQ0OEM3ODAwRDhDNTZCIC8qIFdvcmtlckxvYWRlclByb3h5LmggKi87IH07CisJCTE4Rjgz
MUI4MEZENDhDNzgwMEQ4QzU2QiAvKiBXb3JrZXJMb2FkZXJQcm94eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMThGODMxQjcwRkQ0OEM3ODAwRDhDNTZC
IC8qIFdvcmtlckxvYWRlclByb3h5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMTkyMTMyNzQxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9s
dmVNYXRyaXhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE5MjEzMjcxMTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHAgKi87IH07CiAJCTE5MjEzMjc1MTFDMEU2QkIwMDQ1NjIzOCAvKiBTVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTkyMTMyNzIxMUMwRTZCQjAwNDU2MjM4IC8qIFNWR0ZFQ29udm9sdmVNYXRy
aXhFbGVtZW50LmggKi87IH07CiAJCTE5N0IxODBDMTUwNjM1MzIwMEU0QURBOCAvKiBTVkdSZW5k
ZXJpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxOTdCMTgwQjE1MDYzNEMwMDBFNEFEQTggLyogU1ZHUmVuZGVyaW5nQ29udGV4dC5oICov
OyB9OwpAQCAtMTM4Myw2ICsxMzgzLDggQEAKIAkJNDExMDNBQUQxRTM5NzkxMDAwNzY5RjE0IC8q
IFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBOTFFMzk3OTBBMDA3NjlGMTQgLyogUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuaCAqLzsgfTsKIAkJNDExMDNBQUUxRTM5Nzkx
MDAwNzY5RjAzIC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTEwM0FBQTFFMzk3OTBBMDA3NjlG
MDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCAqLzsgfTsKIAkJNDExMDNBQUUx
RTM5NzkxMDAwNzY5RjE0IC8qIFJlYWx0aW1lSW5jb21pbmdBdWRpb1NvdXJjZUNvY29hLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTAzQUFBMUUz
OTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi87
IH07CisJCTQxMTJCNTQyMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEx
MkI1NDExRjlGOUM5QzAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgKi87
IH07CisJCTQxMTJCNTQzMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMTJC
NTNGMUY5RjlDOUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTIzMDgxQjEzOEM0
Mjk3MDBCQ0NGQ0EgLyogV2ViQ29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxOUIxQTA4MjQ1RTVBMDAxRTlBQkMgLyogV2Vi
Q29yZS5mcmFtZXdvcmsgKi87IH07CiAJCTQxMjMwOTEzMTM4QzQyRkYwMEJDQ0ZDQSAvKiBKYXZh
U2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUu
ZnJhbWV3b3JrICovOyB9OwogCQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyogRmV0Y2hCb2R5
U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTMwMTVENjFDN0I1NzA0MDAwOTFDNkYgLyogRmV0Y2hCb2R5U291cmNlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgyMzIsNiArODIzNCw4IEBA
CiAJCTQxMTAzQUE5MUUzOTc5MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2VDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWFsdGltZUluY29t
aW5nQXVkaW9Tb3VyY2VDb2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTEw
M0FBQTFFMzk3OTBBMDA3NjlGMDMgLyogUmVhbHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlYWx0aW1lSW5jb21pbmdBdWRp
b1NvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTAzQUFBMUUzOTc5
MEEwMDc2OUYxNCAvKiBSZWFsdGltZUluY29taW5nQXVkaW9Tb3VyY2VDb2NvYS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWFsdGltZUluY29taW5nQXVkaW9Tb3Vy
Y2VDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMTJCNTNGMUY5RjlD
OUIwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQxMTJCNTQxMUY5RjlDOUMwMEU2Nzg3NSAvKiBTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDExODlFRjcxQUQ4MjMyODAwQjkwQTBEIC8qIFJlYWRhYmxlU3RyZWFtRGVmYXVsdENvbnRy
b2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlYWRhYmxlU3RyZWFtRGVmYXVsdENv
bnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTE4OUVGNzFBRDgy
MzI4MDBCOTNGNjQgLyogUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gUmVhZGFibGVCeXRlU3RyZWFtQ29udHJvbGxlci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMTg5RUY3MUFEODIzMjgwMEI5NTY3MiAvKiBSZWFkYWJs
ZVN0cmVhbUJZT0JSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZWFkYWJsZVN0
cmVhbUJZT0JSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTc4
LDYgKzE4MTgyLDggQEAKIAkJCQk0MTlBQ0Y4RTFGOTdFN0Q1MDA5RjFBODMgLyogU2VydmljZVdv
cmtlckZldGNoLmggKi8sCiAJCQkJNTE3Qzg3MTExRjhFRTcyRjAwRUI4MDc2IC8qIFNlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwICovLAogCQkJCTUxN0M4NzEwMUY4RUU3MkUwMEVCODA3NiAvKiBTZXJ2
aWNlV29ya2VyVGhyZWFkLmggKi8sCisJCQkJNDExMkI1NDExRjlGOUM5QzAwRTY3ODc1IC8qIFNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgKi8sCisJCQkJNDExMkI1M0YxRjlGOUM5QjAwRTY3
ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBj
b250ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI5NTgwLDYgKzI5NTg2LDcg
QEAKIAkJCQk1MTdBNTMyOTFGNEI5MEI5MDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NjkxRjNFQkM4MzAwQzc0OTUwIC8q
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MUJDQ0UzMDFGOEYxNzlFMDA2QkEwRUQgLyogU2VydmljZVdvcmtlclRocmVhZC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDExMkI1NDMxRjlGOUNBMDAwRTY3ODc1IC8qIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGMTc1NkMxRjNFQkM4MzAwQzc0OTUwIC8q
IFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDZFRjE0
MkExRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzMzA5RTEwMDk5RTY0OTIwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjEwOCw2ICszMjExNSw3IEBACiAJCQkJNTE3
QTUzMjgxRjRCOTBCOTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGNjQ1QTIxRjRCRjUzQzAwQjU0REVEIC8qIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQkNDRTJG
MUY4RjE3OTUwMDZCQTBFRCAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTQxMTJCNTQyMUY5RjlDQTAwMEU2Nzg3NSAvKiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDZFRjE0MkUxRjk3QjdEODAwQzJBNTI0IC8qIFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NENThERkQx
Rjk1NjVBODAwMTEyNzkxIC8qIFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQzY2
MEEyMUY5M0NCOTAwMEQ1MDBFOSAvKiBTZXR0aW5nc0Jhc2UuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckxvYWRlclByb3h5LmgKaW5kZXggZGFmZmUxZjdj
OTcxNjc2OTM4MjA3Mjg2ODU4ZDc2YjY5NzYzNDU5NC4uNGE2MzM3OTJjMjI5YWJhY2QzN2I1NmFi
MWViODMxY2M5ODYyMDEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJMb2FkZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTG9hZGVy
UHJveHkuaApAQCAtMzQsMjIgKzM0LDI3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAg
IC8vIEEgcHJveHkgdG8gdGFsayB0byB0aGUgbG9hZGVyIGNvbnRleHQuIE5vcm1hbGx5LCB0aGUg
ZG9jdW1lbnQgb24gdGhlIG1haW4gdGhyZWFkCi0gICAgLy8gcHJvdmlkZXMgbG9hZGluZyBzZXJ2
aWNlcyBmb3IgdGhlIHN1Ym9yZGluYXRlIHdvcmtlcnMuIFRoaXMgaW50ZXJmYWNlIHByb3ZpZGVz
IDItd2F5Ci0gICAgLy8gY29tbXVuaWNhdGlvbnMgdG8gdGhlIERvY3VtZW50IGNvbnRleHQgYW5k
IGJhY2sgdG8gdGhlIHdvcmtlci4KLSAgICAvLyBOb3RlIHRoYXQgaW4gbXVsdGktcHJvY2VzcyBi
cm93c2VycywgdGhlIFdvcmtlciBvYmplY3QgY29udGV4dCBhbmQgdGhlIERvY3VtZW50Ci0gICAg
Ly8gY29udGV4dCBjYW4gYmUgZGlzdGluY3QuCi0gICAgY2xhc3MgV29ya2VyTG9hZGVyUHJveHkg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+V29ya2VyTG9hZGVyUHJveHkoKSA9IGRl
ZmF1bHQ7Ci0KLSAgICAgICAgLy8gUG9zdHMgYSB0YXNrIHRvIHRoZSB0aHJlYWQgd2hpY2ggcnVu
cyB0aGUgbG9hZGluZyBjb2RlIChub3JtYWxseSwgdGhlIG1haW4gdGhyZWFkKS4KLSAgICAgICAg
dmlydHVhbCB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
ayYmKSA9IDA7Ci0KLSAgICAgICAgLy8gUG9zdHMgY2FsbGJhY2tzIGZyb20gbG9hZGluZyBjb2Rl
IHRvIHRoZSBXb3JrZXJHbG9iYWxTY29wZS4gVGhlICdtb2RlJyBpcyB1c2VkIHRvIGRpZmZlcmVu
dGlhdGUKLSAgICAgICAgLy8gc3BlY2lmaWMgc3luY2hyb25vdXMgbG9hZGluZyByZXF1ZXN0cyBz
byB0aGV5IGNhbiBiZSAnbmVzdGVkJywgcGVyIHNwZWMuCi0gICAgICAgIC8vIFJldHVybnMgdHJ1
ZSBpZiB0aGUgdGFzayB3YXMgcG9zdGVkIHN1Y2Nlc3NmdWxseS4KLSAgICAgICAgdmlydHVhbCBi
b29sIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6VGFzayYmLCBjb25zdCBTdHJpbmcmIG1vZGUpID0gMDsKLSAgICB9OworY2xhc3MgQ2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbjsKKworLy8gQSBwcm94eSB0byB0YWxrIHRvIHRoZSBsb2FkZXIg
Y29udGV4dC4gTm9ybWFsbHksIHRoZSBkb2N1bWVudCBvbiB0aGUgbWFpbiB0aHJlYWQKKy8vIHBy
b3ZpZGVzIGxvYWRpbmcgc2VydmljZXMgZm9yIHRoZSBzdWJvcmRpbmF0ZSB3b3JrZXJzLiBUaGlz
IGludGVyZmFjZSBwcm92aWRlcyAyLXdheQorLy8gY29tbXVuaWNhdGlvbnMgdG8gdGhlIERvY3Vt
ZW50IGNvbnRleHQgYW5kIGJhY2sgdG8gdGhlIHdvcmtlci4KKy8vIE5vdGUgdGhhdCBpbiBtdWx0
aS1wcm9jZXNzIGJyb3dzZXJzLCB0aGUgV29ya2VyIG9iamVjdCBjb250ZXh0IGFuZCB0aGUgRG9j
dW1lbnQKKy8vIGNvbnRleHQgY2FuIGJlIGRpc3RpbmN0LgorY2xhc3MgV29ya2VyTG9hZGVyUHJv
eHkgeworcHVibGljOgorICAgIHZpcnR1YWwgfldvcmtlckxvYWRlclByb3h5KCkgPSBkZWZhdWx0
OworCisgICAgLy8gQ3JlYXRlcyBhIGNhY2hlIHN0b3JhZ2UgY29ubmVjdGlvbiB0byBiZSB1c2Vk
IG9uIHRoZSBtYWluIHRocmVhZC4gTWV0aG9kIG11c3QgYmUgY2FsbGVkIG9uIHRoZSBtYWluIHRo
cmVhZC4KKyAgICB2aXJ0dWFsIFJlZjxDYWNoZVN0b3JhZ2VDb25uZWN0aW9uPiBjcmVhdGVDYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uKCkgPSAwOworCisgICAgLy8gUG9zdHMgYSB0YXNrIHRvIHRoZSB0
aHJlYWQgd2hpY2ggcnVucyB0aGUgbG9hZGluZyBjb2RlIChub3JtYWxseSwgdGhlIG1haW4gdGhy
ZWFkKS4KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrJiYpID0gMDsKKworICAgIC8vIFBvc3RzIGNhbGxiYWNrcyBmcm9tIGxvYWRp
bmcgY29kZSB0byB0aGUgV29ya2VyR2xvYmFsU2NvcGUuIFRoZSAnbW9kZScgaXMgdXNlZCB0byBk
aWZmZXJlbnRpYXRlCisgICAgLy8gc3BlY2lmaWMgc3luY2hyb25vdXMgbG9hZGluZyByZXF1ZXN0
cyBzbyB0aGV5IGNhbiBiZSAnbmVzdGVkJywgcGVyIHNwZWMuCisgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoZSB0YXNrIHdhcyBwb3N0ZWQgc3VjY2Vzc2Z1bGx5LgorICAgIHZpcnR1YWwgYm9vbCBw
b3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSA9IDA7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2lu
Z1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCmluZGV4IDY4NWM1NGY3YWY3ZGFiMTIzNGMzM2ZjMzg3NjEyZWE4MWYzYWZmODkuLmU4NmEz
YTJiOTFhMzBlNmZmOWZhNTZkY2YxMzQ0ZDRhNjk5M2YyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV29ya2VyTWVzc2FnaW5nUHJveHkuaCIKIAor
I2luY2x1ZGUgIkNhY2hlU3RvcmFnZVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3Vy
aXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTM2LDYgKzM3LDcgQEAKICNpbmNsdWRlICJFcnJvckV2
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5o
IgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiV29ya2VyLmgiCiAjaW5jbHVkZSAiV29ya2VySW5zcGVjdG9yUHJveHkuaCIK
QEAgLTEzMyw2ICsxMzUsMTMgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdFRhc2tU
b0xvYWRlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrJiYgdGFzaykKICAgICBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPnBvc3RUYXNrKFdURk1vdmUodGFzaykpOwogfQogCitSZWY8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gV29ya2VyTWVzc2FnaW5nUHJveHk6OmNyZWF0ZUNhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24oKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgYXV0
byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCk7CisgICAgcmV0dXJuIGRvY3VtZW50LnBhZ2UoKS0+Y2FjaGVTdG9yYWdlUHJvdmlkZXIoKS5j
cmVhdGVDYWNoZVN0b3JhZ2VDb25uZWN0aW9uKGRvY3VtZW50LnBhZ2UoKS0+c2Vzc2lvbklEKCkp
OworfQorCiBib29sIFdvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiB0YXNrLCBjb25zdCBT
dHJpbmcmIG1vZGUpCiB7CiAgICAgaWYgKG1fYXNrZWRUb1Rlcm1pbmF0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaAppbmRleCA4YjFmOGY4MDBmNTUx
N2E2NWNmMGNkOTNlZTFjMjQ4MzUxMTU3MTMxLi5hNjU4YmU5ZmVkNDZhMTQxMjUyMTRlNjQwZmM5
ZDVjNTZjMWM5OWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdp
bmdQcm94eS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgLy8gcmVxdWVzdHMgYW5k
IHRvIHNlbmQgY2FsbGJhY2tzIGJhY2sgdG8gV29ya2VyR2xvYmFsU2NvcGUuCiAgICAgdm9pZCBw
b3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikgZmluYWw7CiAg
ICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtlckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5nJiBtb2RlKSBmaW5hbDsKKyAgICBSZWY8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gY3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFs
OwogCiAgICAgdm9pZCB3b3JrZXJUaHJlYWRDcmVhdGVkKERlZGljYXRlZFdvcmtlclRocmVhZCYp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDliNTEzNTcyN2UyNWFlYTVjNGNm
YWY3MzZhNjI2YzVkZDdlZmNmMzEuLjc0MWJlYTMzZGExNmI0MzFiYzkyNzUwZjZmZmZiYmRjMDAy
MWY0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJDYWNoZVN0b3JhZ2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5o
IgogI2luY2x1ZGUgIkV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgpAQCAtNDMsMTcgKzQ0LDE1IEBAIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU2VydmljZVdvcmtlclRocmVhZFByb3h5IDogcHVi
bGljIFdvcmtlckxvYWRlclByb3h5LCBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkgeworY2xhc3Mg
RHVtbXlTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgOiBwdWJsaWMgV29ya2VyT2JqZWN0UHJveHkg
ewogcHVibGljOgotICAgIHN0YXRpYyBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkmIHNoYXJlZER1
bW15UHJveHkoKQorICAgIHN0YXRpYyBEdW1teVNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSYgc2hh
cmVkKCkKICAgICB7Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk+IHByb3h5OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RHVtbXlT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+IHByb3h5OwogICAgICAgICByZXR1cm4gcHJveHk7CiAg
ICAgfQogCiBwcml2YXRlOgotICAgIHZvaWQgcG9zdFRhc2tUb0xvYWRlcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpUYXNrJiYpIGZpbmFsIHsgfTsKLSAgICBib29sIHBvc3RUYXNrRm9yTW9kZVRv
V29ya2VyR2xvYmFsU2NvcGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayYmLCBjb25zdCBT
dHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfTsKICAgICB2b2lkIHBvc3RFeGNlcHRpb25U
b1dvcmtlck9iamVjdChjb25zdCBTdHJpbmcmLCBpbnQsIGludCwgY29uc3QgU3RyaW5nJikgZmlu
YWwgeyB9OwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1BhZ2VJbnNwZWN0b3IoY29uc3QgU3RyaW5n
JikgZmluYWwgeyB9OwogICAgIHZvaWQgd29ya2VyR2xvYmFsU2NvcGVEZXN0cm95ZWQoKSBmaW5h
bCB7IH07CkBAIC03MCwxMSArNjksMTEgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBVc2UgYSB2YWxp
ZCB1c2VyIGFnZW50CiAvLyBGSVhNRTogVXNlIHZhbGlkIHJ1bnRpbWUgZmxhZ3MKIAotU2Vydmlj
ZVdvcmtlclRocmVhZDo6U2VydmljZVdvcmtlclRocmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6
OlNlc3Npb25JRCkKLSAgICA6IFdvcmtlclRocmVhZChkYXRhLnNjcmlwdFVSTCwgZGF0YS53b3Jr
ZXJJRCwgQVNDSUlMaXRlcmFsKCJXb3JrZXJVc2VyQWdlbnQiKSwgZGF0YS5zY3JpcHQsIFNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eTo6c2hhcmVkRHVtbXlQcm94eSgpLCBTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk6OnNoYXJlZER1bW15UHJveHkoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3Jt
YWwsIENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IH0sIGZhbHNlLCBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6
bm93KCksIG51bGxwdHIsIG51bGxwdHIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFi
bGVkKCksIFNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKQorU2VydmljZVdvcmtlclRocmVh
ZDo6U2VydmljZVdvcmtlclRocmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCwg
V29ya2VyTG9hZGVyUHJveHkmIGxvYWRlclByb3h5KQorICAgIDogV29ya2VyVGhyZWFkKGRhdGEu
c2NyaXB0VVJMLCBkYXRhLndvcmtlcklELCBBU0NJSUxpdGVyYWwoIldvcmtlclVzZXJBZ2VudCIp
LCBkYXRhLnNjcmlwdCwgbG9hZGVyUHJveHksIER1bW15U2VydmljZVdvcmtlclRocmVhZFByb3h5
OjpzaGFyZWQoKSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyB7IH0sIGZhbHNlLCBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KGRhdGEuc2NyaXB0VVJMKS5nZXQoKSwgTW9ub3RvbmljVGltZTo6bm93KCksIG51bGxwdHIsIG51
bGxwdHIsIEpTQzo6UnVudGltZUZsYWdzOjpjcmVhdGVBbGxFbmFibGVkKCksIFNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpKQogICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICAgICAsIG1fZGF0YShkYXRhLmlzb2xhdGVkQ29w
eSgpKQotICAgICwgbV93b3JrZXJPYmplY3RQcm94eShTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OnNoYXJlZER1bW15UHJveHkoKSkKKyAgICAsIG1fd29ya2VyT2JqZWN0UHJveHkoRHVtbXlTZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHk6OnNoYXJlZCgpKQogewogICAgIEF0b21pY1N0cmluZzo6aW5p
dCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDczNzI4MTFhOTkxZDQ1Y2ZhZDVj
NWEwZTBhYWNjMGFjMWY3NmE4ZmMuLmQ1NTkyMzlkMDA4MTBlOGY5MDdmNzQ2OGUxMDQ1ZDI2Njc2
YTQxNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAgLTM0LDYgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZVN0b3JhZ2VQcm92aWRlcjsKIGNsYXNzIENv
bnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVyczsKIGNsYXNzIE1lc3NhZ2VQb3J0Q2hh
bm5lbDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKQEAgLTYwLDcgKzYxLDcgQEAgcHJv
dGVjdGVkOgogICAgIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZCh1aW50NjRfdCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpT
ZXNzaW9uSUQpOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWQodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSYsIFBBTDo6U2Vzc2lvbklELCBXb3JrZXJMb2FkZXJQcm94eSYpOwogCiAgICAgdWludDY0
X3QgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEgbV9kYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDRlMzQzYTU4MDMzNjUxNGI5ODAwNGRiYzhiODRkNThkYTZhMmU0OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCIKKwor
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVTdG9y
YWdlUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CisjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWY8U2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5PiBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZSh1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRleHREYXRhJiBkYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENhY2hlU3Rv
cmFnZVByb3ZpZGVyJiBjYWNoZVN0b3JhZ2VQcm92aWRlcikKK3sKKyAgICBhdXRvIHNlcnZpY2VX
b3JrZXIgPSBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSB7IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLCBzZXNzaW9uSUQsIGNhY2hlU3RvcmFnZVByb3ZpZGVy
IH0pOworICAgIHNlcnZpY2VXb3JrZXItPm1fc2VydmljZVdvcmtlclRocmVhZC0+c3RhcnQoKTsK
KyAgICByZXR1cm4gc2VydmljZVdvcmtlcjsKK30KKworU2VydmljZVdvcmtlclRocmVhZFByb3h5
OjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDYWNoZVN0b3JhZ2VQcm92aWRlciYgY2FjaGVTdG9yYWdl
UHJvdmlkZXIpCisgICAgOiBtX3NlcnZpY2VXb3JrZXJUaHJlYWQoU2VydmljZVdvcmtlclRocmVh
ZDo6Y3JlYXRlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLCBzZXNzaW9uSUQsICp0
aGlzKSkKKyAgICAsIG1fY2FjaGVTdG9yYWdlUHJvdmlkZXIoY2FjaGVTdG9yYWdlUHJvdmlkZXIp
CisgICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCit7CisgICAgbV9zZXJ2aWNlV29ya2VyVGhy
ZWFkLT5zdGFydCgpOworfQorCitib29sIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6cG9zdFRh
c2tGb3JNb2RlVG9Xb3JrZXJHbG9iYWxTY29wZShTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNr
JiYgdGFzaywgY29uc3QgU3RyaW5nJiBtb2RlKQoreworICAgIC8vIEZJWE1FOiBIYW5kbGUgdGVy
bWluYXRpb24gY2FzZS4KKyAgICBtX3NlcnZpY2VXb3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0
VGFza0Zvck1vZGUoV1RGTW92ZSh0YXNrKSwgbW9kZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpwb3N0VGFza1RvTG9hZGVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2smJikKK3sKKyAgICAvLyBJbXBsZW1lbnQgdGhpcy4KK30KKwor
UmVmPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3Jl
YXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKKyAgICBpZiAoIW1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbikKKyAgICAgICAgbV9jYWNoZVN0
b3JhZ2VDb25uZWN0aW9uID0gbV9jYWNoZVN0b3JhZ2VQcm92aWRlci5jcmVhdGVDYWNoZVN0b3Jh
Z2VDb25uZWN0aW9uKG1fc2Vzc2lvbklEKTsKKyAgICByZXR1cm4gKm1fY2FjaGVTdG9yYWdlQ29u
bmVjdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MmU2ZjEyNjI4ZGVkZTRjYjllZDZmOTAxMTljNDFkYjRjOTFjZDI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiUGFnZS5o
IgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlICJXb3JrZXJMb2Fk
ZXJQcm94eS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIENhY2hlU3RvcmFnZVByb3ZpZGVyOworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247
CitzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOworCitjbGFzcyBTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkgZmluYWwgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VydmljZVdv
cmtlclRocmVhZFByb3h5PiwgcHVibGljIFdvcmtlckxvYWRlclByb3h5IHsKK3B1YmxpYzoKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eT4gY3Jl
YXRlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmLCBQQUw6OlNlc3Npb25JRCwgQ2FjaGVTdG9yYWdlUHJvdmlkZXImKTsK
KworICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3Jr
ZXJUaHJlYWQtPmlkZW50aWZpZXIoKTsgfQorICAgIFNlcnZpY2VXb3JrZXJUaHJlYWQmIHRocmVh
ZCgpIHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclRocmVhZC5nZXQoKTsgfQorCitwcml2YXRlOgor
ICAgIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgUEFMOjpTZXNzaW9uSUQs
IENhY2hlU3RvcmFnZVByb3ZpZGVyJik7CisgICAgYm9vbCBwb3N0VGFza0Zvck1vZGVUb1dvcmtl
ckdsb2JhbFNjb3BlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2smJiwgY29uc3QgU3RyaW5n
JiBtb2RlKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RUYXNrVG9Mb2FkZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6VGFzayYmKSBmaW5hbDsKKyAgICBSZWY8Q2FjaGVTdG9yYWdlQ29ubmVjdGlvbj4g
Y3JlYXRlQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbigpIGZpbmFsOworCisgICAgUmVmPFNlcnZpY2VX
b3JrZXJUaHJlYWQ+IG1fc2VydmljZVdvcmtlclRocmVhZDsKKyAgICBDYWNoZVN0b3JhZ2VQcm92
aWRlciYgbV9jYWNoZVN0b3JhZ2VQcm92aWRlcjsKKyAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29u
bmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOworICAgIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKaW5kZXggMzNiNzQ5MzZkZDlhNGNmYjRhZmNjYTdhMTIxNGRhMTNlYWJkYTY1YS4uOTcy
MjZhZGQ5Mzc0YWQ5MzkyNzIyYTRhYTkxOTM3ZGI1MmJhYThjNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OmdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbihTdG9yYWdlUHJv
Y2Vzc1Byb3h5JiBwcm94CiAgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZSA9IEFQSTo6V2Vic2l0
ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLnB0cigpOwogICAgIGF1dG8mIG5ld1Byb2Nl
c3MgPSBjcmVhdGVOZXdXZWJQcm9jZXNzKG1fd2Vic2l0ZURhdGFTdG9yZS0+d2Vic2l0ZURhdGFT
dG9yZSgpKTsKICAgICBtX3dvcmtlckNvbnRleHRQcm9jZXNzID0gJm5ld1Byb2Nlc3M7Ci0gICAg
bV93b3JrZXJDb250ZXh0UHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2V0V29y
a2VyQ29udGV4dENvbm5lY3Rpb24oKSwgMCk7CisgICAgbV93b3JrZXJDb250ZXh0UHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6R2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24obV9k
ZWZhdWx0UGFnZUdyb3VwLT5wcmVmZXJlbmNlcygpLnN0b3JlKCkpLCAwKTsKIH0KIAogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6ZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbnN0
IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBkZDBlYzkyOWVk
ZWEwNWNjNjZmMTRmOTBlZDBhMGQ3ZTdhNWMwODUxLi5mZTZlODMzOWUzNmRiODcwYzRjMDg0OWI2
NGI2YTUwZTRjMWNmZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02OCw5ICs2OCwxMSBAQCBlbnVtIGNs
YXNzIFNob3VsZENsZWFyRmlyc3QgeyBObywgWWVzIH07CiAKIGNsYXNzIFdlYnNpdGVEYXRhU3Rv
cmUgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJzaXRlRGF0YVN0b3JlPiwgcHVibGljIFdlYlByb2Nl
c3NMaWZldGltZU9ic2VydmVyLCBwdWJsaWMgSWRlbnRpZmllZDxXZWJzaXRlRGF0YVN0b3JlPiAg
ewogcHVibGljOgorICAgIGNvbnN0ZXhwciBzdGF0aWMgdWludDY0X3QgZGVmYXVsdENhY2hlU3Rv
cmFnZVBlck9yaWdpblF1b3RhID0gMjAgKiAxMDI0ICogMTAyNDsKKwogICAgIHN0cnVjdCBDb25m
aWd1cmF0aW9uIHsKICAgICAgICAgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeTsKLSAgICAg
ICAgdWludDY0X3QgY2FjaGVTdG9yYWdlUGVyT3JpZ2luUXVvdGE7CisgICAgICAgIHVpbnQ2NF90
IGNhY2hlU3RvcmFnZVBlck9yaWdpblF1b3RhIHsgZGVmYXVsdENhY2hlU3RvcmFnZVBlck9yaWdp
blF1b3RhIH07CiAgICAgICAgIFN0cmluZyBuZXR3b3JrQ2FjaGVEaXJlY3Rvcnk7CiAgICAgICAg
IFN0cmluZyBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5OwogICAgICAgICBTdHJpbmcgYXBwbGlj
YXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZTsKQEAgLTg4LDggKzkwLDYgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8V2Vic2l0ZURhdGFTdG9yZT4gY3JlYXRlKENvbmZpZ3VyYXRp
b24sIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2aXJ0dWFsIH5XZWJzaXRlRGF0YVN0b3JlKCk7CiAK
LSAgICBjb25zdGV4cHIgc3RhdGljIHVpbnQ2NF90IGRlZmF1bHRDYWNoZVN0b3JhZ2VQZXJPcmln
aW5RdW90YSA9IDIwICogMTAyNCAqIDEwMjQ7Ci0KICAgICBib29sIGlzUGVyc2lzdGVudCgpIGNv
bnN0IHsgcmV0dXJuICFtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpOyB9CiAgICAgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggZGIxN2RkMzU4YTk4MmQ0OTM5YzlmNjg4ZmZk
YTVlM2JiNTY4ODQwYS4uOGNjMGY4OTNlOTA2NjllNTUwMmVjMWZmZTcxYmVjZmMwZjU4ZGI4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtl
ckNvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0zMSwxMSArMzEsMTYgQEAKICNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlN0b3JhZ2VQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92
aWRlci5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVBvcnRDaGFubmVsLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUg
PHBhbC9TZXNzaW9uSUQuaD4KIApAQCAtNDQsNDEgKzQ5LDUxIEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorU2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBj
b25uZWN0aW9uLCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKKyAgICA6IG1fY29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKK3sKKyAgICB1cGRh
dGVQcmVmZXJlbmNlcyhzdG9yZSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
K3sKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENhY2hl
QVBJRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNh
Y2hlQVBJRW5hYmxlZEtleSgpKSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpmZXRjaEFQSUVuYWJsZWRLZXkoKSkpOworfQorCiB2b2lkIFNlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRh
dGEpCiB7CiAgICAgLy8gRklYTUU6IFByb3ZpZGUgYSBzZW5zaWNhbCBzZXNzaW9uIElELgotICAg
IGF1dG8gdGhyZWFkID0gU2VydmljZVdvcmtlclRocmVhZDo6Y3JlYXRlKHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBkYXRhLCBTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSk7Ci0gICAg
YXV0byB0aHJlYWRJZGVudGlmaWVyID0gdGhyZWFkLT5pZGVudGlmaWVyKCk7Ci0gICAgYXV0byBy
ZXN1bHQgPSBtX3dvcmtlclRocmVhZE1hcC5hZGQodGhyZWFkSWRlbnRpZmllciwgV1RGTW92ZSh0
aHJlYWQpKTsKLSAgICBBU1NFUlQocmVzdWx0LmlzTmV3RW50cnkpOwotCi0gICAgcmVzdWx0Lml0
ZXJhdG9yLT52YWx1ZS0+c3RhcnQoKTsKKyAgICBhdXRvIHNlcnZpY2VXb3JrZXIgPSBTZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHk6OmNyZWF0ZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0
YSwgU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkpOworICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZp
ZXIgPSBzZXJ2aWNlV29ya2VyLT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3dv
cmtlck1hcC5hZGQoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2VydmljZVdvcmtl
cikpOworICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRyeSk7CiAKICAg
ICBMT0coU2VydmljZVdvcmtlciwgIkNvbnRleHQgcHJvY2VzcyBQSUQ6ICVpIHN0YXJ0ZWQgd29y
a2VyIHRocmVhZCAlc1xuIiwgZ2V0cGlkKCksIGRhdGEud29ya2VySUQudXRmOCgpLmRhdGEoKSk7
CiAKLSAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9y
YWdlUHJvY2Vzczo6U2VydmljZVdvcmtlckNvbnRleHRTdGFydGVkKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBkYXRhLnJlZ2lzdHJhdGlvbktleSwgdGhyZWFkSWRlbnRpZmllciwgZGF0YS53
b3JrZXJJRCksIDApOworICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpTZXJ2aWNlV29ya2VyQ29udGV4dFN0YXJ0ZWQoc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIGRhdGEucmVnaXN0cmF0aW9uS2V5LCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgZGF0YS53b3JrZXJJRCksIDApOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlcjo6c3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9u
cykKIHsKLSAgICBhdXRvIHNlcnZpY2VXb3JrZXJUaHJlYWQgPSBtX3dvcmtlclRocmVhZE1hcC5n
ZXQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpOwotICAgIGlmICghc2VydmljZVdvcmtlclRocmVh
ZCkgeworICAgIGF1dG8gc2VydmljZVdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7CisgICAgaWYgKCFzZXJ2aWNlV29ya2VyKSB7CiAgICAgICAgIG1fY29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpE
aWROb3RIYW5kbGVGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlm
aWVyKSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIGNsaWVudCA9IFdl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25Ub1N0b3Jh
Z2VQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRl
bnRpZmllcik7Ci0gICAgc2VydmljZVdvcmtlclRocmVhZC0+cG9zdEZldGNoVGFzayhXVEZNb3Zl
KGNsaWVudCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOworICAgIHNlcnZp
Y2VXb3JrZXItPnRocmVhZCgpLnBvc3RGZXRjaFRhc2soV1RGTW92ZShjbGllbnQpLCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luKQogewotICAgIGF1dG8qIHdvcmtlclRocmVhZCA9IG1fd29ya2VyVGhyZWFk
TWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0gICAgaWYgKCF3b3JrZXJUaHJlYWQp
CisgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7CisgICAgaWYgKCFzZXJ2aWNlV29ya2VyKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4K
LSAgICB3b3JrZXJUaHJlYWQtPnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgbnVsbHB0ciwg
c291cmNlT3JpZ2luKTsKKyAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5wb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVz
c2FnZS52ZWN0b3IoKSksIG51bGxwdHIsIHNvdXJjZU9yaWdpbik7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKaW5kZXggNjk0ZmY3NWYxYTg4
NTM5NDQxZGYxNmJmYTgyMzc1NjMxNjIxYTk1My4uNzAwZTBhNzlhYTNkZjkwNGI0NDEzMGU4NWQ4
NzgwODdiNGU0ZmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKQEAgLTI5LDcgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2
ZXIuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUaHJlYWQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM5LDIzICszOSwyMyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK3N0cnVj
dCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFn
ZXIgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIGV4cGxpY2l0
IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24pCi0gICAgICAgIDogbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcyhXVEZNb3ZlKGNv
bm5lY3Rpb24pKQotICAgIHsKLSAgICB9CisgICAgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7CiAKIHByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlJik7CisKICAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlcih1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRleHREYXRhJik7CiAgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJiYpOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZD4+IG1fd29ya2VyVGhyZWFkTWFwOwor
ICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHk+PiBtX3dvcmtlck1hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4IDFkZWY3MWMyYTA5YTlmNjg4NmQx
YTBkMzAzNWMwOWQ3MmNhMjY5YmEuLjY2NTFiNzk2YTQwY2Y3ZWRkNDA4Mzc2ZGZmNmEzOTM2NTdl
MmZhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE2NDAs
NyArMTY0MCw3IEBAIExpYldlYlJUQ05ldHdvcmsmIFdlYlByb2Nlc3M6OmxpYldlYlJUQ05ldHdv
cmsoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi12b2lkIFdlYlByb2Nl
c3M6OmdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKCkKK3ZvaWQgV2ViUHJvY2Vzczo6Z2V0V29y
a2VyQ29udGV4dENvbm5lY3Rpb24oY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiB7
CiAgICAgQVNTRVJUKCFtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyKTsKIApAQCAtMTY2NCw3ICsxNjY0
LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbigpCiAKICAg
ICBhdXRvIHdvcmtlckNvbnRleHRDb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVT
ZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgd29ya2Vy
Q29udGV4dENvbm5lY3Rpb24tPm9wZW4oKTsKLSAgICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyID0g
IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcihXVEZNb3ZlKHdvcmtlckNvbnRleHRDb25uZWN0
aW9uKSk7CisgICAgbV9zZXJ2aWNlV29ya2VyTWFuYWdlciA9ICBTZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIoV1RGTW92ZSh3b3JrZXJDb250ZXh0Q29ubmVjdGlvbiksIHN0b3JlKTsKICAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKGNv
bm5lY3Rpb25DbGllbnRQb3J0KSwgMCk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCmluZGV4IGRhMWE1MjZjM2RiMzYwNGRjMzY4NTJiNGIyZGZhNDM3MDYyZTBk
MzAuLjUwN2IzZDRkMzU3MzMzNjE3MGQwNmM1Y2JjZjgzMzdjMmVlMTJkNzYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjk5LDcgKzI5OSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXROZXR3b3JrUHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29y
a1Byb3h5U2V0dGluZ3MmKTsKICNlbmRpZgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAg
ICB2b2lkIGdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKCk7CisgICAgdm9pZCBnZXRXb3JrZXJD
b250ZXh0Q29ubmVjdGlvbihjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CiAjZW5kaWYKIAog
ICAgIHZvaWQgcmVsZWFzZVBhZ2VDYWNoZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA2MzdlNmYyOGQ2MGFlMDAxZWE0ZWU3ZjU5
NTViYzg2Y2ZhMTcwZDViLi45NjA4OTFmMzcwNGQ5MmViNTMyNTczY2YxZGY1MzkwOTBlMjUyOWVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
bgpAQCAtMTE1LDYgKzExNSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2
ZXIgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgR2V0V29ya2Vy
Q29udGV4dENvbm5lY3Rpb24oKQorICAgIEdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKHN0cnVj
dCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUpCiAjZW5kaWYKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
NGRmNjIyMDE0ZjJlYzJiNjQ1YWEzZTkwZTEwMTZhZjMzZTkyNDlhLi5jY2UzZGRlNGQxZGFjMzk1
N2ZhOTkyZmM5NDFiMTBhMjI0YWI2NDYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMTAt
MjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBz
ZXJ2aWNlIHdvcmtlciB0byB1c2UgY2FjaGUgc3RvcmFnZSBhcGkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODY4NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEJyYWR5IEVpZHNvbi4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2VyLmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3Jr
ZXItY2FjaGUtYXBpLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNo
ZS1hcGkuaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMTctMTAtMjQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBmb3Ig
c2VydmljZVdvcmtlci5wb3N0TWVzc2FnZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBp
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2ZjE5
ZTE0ZmJhMTgwNjE5ZDk5YWE0Y2Q4N2Y5NGQ0ZGFkOGEyMTYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13
b3JrZXItY2FjaGUtYXBpLXdvcmtlci5qcwpAQCAtMCwwICsxLDM4IEBACit2YXIgc3RhdHVzID0g
Im5vIHN0YXR1cyI7Cit2YXIgY2FjaGU7Cit2YXIgd29ya2VyID0gc2VsZjsKKworYXN5bmMgZnVu
Y3Rpb24gcHJlcGFyZUNhY2hlKCkKK3sKKyAgICBzdGF0dXMgPSAib3BlbmluZyBjYWNoZSI7Cisg
ICAgY2FjaGUgPSBhd2FpdCBjYWNoZXMub3BlbigidGVzdCIpOworICAgIHN0YXR1cyA9ICJjcmVh
dGluZyByZXNwb25zZSI7CisgICAgdmFyIHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG5ldyBBcnJh
eUJ1ZmZlcigxMjk0MCksIHsgc3RhdHVzOiAyMDAsIHN0YXR1c1RleHQ6ICJPSyJ9KTsKKyAgICBz
dGF0dXMgPSAiZmlsbGluZyBjYWNoZSI7CisgICAgYXdhaXQgY2FjaGUucHV0KCIvcmVzb3VyY2Vz
L3NxdWFyZTEwMC5wbmciLCByZXNwb25zZSk7CisgICAgc3RhdHVzID0gImNhY2hlIGlzIHJlYWR5
IjsKK30KKworZnVuY3Rpb24gc3RhdHVzUmVzcG9uc2UoKQoreworICAgIHJldHVybiBuZXcgUmVz
cG9uc2UobnVsbCwge3N0YXR1czogMjAwLCBzdGF0dXNUZXh0OiBzdGF0dXN9KTsKK30KKworc2Vs
Zi5hZGRFdmVudExpc3RlbmVyKCJmZXRjaCIsIChldmVudCkgPT4geworICAgIGlmIChldmVudC5y
ZXF1ZXN0LnVybC5pbmRleE9mKCJzdGF0dXMiKSAhPT0gLTEpIHsKKyAgICAgICAgZXZlbnQucmVz
cG9uZFdpdGgocHJvbWlzZS50aGVuKHN0YXR1c1Jlc3BvbnNlLCBzdGF0dXNSZXNwb25zZSkpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmICghZXZlbnQucmVxdWVzdC51cmwuZW5kc1dp
dGgoIi5mcm9tc2VydmljZXdvcmtlciIpKSB7CisgICAgICAgIHN0YXRlID0gInVua25vd24gdXJs
IjsKKyAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobmV3IFJlc3BvbnNlKG51bGwsIHtzdGF0dXM6
IDQwNCwgc3RhdHVzVGV4dDogIk5vdCBGb3VuZCJ9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgZXZlbnQucmVzcG9uZFdpdGgocHJvbWlzZS50aGVuKCgpID0+IHsKKyAgICAgICAgc3Rh
dHVzID0gZXZlbnQucmVxdWVzdC51cmwuc3Vic3RyaW5nKDAsIGV2ZW50LnJlcXVlc3QudXJsLmxl
bmd0aCAtIDE4KTsKKyAgICAgICAgcmV0dXJuIGNhY2hlcy5vcGVuKCJ0ZXN0IikudGhlbigoY2Fj
aGUpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBjYWNoZS5tYXRjaChldmVudC5yZXF1ZXN0LnVy
bC5zdWJzdHJpbmcoMCwgZXZlbnQucmVxdWVzdC51cmwubGVuZ3RoIC0gMTgpKTsKKyAgICAgICAg
fSk7CisgICAgfSkpOworfSk7Cit2YXIgcHJvbWlzZSA9IHByZXBhcmVDYWNoZSgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Nl
cnZpY2Utd29ya2VyLWNhY2hlLWFwaS5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZmMwYjg2OWIzNjY0YTUzZDgyNzZkYWRmNzkyMjg0ZTYwZTZjYjI5OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9z
ZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuanMKQEAgLTAsMCArMSwzMSBAQAorZnVuY3Rpb24gZG9u
ZSgpCit7CisgICAgZmluaXNoU1dUZXN0KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGxvZ1N0YXR1
cygpCit7CisgICAgdmFyIHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInN0YXR1cyIpOworICAgIGxv
ZygiU3RhdHVzIGlzICIgKyByZXNwb25zZS5zdGF0dXNUZXh0KTsKK30KKworYXN5bmMgZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgdHJ5IHsKKyAgICAgICAgYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGktd29ya2Vy
LmpzIiwgeyB9KTsKKworICAgICAgICBhd2FpdCBsb2dTdGF0dXMoKTsKKworICAgICAgICB2YXIg
cmVzcG9uc2UgPSBhd2FpdCBmZXRjaCgiL3Jlc291cmNlcy9zcXVhcmUxMDAucG5nLmZyb21zZXJ2
aWNld29ya2VyIik7CisgICAgICAgIHZhciBidWZmZXIgPSAgYXdhaXQgcmVzcG9uc2UuYXJyYXlC
dWZmZXIoKTsKKyAgICAgICAgbG9nKCJSZXNwb25zZSBidWZmZXIgYnl0ZSBsZW5ndGggaXMgIiAr
IGJ1ZmZlci5ieXRlTGVuZ3RoKTsKKworICAgICAgICBhd2FpdCBsb2dTdGF0dXMoKTsKKyAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgYXdhaXQgbG9nU3RhdHVzKCk7CisgICAgICAgIGxvZygiR290
IGV4Y2VwdGlvbjogIiArIGUpOworICAgIH0KKyAgICBmaW5pc2hTV1Rlc3QoKTsKK30KKwordGVz
dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWU2ODg5ZmU1M2ZiNGU1ZTgyMjQ1Yjg2ZDI3Y2M1
NjRkMWFjODNiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWNhY2hlLWFwaS5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw0IEBACitTdGF0dXMgaXMgY2FjaGUgaXMgcmVhZHkKK1Jlc3BvbnNlIGJ1ZmZl
ciBieXRlIGxlbmd0aCBpcyAxMjk0MAorU3RhdHVzIGlzIGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMv
cmVzb3VyY2VzL3NxdWFyZTEwMC5wbmcKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1j
YWNoZS1hcGkuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YmQyYTU0MDYxN2ZhMDllZWVmYjhlNmQ3
YmJkODg4MWIzYWE4OGQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSw4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvc2VydmljZS13b3JrZXItY2FjaGUtYXBpLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>