<?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>238319</bug_id>
          
          <creation_ts>2022-03-24 03:08:34 -0700</creation_ts>
          <short_desc>Implement ServiceWorkerWindowClient.focus</short_desc>
          <delta_ts>2024-02-28 15:22:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1854633</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-24 03:08:34 -0700</bug_when>
    <thetext>&lt;rdar://90616490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854634</commentid>
    <comment_count>1</comment_count>
      <attachid>455626</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-24 03:12:59 -0700</bug_when>
    <thetext>Created attachment 455626
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855021</commentid>
    <comment_count>2</comment_count>
      <attachid>455626</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-03-24 23:38:08 -0700</bug_when>
    <thetext>Comment on attachment 455626
WIP

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

&gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:247
&gt; +

I did this a different way here: https://bugs.webkit.org/show_bug.cgi?id=238364

But maybe this much simpler implementation that you&apos;ve done here is what we should be doing, as it doesn&apos;t require any changes to UserGestureIndicator.

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:850
&gt;      if (!m_uiDelegate)

Why not call UIClient::focus?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855054</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-25 03:38:29 -0700</bug_when>
    <thetext>(In reply to Ben Nham from comment #2)
&gt; Comment on attachment 455626 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455626&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:247
&gt; &gt; +
&gt; 
&gt; I did this a different way here:
&gt; https://bugs.webkit.org/show_bug.cgi?id=238364
&gt; 
&gt; But maybe this much simpler implementation that you&apos;ve done here is what we
&gt; should be doing, as it doesn&apos;t require any changes to UserGestureIndicator.

Yeah, user gesture handling in non document is very loosely defined.
A service worker dedicated approach (based on events) seems ok for now.
We can revisit this later.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:850
&gt; &gt;      if (!m_uiDelegate)
&gt; 
&gt; Why not call UIClient::focus?

The WebPageProxy focus term has a strict meaning (used in setFocus and takeFocus)
which has nothing to do with making sure the view becomes key and visible.
This is a bit confusing. 

Hence why the different name that I reused from some automation code.
I am fine using another term though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855056</commentid>
    <comment_count>4</comment_count>
      <attachid>455744</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-25 03:59:26 -0700</bug_when>
    <thetext>Created attachment 455744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855063</commentid>
    <comment_count>5</comment_count>
      <attachid>455747</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-25 05:01:44 -0700</bug_when>
    <thetext>Created attachment 455747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855081</commentid>
    <comment_count>6</comment_count>
      <attachid>455747</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-25 06:50:25 -0700</bug_when>
    <thetext>Comment on attachment 455747
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:840
&gt; +    // FIXME: We probably need to call a delegate instead of doing this directly here.

This is the part where I am not exactly sure what we should do.
My guess is that we should let know the application we want to switch to that tab using a particular delegate (maybe with a default implementation if the delegate is not implemented).
This default implementation works for me on MacOS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855200</commentid>
    <comment_count>7</comment_count>
      <attachid>455747</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2022-03-25 12:24:25 -0700</bug_when>
    <thetext>Comment on attachment 455747
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:840
&gt;&gt; +    // FIXME: We probably need to call a delegate instead of doing this directly here.
&gt; 
&gt; This is the part where I am not exactly sure what we should do.
&gt; My guess is that we should let know the application we want to switch to that tab using a particular delegate (maybe with a default implementation if the delegate is not implemented).
&gt; This default implementation works for me on MacOS.

Let&apos;s add a new UI delegate method to call if implemented.
But if the client doesn&apos;t implement it, do the default thing.

R+ with that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855374</commentid>
    <comment_count>8</comment_count>
      <attachid>455842</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-26 06:11:33 -0700</bug_when>
    <thetext>Created attachment 455842
Rebasing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855397</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-26 08:56:27 -0700</bug_when>
    <thetext>Committed r291938 (248909@main): &lt;https://commits.webkit.org/248909@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455842.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2017606</commentid>
    <comment_count>10</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2024-02-28 15:22:24 -0800</bug_when>
    <thetext>*** Bug 238364 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455626</attachid>
            <date>2022-03-24 03:12:59 -0700</date>
            <delta_ts>2022-03-25 03:59:21 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-238319-20220324111257.patch</filename>
            <type>text/plain</type>
            <size>31846</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBkNGFmNDg3OGM5YTQ5
ODc0NmU0Yjk1NzgxNTE0Nzk0Mjg5NjQ0My4uNjgxZTA5ZDMzZDA0NjI0YTBkMDA2N2M4ZDE0YmIx
ZjdiMjhlM2I1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAzLTI0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudC5mb2N1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzE5CisgICAgICAgIDxyZGFyOi8vOTA2MTY0OTA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQLgorICAgICAg
ICBUZXN0cyB0byBiZSB3cml0dGVuLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyV2luZG93Q2xpZW50LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlcldpbmRvd0NsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyV2luZG93Q2xpZW50LmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmg6CisKIDIwMjItMDMtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIG1lZGlhL2F1dG8tcGxheS13ZWItYXVkaW8taW4tYWJvdXQtYmxh
bmstaWZyYW1lLmh0bWwgaXMgZmFpbGluZyBvbiBFV1MgTWFjT1MgRGVidWcgYm90CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDM4MzAxZDA3MDkzYmQzMDFkNmE5NTQ5ODlmMGY2ZGM4OWUyZjViMDIuLjVjOGRkOGE5YmU3
MGYzOTZhYjhjZGIwYjE5NzE2MWU4NWJjYzU5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMjItMDMtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmZvY3VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6
Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IG5ldyBJUEMgbWVzc2FnZXMuCisgICAgICAgIFRoZSBvdmVyYWxsIGZsb3cg
aXMgbGlrZSB0aGlzOgorICAgICAgICAtIFNlcnZpY2VXb3JrZXIgcHJvY2VzcyB0byBOZXR3b3Jr
UHJvY2VzcyB0byBDbGllbnQgV2ViUHJvY2VzcyBwcm9jZXNzIHRvIFVJUHJvY2VzcyAoZG8gdGhl
IGFjdHVhbCBmb2N1cykgdG8gTmV0d29ya1Byb2Nlc3MgdG8gU2VydmljZVdvcmtlciBwcm9jZXNz
CisgICAgICAgIFdlIG1pZ2h0IHdhbnQgZGlyZWN0bHkgZ28gZnJvbSBOZXR3b3JrUHJvY2VzcyB0
byBVSVByb2Nlc3MgYnV0IHdlIG5lZWQgdG8gaGFuZGxlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlv
bnMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oOgorCiAyMDIyLTAzLTIyICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvU2FtcGxlT2JzZXJ2
ZXI6OnZpZGVvU2FtcGxlQXZhaWxhYmxlIHRvIFZpZGVvRnJhbWUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5k
ZXggMzk3NWQ1MTgxNjVjYWI0NzgzNGM5MWIxZTQxMjk2Y2U4MTI2MTFhNi4uMjUzNjIwOWIyZWIx
OTFlMTA1ZmE1M2M0ZWVjYWIyZmFmMGQ2ZWZkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTUwLDcg
KzUwLDcgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKICAgICBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHkoKSBjb25zdCAmOwogICAgIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhIGlzb2xhdGVkQ29weSgpICYmOwogCi0gICAgc3RhdGljIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZGVjb2RlKERlY29kZXImKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAKaW5kZXggZTA2OWQyNDM0MzZkZTdiYzc0M2YyZWZhNGMzOTg2MDhkYmNiZTc5
NS4uYmJkODE5ZWQ0MWEzZTM5YjJmNmYxOTZjMDY2OWUzNjM0ODc0NGM2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5jcHAKQEAgLTY4LDYgKzY4LDcgQEAgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYgY28KICAg
ICAsIG1fY2xpZW50cyhTZXJ2aWNlV29ya2VyQ2xpZW50czo6Y3JlYXRlKCkpCiAgICAgLCBtX3Nl
c3Npb25JRChzZXNzaW9uSUQpCiAgICAgLCBtX25vdGlmaWNhdGlvbkNsaWVudChXVEZNb3ZlKG5v
dGlmaWNhdGlvbkNsaWVudCkpCisgICAgLCBtX3VzZXJHZXN0dXJlVGltZXIoKnRoaXMsICZTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGU6OnJlc2V0VXNlckdlc3R1cmUpCiB7CiB9CiAKQEAgLTIyNCw2
ICsyMjUsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6cG9zdFRhc2tUb0ZpcmVO
b3RpZmljYXRpb25FdmVudChOb3RpZmljYXRpb25FdmVudAogICAgICAgICAgICAgc3dpdGNoIChl
dmVudFR5cGUpIHsKICAgICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlOjpDbGlj
azoKICAgICAgICAgICAgICAgICBldmVudE5hbWUgPSBldmVudE5hbWVzKCkubm90aWZpY2F0aW9u
Y2xpY2tFdmVudDsKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KHNjb3BlKS5yZWNvcmRVc2VyR2VzdHVyZSgpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgY2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGU6OkNsb3NlOgogICAgICAg
ICAgICAgICAgIGV2ZW50TmFtZSA9IGV2ZW50TmFtZXMoKS5ub3RpZmljYXRpb25jbG9zZUV2ZW50
OwpAQCAtMjM3LDYgKzIzOSwxMiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6cG9z
dFRhc2tUb0ZpcmVOb3RpZmljYXRpb25FdmVudChOb3RpZmljYXRpb25FdmVudAogfQogI2VuZGlm
CiAKK3ZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpyZWNvcmRVc2VyR2VzdHVyZSgpCit7
CisgICAgbV9pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSA9IHRydWU7CisgICAgbV91c2VyR2VzdHVy
ZVRpbWVyLnN0YXJ0T25lU2hvdCh1c2VyR2VzdHVyZUxpZmV0aW1lKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IGIwNWZhMzI4MjI3NWYzZTE1YjAxMjMwYjk3ZmU4NDM3YTY5MDhlMTku
LmE1MjkyNWRhYmQ3ZTg3Y2JhMTZhMDRhM2ViNDU0NTIxMjAxYThlZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTkyLDYgKzkyLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc1BlbmRpbmdTaWxl
bnRQdXNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQ7
IH0KICAgICB2b2lkIHNldEhhc1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQoYm9vbCB2YWx1ZSkgeyBt
X2hhc1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQgPSB2YWx1ZTsgfQogCisgICAgY29uc3RleHByIHN0
YXRpYyBTZWNvbmRzIHVzZXJHZXN0dXJlTGlmZXRpbWUgIHsgMl9zIH07CisgICAgYm9vbCBpc1By
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9jZXNzaW5nVXNlckdl
c3R1cmU7IH0KKyAgICB2b2lkIHJlY29yZFVzZXJHZXN0dXJlKCk7CisKIHByaXZhdGU6CiAgICAg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmLCBTZXJ2
aWNlV29ya2VyRGF0YSYmLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmLCBTZXJ2aWNlV29ya2VyVGhyZWFkJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9y
aWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIHN0
ZDo6dW5pcXVlX3B0cjxOb3RpZmljYXRpb25DbGllbnQ+JiYsIFBBTDo6U2Vzc2lvbklEKTsKICAg
ICB2b2lkIG5vdGlmeVNlcnZpY2VXb3JrZXJQYWdlT2ZDcmVhdGlvbklmTmVjZXNzYXJ5KCk7CkBA
IC0xMDMsNiArMTA3LDggQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNz
aW9uSUQ+IHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAK
KyAgICB2b2lkIHJlc2V0VXNlckdlc3R1cmUoKSB7IG1faXNQcm9jZXNzaW5nVXNlckdlc3R1cmUg
PSBmYWxzZTsgfQorCiAgICAgU2VydmljZVdvcmtlckNvbnRleHREYXRhIG1fY29udGV4dERhdGE7
CiAgICAgUmVmPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IG1fcmVnaXN0cmF0aW9uOwogICAg
IFJlZjxTZXJ2aWNlV29ya2VyPiBtX3NlcnZpY2VXb3JrZXI7CkBAIC0xMTUsNiArMTIxLDggQEAg
cHJpdmF0ZToKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8Tm90aWZpY2F0aW9uQ2xpZW50PiBtX25vdGlmaWNhdGlvbkNsaWVudDsKICAgICBib29s
IG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlIHsgZmFsc2UgfTsKKyAgICBUaW1lciBtX3VzZXJHZXN0dXJlVGlt
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAK
aW5kZXggOTIyOWFlMjQyZjQwMGQ1MGQzZmU1NWUwNTU5OWEzMTcwNDJhNDk3OC4uNjgyYjhmMDQ5
Y2Y2MDMzZTNmNDBkMGQzZjFlODIzOWU1Y2RjMWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNw
cApAQCAtMjksNiArMjksOSBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQu
aCIKIAogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNTZXJ2
aWNlV29ya2VyQ2xpZW50LmgiCisjaW5jbHVkZSAiU1dDb250ZXh0TWFuYWdlci5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00
NywxMiArNTAsMzkgQEAgYm9vbCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Ojppc0ZvY3VzZWQo
KSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJXaW5kb3dD
bGllbnQ6OmZvY3VzKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudDo6Zm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIHByb21pc2UtPnJlamVj
dChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIndpbmRvd0NsaWVudC5mb2N1cygpIGlz
IG5vdCB5ZXQgc3VwcG9ydGVkIl9zIH0pOworICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJDb250ZXh0
ID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKyAgICAvLyBG
SVhNRTogQWRkIFNlcnZpY2VXb3JrZXJJbnRlcm5hbHMgQVBJIHRvIHN3aXRjaCBvZmYgdGhpcyBy
ZXN0cmljdGlvbi4KKy8qCisgICAgaWYgKCFzZXJ2aWNlV29ya2VyQ29udGV4dC5pc1Byb2Nlc3Np
bmdVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkQWNjZXNzRXJyb3IsICJXaW5kb3dDbGllbnQgZm9jdXMgcmVxdWlyZXMgYSB1c2VyIGdl
c3R1cmUiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisqLworICAgIGF1dG8gcHJvbWlz
ZVBvaW50ZXIgPSBwcm9taXNlLnB0cigpOworICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9t
aXNlUG9pbnRlciwgV1RGTW92ZShwcm9taXNlKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwcm9taXNlUG9pbnRlciwgY2xpZW50T3JpZ2lu
ID0gc2VydmljZVdvcmtlckNvbnRleHQub3JpZ2luKCkuaXNvbGF0ZWRDb3B5KCksIGNsaWVudElk
ZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gc2Vydmlj
ZVdvcmtlckNvbnRleHQudGhyZWFkKCkuaWRlbnRpZmllcigpXSgpIG11dGFibGUgeworICAgICAg
ICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPmZvY3VzKGNsaWVu
dElkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBwcm9taXNlUG9pbnRl
ciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29y
a2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlz
KSwgcHJvbWlzZVBvaW50ZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3Vs
dCkpXShhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgYXV0byBw
cm9taXNlID0gd2Vha1RoaXMtPm1fcGVuZGluZ1Byb21pc2VzLnRha2UocHJvbWlzZVBvaW50ZXIp
OworICAgICAgICAgICAgICAgIGlmICghcHJvbWlzZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAg
IHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJXaW5kb3dDbGllbnQgZm9j
dXMgZmFpbGVkIl9zIH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBDaGVjayBpc0ZvY3VzZWQgc3RhdGUg
YW5kIHJlamVjdCBpZiBub3QgZm9jdXNlZC4KKyAgICAgICAgICAgICAgICBwcm9taXNlLT5yZXNv
bHZlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Pj4oU2VydmljZVdvcmtl
cldpbmRvd0NsaWVudDo6Y3JlYXRlKGNvbnRleHQsIFdURk1vdmUoKnJlc3VsdCkpKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2Vy
V2luZG93Q2xpZW50OjpuYXZpZ2F0ZShjb25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlKQordm9pZCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpuYXZpZ2F0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBVTlVTRURfUEFSQU0odXJsKTsKICAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJ3aW5kb3dDbGllbnQu
bmF2aWdhdGUoKSBpcyBub3QgeWV0IHN1cHBvcnRlZCJfcyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5o
CmluZGV4IGY0M2MyYzZkMDcwNGViMWMwNzQ3Yzg1MzZjM2E4OGY5Mjg3NDViMWYuLjIzMGYxZGEy
MGE4NzM2ZWE5NzkxZDE0NDBiMjU4MDAwNDZhYWEwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaApA
QCAtMjksMTMgKzI5LDE0IEBACiAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiVmlzaWJpbGl0eVN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CiBjbGFzcyBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGU7CiAKLWNsYXNzIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQg
ZmluYWwgOiBwdWJsaWMgU2VydmljZVdvcmtlckNsaWVudCB7CitjbGFzcyBTZXJ2aWNlV29ya2Vy
V2luZG93Q2xpZW50IGZpbmFsIDogcHVibGljIFNlcnZpY2VXb3JrZXJDbGllbnQsIHB1YmxpYyBD
YW5NYWtlV2Vha1B0cjxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiBjcmVhdGUoU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCiAg
ICAgewpAQCAtNDUsMTEgKzQ2LDEzIEBAIHB1YmxpYzoKICAgICBWaXNpYmlsaXR5U3RhdGUgdmlz
aWJpbGl0eVN0YXRlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdDsKIAotICAg
IHZvaWQgZm9jdXMoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0gICAgdm9pZCBuYXZpZ2F0ZShj
b25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBmb2N1
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAg
dm9pZCBuYXZpZ2F0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmws
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJX
aW5kb3dDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVu
dERhdGEmJik7CisKKyAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJlZjxEZWZlcnJlZFBy
b21pc2U+PiBtX3BlbmRpbmdQcm9taXNlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
V2luZG93Q2xpZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyV2luZG93Q2xpZW50LmlkbAppbmRleCBmYzFjOTFlYTI0ZjYzYTIxNDA0ZjIzMmU0MWU5
NzcxMDhhNjg3YWY0Li5jNDU4ZGE1Nzk4Y2JmMmFjMGQ1OTYxMzkyNTBmZDE3NjAwZWE5MDI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsCkBAIC0zMiw2ICszMiw2IEBACiAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIFZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGU7CiAgICAgW0ltcGxlbWVu
dGVkQXM9aXNGb2N1c2VkXSByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBmb2N1c2VkOwogCi0g
ICAgW05ld09iamVjdF0gUHJvbWlzZTxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiBmb2N1cygp
OwotICAgIFtOZXdPYmplY3RdIFByb21pc2U8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4gbmF2
aWdhdGUoVVNWU3RyaW5nIHVybCk7CisgICAgW05ld09iamVjdCwgQ2FsbFdpdGg9Q3VycmVudFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4g
Zm9jdXMoKTsKKyAgICBbTmV3T2JqZWN0LCBDYWxsV2l0aD1DdXJyZW50U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gUHJvbWlzZTxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiBuYXZpZ2F0ZShVU1ZT
dHJpbmcgdXJsKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggYjI3ODMyM2Y5OTJkMmQ2ODI2
M2I5M2UzZTIwMTNmZDE0Nzk3NTk5My4uZmNmNWVlMDljOGE1MGQ4MmE0MWU3ODI4MDNlMGNkY2Jj
ZTNiODg2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNjgsNiArNjgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRz
TWF0Y2hBbGxDYWxsYmFjayYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbGFpbShTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJikgPSAwOwogCisgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1cyhTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKT4mJikgPSAwOworCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsSGVhcnRCZWF0Q2hlY2soU2VydmljZVdvcmtlcklkZW50
aWZpZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNldEFzSW5zcGVjdGVkKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBib29sKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA5M2Q3ZjcxZTE5ZTUzMmViM2U2NzA0
YTA3YjZlZWNhMGRmOGNiNGRlLi4yODgwNTQyZWY2OTMwNzJlYmMxOWYzYTQ1OTc3YzJkYjRhOTM5
NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oCkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNl
dFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3Qg
U2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2
b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgZm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNv
bnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mKSA9IDA7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDYxODYzNDZjZDE3
Njk1YmEzZDY4YTA0MmZkNzJiNDE0MDJlYTJiZDYuLmE3N2JiYTg3MDFhMTU5ZmY0ZDg1MjhlYWQx
OTk1MGVkZmU5NzA1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApA
QCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3b3JrZXJU
ZXJtaW5hdGVkKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIG1hdGNoQWxsKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2xhaW0oU2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiYmKT4mJik7CisKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNjcmlwdFJlc291cmNlKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBVUkwmJiBzY3JpcHRVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0
ZWRTY3JpcHQmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRGYWlsSGVhcnRCZWF0Q2hl
Y2soU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
QXNJbnNwZWN0ZWQoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA2N2NlZWY1NDQ4NGQ3NTA2ODgwMDExNTBh
ZTY1ODRmYjkzYWYzZTA5Li4zMmNiYjE5MzEyMDhkYjU4MTdjMDY1MzBmYzkwNTBiZjQyOTg2Yjhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtNjU5LDYgKzY1
OSwxMiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0TmF2aWdhdGlvblByZWxvYWRT
dGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaQogICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlv
bi0+bmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpKTsKIH0KIAorCit2b2lkIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Zm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYgY2FsbGJhY2sp
Cit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rp
b246OkZvY3VzU2VydmljZVdvcmtlckNsaWVudCB7IGNsaWVudElkZW50aWZpZXIgfSwgV1RGTW92
ZShjYWxsYmFjaykpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIENPTk5F
Q1RJT05fTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmgKaW5kZXggY2I2NWFlMmUyNjE0YmE1NWZiZjIwYWUwODU1OWI0MWNjMThjNDYxMC4u
NTNlNDFjODJjYzNlNTQxM2M2YmQ5ZWRhNmE5NDQwY2QzZWU1Y2YzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtODMsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+IGNyZWF0ZUZldGNoVGFzayhOZXR3
b3JrUmVzb3VyY2VMb2FkZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKICAg
ICB2b2lkIGZldGNoVGFza1RpbWVkT3V0KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKIAorICAgIHZvaWQgZm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKTsKKwogcHJpdmF0
ZToKICAgICAvLyBJbXBsZW1lbnQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb24gKE1lc3NhZ2VzIHRvIHRo
ZSBjbGllbnQgV2ViUHJvY2VzcykKICAgICB2b2lkIHJlamVjdEpvYkluQ2xpZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwCmluZGV4IGU5YTVhZjQyNzU2YjQ1YmYzM2Q0YTc3MWNkNGI4YTExMDRkNjI3M2Qu
LjAzNjc1YTg0NDQyZTMwYTM0MzFmNzliMjMzZTgxYjdlMzljMDM1NjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBAIC0yMTcsNiAr
MjE3LDE3IEBAIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6d2ViUHJvY2Vzc0lkZW50aWZpZXIoCiAgICAgcmV0dXJuIG1fY29ubmVjdGlv
bi53ZWJQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6Zm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiBz
ZXJ2ZXIgPSB0aGlzLT5zZXJ2ZXIoKTsKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gc2VydmVyID8g
c2VydmVyLT5jb25uZWN0aW9uKGNsaWVudElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSkg
OiBudWxscHRyOworICAgIGlmICghY29ubmVjdGlvbikgeworICAgICAgICBjYWxsYmFjayh7IH0p
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNvbm5lY3Rpb24tPmZvY3VzU2VydmljZVdv
cmtlckNsaWVudChjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4
IGJlOTYxNTI4ZGIyZmEwZmJkYzA5ODU2YWZjZjFlMTQ4ZDM2NWEwMmEuLjAzZDkzNmNjZDMyYWQ2
ODFjY2E2NGZhODNhYTViNTk2N2QwZTE1N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JikgZmluYWw7CiAgICAg
dm9pZCBmaXJlUHVzaEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKSBmaW5hbDsKICAgICB2b2lkIGNsb3NlKCkgZmluYWw7CisgICAgdm9pZCBmb2N1
cyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRh
PiYmKT4mJik7CiAKICAgICB2b2lkIGNvbm5lY3Rpb25Jc05vTG9uZ2VyTmVlZGVkKCkgZmluYWw7
CiAgICAgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVzcG9uc2l2ZW5lc3MoKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCmluZGV4IDA3OGI2ZWEzMGI5MTdhNzdhNzYyYTBiZGJjMDI3Njk0OWIzYWI5ODcu
LjNlNzc1ODUyMzc5NTAyNWY5MWI3ZjAwOGQxMThhMDI0MTZjOTFiZWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdl
cy5pbgpAQCAtMzUsNiArMzUsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgRmluZENsaWVudEJ5VmlzaWJsZUlkZW50aWZp
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFN0cmluZyBjbGllbnRJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZGF0YSkKICAgICBNYXRjaEFsbCh1aW50NjRfdCBtYXRj
aEFsbFJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRRdWVyeU9wdGlvbnMgb3B0aW9ucyk7CiAgICAgQ2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkKKyAgICBGb2N1cyhXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcikg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IHJlc3Vs
dCkKICAgICBTZXRTY3JpcHRSZXNvdXJjZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBVUkwgc2NyaXB0VVJMLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE6OkltcG9ydGVkU2NyaXB0IHNjcmlwdCkKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkZXN0
aW5hdGlvbiwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2Us
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9y
aWdpbikKICAgICBEaWRGYWlsSGVhcnRCZWF0Q2hlY2soV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKaW5kZXggZmJjZTk0NWU0NTg2ZjJkZjdlNzUwZmE5ODA3NjY0NDg3ZGUyODQ0NS4uN2U2
ZTU1MTVjYWE5NDU0YzhiODZiN2QzMjMzZWQ2MDU0NzEwYmQ2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHRha2VGb2N1cyhXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdLRm9jdXNE
aXJlY3Rpb24pIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzKFdlYktp
dDo6V2ViUGFnZVByb3h5KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoV2ViS2l0OjpX
ZWJQYWdlUHJveHkqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3dpdGNoVG9XZWJWaWV3KFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFs
ZXJ0KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJLaXQ6Oldl
YkZyYW1lUHJveHkqLCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJiwgRnVuY3Rpb248dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBX
VEY6OlN0cmluZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6RnJhbWVJbmZvRGF0
YSYmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxl
Z2F0ZS5oCmluZGV4IGMwMmRiNDgyOTY1YzVlOGQzZmM0MGQ5MDg2OWM5ZThmODBhZDMwMWUuLjBi
NGM0OTQzNWZlYWRkZDQzOTBiNWE5ZDI5Y2FlZjQ1ZjJlYWVhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTExNiw2ICsxMTYsOCBAQCBwcml2YXRl
OgogICAgICAgICB2b2lkIHNob3dQYWdlKFdlYlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2
b2lkIGZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lkIHVuZm9jdXMoV2Vi
UGFnZVByb3h5KikgZmluYWw7CisgICAgICAgIHZvaWQgc3dpdGNoVG9XZWJWaWV3KFdlYktpdDo6
V2ViUGFnZVByb3h5JikgZmluYWw7CisKICAgICAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGNvbnN0
IGZpbmFsOwogICAgICAgICB2b2lkIHJ1bk1vZGFsKFdlYlBhZ2VQcm94eSYpIGZpbmFsOwogICAg
ICAgICB2b2lkIHBhZ2VEaWRTY3JvbGwoV2ViUGFnZVByb3h5KikgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCA3NjU5YjFjOWZmMGQyZjli
YzUwYWVlN2VkNDM3YTc1OWJmNmU5MjAwLi4xM2NiYjkzMTE4N2ViYzA1ZWMxMmZmODFjOTUzODQx
NTg2NzQ1ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
bW0KQEAgLTgzMSw2ICs4MzEsMjAgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cGFnZURp
ZFNjcm9sbChXZWJQYWdlUHJveHkqKQogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRl
bGVnYXRlIF93ZWJWaWV3RGlkU2Nyb2xsOm1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdl
dCgpXTsKIH0KIAordm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6c3dpdGNoVG9XZWJWaWV3KFdl
YktpdDo6V2ViUGFnZVByb3h5JikKK3sKKyAgICBhdXRvKiB3ZWJWaWV3ID0gbV91aURlbGVnYXRl
ID8gbV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgOiBudWxscHRyOworICAgIGlm
ICghd2ViVmlldykKKyAgICAgICAgcmV0dXJuOworCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFt3
ZWJWaWV3LndpbmRvdyBtYWtlS2V5QW5kVmlzaWJsZV07CisjZWxzZQorICAgIFt3ZWJWaWV3Lndp
bmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxdOworI2VuZGlmCisgICAgW3dlYlZpZXcud2lu
ZG93IG1ha2VGaXJzdFJlc3BvbmRlcjp3ZWJWaWV3XTsKK30KKwogdm9pZCBVSURlbGVnYXRlOjpV
SUNsaWVudDo6Zm9jdXMoV2ViUGFnZVByb3h5KikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkK
QEAgLTg0Miw3ICs4NTYsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpmb2N1cyhXZWJQ
YWdlUHJveHkqKQogICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUu
Z2V0KCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAg
WyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX2ZvY3VzV2ViVmlldzptX3VpRGVs
ZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDM1ZGI2NzFmZjU1ZWYyYWI0ZDRjZjM2ZjJhYTVhNjAx
MmE2NmRhYzQuLjVmN2ZkOTc4NzY0ZjE0NDQ3ZTUwZTU3NGU0ODdmM2I5YzRiNmFhMWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzM5MCw2ICs3MzkwLDEz
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDYW5jZWxDaGVja2luZ1RleHQoVGV4dENoZWNrZXJS
ZXF1ZXN0SUQgcmVxdWVzdElEKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENh
bmNlbENoZWNraW5nVGV4dChyZXF1ZXN0SUQpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OnN3
aXRjaFRvV2ViVmlldyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7Cisg
ICAgbV91aUNsaWVudC0+c3dpdGNoVG9XZWJWaWV3KCp0aGlzKTsKKyAgICBjYWxsYmFjaygpOwor
fQorCiAvLyBPdGhlcgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Rm9jdXMoYm9vbCBmb2N1c2Vk
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA4MTdkM2YyOGZjYWIy
NjE1MWUzMzA5ODY1YjQ1MzZjMTAxM2MxZjRhLi44MDFkZTdlZjdjOWE1NzdkOGU3ZGI5YTkzYjE5
NDkxN2FlOWQxOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
MTY4OSw2ICsxNjg5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJ
Y29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29uJiwgV2ViS2l0OjpDYWxsYmFja0lEKTsKIAorICAg
IHZvaWQgc3dpdGNoVG9XZWJWaWV3KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRGb2N1cyhib29sIGZvY3VzZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJhbWUoY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9pZCBnZXRXaW5kb3dGcmFtZShNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpHZXRXaW5kb3dGcmFtZURlbGF5ZWRSZXBseSYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZWJk
ZTA5ZmJmZWQ5MTE2NmRmMjg4NDc5MDA2YTY4ZWE3YzA3Y2M5Li40ZjQ5NzRmYWU1NDkyMzI4MmZj
NTZmYTFhMGVmNjZmMTlmMDRlZDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00MSw2ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IFdl
YlBhZ2VQcm94eSB7CiAgICAgU2V0U3RhdHVzVGV4dChTdHJpbmcgc3RhdHVzVGV4dCkKICAgICBT
ZXRGb2N1cyhib29sIGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQ4X3QgZGlyZWN0aW9uKQor
ICAgIFN3aXRjaFRvV2ViVmlldygpIC0+ICgpCiAgICAgRm9jdXNlZEZyYW1lQ2hhbmdlZChzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4gZnJhbWVJRCkKICAgICBTZXRSZW5k
ZXJUcmVlU2l6ZSh1aW50NjRfdCB0cmVlU2l6ZSkKICAgICBTZXRUb29sYmFyc0FyZVZpc2libGUo
Ym9vbCB0b29sYmFyc0FyZVZpc2libGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA2NjAzNzU3
NTZkZDdiZjQ1Y2ZhYTMwMDZjNjdkZmRlYzMwZTZjMTgzLi5hN2U0NzRhNTUyYTkxNzA4YTdjMjFm
MGVmNmI3MTkwMzYyZjkyZWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTMwMSw2ICszMDEs
MjIgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldE5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2kKICAgICB9KTsKIH0KIAordm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmZvY3VzU2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmIGNhbGxiYWNrKQor
eworICAgIGF1dG8qIGNsaWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5nZXQoY2xp
ZW50SWRlbnRpZmllcik7CisgICAgYXV0byogcGFnZSA9IGNsaWVudCA/IGNsaWVudC0+cGFnZSgp
IDogbnVsbHB0cjsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFdlYlBhZ2U6OmZyb21Db3JlUGFnZSgqcGFnZSku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN3aXRjaFRvV2ViVmll
dygpLCBbY2xpZW50ID0gUmVmIHsgKmNsaWVudCB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXSgpIG11dGFibGUgeworICAgICAgICAvLyBGSVhNRTogZ3JhYiBjbGllbnQgZGF0YSBvbmNl
IHdlIGFyZSBzdXJlIHZpc2liaWxpdHkgc3RhdGUgaGFzIGNoYW5nZWQsIGlkZWFsbHkgVUlQcm9j
ZXNzIHdvdWxkIGd1YXJhbnRlZSB0aGlzLgorICAgICAgICAvLyBGSVhNRTogdGFrZSBmb2N1cyBh
cyB3ZWxsLgorICAgICAgICBjYWxsYmFjayhTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbShj
bGllbnQuZ2V0KCkpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGIyOTI1
NTkwNDJjNzc0NjU1MjAwYjFiNWVmNTEwM2M4ODNjYmFiNmMuLjQ3NzJiNjI5Y2FkYTdiNmU3OWNh
YzZhNDAwODJhMzRjZGZmYTlhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05OSw2ICs5OSw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNr
JiYpIGZpbmFsOwogICAgIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2Vw
dGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxv
YWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCBmb2N1c1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYpOwogCiAgICAgdm9pZCBzY2hlZHVsZVN0
b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGJlZjhkYTJlZTFkMDM2ZjBjN2FiZGMz
Yjc3YzhiMDJkYTE5YWUyYzAuLjIxZGI1NjRiN2M4MmI1ZGFlNzk1MTQyNzMzNGE3Y2VkODE4MDk0
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM5LDYgKzM5LDgg
QEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJE
YXRhIHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFNldERvY3VtZW50SXNDb250
cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHRlbXBvcmFy
eURvY3VtZW50SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykKKworICAgIEZvY3VzU2VydmljZVdv
cmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGll
bnRJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4gcmVzdWx0KQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IGExYzY4Y2JlYTQzMmUxMTY0
ODhjOTU5OWRjMjNiZDYyZWU4ZjFiZGUuLmUyM2MyNTcxN2JjYTI0MWZmOGNjOTc1OWMwZjNlZDdh
MzI3NmJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTMzMiwx
MyArMzMyLDE4IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Om1hdGNoQWxs
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyCiAgICAgICAgIGNhbGxiYWNrKFdU
Rk1vdmUoY2xpZW50c0RhdGEpKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6Y2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+
JiYgY2FsbGJhY2spCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbGFpbShT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBt
X2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Q2xhaW0geyBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciB9LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkg
bXV0YWJsZSB7CiAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCA/IHJlc3VsdC0+dG9FeGNlcHRpb24o
KSA6IEV4Y2VwdGlvbk9yPHZvaWQ+IHsgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZvY3VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYgY2FsbGJhY2spCit7Cisg
ICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OkZvY3VzIHsgY2xpZW50SWRlbnRp
ZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OmNsb3NlKCkKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAi
U2VydmljZSB3b3JrZXIgcHJvY2VzcyBpcyByZXF1ZXN0ZWQgdG8gc3RvcCBhbGwgc2VydmljZSB3
b3JrZXJzIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBiNTY5NDBlNGIw
MzM0NzRkYjIzMDdlMWRkY2UyMDk0YmEwNWY4YjkwLi5lY2Q4MWZiM2YyYWI4OTYzMjY1MjYzNTZm
YmI4MDc0YzI2NGYyMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTgx
LDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmRDbGllbnRCeVZpc2libGVJZGVudGlm
aWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBGaW5k
Q2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0
Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIHNraXBXYWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2NyaXB0UmVzb3Vy
Y2UoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFVSTCYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmKSBmaW5hbDsK
ICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29uc3QgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455744</attachid>
            <date>2022-03-25 03:59:26 -0700</date>
            <delta_ts>2022-03-25 05:26:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238319-20220325115925.patch</filename>
            <type>text/plain</type>
            <size>64317</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ0YmJkYjg5MjJhZWIxYjRhZDVmZDMz
YTEwYjBkYmFhZDg2NTQwNzQuLjRkYzE4ZjgxODdmNGNjMWZkMmJiOTA4YzFkZTIxNTk4YTJiOTBk
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xp
ZW50LmZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNJbnRlcm5hbC55YW1sOgorCiAyMDIyLTAzLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVmVjdG9yIG1vdmUgY29uc3RydWN0b3IgYW5kIG1vdmUg
YXNzaWdubWVudCBvcGVyYXRvciBhcmUgc3Vib3B0aW1hbCB3aGVuIHRoZSB2ZWN0b3IgaGFzIGFu
IGlubGluZSBidWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MGQ0YWY0ODc4YzlhNDk4NzQ2ZTRiOTU3ODE1
MTQ3OTQyODk2NDQzLi5lNDI3YTE4ZDEyMjU0NmJmMzdlMjhlOTlmODM1OGY2NTk1ZTE4YjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjItMDMtMjUgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50LmZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2VydmljZSB3
b3JrZXIgZm9jdXM6CisgICAgICAgIC0gSW1wbGVtZW50IHVzZXIgZ2VzdHVyZSByZXF1aXJlbWVu
dCBieSBpbnRyb2R1Y2luZyBhIGZsYWcgaW4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHRoYXQg
aXMgdHVybmVkIG9uIGZvciBzb21lIHRpbWUKKyAgICAgICAgICB3aGVuIHJlY2VpdmluZyBzcGVj
aWZpYyBldmVudHMgbGlrZSBub3RpZmljYXRpb24gY2xpY2sgZXZlbnQuIFRoZSBtYXggdGltZSBp
cyBjdXJyZW50bHkgc2V0IHRvIDIgc2Vjb25kcy4KKyAgICAgICAgICBXZSBtaWdodCB3YW50IHRv
IGltcHJvdmUgaGFuZGxpbmcgb2YgdXNlciBhY3RpdmF0aW9uIGluIG5vbi1kb2N1bWVudCBjb250
ZXh0cyBidXQgdGhpcyBpcyBhIGZ1enp5IGFyZWEgcmlnaHQgbm93IHNvIGEgc2VydmljZSB3b3Jr
ZXIKKyAgICAgICAgICBzb2x1dGlvbiBzZWVtcyBnb29kIGZvciBub3cuCisgICAgICAgIC0gUmVt
b3ZlIHRoZSBtYXAgb2Ygc2VydmljZSB3b3JrZXIgY2xpZW50IHNpbmNlIHdlIG5lZWQgdG8gY3Jl
YXRlIG5ldyBvbmVzIGV2ZXJ5IHRpbWUuCisgICAgICAgIC0gZm9jdXMgd2lsbCBnbyBpdHMgY29u
dGV4dCBtYW5hZ2VyIHRoYXQgd2lsbCBzZW5kIGFuIElQQyBtZXNzYWdlIHRvIHRoZSBuZXR3b3Jr
IHByb2Nlc3MgdG8gYWN0dWFsbHkgdHJpZ2dlciBmb2N1cy4KKyAgICAgICAgV2UgYXJlIG1pc3Np
bmcgZm9jdXNlZCBjaGVjayB0aGF0IHdpbGwgYmUgZG9uZSBpbiBhIGZvbGxvdy11cC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogdGVzdGluZy9TZXJ2aWNlV29y
a2VySW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudHMuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyV2luZG93Q2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmg6CisKIDIwMjItMDMtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIG1lZGlhL2F1dG8tcGxheS13ZWItYXVkaW8taW4tYWJvdXQtYmxh
bmstaWZyYW1lLmh0bWwgaXMgZmFpbGluZyBvbiBFV1MgTWFjT1MgRGVidWcgYm90CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDM4MzAxZDA3MDkzYmQzMDFkNmE5NTQ5ODlmMGY2ZGM4OWUyZjViMDIuLjg1OGJiNDZmN2Jj
YzY4ZWZmMTZmZmVmMzQyYjBkYmE0YWQ1ZDdjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMjItMDMtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmZvY3VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6
Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IG5ldyBJUEMgbWVzc2FnZXMuCisgICAgICAgIFRoZSBvdmVyYWxsIGZsb3cg
aXMgbGlrZSB0aGlzOgorICAgICAgICAtIFNlcnZpY2VXb3JrZXIgcHJvY2VzcyB0byBOZXR3b3Jr
UHJvY2VzcyB0byBDbGllbnQgV2ViUHJvY2VzcyBwcm9jZXNzIHRvIFVJUHJvY2VzcyAoZG8gdGhl
IGFjdHVhbCBmb2N1cykgdG8gTmV0d29ya1Byb2Nlc3MgdG8gU2VydmljZVdvcmtlciBwcm9jZXNz
CisgICAgICAgIFdlIG1pZ2h0IHdhbnQgdG8gZGlyZWN0bHkgZ28gZnJvbSBOZXR3b3JrUHJvY2Vz
cyB0byBVSVByb2Nlc3MgYnV0IHdlIG5lZWQgdG8gaGFuZGxlIHBvdGVudGlhbCByYWNlIGNvbmRp
dGlvbnMgaW4gdGhhdCBjYXNlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKwogMjAyMi0wMy0yMiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlb1NhbXBsZU9ic2VydmVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSB0byBWaWRlb0ZyYW1lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbAppbmRleCA2MmJiYmRmZDc3OGIxZTE1YmQ4YjIyODM1NjZkOWNjZTAw
ZjVjZDY1Li5lZDViODIzZTZkM2Q1MTNmOTMwMjZmM2UxOTFjODUwMmQ1YmNjNTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsLnlhbWwKQEAgLTg0Myw2ICs4NDMsMTkgQEAgU2VydmljZVdvcmtlcnNFbmFibGVk
OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitTZXJ2aWNlV29ya2Vyc1Vz
ZXJHZXN0dXJlRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlZh
bGlkYXRlIFVzZXJHZXN0dXJlIHJlcXVpcmVtZW50cyBpbiBTZXJ2aWNlIFdvcmtlcnMiCisgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlZhbGlkYXRlIFVzZXJHZXN0dXJlIHJlcXVpcmVtZW50
cyBpbiBTZXJ2aWNlIFdvcmtlcnMiCisgIGNvbmRpdGlvbjogRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAg
IGRlZmF1bHQ6IHRydWUKKwogU2ltcGxlTGluZUxheW91dEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wK
ICAgd2ViY29yZU9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCmluZGV4
IGVjMDA2NzljMDFmZjIwNjk2MjhjZDg3NmRlNzk1MjRiOTczOWQ3ODkuLmY0ZWMyMWUzODA0ZWM1
ZjE3OWY2Zjg2MjQ2ZDhjOTA3MTNhNWVlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcApAQCAtMzQsMTQgKzM0LDE2IEBACiAjaW5j
bHVkZSAiUHVzaFN1YnNjcmlwdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudC5oIgorI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
aCIKICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
U2VydmljZVdvcmtlckludGVybmFsczo6U2VydmljZVdvcmtlckludGVybmFscyhTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorU2VydmljZVdvcmtlckludGVybmFsczo6U2Vydmlj
ZVdvcmtlckludGVybmFscyhTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCiB7CisgICAgZ2xvYmFsU2NvcGUuc2V0SXNQcm9jZXNzaW5nVXNlckdlc3R1cmVG
b3JUZXN0aW5nKHRydWUpOwogfQogCiBTZXJ2aWNlV29ya2VySW50ZXJuYWxzOjp+U2VydmljZVdv
cmtlckludGVybmFscygpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9T
ZXJ2aWNlV29ya2VySW50ZXJuYWxzLmgKaW5kZXggN2JlMzc5ODNlMTA4NDI5ZTkyZmRjMTkxYjQy
M2ZiMmY1NThjMjc4Yy4uZmY4NjIyZTJjZTU1YWQyZTIzMzE4Y2RjMWQwYjQ4YWY3YzU4ZjVjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmgK
QEAgLTQwLDEzICs0MCwxNCBAQCBjbGFzcyBGZXRjaEV2ZW50OwogY2xhc3MgRmV0Y2hSZXNwb25z
ZTsKIGNsYXNzIFB1c2hTdWJzY3JpcHRpb247CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworY2xhc3MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogY2xhc3MgU2VydmljZVdvcmtlckNs
aWVudDsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVy
cmVkOwogCiBjbGFzcyBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBTZXJ2aWNlV29ya2VySW50
ZXJuYWxzIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckludGVybmFscz4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTZXJ2aWNlV29ya2VySW50ZXJuYWxzPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTZXJ2aWNlV29ya2VySW50ZXJuYWxzPiBjcmVhdGUoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2Vy
SW50ZXJuYWxzIHsgaWRlbnRpZmllciB9KTsgfQorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtl
ckludGVybmFscz4gY3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2NvcGUs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2VydmljZVdvcmtlckludGVybmFscyB7IGdsb2JhbFNjb3BlLCBpZGVudGlmaWVyIH0pOyB9
CiAgICAgflNlcnZpY2VXb3JrZXJJbnRlcm5hbHMoKTsKIAogICAgIHZvaWQgc2V0T25saW5lKGJv
b2wgaXNPbmxpbmUpOwpAQCAtNzYsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBc0lu
c3BlY3RlZChib29sKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29ya2VySW50
ZXJuYWxzKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBTZXJ2aWNlV29ya2VySW50ZXJu
YWxzKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
IAogICAgIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWZQdHI8
RGVmZXJyZWRQcm9taXNlPiBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkUHJvbWlzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApp
bmRleCA2YjU5MWZjNzk0ZWZkZjNhNTc5ODU3MjcwZjFjMTZmNzljZDVlN2MyLi4xYmQ2MjcyMjNi
ZDcwMmIxOTBkNzRjMDA2YzgxNTJmMTEwZTJkYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgdm9p
ZCBzZXR1cE5ld2x5Q3JlYXRlZFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpCiAgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgICAg
IEpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogICAgICAgICBhdXRvKiBjb250ZXh0V3JhcHBlciA9
IHNjcmlwdC0+Z2xvYmFsU2NvcGVXcmFwcGVyKCk7Ci0gICAgICAgIGNvbnRleHRXcmFwcGVyLT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIEludGVybmFsczo6aW50ZXJu
YWxzSWQpLCB0b0pTKCZnbG9iYWxPYmplY3QsIGNvbnRleHRXcmFwcGVyLCBTZXJ2aWNlV29ya2Vy
SW50ZXJuYWxzOjpjcmVhdGUoaWRlbnRpZmllcikpKTsKKyAgICAgICAgY29udGV4dFdyYXBwZXIt
PnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgSW50ZXJuYWxzOjppbnRl
cm5hbHNJZCksIHRvSlMoJmdsb2JhbE9iamVjdCwgY29udGV4dFdyYXBwZXIsIFNlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHM6OmNyZWF0ZShnbG9iYWxTY29wZSwgaWRlbnRpZmllcikpKTsKICAgICB9KTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmNwcAppbmRleCA1OTZiOWNkYzk5NGY1NTA4MGI2MzkxNzE4OWI3OGViOGY3N2NkMzM0Li5lMmQ3
NjFmMmJjMWI5ODdkZDI1MmZiYjlhNjdhN2I0ZjkzMDlkMzliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCkBAIC0z
OSwxMSArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNlV29ya2Vy
Q2xpZW50PiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKK1JlZjxT
ZXJ2aWNlV29ya2VyQ2xpZW50PiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUoU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEp
CiB7Ci0gICAgaWYgKGF1dG8qIGNsaWVudCA9IGNvbnRleHQuc2VydmljZVdvcmtlckNsaWVudChk
YXRhLmlkZW50aWZpZXIpKQotICAgICAgICByZXR1cm4gKmNsaWVudDsKLQogICAgIGlmIChkYXRh
LnR5cGUgPT0gU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldpbmRvdykKICAgICAgICAgcmV0dXJu
IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNyZWF0ZShjb250ZXh0LCBXVEZNb3ZlKGRhdGEp
KTsKIApAQCAtNTQsMTMgKzUxLDEwIEBAIFNlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3Jr
ZXJDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2CiAgICAgOiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKICAgICAsIG1fZGF0YShXVEZNb3Zl
KGRhdGEpKQogewotICAgIGNvbnRleHQuYWRkU2VydmljZVdvcmtlckNsaWVudCgqdGhpcyk7CiB9
CiAKIFNlcnZpY2VXb3JrZXJDbGllbnQ6On5TZXJ2aWNlV29ya2VyQ2xpZW50KCkKIHsKLSAgICBp
ZiAoYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgZG93
bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkucmVtb3ZlU2VydmljZVdv
cmtlckNsaWVudCgqdGhpcyk7CiB9CiAKIGNvbnN0IFVSTCYgU2VydmljZVdvcmtlckNsaWVudDo6
dXJsKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNsaWVudC5oCmluZGV4IDFmZjJjMjM1YTEyNDI3MzY4MzYxNDcwMmRlODE2ZGZl
MWM0N2JhZmMuLjdhMmZiYTM3MTlhN2M1OGU2NGRiYTQyM2JiNGExZjAzOWM0ZWQ3NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgVHlwZSA9IFNlcnZpY2VX
b3JrZXJDbGllbnRUeXBlOwogICAgIHVzaW5nIEZyYW1lVHlwZSA9IFNlcnZpY2VXb3JrZXJDbGll
bnRGcmFtZVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnQ+IGdldE9y
Q3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYpOworICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudD4gY3JlYXRlKFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOwogCiAgICAgflNl
cnZpY2VXb3JrZXJDbGllbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAppbmRleCAzOTc1ZDUxODE2NWNh
YjQ3ODM0YzkxYjFlNDEyOTZjZTgxMjYxMWE2Li4yNTM2MjA5YjJlYjE5MWUxMDVmYTUzYzRlZWNh
YjJmYWYwZDZlZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckNsaWVudERhdGEgewogICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGlz
b2xhdGVkQ29weSgpIGNvbnN0ICY7CiAgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0
ZWRDb3B5KCkgJiY7CiAKLSAgICBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudERhdGEgZnJvbShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKaW5kZXggM2M1ZDQ3
OGU5MDk4MzJhMzhmYjBlODllNzdlMzMzNjRjZjgyODdiZS4uMWQyZDE0ZGY2ZmZiOGZmMGJkZGEw
ZmZmYWU2ZTcwZjJkMGRjOGE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCkBAIC00NSw0OCArNDUsNDEgQEAg
c3RhdGljIGlubGluZSB2b2lkIGRpZEZpbmlzaEdldFJlcXVlc3QoU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlJiBzY29wZSwgRGVmZXJyZWQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBy
b21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+KFNlcnZpY2VX
b3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKCpjbGllbnREYXRhKSkpOwor
ICAgIHByb21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+KFNl
cnZpY2VXb3JrZXJDbGllbnQ6OmNyZWF0ZShzY29wZSwgV1RGTW92ZSgqY2xpZW50RGF0YSkpKTsK
IH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkKIHsKICAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gZG93bmNhc3Q8U2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50aHJlYWQoKS5pZGVudGlmaWVyKCk7CiAK
LSAgICBhdXRvIHByb21pc2VQb2ludGVyID0gcHJvbWlzZS5wdHIoKTsKLSAgICBtX3BlbmRpbmdQ
cm9taXNlcy5hZGQocHJvbWlzZVBvaW50ZXIsIFdURk1vdmUocHJvbWlzZSkpOwotCi0gICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBp
ZCA9IGlkLmlzb2xhdGVkQ29weSgpXSAoKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlz
ZUlkZW50aWZpZXIgPSBhZGRQZW5kaW5nUHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKSwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGlkID0gaWQuaXNvbGF0ZWRDb3B5KCldICgpIHsKICAgICAgICAg
YXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlv
bigpOwotICAgICAgICBjb25uZWN0aW9uLT5maW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaWQsIFtwcm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtl
cklkZW50aWZpZXJdIChhdXRvJiYgY2xpZW50RGF0YSkgewotICAgICAgICAgICAgU1dDb250ZXh0
TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIoc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgZGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZN
b3ZlKGNsaWVudERhdGEpKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHByb21pc2UgPSBjb250ZXh0LmNsaWVudHMoKS5tX3BlbmRpbmdQcm9taXNl
cy50YWtlKHByb21pc2VQb2ludGVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZmluZENsaWVudEJ5
VmlzaWJsZUlkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGlkLCBbcHJvbWlzZUlk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXSAoYXV0byYmIGNsaWVudERhdGEpIHsK
KyAgICAgICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2
aWNlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIGRh
dGEgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShjbGllbnREYXRhKSldIChhdXRvJiBjb250ZXh0
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gY29udGV4dC5j
bGllbnRzKCkudGFrZVBlbmRpbmdQcm9taXNlKHByb21pc2VJZGVudGlmaWVyKSkKICAgICAgICAg
ICAgICAgICAgICAgZGlkRmluaXNoR2V0UmVxdWVzdChjb250ZXh0LCAqcHJvbWlzZSwgV1RGTW92
ZShkYXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKLQog
c3RhdGljIGlubGluZSB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSYgc2NvcGUsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgVmVjdG9yPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiYmIGNsaWVudHNEYXRhKQogewogICAgIGF1dG8gY2xpZW50cyA9IFdURjo6
bWFwKGNsaWVudHNEYXRhLCBbJl0gKGF1dG8mJiBjbGllbnREYXRhKSB7Ci0gICAgICAgIHJldHVy
biBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShzY29wZSwgV1RGTW92ZShjbGllbnRE
YXRhKSk7CisgICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUoc2NvcGUs
IFdURk1vdmUoY2xpZW50RGF0YSkpOwogICAgIH0pOwogICAgIHByb21pc2UucmVzb2x2ZTxJRExT
ZXF1ZW5jZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+PihXVEZNb3ZlKGNsaWVu
dHMpKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6bWF0Y2hBbGwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgQ2xpZW50UXVlcnlPcHRpb25zJiBvcHRpb25z
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgYXV0byBwcm9taXNlUG9p
bnRlciA9IHByb21pc2UucHRyKCk7Ci0gICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKHByb21pc2VQ
b2ludGVyLCBXVEZNb3ZlKHByb21pc2UpKTsKLQogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnRocmVh
ZCgpLmlkZW50aWZpZXIoKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb21pc2VQb2ludGVy
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9uc10gKCkgbXV0YWJsZSB7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvbWlzZUlkZW50aWZpZXIgPSBhZGRQZW5kaW5nUHJvbWlzZShXVEZN
b3ZlKHByb21pc2UpKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG9wdGlvbnNdICgpIG11dGFi
bGUgewogICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0
b24oKS5jb25uZWN0aW9uKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24tPm1hdGNoQWxsKHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBvcHRpb25zLCBbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyXSAoYXV0byYmIGNsaWVudHNEYXRhKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNX
Q29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50ZXIsIGNsaWVudHNEYXRhID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUoY2xpZW50c0RhdGEpKV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
LSAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gc2NvcGUuY2xpZW50cygpLm1fcGVu
ZGluZ1Byb21pc2VzLnRha2UocHJvbWlzZVBvaW50ZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5t
YXRjaEFsbChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9ucywgW3Byb21pc2VJZGVudGlm
aWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKGF1dG8mJiBjbGllbnRzRGF0YSkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1Rv
U2VydmljZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VJZGVudGlmaWVy
LCBjbGllbnRzRGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGNsaWVudHNEYXRhKSldIChh
dXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9
IHNjb3BlLmNsaWVudHMoKS50YWtlUGVuZGluZ1Byb21pc2UocHJvbWlzZUlkZW50aWZpZXIpKQog
ICAgICAgICAgICAgICAgICAgICBtYXRjaEFsbENvbXBsZXRlZChzY29wZSwgKnByb21pc2UsIFdU
Rk1vdmUoY2xpZW50c0RhdGEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTEw
MSwxOCArOTQsMTMgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6b3BlbldpbmRvdyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwKIAogdm9pZCBTZXJ2aWNlV29y
a2VyQ2xpZW50czo6Y2xhaW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7Ci0K
LSAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKLQotICAgIGF1dG8gcHJvbWlzZVBvaW50ZXIgPSBw
cm9taXNlLnB0cigpOwotICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlUG9pbnRlciwg
V1RGTW92ZShwcm9taXNlKSk7CisgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IGRv
d25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGhyZWFkKCkuaWRlbnRp
ZmllcigpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm9t
aXNlSWRlbnRpZmllciA9IGFkZFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJvbWlzZSkpLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlv
biA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKTsKLSAgICAgICAg
Y29ubmVjdGlvbi0+Y2xhaW0oc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRl
ciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VX
b3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
LSAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gc2NvcGUuY2xpZW50cygpLm1fcGVu
ZGluZ1Byb21pc2VzLnRha2UocHJvbWlzZVBvaW50ZXIpKSB7CisgICAgICAgIGNvbm5lY3Rpb24t
PmNsYWltKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3Nz
VGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHNjb3BlLmNsaWVudHMoKS50YWtlUGVuZGlu
Z1Byb21pc2UocHJvbWlzZUlkZW50aWZpZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiBwZW5kaW5nUHJvbWlzZSB7IHByb21pc2UucmVsZWFzZU5vbk51
bGwoKSB9OwogICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUHJvbWlzZS5zZXR0bGUoV1RGTW92
ZShyZXN1bHQpKTsKICAgICAgICAgICAgICAgICB9CkBAIC0xMjEsNiArMTA5LDE4IEBAIHZvaWQg
U2VydmljZVdvcmtlckNsaWVudHM6OmNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFJlZjxEZWZlcnJlZFByCiAgICAgfSk7CiB9CiAKK1NlcnZpY2VXb3JrZXJDbGllbnRzOjpQ
cm9taXNlSWRlbnRpZmllciBTZXJ2aWNlV29ya2VyQ2xpZW50czo6YWRkUGVuZGluZ1Byb21pc2Uo
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IFByb21pc2VJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX3BlbmRpbmdQ
cm9taXNlcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgcmV0dXJuIGlk
ZW50aWZpZXI7Cit9CisKK1JlZlB0cjxEZWZlcnJlZFByb21pc2U+IFNlcnZpY2VXb3JrZXJDbGll
bnRzOjp0YWtlUGVuZGluZ1Byb21pc2UoUHJvbWlzZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICByZXR1cm4gbV9wZW5kaW5nUHJvbWlzZXMudGFrZShpZGVudGlmaWVyKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudHMuaAppbmRleCBlMDE5NWY0Njg0MzI3Y2MxMmIxMDNjZDQ3YTk3ZDgzN2I4NjhkN2EwLi4y
NDU2N2E2OTc4ODMxZGYyZWYyNGJlYTAzNTZmMzRiZjMxMDgzNmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuaApAQCAt
NTQsMTAgKzU0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wZW5XaW5kb3coU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
ICAgICB2b2lkIGNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKIAorICAgIGVudW0gUHJvbWlzZUlkZW50aWZpZXJUeXBlIHsgfTsKKyAgICB1c2lu
ZyBQcm9taXNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UHJvbWlzZUlkZW50aWZpZXJU
eXBlPjsKKworICAgIFByb21pc2VJZGVudGlmaWVyIGFkZFBlbmRpbmdQcm9taXNlKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYpOworICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHRha2VQZW5kaW5n
UHJvbWlzZShQcm9taXNlSWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtl
ckNsaWVudHMoKSA9IGRlZmF1bHQ7CiAKLSAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJl
ZjxEZWZlcnJlZFByb21pc2U+PiBtX3BlbmRpbmdQcm9taXNlczsKKyAgICBIYXNoTWFwPFByb21p
c2VJZGVudGlmaWVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGUw
NjlkMjQzNDM2ZGU3YmM3NDNmMmVmYTRjMzk4NjA4ZGJjYmU3OTUuLjI1YWFmNjc4NTk0ZDI5NjA3
M2EzNjlkZDZhZGVkZjc4MjEyNmViNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC02OCw2
ICs2OCw3IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGNvCiAgICAgLCBtX2NsaWVudHMoU2Vydmlj
ZVdvcmtlckNsaWVudHM6OmNyZWF0ZSgpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQog
ICAgICwgbV9ub3RpZmljYXRpb25DbGllbnQoV1RGTW92ZShub3RpZmljYXRpb25DbGllbnQpKQor
ICAgICwgbV91c2VyR2VzdHVyZVRpbWVyKCp0aGlzLCAmU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
OjpyZXNldFVzZXJHZXN0dXJlKQogewogfQogCkBAIC0xMzQsMjMgKzEzNSw2IEBAIFNlcnZpY2VX
b3JrZXJUaHJlYWQmIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8U2VydmljZVdvcmtlclRocmVhZCY+KFdvcmtlckdsb2JhbFNjb3BlOjp0
aHJlYWQoKSk7CiB9CiAKLVNlcnZpY2VXb3JrZXJDbGllbnQqIFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZTo6c2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBpZGVudGlmaWVyKQotewotICAgIHJldHVybiBtX2NsaWVudE1hcC5nZXQoaWRlbnRpZmllcik7
Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjphZGRTZXJ2aWNlV29ya2VyQ2xp
ZW50KFNlcnZpY2VXb3JrZXJDbGllbnQmIGNsaWVudCkKLXsKLSAgICBhdXRvIHJlc3VsdCA9IG1f
Y2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAmY2xpZW50KTsKLSAgICBBU1NFUlRf
VU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwotfQotCi12b2lkIFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZTo6cmVtb3ZlU2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29ya2VyQ2xp
ZW50JiBjbGllbnQpCi17Ci0gICAgYXV0byBpc1JlbW92ZWQgPSBtX2NsaWVudE1hcC5yZW1vdmUo
Y2xpZW50LmlkZW50aWZpZXIoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChpc1JlbW92ZWQsIGlzUmVt
b3ZlZCk7Ci19Ci0KIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyN1cGRh
dGUtc2VydmljZS13b3JrZXItZXh0ZW5kZWQtZXZlbnRzLXNldC1hbGdvcml0aG0KIHZvaWQgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlOjp1cGRhdGVFeHRlbmRlZEV2ZW50c1NldChFeHRlbmRhYmxl
RXZlbnQqIG5ld0V2ZW50KQogewpAQCAtMjI0LDYgKzIwOCw3IEBAIHZvaWQgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlOjpwb3N0VGFza1RvRmlyZU5vdGlmaWNhdGlvbkV2ZW50KE5vdGlmaWNhdGlv
bkV2ZW50CiAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgewogICAgICAgICAgICAgY2Fz
ZSBOb3RpZmljYXRpb25FdmVudFR5cGU6OkNsaWNrOgogICAgICAgICAgICAgICAgIGV2ZW50TmFt
ZSA9IGV2ZW50TmFtZXMoKS5ub3RpZmljYXRpb25jbGlja0V2ZW50OworICAgICAgICAgICAgICAg
IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLnJlY29yZFVzZXJHZXN0
dXJlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5vdGlmaWNh
dGlvbkV2ZW50VHlwZTo6Q2xvc2U6CiAgICAgICAgICAgICAgICAgZXZlbnROYW1lID0gZXZlbnRO
YW1lcygpLm5vdGlmaWNhdGlvbmNsb3NlRXZlbnQ7CkBAIC0yMzcsNiArMjIyLDEyIEBAIHZvaWQg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpwb3N0VGFza1RvRmlyZU5vdGlmaWNhdGlvbkV2ZW50
KE5vdGlmaWNhdGlvbkV2ZW50CiB9CiAjZW5kaWYKIAordm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU6OnJlY29yZFVzZXJHZXN0dXJlKCkKK3sKKyAgICBtX2lzUHJvY2Vzc2luZ1VzZXJHZXN0
dXJlID0gdHJ1ZTsKKyAgICBtX3VzZXJHZXN0dXJlVGltZXIuc3RhcnRPbmVTaG90KHVzZXJHZXN0
dXJlTGlmZXRpbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYjA1ZmEzMjgyMjc1
ZjNlMTViMDEyMzBiOTdmZTg0MzdhNjkwOGUxOS4uOTUzODBjMzhhZTk0ZWM1OTc1OWU4YjRlZDcy
YjE2ZmJlMzg2YmQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNjcsMTAgKzY3LDYgQEAgcHVi
bGljOgogCiAgICAgU2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCk7CiAKLSAgICBTZXJ2aWNl
V29ya2VyQ2xpZW50KiBzZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJDbGllbnQoU2VydmljZVdvcmtl
ckNsaWVudCYpOwotICAgIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29y
a2VyQ2xpZW50Jik7Ci0KICAgICB2b2lkIHVwZGF0ZUV4dGVuZGVkRXZlbnRzU2V0KEV4dGVuZGFi
bGVFdmVudCogbmV3RXZlbnQgPSBudWxscHRyKTsKIAogICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQqIHNjcmlwdFJlc291cmNlKGNvbnN0IFVSTCYpIGNv
bnN0OwpAQCAtOTIsNiArODgsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1NpbGVu
dFB1c2hFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudDsg
fQogICAgIHZvaWQgc2V0SGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudChib29sIHZhbHVlKSB7IG1f
aGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCA9IHZhbHVlOyB9CiAKKyAgICBjb25zdGV4cHIgc3Rh
dGljIFNlY29uZHMgdXNlckdlc3R1cmVMaWZldGltZSAgeyAyX3MgfTsKKyAgICBib29sIGlzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Byb2Nlc3NpbmdVc2VyR2Vz
dHVyZTsgfQorICAgIHZvaWQgcmVjb3JkVXNlckdlc3R1cmUoKTsKKyAgICB2b2lkIHNldElzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlRm9yVGVzdGluZyhib29sIHZhbHVlKSB7IG1faXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUgPSB2YWx1ZTsgfQorCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiwgU2VydmljZVdvcmtlckRhdGEmJiwg
Y29uc3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgU2VydmljZVdv
cmtlclRocmVhZCYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBzdGQ6OnVuaXF1ZV9wdHI8Tm90
aWZpY2F0aW9uQ2xpZW50PiYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBub3RpZnlTZXJ2
aWNlV29ya2VyUGFnZU9mQ3JlYXRpb25JZk5lY2Vzc2FyeSgpOwpAQCAtMTAzLDExICsxMDQsMTIg
QEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25J
RCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKKyAgICB2b2lkIHJlc2V0
VXNlckdlc3R1cmUoKSB7IG1faXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgPSBmYWxzZTsgfQorCiAg
ICAgU2VydmljZVdvcmtlckNvbnRleHREYXRhIG1fY29udGV4dERhdGE7CiAgICAgUmVmPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24+IG1fcmVnaXN0cmF0aW9uOwogICAgIFJlZjxTZXJ2aWNlV29y
a2VyPiBtX3NlcnZpY2VXb3JrZXI7CiAgICAgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnRzPiBtX2Ns
aWVudHM7Ci0gICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlckNsaWVudCo+IG1fY2xpZW50TWFwOwogICAgIFZlY3RvcjxSZWY8RXh0ZW5kYWJs
ZUV2ZW50Pj4gbV9leHRlbmRlZEV2ZW50czsKIAogICAgIHVpbnQ2NF90IG1fbGFzdFJlcXVlc3RJ
ZGVudGlmaWVyIHsgMCB9OwpAQCAtMTE1LDYgKzExNyw4IEBAIHByaXZhdGU6CiAgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5vdGlmaWNhdGlvbkNs
aWVudD4gbV9ub3RpZmljYXRpb25DbGllbnQ7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdTaWxlbnRQ
dXNoRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSB7
IGZhbHNlIH07CisgICAgVGltZXIgbV91c2VyR2VzdHVyZVRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCmluZGV4IDkyMjlhZTI0MmY0MDBk
NTBkM2ZlNTVlMDU1OTlhMzE3MDQyYTQ5NzguLjFkMTAwZTE1MmVlNzM0ZjIzODM2YWU1OGE4MTZm
YWM3YWEyZjI2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKQEAgLTI5LDYgKzI5LDEwIEBA
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oIgogCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQuaCIKKyNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlckNsaWVudHMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTIgKzUxLDM2IEBAIGJvb2wgU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudDo6aXNGb2N1c2VkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Ojpmb2N1cyhSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmZvY3VzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKLSAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJ3
aW5kb3dDbGllbnQuZm9jdXMoKSBpcyBub3QgeWV0IHN1cHBvcnRlZCJfcyB9KTsKKyAgICBhdXRv
JiBzZXJ2aWNlV29ya2VyQ29udGV4dCA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCk7CisKKyAgICBpZiAoY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLnNlcnZpY2VX
b3JrZXJzVXNlckdlc3R1cmVFbmFibGVkICYmICFzZXJ2aWNlV29ya2VyQ29udGV4dC5pc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJXaW5kb3dDbGllbnQgZm9jdXMgcmVxdWlyZXMgYSB1c2Vy
IGdlc3R1cmUiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHByb21p
c2VJZGVudGlmaWVyID0gc2VydmljZVdvcmtlckNvbnRleHQuY2xpZW50cygpLmFkZFBlbmRpbmdQ
cm9taXNlKFdURk1vdmUocHJvbWlzZSkpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NsaWVudElk
ZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIHByb21pc2VJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciA9IHNlcnZpY2VXb3JrZXJDb250ZXh0LnRocmVhZCgpLmlkZW50aWZpZXIoKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVj
dGlvbigpLT5mb2N1cyhjbGllbnRJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBT
V0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2VydmljZVdvcmtlcihzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShyZXN1bHQpKV0oYXV0byYgc2VydmljZVdvcmtlckNvbnRleHQpIG11
dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gcHJvbWlzZSA9IHNlcnZpY2VXb3JrZXJDb250
ZXh0LmNsaWVudHMoKS50YWtlUGVuZGluZ1Byb21pc2UocHJvbWlzZUlkZW50aWZpZXIpOworICAg
ICAgICAgICAgICAgIGlmICghcHJvbWlzZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IENoZWNrIGlzRm9jdXNlZCBzdGF0ZSBhbmQgcmVq
ZWN0IGlmIG5vdCBmb2N1c2VkLgorICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJX
aW5kb3dDbGllbnQgZm9jdXMgZmFpbGVkIl9zIH0pOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHJvbWlzZS0+dGVtcGxh
dGUgcmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4+KFNlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNyZWF0ZShzZXJ2aWNlV29ya2VyQ29udGV4dCwgV1RGTW92
ZSgqcmVzdWx0KSkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQog
Ci12b2lkIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6Om5hdmlnYXRlKGNvbnN0IFN0cmluZyYg
dXJsLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJX
aW5kb3dDbGllbnQ6Om5hdmlnYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJp
bmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIFVOVVNFRF9Q
QVJBTSh1cmwpOwogICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIndpbmRvd0NsaWVudC5uYXZpZ2F0ZSgpIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIl9zIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJXaW5kb3dDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyV2luZG93Q2xpZW50LmgKaW5kZXggZjQzYzJjNmQwNzA0ZWIxYzA3NDdjODUzNmMzYTg4
ZjkyODc0NWIxZi4uOGM0MGM3MTkxYWJlYmFlZWYyMWFjN2U4NjAwZWVhZmE1OTliYjU2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlcldpbmRvd0NsaWVudC5oCkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAgICBWaXNpYmls
aXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBj
b25zdDsKIAotICAgIHZvaWQgZm9jdXMoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0gICAgdm9p
ZCBuYXZpZ2F0ZShjb25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Cisg
ICAgdm9pZCBmb2N1cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJik7CisgICAgdm9pZCBuYXZpZ2F0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3Qg
U3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiBwcml2YXRlOgogICAgIFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5pZGwKaW5kZXggZmMxYzkx
ZWEyNGY2M2EyMTQwNGYyMzJlNDFlOTc3MTA4YTY4N2FmNC4uYzQ1OGRhNTc5OGNiZjJhYzBkNTk2
MTM5MjUwZmQxNzYwMGVhOTAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmlkbApAQCAtMzIsNiAr
MzIsNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0
eVN0YXRlOwogICAgIFtJbXBsZW1lbnRlZEFzPWlzRm9jdXNlZF0gcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZm9jdXNlZDsKIAotICAgIFtOZXdPYmplY3RdIFByb21pc2U8U2VydmljZVdvcmtl
cldpbmRvd0NsaWVudD4gZm9jdXMoKTsKLSAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VX
b3JrZXJXaW5kb3dDbGllbnQ+IG5hdmlnYXRlKFVTVlN0cmluZyB1cmwpOworICAgIFtOZXdPYmpl
Y3QsIENhbGxXaXRoPUN1cnJlbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0XSBQcm9taXNlPFNlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQ+IGZvY3VzKCk7CisgICAgW05ld09iamVjdCwgQ2FsbFdpdGg9
Q3VycmVudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8U2VydmljZVdvcmtlcldpbmRv
d0NsaWVudD4gbmF2aWdhdGUoVVNWU3RyaW5nIHVybCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmlu
ZGV4IGIyNzgzMjNmOTkyZDJkNjgyNjNiOTNlM2UyMDEzZmQxNDc5NzU5OTMuLmZjZjVlZTA5Yzhh
NTBkODJhNDFlNzgyODAzZTBjZGNiY2UzYjg4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTY4
LDYgKzY4LDggQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGwoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMm
LCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJikgPSAwOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgY2xhaW0oU2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpID0gMDsKIAorICAgICAgICB2aXJ0dWFs
IHZvaWQgZm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mJik+JiYpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbEhlYXJ0QmVhdENo
ZWNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRBc0luc3BlY3RlZChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDMwYTk4MzUxMDRhOWE3MmQxNzM0MDljODZiZTAw
MDM5YzUxMDY4YzYuLmI1Y2M4NmFjZDRiMzYyYWZlNWE2Yjc2OTBkM2Q2MmI1ODg4MzZlZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb1Bvc3RNZXNzYWdlKE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYgbWVzc2EKICAgICAgICAgVVJMIHNvdXJjZVVSTDsKICAgICAgICAgRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudFNvdXJjZSBzb3VyY2U7CiAgICAgICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVy
bmF0aXZlPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkgewotICAgICAgICAg
ICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZUNsaWVudCA9IFNlcnZpY2VXb3Jr
ZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShz
dGQ6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4oc291cmNlRGF0YSkpKTsKKyAgICAgICAg
ICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2VDbGllbnQgPSBTZXJ2aWNlV29y
a2VyQ2xpZW50OjpjcmVhdGUoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKHN0ZDo6
Z2V0PFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkpOwogCiAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVCghc291cmNlQ2xpZW50LT51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFt
aWx5KCkgfHwgIXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+dXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpIHx8IHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUtPnVybCgpLCBzb3VyY2VDbGllbnQtPnVybCgpKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA5M2Q3ZjcxZTE5
ZTUzMmViM2U2NzA0YTA3YjZlZWNhMGRmOGNiNGRlLi4yODgwNTQyZWY2OTMwNzJlYmMxOWYzYTQ1
OTc3YzJkYjRhOTM5NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oCkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB2b2lkIHNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3Qg
SGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlm
aWVycywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAw
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKSA9IDA7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24mKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNjdjZWVmNTQ0ODRkNzUwNjg4MDAxMTUwYWU2NTg0ZmI5M2FmM2UwOS4uNDUyYzY3MTEzODBm
MTBkMDczOTcyNTI2ZTczMGYzMjYzOWI4YWZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKQEAgLTY1OSw2ICs2NTksMTEgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2kKICAgICBjYWxsYmFjayhyZWdpc3RyYXRpb24tPm5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKSk7
CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmb2N1c1NlcnZpY2VXb3JrZXJDbGll
bnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Rm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50IHsg
Y2xpZW50SWRlbnRpZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjdW5kZWYgQ09OTkVDVElPTl9NRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBjYjY1YWUyZTI2MTRiYTU1
ZmJmMjBhZTA4NTU5YjQxY2MxOGM0NjEwLi41M2U0MWM4MmNjM2U1NDEzYzZiZDllZGE2YTk0NDBj
ZDNlZTVjZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC04Myw2
ICs4Myw4IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckZldGNo
VGFzaz4gY3JlYXRlRmV0Y2hUYXNrKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgZmV0Y2hUYXNrVGltZWRPdXQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCisgICAgdm9pZCBmb2N1c1NlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4mJik+JiYpOworCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudCBTV1NlcnZlcjo6
Q29ubmVjdGlvbiAoTWVzc2FnZXMgdG8gdGhlIGNsaWVudCBXZWJQcm9jZXNzKQogICAgIHZvaWQg
cmVqZWN0Sm9iSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggZTlhNWFmNDI3NTZiNDVi
ZjMzZDRhNzcxY2Q0YjhhMTEwNGQ2MjczZC4uMDM2NzVhODQ0NDJlMzBhMzQzMWY3OWIyMzNlODFi
N2UzOWMwMzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKQEAgLTIxNyw2ICsyMTcsMTcgQEAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp3ZWJQcm9jZXNzSWRlbnRpZmll
cigKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAK
K3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmb2N1cyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYm
IGNhbGxiYWNrKQoreworICAgIGF1dG8qIHNlcnZlciA9IHRoaXMtPnNlcnZlcigpOworICAgIGF1
dG8qIGNvbm5lY3Rpb24gPSBzZXJ2ZXIgPyBzZXJ2ZXItPmNvbm5lY3Rpb24oY2xpZW50SWRlbnRp
Zmllci5wcm9jZXNzSWRlbnRpZmllcigpKSA6IG51bGxwdHI7CisgICAgaWYgKCFjb25uZWN0aW9u
KSB7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y29ubmVjdGlvbi0+Zm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KGNsaWVudElkZW50aWZpZXIsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYmU5NjE1MjhkYjJmYTBmYmRjMDk4NTZhZmNmMWUx
NDhkMzY1YTAyYS4uMDNkOTM2Y2NkMzJhZDY4MWNjYTY0ZmE4M2FhNWI1OTY3ZDBlMTU3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAt
OTgsNiArOTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIGZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2xv
c2UoKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKTsKIAogICAgIHZvaWQgY29ubmVjdGlv
bklzTm9Mb25nZXJOZWVkZWQoKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZUR1ZVRvVW5yZXNw
b25zaXZlbmVzcygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMDc4YjZlYTMwYjkxN2E3
N2E3NjJhMGJkYmMwMjc2OTQ5YjNhYjk4Ny4uM2U3NzU4NTIzNzk1MDI1ZjkxYjdmMDA4ZDExOGEw
MjQxNmM5MWJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNSw2ICszNSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICBG
aW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3RyaW5nIGNsaWVudElkZW50aWZpZXIpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhKQog
ICAgIE1hdGNoQWxsKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKICAgICBD
bGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQor
ICAgIEZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gcmVzdWx0KQogICAgIFNldFNjcmlwdFJlc291cmNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFVSTCBzY3JpcHRVUkwsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQgc2NyaXB0KQog
ICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogICAgIERpZEZhaWxIZWFydEJlYXRDaGVj
ayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBmYmNlOTQ1ZTQ1ODZmMmRmN2U3
NTBmYTk4MDc2NjQ0ODdkZTI4NDQ1Li4zMDc2Zjk0NjRhY2NlYmJiZWRiODBjZGM3MWVkM2I4NDEw
MTMwYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAt
MTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdGFrZUZvY3VzKFdlYktp
dDo6V2ViUGFnZVByb3h5KiwgV0tGb2N1c0RpcmVjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXMoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgdW5mb2N1cyhXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzd2l0Y2hUb1dlYlZpZXcoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhJiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3Jp
cHRDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBjMDJk
YjQ4Mjk2NWM1ZThkM2ZjNDBkOTA4NjljOWU4ZjgwYWQzMDFlLi5mZDI3ZWRmYTExNjhkZWI1ZmJj
MzdiZTU5NmU2OTY4ZmZkNzQ0NGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCkBAIC0xMTYsNiArMTE2LDggQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBz
aG93UGFnZShXZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBmb2N1cyhXZWJQYWdl
UHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFs
OworICAgICAgICBib29sIHN3aXRjaFRvV2ViVmlldyhXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIGZp
bmFsOworCiAgICAgICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdCBmaW5hbDsKICAgICAgICAg
dm9pZCBydW5Nb2RhbChXZWJQYWdlUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBwYWdlRGlk
U2Nyb2xsKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KaW5kZXggNzY1OWIxYzlmZjBkMmY5YmM1MGFlZTdlZDQzN2E3NTli
ZjZlOTIwMC4uZDM0N2FmNTc2YzJmOTExMTc1NzNmNGE0ZjVhNWUyYmE4OGEyZmUzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC04MzEsNiArODMx
LDIxIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnBhZ2VEaWRTY3JvbGwoV2ViUGFnZVBy
b3h5KikKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0Rp
ZFNjcm9sbDptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKV07CiB9CiAKK2Jvb2wg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnN3aXRjaFRvV2ViVmlldyhXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpCit7CisgICAgYXV0byogd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZSA/IG1fdWlEZWxlZ2F0ZS0+
bV93ZWJWaWV3LmdldCgpLmdldCgpIDogbnVsbHB0cjsKKyAgICBpZiAoIXdlYlZpZXcpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBXZSBwcm9iYWJseSBuZWVkIHRvIGNh
bGwgYSBkZWxlZ2F0ZSBpbnN0ZWFkIG9mIGRvaW5nIHRoaXMgZGlyZWN0bHkgaGVyZS4KKyNpZiBQ
TEFURk9STShNQUMpCisgICAgW3dlYlZpZXcud2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250Om5p
bF07CisjZWxzZQorICAgIFt3ZWJWaWV3LndpbmRvdyBtYWtlS2V5QW5kVmlzaWJsZV07CisjZW5k
aWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Zm9j
dXMoV2ViUGFnZVByb3h5KikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKQEAgLTg0Miw3ICs4
NTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpmb2N1cyhXZWJQYWdlUHJveHkqKQog
ICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CiAgICAg
aWYgKCFkZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX2ZvY3VzV2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2Vi
Vmlldy5nZXQoKS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDM1ZGI2NzFmZjU1ZWYyYWI0ZDRjZjM2ZjJhYTVhNjAxMmE2NmRhYzQuLjA4
M2QwMGY2MTliYjYzM2M3MWMxZjA3OWZmM2IwNmNmNjE5N2QzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzM5MCw2ICs3MzkwLDIyIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRDYW5jZWxDaGVja2luZ1RleHQoVGV4dENoZWNrZXJSZXF1ZXN0SUQgcmVx
dWVzdElEKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENhbmNlbENoZWNraW5n
VGV4dChyZXF1ZXN0SUQpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OnN3aXRjaFRvV2ViVmll
dyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Vp
Q2xpZW50LT5zd2l0Y2hUb1dlYlZpZXcoKnRoaXMpKSB7CisgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtYWtlRmlyc3RSZXNwb25kZXIoKTsKKyAgICBp
ZiAobV9hY3Rpdml0eVN0YXRlLmNvbnRhaW5zKEFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSkpIHsK
KyAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpbnN0YWxs
QWN0aXZpdHlTdGF0ZUNoYW5nZUNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY2FsbGJhY2spKTsK
K30KKwogLy8gT3RoZXIKIAogdm9pZCBXZWJQYWdlUHJveHk6OnNldEZvY3VzKGJvb2wgZm9jdXNl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggODE3ZDNmMjhmY2Fi
MjYxNTFlMzMwOTg2NWI0NTM2YzEwMTNjMWY0YS4uYTcxMGI5NjYwMzM5Mzg1NWVhN2M0OTY3Njc1
M2UwZTM2YTBmYmU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTE2ODksNiArMTY4OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ2V0TG9hZERlY2lzaW9uRm9y
SWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYsIFdlYktpdDo6Q2FsbGJhY2tJRCk7CiAKKyAg
ICB2b2lkIHN3aXRjaFRvV2ViVmlldyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2V0Rm9jdXMoYm9vbCBmb2N1c2VkKTsKICAgICB2b2lkIHNldFdpbmRvd0ZyYW1lKGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZvaWQgZ2V0V2luZG93RnJhbWUoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6R2V0V2luZG93RnJhbWVEZWxheWVkUmVwbHkmJik7CkBAIC0zMjMw
LDYgKzMyMzEsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlBsYXRmb3JtSW1hZ2VQdHIgbV9j
cm9wcGVkSW1hZ2VSZXN1bHQ7CiAgICAgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlIG1fY3JvcHBl
ZEltYWdlT3ZlcmxheVN0YXRlIHsgQ3JvcHBlZEltYWdlT3ZlcmxheVN0YXRlOjpJbmFjdGl2ZSB9
OwogI2VuZGlmIC8vIEVOQUJMRShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCisgICAgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiBtX3N3aXRjaFRvV2ViVmlld0NhbGxiYWNrOwogfTsKIAog
I2lmZGVmIF9fT0JKQ19fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggZmViZGUwOWZiZmVkOTExNjZkZjI4ODQ3OTAwNmE2OGVhN2Mw
N2NjOS4uNGY0OTc0ZmFlNTQ5MjMyODJmYzU2ZmExYTBlZjY2ZjE5ZjA0ZWQ5YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDEs
NiArNDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldFN0YXR1c1RleHQo
U3RyaW5nIHN0YXR1c1RleHQpCiAgICAgU2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQogICAgIFRha2VG
b2N1cyh1aW50OF90IGRpcmVjdGlvbikKKyAgICBTd2l0Y2hUb1dlYlZpZXcoKSAtPiAoKQogICAg
IEZvY3VzZWRGcmFtZUNoYW5nZWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXI+IGZyYW1lSUQpCiAgICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0X3QgdHJlZVNpemUpCiAg
ICAgU2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKaW5kZXggNjYwMzc1NzU2ZGQ3YmY0NWNmYWEzMDA2YzY3ZGZkZWMzMGU2YzE4
My4uODIyYjVkNzM0YmNhNjVjMGY0YzFjYTU3ZDcwZTg1ZjJmZjM3NGQ2MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwCkBAIC00MSw2ICs0MSw4IEBACiAjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9s
bGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHJv
Y2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KQEAgLTMwMSw2ICszMDMs
MjggQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldE5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2kKICAgICB9KTsKIH0KIAordm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmZvY3VzU2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmIGNhbGxiYWNrKQor
eworICAgIGF1dG8qIGNsaWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5nZXQoY2xp
ZW50SWRlbnRpZmllcik7CisgICAgYXV0byogcGFnZSA9IGNsaWVudCA/IGNsaWVudC0+cGFnZSgp
IDogbnVsbHB0cjsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFdlYlBhZ2U6OmZyb21Db3JlUGFnZSgqcGFnZSku
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN3aXRjaFRvV2ViVmll
dygpLCBbY2xpZW50SWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgYXV0byogY2xpZW50ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01h
cCgpLmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICAgICAgYXV0byogZnJhbWUgPSBjbGllbnQg
PyBjbGllbnQtPmZyYW1lKCkgOiBudWxscHRyOworICAgICAgICBhdXRvKiBwYWdlID0gZnJhbWUg
PyBmcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKKyAgICAgICAgaWYgKCFwYWdlKSB7CisgICAgICAg
ICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAg
ICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFtZShmcmFtZSk7CisgICAg
ICAgIGNhbGxiYWNrKFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCpjbGllbnQpKTsKKyAg
ICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGIyOTI1NTkwNDJjNzc0NjU1MjAwYjFi
NWVmNTEwM2M4ODNjYmFiNmMuLjQ3NzJiNjI5Y2FkYTdiNmU3OWNhYzZhNDAwODJhMzRjZGZmYTlh
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05OSw2ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZv
aWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNr
JiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBmb2N1c1NlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4mJik+JiYpOwogCiAgICAgdm9pZCBzY2hlZHVsZVN0b3JhZ2VKb2IoY29uc3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1l
c3NhZ2VzLmluCmluZGV4IGJlZjhkYTJlZTFkMDM2ZjBjN2FiZGMzYjc3YzhiMDJkYTE5YWUyYzAu
LjIxZGI1NjRiN2M4MmI1ZGFlNzk1MTQyNzMzNGE3Y2VkODE4MDk0NjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM5LDYgKzM5LDggQEAgbWVzc2FnZXMgLT4gV2Vi
U1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVu
dChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkZXN0aW5hdGlvbkNv
bnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMg
bWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIHNvdXJjZSwgU3RyaW5n
IHNvdXJjZU9yaWdpbikKIAogICAgIFNldERvY3VtZW50SXNDb250cm9sbGVkKFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpIC0+
IChib29sIGlzU3VjY2VzcykKKworICAgIEZvY3VzU2VydmljZVdvcmtlckNsaWVudChXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKSAtPiAo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gcmVzdWx0KQog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IGExYzY4Y2JlYTQzMmUxMTY0ODhjOTU5OWRjMjNiZDYyZWU4
ZjFiZGUuLmUyM2MyNTcxN2JjYTI0MWZmOGNjOTc1OWMwZjNlZDdhMzI3NmJkNWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTMzMiwxMyArMzMyLDE4IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Om1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoY2xpZW50c0RhdGEp
KTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y2xhaW0oV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY2FsbGJhY2spCit2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbGFpbShTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjx2b2lkPiYmKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdv
cmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbjo6Q2xhaW0geyBzZXJ2aWNlV29ya2VySWRlbnRpZmllciB9LCBbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAg
IGNhbGxiYWNrKHJlc3VsdCA/IHJlc3VsdC0+dG9FeGNlcHRpb24oKSA6IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OmZvY3VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YT4mJik+JiYgY2FsbGJhY2spCit7CisgICAgbV9jb25uZWN0aW9uVG9O
ZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OkZvY3VzIHsgY2xpZW50SWRlbnRpZmllciB9LCBXVEZNb3ZlKGNh
bGxiYWNrKSk7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNsb3Nl
KCkKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZSB3b3JrZXIgcHJv
Y2VzcyBpcyByZXF1ZXN0ZWQgdG8gc3RvcCBhbGwgc2VydmljZSB3b3JrZXJzIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBiNTY5NDBlNGIwMzM0NzRkYjIzMDdlMWRkY2Uy
MDk0YmEwNWY4YjkwLi5lY2Q4MWZiM2YyYWI4OTYzMjY1MjYzNTZmYmI4MDc0YzI2NGYyMzllIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZpbmRDbGllbnRCeVZpc2libGVJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0
aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSBm
aW5hbDsKKyAgICB2b2lkIGZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHNraXBXYWl0aW5n
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmKSBmaW5hbDsKICAgICBib29sIGlzVGhyb3R0
bGVhYmxlKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMjEyYzg5Njc0MzQzYzlkN2ViM2MzZjk5NzE2NjRkY2U2MDZjMWJi
Mi4uNDc0ZTRiODQ5OWE1MTVjM2ZhZjU3ZTM4NDExYTBmMjViZjBiOTI4MiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIyLTAzLTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJ
bXBsZW1lbnQgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5mb2N1cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzE5CisgICAgICAgIDxyZGFyOi8v
OTA2MTY0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5t
bToKKwogMjAyMi0wMy0yMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFNxdWVsY2ggd2FybmluZyBtZXNzYWdlIGZyb20gb3V0cHV0IG9mIGJ1aWxk
LWpzYwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9T
ZXJ2aWNlV29ya2VyQmFzaWMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQppbmRleCA1M2RjYjM5NWUxNWZiMTE0YmMxZTM2ZTNl
MGNkMzMzMmFiZmJkMzZjLi42MGNjMjM0MjhiNmY5ODk3ODI3NjFiMWU5ODc1NWMzNDRiNmMyZTEz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZp
Y2VXb3JrZXJCYXNpYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYktpdC5oPgog
I2ltcG9ydCA8V2ViS2l0L19XS0V4cGVyaW1lbnRhbEZlYXR1cmUuaD4KKyNpbXBvcnQgPFdlYktp
dC9fV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1Byb2Nlc3NQ
b29sQ29uZmlndXJhdGlvbi5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdEludGVy
ZmFjZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmg+CkBAIC0y
ODAyLDMgKzI4MDMsMTY2IEBAIFRFU1QoU2VydmljZVdvcmtlciwgRXh0ZW5zaW9uU2VydmljZVdv
cmtlckZhaWx1cmVWaWV3RGVzdHJveWVkKQogICAgIH0KICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOwogfQorCitzdGF0aWMgY29uc3QgY2hhciogU2VydmljZVdvcmtlcldpbmRv
d0NsaWVudEZvY3VzTWFpbiA9CisiPGRpdj50ZXN0IHBhZ2U8L2Rpdj4iCisiPHNjcmlwdD4iCisi
bGV0IHdvcmtlcjsiCisiYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsiCisiICAgIHRyeSB7IgorIiAg
ICAgICAgY29uc3QgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
cmVnaXN0ZXIoJy9zdy5qcycpOyIKKyIgICAgICAgIGlmIChyZWdpc3RyYXRpb24uYWN0aXZlKSB7
IgorIiAgICAgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7IgorIiAgICAgICAg
ICAgIGFsZXJ0KCdhbHJlYWR5IGFjdGl2ZScpOyIKKyIgICAgICAgICAgICByZXR1cm47IgorIiAg
ICAgICAgfSIKKyIgICAgICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOyIKKyIg
ICAgICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsiCisi
ICAgICAgICAgICAgaWYgKHdvcmtlci5zdGF0ZSA9PSAnYWN0aXZhdGVkJykiCisiICAgICAgICAg
ICAgICAgIGFsZXJ0KCdzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCcpOyIKKyIgICAgICAgIH0pOyIK
KyIgICAgfSBjYXRjaChlKSB7IgorIiAgICAgICAgYWxlcnQoJ0V4Y2VwdGlvbjogJyArIGUpOyIK
KyIgICAgfSIKKyJ9IgorIndpbmRvdy5vbmxvYWQgPSB0ZXN0OyIKKyIiCisiZnVuY3Rpb24gZm9j
dXNDbGllbnQoKSB7IgorIiAgICB3b3JrZXIucG9zdE1lc3NhZ2UoJ3N0YXJ0Jyk7IgorIiAgICBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsiCisiICAgICAg
ICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVzc2FnZShldmVudC5kYXRh
KTsiCisiICAgIH0iCisifSIKKyIiCisiZnVuY3Rpb24gY2hlY2tGb2N1c1ZhbHVlKHZhbHVlLCBu
YW1lKSB7IgorIiAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5zdy5wb3N0TWVzc2Fn
ZShkb2N1bWVudC5oYXNGb2N1cygpID09PSB2YWx1ZSA/ICdQQVNTJyA6ICdGQUlMOiBleHBlY3Rl
ZCAnICsgdmFsdWUgKyAnIGZvciAnICsgbmFtZSk7IgorIn0iCisiPC9zY3JpcHQ+IjsKK3N0YXRp
YyBjb25zdCBjaGFyKiBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Rm9jdXNKUyA9Cisic2VsZi5h
ZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50KSA9PiB7IgorIiAgIGV2ZW50LnNvdXJj
ZS5mb2N1cygpLnRoZW4oKGNsaWVudCkgPT4geyIKKyIgICAgICAgZXZlbnQuc291cmNlLnBvc3RN
ZXNzYWdlKCdmb2N1c2VkJyk7IgorIiAgIH0sIChlcnJvcikgPT4geyIKKyIgICAgICAgZXZlbnQu
c291cmNlLnBvc3RNZXNzYWdlKCdub3QgZm9jdXNlZCcpOyIKKyIgICB9KTsiCisifSk7IjsKKwor
VEVTVChTZXJ2aWNlV29ya2VyLCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Rm9jdXMpCit7Cisg
ICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29yZHNGb3JBbGxPcmln
aW5zXTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRhIHN0b3JlCisgICAg
W1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0YU9mVHlwZXM6
W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmllZFNpbmNlOltO
U0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAgICAgIGRvbmUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgZG9uZSA9IGZhbHNlOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHByZWZlcmVuY2Vz
ID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgZm9yIChfV0tJbnRlcm5hbERl
YnVnRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfaW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0cmluZzpAIlNlcnZp
Y2VXb3JrZXJzVXNlckdlc3R1cmVFbmFibGVkIl0pCisgICAgICAgICAgICBbcHJlZmVyZW5jZXMg
X3NldEVuYWJsZWQ6Tk8gZm9ySW50ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgfQor
CisgICAgYXV0byBtZXNzYWdlSGFuZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyV2l0
aEV4cGVjdGVkTWVzc2FnZSBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVy
LmdldCgpIG5hbWU6QCJzdyJdOworCisgICAgYXV0byB3ZWJWaWV3MSA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKyAg
ICBhdXRvIHdlYlZpZXcyID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNl
cnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
Rm9jdXNNYWluIH0gfSwKKyAgICAgICAgeyAiL3N3LmpzIiwgeyB7eyAiQ29udGVudC1UeXBlIiwg
ImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Rm9j
dXNKUyB9IH0KKyAgICB9KTsKKworICAgIFt3ZWJWaWV3MSBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVx
dWVzdCgpXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcxIF90ZXN0X3dhaXRGb3JBbGVy
dF0sICJzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCIpOworCisgICAgW3dlYlZpZXcyIGxvYWRSZXF1
ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldzIgX3Rl
c3Rfd2FpdEZvckFsZXJ0XSwgImFscmVhZHkgYWN0aXZlIik7CisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgW1t3ZWJWaWV3MSBob3N0V2luZG93XSBtaW5pYXR1cml6ZTpbd2ViVmlldzEgaG9zdFdp
bmRvd11dOworICAgIFtbd2ViVmlldzIgaG9zdFdpbmRvd10gbWluaWF0dXJpemU6W3dlYlZpZXcy
IGhvc3RXaW5kb3ddXTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcxIGhvc3RXaW5kb3ddLmlz
VmlzaWJsZSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3MiBob3N0V2luZG93XS5pc1Zpc2li
bGUpOworI2VuZGlmCisKKyAgICBkb25lID0gZmFsc2U7CisgICAgZXhwZWN0ZWRNZXNzYWdlID0g
ImZvY3VzZWQiOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb2N1c0NsaWVu
dCgpIiBjb21wbGV0aW9uSGFuZGxlcjogbmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldzEg
aG9zdFdpbmRvd10uaXNWaXNpYmxlKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcyIGhvc3RX
aW5kb3ddLmlzVmlzaWJsZSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3MSBob3N0V2luZG93
XS5pc01pbmlhdHVyaXplZCk7CisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcyIGhvc3RXaW5kb3dd
LmlzTWluaWF0dXJpemVkKTsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBy
dW4gdGhlc2UgdGVzdHMgaW4gaU9TIG9uY2UgcGFnZXMgYXJlIGFjdHVhbGx5IHZpc2libGUuCisg
ICAgZG9uZSA9IGZhbHNlOworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJQQVNTIjsKKyAgICBbd2Vi
VmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAiY2hlY2tGb2N1c1ZhbHVlKHRydWUsICd3ZWJWaWV3
MScpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIlBB
U1MiOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJjaGVja0ZvY3VzVmFsdWUo
ZmFsc2UsICd3ZWJWaWV3MicpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisjZW5kaWYKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBleHBlY3RlZE1lc3NhZ2UgPSAiZm9jdXNlZCI7CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2
YVNjcmlwdDpAImZvY3VzQ2xpZW50KCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3MiBob3N0V2luZG93XS5pc1Zpc2libGUpOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldzEgaG9zdFdpbmRvd10uaXNNaW5pYXR1cml6ZWQpOworICAgIEVYUEVDVF9G
QUxTRShbd2ViVmlldzIgaG9zdFdpbmRvd10uaXNNaW5pYXR1cml6ZWQpOworCisgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIHJ1biB0aGVzZSB0ZXN0cyBpbiBpT1Mgb25jZSBwYWdl
cyBhcmUgYWN0dWFsbHkgdmlzaWJsZS4KKyAgICBkb25lID0gZmFsc2U7CisgICAgZXhwZWN0ZWRN
ZXNzYWdlID0gIlBBU1MiOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJjaGVj
a0ZvY3VzVmFsdWUodHJ1ZSwgJ3dlYlZpZXcyJykiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Cisg
ICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyNlbmRpZgorfQorCitURVNUKFNl
cnZpY2VXb3JrZXIsIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnRGb2N1c1JlcXVpcmVzVXNlckdl
c3R1cmUpCit7CisgICAgW1dLV2Vic2l0ZURhdGFTdG9yZSBfYWxsb3dXZWJzaXRlRGF0YVJlY29y
ZHNGb3JBbGxPcmlnaW5zXTsKKworICAgIC8vIFN0YXJ0IHdpdGggYSBjbGVhbiBzbGF0ZSBkYXRh
IHN0b3JlCisgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3Zl
RGF0YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2Rp
ZmllZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7Cisg
ICAgICAgIGRvbmUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgYXV0byBjb25maWd1cmF0aW9uID0g
YWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBhdXRv
IHByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworCisgICAgZm9yIChf
V0tJbnRlcm5hbERlYnVnRmVhdHVyZSAqZmVhdHVyZSBpbiBbV0tQcmVmZXJlbmNlcyBfaW50ZXJu
YWxEZWJ1Z0ZlYXR1cmVzXSkgeworICAgICAgICBpZiAoW2ZlYXR1cmUua2V5IGlzRXF1YWxUb1N0
cmluZzpAIlNlcnZpY2VXb3JrZXJzVXNlckdlc3R1cmVFbmFibGVkIl0pCisgICAgICAgICAgICBb
cHJlZmVyZW5jZXMgX3NldEVuYWJsZWQ6WUVTIGZvckludGVybmFsRGVidWdGZWF0dXJlOmZlYXR1
cmVdOworICAgIH0KKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbU1dNZXNz
YWdlSGFuZGxlcldpdGhFeHBlY3RlZE1lc3NhZ2UgYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpt
ZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRv
dzpZRVNdKTsKKworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAg
ICAgeyAiLyIsIHsgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudEZvY3VzTWFpbiB9IH0sCisgICAg
ICAgIHsgIi9zdy5qcyIsIHsge3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2Ny
aXB0IiB9fSwgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudEZvY3VzSlMgfSB9CisgICAgfSk7CisK
KyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0XSwgInN1Y2Nlc3NmdWxseSByZWdp
c3RlcmVkIik7CisKKyAgICBkb25lID0gZmFsc2U7CisgICAgZXhwZWN0ZWRNZXNzYWdlID0gIm5v
dCBmb2N1c2VkIjsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb2N1c0NsaWVu
dCgpIiBjb21wbGV0aW9uSGFuZGxlcjogbmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNkNTI1MTcyYTczNzEwZjMwNmMxMzk4MTAxOTZmMTFmZmMz
YTFmZmYuLmFkY2M0YTQxOTQwYjQ2YTMyMDRlMTU4NzcxZTc3MzIxMWRhMzFmMjAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOSBAQAorMjAyMi0wMy0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuZm9jdXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMxOQor
ICAgICAgICA8cmRhcjovLzkwNjE2NDkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyB0byBjb3ZlciB0aGUgZmFjdCB3ZSBubyBs
b25nZXIgcmV1c2UgQ2xpZW50IG9iamVjdHMuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanM6CisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3NlcnZpY2V3b3JrZXJjbGll
bnRzLWdldC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5odG1sOgorCiAyMDIyLTAzLTIyICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21wdXRhdGlvbiBvZiBE
b2N1bWVudCBzaXRlRm9yQ29va2llcyBpcyBidWdneSBpbiBjYXNlIGRvY3VtZW50IGlzIGNyZWF0
ZWQgYnkgd2luZG93Lm9wZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1l
Y2hvLXdvcmtlci5qcwppbmRleCBlZTNkZTU5NzFiMTA5ZmNkYTAxMWUxMGMyOWE4ODJiNDg0MTli
M2ViLi43M2I0NzI3Y2UxNmE4YTFmZDQ0OWY3YjhlYzYyMDBlNjFhNmY1MmJkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1l
c3NhZ2UtZWNoby13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpzCkBAIC02LDkgKzYs
MTIgQEAgc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CiAgICAg
ICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IGNsaWVudCBzb3VyY2UgaXMg
bm90IGEgV2luZG93Q2xpZW50Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICB9IGVsc2UgaWYgKGNsaWVudCAhPT0gZXZlbnQuc291cmNlKSB7CisgICAgfSBlbHNlIGlmIChj
bGllbnQuaWQgIT09IGV2ZW50LnNvdXJjZS5pZCkgewogICAgICAgICBldmVudC5zb3VyY2UucG9z
dE1lc3NhZ2UoIkZBSUw6IGNsaWVudCBzb3VyY2Ugb2YgdGhlIHNlY29uZCBtZXNzYWdlIGlzIG5v
dCB0aGUgc2FtZSBhcyB0aGUgZmlyc3QgbWVzc2FnZSIpOwogICAgICAgICByZXR1cm47CisgICAg
fSBlbHNlIGlmIChjbGllbnQgPT09IGV2ZW50LnNvdXJjZSkgeworICAgICAgICBldmVudC5zb3Vy
Y2UucG9zdE1lc3NhZ2UoIkZBSUw6IGNsaWVudCBzb3VyY2Ugb2YgdGhlIHNlY29uZCBtZXNzYWdl
IGlzIHRoZSBzYW1lIG9iamVjdCBhcyBmb3IgdGhlIGZpcnN0IG1lc3NhZ2UiKTsKKyAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIlBBU1M6IFNlcnZp
Y2Ugd29ya2VyIHJlY2VpdmVkIG1lc3NhZ2UgJyIgKyBldmVudC5kYXRhICsgIicgZnJvbSBvcmln
aW4gJyIgKyBldmVudC5vcmlnaW4gKyAiJyIpOwogfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZXdvcmtlcmNsaWVu
dHMtZ2V0LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9zZXJ2aWNld29ya2VyY2xpZW50cy1nZXQtd29ya2VyLmpzCmluZGV4IGNhM2Ji
YTIzOGE2YjJlOGNiMjE2OTU5Yzc2ODU2YTY2NDg5YzNkNjQuLjZkZDUzZTkzZmZhOTk5NDkxNWVj
MDE5MmNmOGE2NDZhNGE4NGRlZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNld29ya2VyY2xpZW50cy1nZXQtd29ya2Vy
LmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNl
cy9zZXJ2aWNld29ya2VyY2xpZW50cy1nZXQtd29ya2VyLmpzCkBAIC0xOSw4ICsxOSw4IEBAIHNl
bGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGFzeW5jIChldmVudCkgPT4gewogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHJldHJpZXZlZENsaWVudCAh
PT0gY2xpZW50KSB7Ci0gICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6
IGNsaWVudCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgb25lIHJldHJpZXZlZCB0aHJvdWdoIHNlbGYu
Y2xpZW50cy5nZXQiKTsKKyAgICAgICAgaWYgKHJldHJpZXZlZENsaWVudCA9PT0gY2xpZW50KSB7
CisgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJldXNpbmcgc2Ft
ZSBjbGllbnQgb2JqZWN0IGluIGRpZmZlcmVudCBzZWxmLmNsaWVudHMuZ2V0IGNhbGxzIik7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzCmluZGV4IGRiNmYwNTRmNjg5MmNmMDJh
NjhkZDk5OWZiODg2OGUyMmYzY2NhNzAuLjRmMmU1MjBmZjc2ZTFlMzdmNjlmY2E0MWM3MTI2MmU0
NTIxOGU5OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdvcmtlci5qcworKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRj
aEFsbC13b3JrZXIuanMKQEAgLTQxLDYgKzQxLDI1IEBAIGZ1bmN0aW9uIGNoZWNrQ2xpZW50SW5V
bmNvbnRyb2xsZWRDbGllbnRzKGNsaWVudElkZW50aWZpZXIpCiBhc3luYyBmdW5jdGlvbiBkb1Rl
c3RBZnRlck1lc3NhZ2UoZXZlbnQpCiB7CiAgICAgdHJ5IHsKKyAgICAgICAgaWYgKGV2ZW50LmRh
dGEudGVzdCA9PT0gImNoZWNrTmV3Q2xpZW50T2JqZWN0IikgeworICAgICAgICAgICAgY29uc3Qg
Y2xpZW50czEgPSBhd2FpdCBzZWxmLmNsaWVudHMubWF0Y2hBbGwoeyBpbmNsdWRlVW5jb250cm9s
bGVkIDogdHJ1ZSB9KTsKKyAgICAgICAgICAgIGNvbnN0IGNsaWVudHMyID0gYXdhaXQgc2VsZi5j
bGllbnRzLm1hdGNoQWxsKHsgaW5jbHVkZVVuY29udHJvbGxlZCA6IHRydWUgfSk7CisgICAgICAg
ICAgICBpZiAoIWNsaWVudHMxLmxlbmd0aCB8fCAhY2xpZW50czIubGVuZ3RoKSB7CisgICAgICAg
ICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJubyBjbGllbnRzIik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChsZXQgY2xp
ZW50MSBvZiBjbGllbnRzMSkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGNsaWVudDIgb2Yg
Y2xpZW50czIpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNsaWVudDEgPT09IGNsaWVudDIp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJ
TDogcmV1c2luZyBjbGllbnQgb2JqZWN0cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJQQVNTIik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwogICAgICAgICBpZiAoZXZlbnQuZGF0YS50ZXN0
ICE9PSAiY2hlY2tDbGllbnRJc1VuY29udHJvbGxlZCIpIHsKICAgICAgICAgICAgIGV2ZW50LnNv
dXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlIGZyb20g
Y2xpZW50Iik7CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXgg
OWNiNDM5YzRkMmE2M2Y5MTY5ZGU5YjI3ODFkYmUwNDdlOGFhYTI2Zi4uMDgwNzE1MjZiOWE4NThj
YmQxODk2YjMyZWQwMmQ0MWEzZTBmZjJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0
ICsxLDUgQEAKIAogUEFTUyBTZXR1cCB3b3JrZXIKK1BBU1MgVGVzdCBzZWxmLmNsaWVudHMubWF0
Y2hBbGwgY3JlYXRlIG5ldyBjbGllbnQgb2JqZWN0IGV2ZXJ5IHRpbWUKIFBBU1MgVGVzdCBzZWxm
LmNsaWVudHMubWF0Y2hBbGwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGll
bnRzLW1hdGNoQWxsLmh0dHBzLmh0bWwKaW5kZXggNjliNWYyODkwMTZmZTQ4MDFiZTFhYTkwMTJi
NWRiOWU2ZGI0NmZhMC4uMTk4NzE3ZmM1NTc4MWVhNmM2MGI4ZmVkOTU3MTFiN2NhNGI1ODViMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRw
cy5odG1sCkBAIC0yNiw2ICsyNiwxOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
ICAgICB9KTsKIH0sICJTZXR1cCB3b3JrZXIiKTsKIAorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLCB0ZXN0LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoZXZlbnQuZGF0YSwgIlBBU1MiKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAg
ICAgfSkpOworICAgIH0pOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHt0ZXN0OiAi
Y2hlY2tOZXdDbGllbnRPYmplY3QifSk7CisgICAgYXdhaXQgcHJvbWlzZTsKK30sICJUZXN0IHNl
bGYuY2xpZW50cy5tYXRjaEFsbCBjcmVhdGUgbmV3IGNsaWVudCBvYmplY3QgZXZlcnkgdGltZSIp
OworCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciA9IGludGVybmFscy5zZXJ2aWNlV29ya2VyQ2xpZW50SW50ZXJu
YWxJZGVudGlmaWVyKGRvY3VtZW50KTsKICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChy
ZXNvbHZlLCByZWplY3QpID0+IHsK
</data>
<flag name="commit-queue"
          id="483810"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455747</attachid>
            <date>2022-03-25 05:01:44 -0700</date>
            <delta_ts>2022-03-26 06:11:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238319-20220325130142.patch</filename>
            <type>text/plain</type>
            <size>64348</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ0YmJkYjg5MjJhZWIxYjRhZDVmZDMz
YTEwYjBkYmFhZDg2NTQwNzQuLjRkYzE4ZjgxODdmNGNjMWZkMmJiOTA4YzFkZTIxNTk4YTJiOTBk
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xp
ZW50LmZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJl
ZmVyZW5jZXNJbnRlcm5hbC55YW1sOgorCiAyMDIyLTAzLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVmVjdG9yIG1vdmUgY29uc3RydWN0b3IgYW5kIG1vdmUg
YXNzaWdubWVudCBvcGVyYXRvciBhcmUgc3Vib3B0aW1hbCB3aGVuIHRoZSB2ZWN0b3IgaGFzIGFu
IGlubGluZSBidWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MGQ0YWY0ODc4YzlhNDk4NzQ2ZTRiOTU3ODE1
MTQ3OTQyODk2NDQzLi5lNDI3YTE4ZDEyMjU0NmJmMzdlMjhlOTlmODM1OGY2NTk1ZTE4YjBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjItMDMtMjUgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50LmZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2VydmljZSB3
b3JrZXIgZm9jdXM6CisgICAgICAgIC0gSW1wbGVtZW50IHVzZXIgZ2VzdHVyZSByZXF1aXJlbWVu
dCBieSBpbnRyb2R1Y2luZyBhIGZsYWcgaW4gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHRoYXQg
aXMgdHVybmVkIG9uIGZvciBzb21lIHRpbWUKKyAgICAgICAgICB3aGVuIHJlY2VpdmluZyBzcGVj
aWZpYyBldmVudHMgbGlrZSBub3RpZmljYXRpb24gY2xpY2sgZXZlbnQuIFRoZSBtYXggdGltZSBp
cyBjdXJyZW50bHkgc2V0IHRvIDIgc2Vjb25kcy4KKyAgICAgICAgICBXZSBtaWdodCB3YW50IHRv
IGltcHJvdmUgaGFuZGxpbmcgb2YgdXNlciBhY3RpdmF0aW9uIGluIG5vbi1kb2N1bWVudCBjb250
ZXh0cyBidXQgdGhpcyBpcyBhIGZ1enp5IGFyZWEgcmlnaHQgbm93IHNvIGEgc2VydmljZSB3b3Jr
ZXIKKyAgICAgICAgICBzb2x1dGlvbiBzZWVtcyBnb29kIGZvciBub3cuCisgICAgICAgIC0gUmVt
b3ZlIHRoZSBtYXAgb2Ygc2VydmljZSB3b3JrZXIgY2xpZW50IHNpbmNlIHdlIG5lZWQgdG8gY3Jl
YXRlIG5ldyBvbmVzIGV2ZXJ5IHRpbWUuCisgICAgICAgIC0gZm9jdXMgd2lsbCBnbyBpdHMgY29u
dGV4dCBtYW5hZ2VyIHRoYXQgd2lsbCBzZW5kIGFuIElQQyBtZXNzYWdlIHRvIHRoZSBuZXR3b3Jr
IHByb2Nlc3MgdG8gYWN0dWFsbHkgdHJpZ2dlciBmb2N1cy4KKyAgICAgICAgV2UgYXJlIG1pc3Np
bmcgZm9jdXNlZCBjaGVjayB0aGF0IHdpbGwgYmUgZG9uZSBpbiBhIGZvbGxvdy11cC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogdGVzdGluZy9TZXJ2aWNlV29y
a2VySW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5h
bHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHA6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudHMuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyV2luZG93Q2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmg6CisKIDIwMjItMDMtMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIG1lZGlhL2F1dG8tcGxheS13ZWItYXVkaW8taW4tYWJvdXQtYmxh
bmstaWZyYW1lLmh0bWwgaXMgZmFpbGluZyBvbiBFV1MgTWFjT1MgRGVidWcgYm90CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDM4MzAxZDA3MDkzYmQzMDFkNmE5NTQ5ODlmMGY2ZGM4OWUyZjViMDIuLjg1OGJiNDZmN2Jj
YzY4ZWZmMTZmZmVmMzQyYjBkYmE0YWQ1ZDdjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAK
KzIwMjItMDMtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAg
IEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmZvY3VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6
Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTdXBwb3J0IG5ldyBJUEMgbWVzc2FnZXMuCisgICAgICAgIFRoZSBvdmVyYWxsIGZsb3cg
aXMgbGlrZSB0aGlzOgorICAgICAgICAtIFNlcnZpY2VXb3JrZXIgcHJvY2VzcyB0byBOZXR3b3Jr
UHJvY2VzcyB0byBDbGllbnQgV2ViUHJvY2VzcyBwcm9jZXNzIHRvIFVJUHJvY2VzcyAoZG8gdGhl
IGFjdHVhbCBmb2N1cykgdG8gTmV0d29ya1Byb2Nlc3MgdG8gU2VydmljZVdvcmtlciBwcm9jZXNz
CisgICAgICAgIFdlIG1pZ2h0IHdhbnQgdG8gZGlyZWN0bHkgZ28gZnJvbSBOZXR3b3JrUHJvY2Vz
cyB0byBVSVByb2Nlc3MgYnV0IHdlIG5lZWQgdG8gaGFuZGxlIHBvdGVudGlhbCByYWNlIGNvbmRp
dGlvbnMgaW4gdGhhdCBjYXNlLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoKKwogMjAyMi0wMy0yMiAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlb1NhbXBsZU9ic2VydmVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSB0byBWaWRlb0ZyYW1lCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVu
Y2VzSW50ZXJuYWwueWFtbAppbmRleCA2MmJiYmRmZDc3OGIxZTE1YmQ4YjIyODM1NjZkOWNjZTAw
ZjVjZDY1Li5lZDViODIzZTZkM2Q1MTNmOTMwMjZmM2UxOTFjODUwMmQ1YmNjNTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bC55YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNl
c0ludGVybmFsLnlhbWwKQEAgLTg0Myw2ICs4NDMsMTkgQEAgU2VydmljZVdvcmtlcnNFbmFibGVk
OgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitTZXJ2aWNlV29ya2Vyc1Vz
ZXJHZXN0dXJlRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIlZh
bGlkYXRlIFVzZXJHZXN0dXJlIHJlcXVpcmVtZW50cyBpbiBTZXJ2aWNlIFdvcmtlcnMiCisgIGh1
bWFuUmVhZGFibGVEZXNjcmlwdGlvbjogIlZhbGlkYXRlIFVzZXJHZXN0dXJlIHJlcXVpcmVtZW50
cyBpbiBTZXJ2aWNlIFdvcmtlcnMiCisgIGNvbmRpdGlvbjogRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0TGVnYWN5OgorICAgICAgZGVmYXVsdDogZmFs
c2UKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAg
IGRlZmF1bHQ6IHRydWUKKwogU2ltcGxlTGluZUxheW91dEVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wK
ICAgd2ViY29yZU9uQ2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCmluZGV4
IGVjMDA2NzljMDFmZjIwNjk2MjhjZDg3NmRlNzk1MjRiOTczOWQ3ODkuLmY0ZWMyMWUzODA0ZWM1
ZjE3OWY2Zjg2MjQ2ZDhjOTA3MTNhNWVlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcApAQCAtMzQsMTQgKzM0LDE2IEBACiAjaW5j
bHVkZSAiUHVzaFN1YnNjcmlwdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2Vy
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudC5oIgorI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24u
aCIKICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
U2VydmljZVdvcmtlckludGVybmFsczo6U2VydmljZVdvcmtlckludGVybmFscyhTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKQorU2VydmljZVdvcmtlckludGVybmFsczo6U2Vydmlj
ZVdvcmtlckludGVybmFscyhTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIDogbV9pZGVudGlmaWVyKGlk
ZW50aWZpZXIpCiB7CisgICAgZ2xvYmFsU2NvcGUuc2V0SXNQcm9jZXNzaW5nVXNlckdlc3R1cmVG
b3JUZXN0aW5nKHRydWUpOwogfQogCiBTZXJ2aWNlV29ya2VySW50ZXJuYWxzOjp+U2VydmljZVdv
cmtlckludGVybmFscygpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9T
ZXJ2aWNlV29ya2VySW50ZXJuYWxzLmgKaW5kZXggN2JlMzc5ODNlMTA4NDI5ZTkyZmRjMTkxYjQy
M2ZiMmY1NThjMjc4Yy4uZmY4NjIyZTJjZTU1YWQyZTIzMzE4Y2RjMWQwYjQ4YWY3YzU4ZjVjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmgK
QEAgLTQwLDEzICs0MCwxNCBAQCBjbGFzcyBGZXRjaEV2ZW50OwogY2xhc3MgRmV0Y2hSZXNwb25z
ZTsKIGNsYXNzIFB1c2hTdWJzY3JpcHRpb247CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworY2xhc3MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogY2xhc3MgU2VydmljZVdvcmtlckNs
aWVudDsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVy
cmVkOwogCiBjbGFzcyBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBTZXJ2aWNlV29ya2VySW50
ZXJuYWxzIDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckludGVybmFscz4sIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxTZXJ2aWNlV29ya2VySW50ZXJuYWxzPiB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFJlZjxTZXJ2aWNlV29ya2VySW50ZXJuYWxzPiBjcmVhdGUoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2Vy
SW50ZXJuYWxzIHsgaWRlbnRpZmllciB9KTsgfQorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtl
ckludGVybmFscz4gY3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2NvcGUs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2VydmljZVdvcmtlckludGVybmFscyB7IGdsb2JhbFNjb3BlLCBpZGVudGlmaWVyIH0pOyB9
CiAgICAgflNlcnZpY2VXb3JrZXJJbnRlcm5hbHMoKTsKIAogICAgIHZvaWQgc2V0T25saW5lKGJv
b2wgaXNPbmxpbmUpOwpAQCAtNzYsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBc0lu
c3BlY3RlZChib29sKTsKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTZXJ2aWNlV29ya2VySW50
ZXJuYWxzKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBTZXJ2aWNlV29ya2VySW50ZXJu
YWxzKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
IAogICAgIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWZQdHI8
RGVmZXJyZWRQcm9taXNlPiBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkUHJvbWlzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvanMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApp
bmRleCA2YjU5MWZjNzk0ZWZkZjNhNTc5ODU3MjcwZjFjMTZmNzljZDVlN2MyLi4xYmQ2MjcyMjNi
ZDcwMmIxOTBkNzRjMDA2YzgxNTJmMTEwZTJkYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCkBAIC0yMjgsNyArMjI4LDcgQEAgdm9p
ZCBzZXR1cE5ld2x5Q3JlYXRlZFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpCiAgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgICAg
IEpTTG9ja0hvbGRlciBsb2NrZXIodm0pOwogICAgICAgICBhdXRvKiBjb250ZXh0V3JhcHBlciA9
IHNjcmlwdC0+Z2xvYmFsU2NvcGVXcmFwcGVyKCk7Ci0gICAgICAgIGNvbnRleHRXcmFwcGVyLT5w
dXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIEludGVybmFsczo6aW50ZXJu
YWxzSWQpLCB0b0pTKCZnbG9iYWxPYmplY3QsIGNvbnRleHRXcmFwcGVyLCBTZXJ2aWNlV29ya2Vy
SW50ZXJuYWxzOjpjcmVhdGUoaWRlbnRpZmllcikpKTsKKyAgICAgICAgY29udGV4dFdyYXBwZXIt
PnB1dERpcmVjdCh2bSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgSW50ZXJuYWxzOjppbnRl
cm5hbHNJZCksIHRvSlMoJmdsb2JhbE9iamVjdCwgY29udGV4dFdyYXBwZXIsIFNlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHM6OmNyZWF0ZShnbG9iYWxTY29wZSwgaWRlbnRpZmllcikpKTsKICAgICB9KTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmNwcAppbmRleCA1OTZiOWNkYzk5NGY1NTA4MGI2MzkxNzE4OWI3OGViOGY3N2NkMzM0Li5lMmQ3
NjFmMmJjMWI5ODdkZDI1MmZiYjlhNjdhN2I0ZjkzMDlkMzliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCkBAIC0z
OSwxMSArMzksOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNlV29ya2Vy
Q2xpZW50PiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKK1JlZjxT
ZXJ2aWNlV29ya2VyQ2xpZW50PiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUoU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEp
CiB7Ci0gICAgaWYgKGF1dG8qIGNsaWVudCA9IGNvbnRleHQuc2VydmljZVdvcmtlckNsaWVudChk
YXRhLmlkZW50aWZpZXIpKQotICAgICAgICByZXR1cm4gKmNsaWVudDsKLQogICAgIGlmIChkYXRh
LnR5cGUgPT0gU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldpbmRvdykKICAgICAgICAgcmV0dXJu
IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNyZWF0ZShjb250ZXh0LCBXVEZNb3ZlKGRhdGEp
KTsKIApAQCAtNTQsMTMgKzUxLDEwIEBAIFNlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3Jr
ZXJDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2CiAgICAgOiBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKICAgICAsIG1fZGF0YShXVEZNb3Zl
KGRhdGEpKQogewotICAgIGNvbnRleHQuYWRkU2VydmljZVdvcmtlckNsaWVudCgqdGhpcyk7CiB9
CiAKIFNlcnZpY2VXb3JrZXJDbGllbnQ6On5TZXJ2aWNlV29ya2VyQ2xpZW50KCkKIHsKLSAgICBp
ZiAoYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgZG93
bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkucmVtb3ZlU2VydmljZVdv
cmtlckNsaWVudCgqdGhpcyk7CiB9CiAKIGNvbnN0IFVSTCYgU2VydmljZVdvcmtlckNsaWVudDo6
dXJsKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNsaWVudC5oCmluZGV4IDFmZjJjMjM1YTEyNDI3MzY4MzYxNDcwMmRlODE2ZGZl
MWM0N2JhZmMuLjdhMmZiYTM3MTlhN2M1OGU2NGRiYTQyM2JiNGExZjAzOWM0ZWQ3NzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgVHlwZSA9IFNlcnZpY2VX
b3JrZXJDbGllbnRUeXBlOwogICAgIHVzaW5nIEZyYW1lVHlwZSA9IFNlcnZpY2VXb3JrZXJDbGll
bnRGcmFtZVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnQ+IGdldE9y
Q3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYpOworICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudD4gY3JlYXRlKFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOwogCiAgICAgflNl
cnZpY2VXb3JrZXJDbGllbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAppbmRleCAzOTc1ZDUxODE2NWNh
YjQ3ODM0YzkxYjFlNDEyOTZjZTgxMjYxMWE2Li4yNTM2MjA5YjJlYjE5MWUxMDVmYTUzYzRlZWNh
YjJmYWYwZDZlZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaApAQCAtNTAsNyArNTAsNyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckNsaWVudERhdGEgewogICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGlz
b2xhdGVkQ29weSgpIGNvbnN0ICY7CiAgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0
ZWRDb3B5KCkgJiY7CiAKLSAgICBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudERhdGEgZnJvbShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKaW5kZXggM2M1ZDQ3
OGU5MDk4MzJhMzhmYjBlODllNzdlMzMzNjRjZjgyODdiZS4uMWQyZDE0ZGY2ZmZiOGZmMGJkZGEw
ZmZmYWU2ZTcwZjJkMGRjOGE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCkBAIC00NSw0OCArNDUsNDEgQEAg
c3RhdGljIGlubGluZSB2b2lkIGRpZEZpbmlzaEdldFJlcXVlc3QoU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlJiBzY29wZSwgRGVmZXJyZWQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHBy
b21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+KFNlcnZpY2VX
b3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKCpjbGllbnREYXRhKSkpOwor
ICAgIHByb21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+KFNl
cnZpY2VXb3JrZXJDbGllbnQ6OmNyZWF0ZShzY29wZSwgV1RGTW92ZSgqY2xpZW50RGF0YSkpKTsK
IH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkKIHsKICAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gZG93bmNhc3Q8U2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50aHJlYWQoKS5pZGVudGlmaWVyKCk7CiAK
LSAgICBhdXRvIHByb21pc2VQb2ludGVyID0gcHJvbWlzZS5wdHIoKTsKLSAgICBtX3BlbmRpbmdQ
cm9taXNlcy5hZGQocHJvbWlzZVBvaW50ZXIsIFdURk1vdmUocHJvbWlzZSkpOwotCi0gICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBp
ZCA9IGlkLmlzb2xhdGVkQ29weSgpXSAoKSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlz
ZUlkZW50aWZpZXIgPSBhZGRQZW5kaW5nUHJvbWlzZShXVEZNb3ZlKHByb21pc2UpKSwgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGlkID0gaWQuaXNvbGF0ZWRDb3B5KCldICgpIHsKICAgICAgICAg
YXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlv
bigpOwotICAgICAgICBjb25uZWN0aW9uLT5maW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaWQsIFtwcm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtl
cklkZW50aWZpZXJdIChhdXRvJiYgY2xpZW50RGF0YSkgewotICAgICAgICAgICAgU1dDb250ZXh0
TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIoc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgZGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZN
b3ZlKGNsaWVudERhdGEpKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHByb21pc2UgPSBjb250ZXh0LmNsaWVudHMoKS5tX3BlbmRpbmdQcm9taXNl
cy50YWtlKHByb21pc2VQb2ludGVyKSkKKyAgICAgICAgY29ubmVjdGlvbi0+ZmluZENsaWVudEJ5
VmlzaWJsZUlkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGlkLCBbcHJvbWlzZUlk
ZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXSAoYXV0byYmIGNsaWVudERhdGEpIHsK
KyAgICAgICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2
aWNlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIGRh
dGEgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShjbGllbnREYXRhKSldIChhdXRvJiBjb250ZXh0
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gY29udGV4dC5j
bGllbnRzKCkudGFrZVBlbmRpbmdQcm9taXNlKHByb21pc2VJZGVudGlmaWVyKSkKICAgICAgICAg
ICAgICAgICAgICAgZGlkRmluaXNoR2V0UmVxdWVzdChjb250ZXh0LCAqcHJvbWlzZSwgV1RGTW92
ZShkYXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKLQog
c3RhdGljIGlubGluZSB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSYgc2NvcGUsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgVmVjdG9yPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiYmIGNsaWVudHNEYXRhKQogewogICAgIGF1dG8gY2xpZW50cyA9IFdURjo6
bWFwKGNsaWVudHNEYXRhLCBbJl0gKGF1dG8mJiBjbGllbnREYXRhKSB7Ci0gICAgICAgIHJldHVy
biBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShzY29wZSwgV1RGTW92ZShjbGllbnRE
YXRhKSk7CisgICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUoc2NvcGUs
IFdURk1vdmUoY2xpZW50RGF0YSkpOwogICAgIH0pOwogICAgIHByb21pc2UucmVzb2x2ZTxJRExT
ZXF1ZW5jZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+PihXVEZNb3ZlKGNsaWVu
dHMpKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6bWF0Y2hBbGwoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgQ2xpZW50UXVlcnlPcHRpb25zJiBvcHRpb25z
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgYXV0byBwcm9taXNlUG9p
bnRlciA9IHByb21pc2UucHRyKCk7Ci0gICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKHByb21pc2VQ
b2ludGVyLCBXVEZNb3ZlKHByb21pc2UpKTsKLQogICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50
aWZpZXIgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnRocmVh
ZCgpLmlkZW50aWZpZXIoKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb21pc2VQb2ludGVy
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9uc10gKCkgbXV0YWJsZSB7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbcHJvbWlzZUlkZW50aWZpZXIgPSBhZGRQZW5kaW5nUHJvbWlzZShXVEZN
b3ZlKHByb21pc2UpKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG9wdGlvbnNdICgpIG11dGFi
bGUgewogICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0
b24oKS5jb25uZWN0aW9uKCk7Ci0gICAgICAgIGNvbm5lY3Rpb24tPm1hdGNoQWxsKHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBvcHRpb25zLCBbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyXSAoYXV0byYmIGNsaWVudHNEYXRhKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFNX
Q29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50ZXIsIGNsaWVudHNEYXRhID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUoY2xpZW50c0RhdGEpKV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
LSAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gc2NvcGUuY2xpZW50cygpLm1fcGVu
ZGluZ1Byb21pc2VzLnRha2UocHJvbWlzZVBvaW50ZXIpKQorICAgICAgICBjb25uZWN0aW9uLT5t
YXRjaEFsbChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9ucywgW3Byb21pc2VJZGVudGlm
aWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKGF1dG8mJiBjbGllbnRzRGF0YSkgbXV0YWJs
ZSB7CisgICAgICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1Rv
U2VydmljZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VJZGVudGlmaWVy
LCBjbGllbnRzRGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGNsaWVudHNEYXRhKSldIChh
dXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9
IHNjb3BlLmNsaWVudHMoKS50YWtlUGVuZGluZ1Byb21pc2UocHJvbWlzZUlkZW50aWZpZXIpKQog
ICAgICAgICAgICAgICAgICAgICBtYXRjaEFsbENvbXBsZXRlZChzY29wZSwgKnByb21pc2UsIFdU
Rk1vdmUoY2xpZW50c0RhdGEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTEw
MSwxOCArOTQsMTMgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6b3BlbldpbmRvdyhTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwKIAogdm9pZCBTZXJ2aWNlV29y
a2VyQ2xpZW50czo6Y2xhaW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCk7Ci0K
LSAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gc2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKLQotICAgIGF1dG8gcHJvbWlzZVBvaW50ZXIgPSBw
cm9taXNlLnB0cigpOwotICAgIG1fcGVuZGluZ1Byb21pc2VzLmFkZChwcm9taXNlUG9pbnRlciwg
V1RGTW92ZShwcm9taXNlKSk7CisgICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IGRv
d25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGhyZWFkKCkuaWRlbnRp
ZmllcigpOwogCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyXSAoKSBtdXRhYmxlIHsKKyAgICBjYWxsT25NYWluVGhyZWFkKFtwcm9t
aXNlSWRlbnRpZmllciA9IGFkZFBlbmRpbmdQcm9taXNlKFdURk1vdmUocHJvbWlzZSkpLCBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gY29ubmVjdGlv
biA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKTsKLSAgICAgICAg
Y29ubmVjdGlvbi0+Y2xhaW0oc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRl
ciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VX
b3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsK
LSAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9taXNlID0gc2NvcGUuY2xpZW50cygpLm1fcGVu
ZGluZ1Byb21pc2VzLnRha2UocHJvbWlzZVBvaW50ZXIpKSB7CisgICAgICAgIGNvbm5lY3Rpb24t
PmNsYWltKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAg
IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3Nz
VGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHNjb3BlLmNsaWVudHMoKS50YWtlUGVuZGlu
Z1Byb21pc2UocHJvbWlzZUlkZW50aWZpZXIpKSB7CiAgICAgICAgICAgICAgICAgICAgIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiBwZW5kaW5nUHJvbWlzZSB7IHByb21pc2UucmVsZWFzZU5vbk51
bGwoKSB9OwogICAgICAgICAgICAgICAgICAgICBwZW5kaW5nUHJvbWlzZS5zZXR0bGUoV1RGTW92
ZShyZXN1bHQpKTsKICAgICAgICAgICAgICAgICB9CkBAIC0xMjEsNiArMTA5LDE4IEBAIHZvaWQg
U2VydmljZVdvcmtlckNsaWVudHM6OmNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIFJlZjxEZWZlcnJlZFByCiAgICAgfSk7CiB9CiAKK1NlcnZpY2VXb3JrZXJDbGllbnRzOjpQ
cm9taXNlSWRlbnRpZmllciBTZXJ2aWNlV29ya2VyQ2xpZW50czo6YWRkUGVuZGluZ1Byb21pc2Uo
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQoreworICAgIGF1dG8gaWRlbnRpZmllciA9
IFByb21pc2VJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX3BlbmRpbmdQ
cm9taXNlcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgcmV0dXJuIGlk
ZW50aWZpZXI7Cit9CisKK1JlZlB0cjxEZWZlcnJlZFByb21pc2U+IFNlcnZpY2VXb3JrZXJDbGll
bnRzOjp0YWtlUGVuZGluZ1Byb21pc2UoUHJvbWlzZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3sK
KyAgICByZXR1cm4gbV9wZW5kaW5nUHJvbWlzZXMudGFrZShpZGVudGlmaWVyKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudHMuaAppbmRleCBlMDE5NWY0Njg0MzI3Y2MxMmIxMDNjZDQ3YTk3ZDgzN2I4NjhkN2EwLi4y
NDU2N2E2OTc4ODMxZGYyZWYyNGJlYTAzNTZmMzRiZjMxMDgzNmRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuaApAQCAt
NTQsMTAgKzU0LDE2IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wZW5XaW5kb3coU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
ICAgICB2b2lkIGNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKIAorICAgIGVudW0gUHJvbWlzZUlkZW50aWZpZXJUeXBlIHsgfTsKKyAgICB1c2lu
ZyBQcm9taXNlSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8UHJvbWlzZUlkZW50aWZpZXJU
eXBlPjsKKworICAgIFByb21pc2VJZGVudGlmaWVyIGFkZFBlbmRpbmdQcm9taXNlKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYpOworICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHRha2VQZW5kaW5n
UHJvbWlzZShQcm9taXNlSWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtl
ckNsaWVudHMoKSA9IGRlZmF1bHQ7CiAKLSAgICBIYXNoTWFwPERlZmVycmVkUHJvbWlzZSosIFJl
ZjxEZWZlcnJlZFByb21pc2U+PiBtX3BlbmRpbmdQcm9taXNlczsKKyAgICBIYXNoTWFwPFByb21p
c2VJZGVudGlmaWVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCmluZGV4IGUw
NjlkMjQzNDM2ZGU3YmM3NDNmMmVmYTRjMzk4NjA4ZGJjYmU3OTUuLjI1YWFmNjc4NTk0ZDI5NjA3
M2EzNjlkZDZhZGVkZjc4MjEyNmViNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC02OCw2
ICs2OCw3IEBAIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6U2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGNvCiAgICAgLCBtX2NsaWVudHMoU2Vydmlj
ZVdvcmtlckNsaWVudHM6OmNyZWF0ZSgpKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQog
ICAgICwgbV9ub3RpZmljYXRpb25DbGllbnQoV1RGTW92ZShub3RpZmljYXRpb25DbGllbnQpKQor
ICAgICwgbV91c2VyR2VzdHVyZVRpbWVyKCp0aGlzLCAmU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
OjpyZXNldFVzZXJHZXN0dXJlKQogewogfQogCkBAIC0xMzQsMjMgKzEzNSw2IEBAIFNlcnZpY2VX
b3JrZXJUaHJlYWQmIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8U2VydmljZVdvcmtlclRocmVhZCY+KFdvcmtlckdsb2JhbFNjb3BlOjp0
aHJlYWQoKSk7CiB9CiAKLVNlcnZpY2VXb3JrZXJDbGllbnQqIFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZTo6c2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBpZGVudGlmaWVyKQotewotICAgIHJldHVybiBtX2NsaWVudE1hcC5nZXQoaWRlbnRpZmllcik7
Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjphZGRTZXJ2aWNlV29ya2VyQ2xp
ZW50KFNlcnZpY2VXb3JrZXJDbGllbnQmIGNsaWVudCkKLXsKLSAgICBhdXRvIHJlc3VsdCA9IG1f
Y2xpZW50TWFwLmFkZChjbGllbnQuaWRlbnRpZmllcigpLCAmY2xpZW50KTsKLSAgICBBU1NFUlRf
VU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwotfQotCi12b2lkIFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZTo6cmVtb3ZlU2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29ya2VyQ2xp
ZW50JiBjbGllbnQpCi17Ci0gICAgYXV0byBpc1JlbW92ZWQgPSBtX2NsaWVudE1hcC5yZW1vdmUo
Y2xpZW50LmlkZW50aWZpZXIoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChpc1JlbW92ZWQsIGlzUmVt
b3ZlZCk7Ci19Ci0KIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyN1cGRh
dGUtc2VydmljZS13b3JrZXItZXh0ZW5kZWQtZXZlbnRzLXNldC1hbGdvcml0aG0KIHZvaWQgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlOjp1cGRhdGVFeHRlbmRlZEV2ZW50c1NldChFeHRlbmRhYmxl
RXZlbnQqIG5ld0V2ZW50KQogewpAQCAtMjI0LDYgKzIwOCw3IEBAIHZvaWQgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlOjpwb3N0VGFza1RvRmlyZU5vdGlmaWNhdGlvbkV2ZW50KE5vdGlmaWNhdGlv
bkV2ZW50CiAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkgewogICAgICAgICAgICAgY2Fz
ZSBOb3RpZmljYXRpb25FdmVudFR5cGU6OkNsaWNrOgogICAgICAgICAgICAgICAgIGV2ZW50TmFt
ZSA9IGV2ZW50TmFtZXMoKS5ub3RpZmljYXRpb25jbGlja0V2ZW50OworICAgICAgICAgICAgICAg
IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLnJlY29yZFVzZXJHZXN0
dXJlKCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5vdGlmaWNh
dGlvbkV2ZW50VHlwZTo6Q2xvc2U6CiAgICAgICAgICAgICAgICAgZXZlbnROYW1lID0gZXZlbnRO
YW1lcygpLm5vdGlmaWNhdGlvbmNsb3NlRXZlbnQ7CkBAIC0yMzcsNiArMjIyLDEyIEBAIHZvaWQg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpwb3N0VGFza1RvRmlyZU5vdGlmaWNhdGlvbkV2ZW50
KE5vdGlmaWNhdGlvbkV2ZW50CiB9CiAjZW5kaWYKIAordm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU6OnJlY29yZFVzZXJHZXN0dXJlKCkKK3sKKyAgICBtX2lzUHJvY2Vzc2luZ1VzZXJHZXN0
dXJlID0gdHJ1ZTsKKyAgICBtX3VzZXJHZXN0dXJlVGltZXIuc3RhcnRPbmVTaG90KHVzZXJHZXN0
dXJlTGlmZXRpbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYjA1ZmEzMjgyMjc1
ZjNlMTViMDEyMzBiOTdmZTg0MzdhNjkwOGUxOS4uOTUzODBjMzhhZTk0ZWM1OTc1OWU4YjRlZDcy
YjE2ZmJlMzg2YmQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtNjcsMTAgKzY3LDYgQEAgcHVi
bGljOgogCiAgICAgU2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCk7CiAKLSAgICBTZXJ2aWNl
V29ya2VyQ2xpZW50KiBzZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJDbGllbnQoU2VydmljZVdvcmtl
ckNsaWVudCYpOwotICAgIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29y
a2VyQ2xpZW50Jik7Ci0KICAgICB2b2lkIHVwZGF0ZUV4dGVuZGVkRXZlbnRzU2V0KEV4dGVuZGFi
bGVFdmVudCogbmV3RXZlbnQgPSBudWxscHRyKTsKIAogICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQqIHNjcmlwdFJlc291cmNlKGNvbnN0IFVSTCYpIGNv
bnN0OwpAQCAtOTIsNiArODgsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzUGVuZGluZ1NpbGVu
dFB1c2hFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudDsg
fQogICAgIHZvaWQgc2V0SGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudChib29sIHZhbHVlKSB7IG1f
aGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCA9IHZhbHVlOyB9CiAKKyAgICBjb25zdGV4cHIgc3Rh
dGljIFNlY29uZHMgdXNlckdlc3R1cmVMaWZldGltZSAgeyAyX3MgfTsKKyAgICBib29sIGlzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Byb2Nlc3NpbmdVc2VyR2Vz
dHVyZTsgfQorICAgIHZvaWQgcmVjb3JkVXNlckdlc3R1cmUoKTsKKyAgICB2b2lkIHNldElzUHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlRm9yVGVzdGluZyhib29sIHZhbHVlKSB7IG1faXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUgPSB2YWx1ZTsgfQorCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiwgU2VydmljZVdvcmtlckRhdGEmJiwg
Y29uc3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgU2VydmljZVdv
cmtlclRocmVhZCYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIElEQkNsaWVudDo6
SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBzdGQ6OnVuaXF1ZV9wdHI8Tm90
aWZpY2F0aW9uQ2xpZW50PiYmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgdm9pZCBub3RpZnlTZXJ2
aWNlV29ya2VyUGFnZU9mQ3JlYXRpb25JZk5lY2Vzc2FyeSgpOwpAQCAtMTAzLDExICsxMDQsMTIg
QEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6b3B0aW9uYWw8UEFMOjpTZXNzaW9uSUQ+IHNlc3Npb25J
RCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklEOyB9CiAKKyAgICB2b2lkIHJlc2V0
VXNlckdlc3R1cmUoKSB7IG1faXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgPSBmYWxzZTsgfQorCiAg
ICAgU2VydmljZVdvcmtlckNvbnRleHREYXRhIG1fY29udGV4dERhdGE7CiAgICAgUmVmPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24+IG1fcmVnaXN0cmF0aW9uOwogICAgIFJlZjxTZXJ2aWNlV29y
a2VyPiBtX3NlcnZpY2VXb3JrZXI7CiAgICAgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnRzPiBtX2Ns
aWVudHM7Ci0gICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlckNsaWVudCo+IG1fY2xpZW50TWFwOwogICAgIFZlY3RvcjxSZWY8RXh0ZW5kYWJs
ZUV2ZW50Pj4gbV9leHRlbmRlZEV2ZW50czsKIAogICAgIHVpbnQ2NF90IG1fbGFzdFJlcXVlc3RJ
ZGVudGlmaWVyIHsgMCB9OwpAQCAtMTE1LDYgKzExNyw4IEBAIHByaXZhdGU6CiAgICAgUEFMOjpT
ZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE5vdGlmaWNhdGlvbkNs
aWVudD4gbV9ub3RpZmljYXRpb25DbGllbnQ7CiAgICAgYm9vbCBtX2hhc1BlbmRpbmdTaWxlbnRQ
dXNoRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSB7
IGZhbHNlIH07CisgICAgVGltZXIgbV91c2VyR2VzdHVyZVRpbWVyOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCmluZGV4IDkyMjlhZTI0MmY0MDBk
NTBkM2ZlNTVlMDU1OTlhMzE3MDQyYTQ5NzguLjFkMTAwZTE1MmVlNzM0ZjIzODM2YWU1OGE4MTZm
YWM3YWEyZjI2NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKQEAgLTI5LDYgKzI5LDEwIEBA
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oIgogCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQuaCIKKyNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlckNsaWVudHMuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNDcsMTIgKzUxLDM2IEBAIGJvb2wgU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudDo6aXNGb2N1c2VkKCkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Ojpmb2N1cyhSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmZvY3VzKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKLSAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJ3
aW5kb3dDbGllbnQuZm9jdXMoKSBpcyBub3QgeWV0IHN1cHBvcnRlZCJfcyB9KTsKKyAgICBhdXRv
JiBzZXJ2aWNlV29ya2VyQ29udGV4dCA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCk7CisKKyAgICBpZiAoY29udGV4dC5zZXR0aW5nc1ZhbHVlcygpLnNlcnZpY2VX
b3JrZXJzVXNlckdlc3R1cmVFbmFibGVkICYmICFzZXJ2aWNlV29ya2VyQ29udGV4dC5pc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpKSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJXaW5kb3dDbGllbnQgZm9jdXMgcmVxdWlyZXMgYSB1c2Vy
IGdlc3R1cmUiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHByb21p
c2VJZGVudGlmaWVyID0gc2VydmljZVdvcmtlckNvbnRleHQuY2xpZW50cygpLmFkZFBlbmRpbmdQ
cm9taXNlKFdURk1vdmUocHJvbWlzZSkpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW2NsaWVudElk
ZW50aWZpZXIgPSBpZGVudGlmaWVyKCksIHByb21pc2VJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciA9IHNlcnZpY2VXb3JrZXJDb250ZXh0LnRocmVhZCgpLmlkZW50aWZpZXIoKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVj
dGlvbigpLT5mb2N1cyhjbGllbnRJZGVudGlmaWVyLCBbcHJvbWlzZUlkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgICAgICBT
V0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2VydmljZVdvcmtlcihzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1Ro
cmVhZENvcHkoV1RGTW92ZShyZXN1bHQpKV0oYXV0byYgc2VydmljZVdvcmtlckNvbnRleHQpIG11
dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gcHJvbWlzZSA9IHNlcnZpY2VXb3JrZXJDb250
ZXh0LmNsaWVudHMoKS50YWtlUGVuZGluZ1Byb21pc2UocHJvbWlzZUlkZW50aWZpZXIpOworICAg
ICAgICAgICAgICAgIGlmICghcHJvbWlzZSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IENoZWNrIGlzRm9jdXNlZCBzdGF0ZSBhbmQgcmVq
ZWN0IGlmIG5vdCBmb2N1c2VkLgorICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJX
aW5kb3dDbGllbnQgZm9jdXMgZmFpbGVkIl9zIH0pOworICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcHJvbWlzZS0+dGVtcGxh
dGUgcmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4+KFNlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNyZWF0ZShzZXJ2aWNlV29ya2VyQ29udGV4dCwgV1RGTW92
ZSgqcmVzdWx0KSkpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQog
Ci12b2lkIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6Om5hdmlnYXRlKGNvbnN0IFN0cmluZyYg
dXJsLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJX
aW5kb3dDbGllbnQ6Om5hdmlnYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJp
bmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIFVOVVNFRF9Q
QVJBTSh1cmwpOwogICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciwgIndpbmRvd0NsaWVudC5uYXZpZ2F0ZSgpIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIl9zIH0p
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJXaW5kb3dDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyV2luZG93Q2xpZW50LmgKaW5kZXggZjQzYzJjNmQwNzA0ZWIxYzA3NDdjODUzNmMzYTg4
ZjkyODc0NWIxZi4uOGM0MGM3MTkxYWJlYmFlZWYyMWFjN2U4NjAwZWVhZmE1OTliYjU2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlcldpbmRvd0NsaWVudC5oCkBAIC00NSw4ICs0NSw4IEBAIHB1YmxpYzoKICAgICBWaXNpYmls
aXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0ZvY3VzZWQoKSBj
b25zdDsKIAotICAgIHZvaWQgZm9jdXMoUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Ci0gICAgdm9p
ZCBuYXZpZ2F0ZShjb25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7Cisg
ICAgdm9pZCBmb2N1cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlz
ZT4mJik7CisgICAgdm9pZCBuYXZpZ2F0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3Qg
U3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiBwcml2YXRlOgogICAgIFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5pZGwKaW5kZXggZmMxYzkx
ZWEyNGY2M2EyMTQwNGYyMzJlNDFlOTc3MTA4YTY4N2FmNC4uYzQ1OGRhNTc5OGNiZjJhYzBkNTk2
MTM5MjUwZmQxNzYwMGVhOTAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmlkbApAQCAtMzIsNiAr
MzIsNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0
eVN0YXRlOwogICAgIFtJbXBsZW1lbnRlZEFzPWlzRm9jdXNlZF0gcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZm9jdXNlZDsKIAotICAgIFtOZXdPYmplY3RdIFByb21pc2U8U2VydmljZVdvcmtl
cldpbmRvd0NsaWVudD4gZm9jdXMoKTsKLSAgICBbTmV3T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VX
b3JrZXJXaW5kb3dDbGllbnQ+IG5hdmlnYXRlKFVTVlN0cmluZyB1cmwpOworICAgIFtOZXdPYmpl
Y3QsIENhbGxXaXRoPUN1cnJlbnRTY3JpcHRFeGVjdXRpb25Db250ZXh0XSBQcm9taXNlPFNlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQ+IGZvY3VzKCk7CisgICAgW05ld09iamVjdCwgQ2FsbFdpdGg9
Q3VycmVudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFByb21pc2U8U2VydmljZVdvcmtlcldpbmRv
d0NsaWVudD4gbmF2aWdhdGUoVVNWU3RyaW5nIHVybCk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmlu
ZGV4IGIyNzgzMjNmOTkyZDJkNjgyNjNiOTNlM2UyMDEzZmQxNDc5NzU5OTMuLmZjZjVlZTA5Yzhh
NTBkODJhNDFlNzgyODAzZTBjZGNiY2UzYjg4NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTY4
LDYgKzY4LDggQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGwoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMm
LCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJikgPSAwOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgY2xhaW0oU2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpID0gMDsKIAorICAgICAgICB2aXJ0dWFs
IHZvaWQgZm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mJik+JiYpID0gMDsKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbEhlYXJ0QmVhdENo
ZWNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBz
ZXRBc0luc3BlY3RlZChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCkgPSAwOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDMwYTk4MzUxMDRhOWE3MmQxNzM0MDljODZiZTAw
MDM5YzUxMDY4YzYuLmI1Y2M4NmFjZDRiMzYyYWZlNWE2Yjc2OTBkM2Q2MmI1ODg4MzZlZmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb1Bvc3RNZXNzYWdlKE1lc3NhZ2VXaXRoTWVzc2Fn
ZVBvcnRzJiYgbWVzc2EKICAgICAgICAgVVJMIHNvdXJjZVVSTDsKICAgICAgICAgRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudFNvdXJjZSBzb3VyY2U7CiAgICAgICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVy
bmF0aXZlPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkgewotICAgICAgICAg
ICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZUNsaWVudCA9IFNlcnZpY2VXb3Jr
ZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShz
dGQ6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4oc291cmNlRGF0YSkpKTsKKyAgICAgICAg
ICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2VDbGllbnQgPSBTZXJ2aWNlV29y
a2VyQ2xpZW50OjpjcmVhdGUoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKHN0ZDo6
Z2V0PFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkpOwogCiAgICAgICAgICAg
ICBSRUxFQVNFX0FTU0VSVCghc291cmNlQ2xpZW50LT51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFt
aWx5KCkgfHwgIXNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+dXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpIHx8IHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUtPnVybCgpLCBzb3VyY2VDbGllbnQtPnVybCgpKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA5M2Q3ZjcxZTE5
ZTUzMmViM2U2NzA0YTA3YjZlZWNhMGRmOGNiNGRlLi4yODgwNTQyZWY2OTMwNzJlYmMxOWYzYTQ1
OTc3YzJkYjRhOTM5NjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oCkBAIC05MSw2ICs5MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB2b2lkIHNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3Qg
SGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlm
aWVycywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAw
OworICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKSA9IDA7CiAKICAgICAgICAgdmly
dHVhbCB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24mKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNjdjZWVmNTQ0ODRkNzUwNjg4MDAxMTUwYWU2NTg0ZmI5M2FmM2UwOS4uNDUyYzY3MTEzODBm
MTBkMDczOTcyNTI2ZTczMGYzMjYzOWI4YWZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKQEAgLTY1OSw2ICs2NTksMTEgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2kKICAgICBjYWxsYmFjayhyZWdpc3RyYXRpb24tPm5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKSk7
CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpmb2N1c1NlcnZpY2VXb3JrZXJDbGll
bnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Rm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50IHsg
Y2xpZW50SWRlbnRpZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjdW5kZWYgQ09OTkVDVElPTl9NRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBjYjY1YWUyZTI2MTRiYTU1
ZmJmMjBhZTA4NTU5YjQxY2MxOGM0NjEwLi41M2U0MWM4MmNjM2U1NDEzYzZiZDllZGE2YTk0NDBj
ZDNlZTVjZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC04Myw2
ICs4Myw4IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2VydmljZVdvcmtlckZldGNo
VGFzaz4gY3JlYXRlRmV0Y2hUYXNrKE5ldHdvcmtSZXNvdXJjZUxvYWRlciYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQgZmV0Y2hUYXNrVGltZWRPdXQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCisgICAgdm9pZCBmb2N1c1NlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4mJik+JiYpOworCiBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudCBTV1NlcnZlcjo6
Q29ubmVjdGlvbiAoTWVzc2FnZXMgdG8gdGhlIGNsaWVudCBXZWJQcm9jZXNzKQogICAgIHZvaWQg
cmVqZWN0Sm9iSW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggZTlhNWFmNDI3NTZiNDVi
ZjMzZDRhNzcxY2Q0YjhhMTEwNGQ2MjczZC4uMDM2NzVhODQ0NDJlMzBhMzQzMWY3OWIyMzNlODFi
N2UzOWMwMzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHAKQEAgLTIxNyw2ICsyMTcsMTcgQEAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp3ZWJQcm9jZXNzSWRlbnRpZmll
cigKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAK
K3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmb2N1cyhTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYm
IGNhbGxiYWNrKQoreworICAgIGF1dG8qIHNlcnZlciA9IHRoaXMtPnNlcnZlcigpOworICAgIGF1
dG8qIGNvbm5lY3Rpb24gPSBzZXJ2ZXIgPyBzZXJ2ZXItPmNvbm5lY3Rpb24oY2xpZW50SWRlbnRp
Zmllci5wcm9jZXNzSWRlbnRpZmllcigpKSA6IG51bGxwdHI7CisgICAgaWYgKCFjb25uZWN0aW9u
KSB7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y29ubmVjdGlvbi0+Zm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KGNsaWVudElkZW50aWZpZXIsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYmU5NjE1MjhkYjJmYTBmYmRjMDk4NTZhZmNmMWUx
NDhkMzY1YTAyYS4uMDNkOTM2Y2NkMzJhZDY4MWNjYTY0ZmE4M2FhNWI1OTY3ZDBlMTU3ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAt
OTgsNiArOTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIGZpcmVQdXNoRXZlbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+
PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2xv
c2UoKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKTsKIAogICAgIHZvaWQgY29ubmVjdGlv
bklzTm9Mb25nZXJOZWVkZWQoKSBmaW5hbDsKICAgICB2b2lkIHRlcm1pbmF0ZUR1ZVRvVW5yZXNw
b25zaXZlbmVzcygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMDc4YjZlYTMwYjkxN2E3
N2E3NjJhMGJkYmMwMjc2OTQ5YjNhYjk4Ny4uM2U3NzU4NTIzNzk1MDI1ZjkxYjdmMDA4ZDExOGEw
MjQxNmM5MWJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNSw2ICszNSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICBG
aW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3RyaW5nIGNsaWVudElkZW50aWZpZXIpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhKQog
ICAgIE1hdGNoQWxsKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyBvcHRpb25zKTsKICAgICBD
bGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQor
ICAgIEZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gcmVzdWx0KQogICAgIFNldFNjcmlwdFJlc291cmNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFVSTCBzY3JpcHRVUkwsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQgc2NyaXB0KQog
ICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogICAgIERpZEZhaWxIZWFydEJlYXRDaGVj
ayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCBmYmNlOTQ1ZTQ1ODZmMmRmN2U3
NTBmYTk4MDc2NjQ0ODdkZTI4NDQ1Li4zMDc2Zjk0NjRhY2NlYmJiZWRiODBjZGM3MWVkM2I4NDEw
MTMwYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAt
MTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgdGFrZUZvY3VzKFdlYktp
dDo6V2ViUGFnZVByb3h5KiwgV0tGb2N1c0RpcmVjdGlvbikgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXMoV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgdW5mb2N1cyhXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzd2l0Y2hUb1dlYlZpZXcoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhJiYsIEZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgeyBjb21wbGV0aW9uSGFuZGxlcigpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3Jp
cHRDb25maXJtKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkqLCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmJiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCBjMDJk
YjQ4Mjk2NWM1ZThkM2ZjNDBkOTA4NjljOWU4ZjgwYWQzMDFlLi5mZDI3ZWRmYTExNjhkZWI1ZmJj
MzdiZTU5NmU2OTY4ZmZkNzQ0NGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCkBAIC0xMTYsNiArMTE2LDggQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBz
aG93UGFnZShXZWJQYWdlUHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCBmb2N1cyhXZWJQYWdl
UHJveHkqKSBmaW5hbDsKICAgICAgICAgdm9pZCB1bmZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFs
OworICAgICAgICBib29sIHN3aXRjaFRvV2ViVmlldyhXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIGZp
bmFsOworCiAgICAgICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdCBmaW5hbDsKICAgICAgICAg
dm9pZCBydW5Nb2RhbChXZWJQYWdlUHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBwYWdlRGlk
U2Nyb2xsKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VJRGVsZWdhdGUubW0KaW5kZXggNzY1OWIxYzlmZjBkMmY5YmM1MGFlZTdlZDQzN2E3NTli
ZjZlOTIwMC4uZDM0N2FmNTc2YzJmOTExMTc1NzNmNGE0ZjVhNWUyYmE4OGEyZmUzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC04MzEsNiArODMx
LDIxIEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnBhZ2VEaWRTY3JvbGwoV2ViUGFnZVBy
b3h5KikKICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0Rp
ZFNjcm9sbDptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKV07CiB9CiAKK2Jvb2wg
VUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnN3aXRjaFRvV2ViVmlldyhXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpCit7CisgICAgYXV0byogd2ViVmlldyA9IG1fdWlEZWxlZ2F0ZSA/IG1fdWlEZWxlZ2F0ZS0+
bV93ZWJWaWV3LmdldCgpLmdldCgpIDogbnVsbHB0cjsKKyAgICBpZiAoIXdlYlZpZXcpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBXZSBwcm9iYWJseSBuZWVkIHRvIGNh
bGwgYSBkZWxlZ2F0ZSBpbnN0ZWFkIG9mIGRvaW5nIHRoaXMgZGlyZWN0bHkgaGVyZS4KKyNpZiBQ
TEFURk9STShNQUMpCisgICAgW3dlYlZpZXcud2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250Om5p
bF07CisjZWxzZQorICAgIFt3ZWJWaWV3LndpbmRvdyBtYWtlS2V5QW5kVmlzaWJsZV07CisjZW5k
aWYKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6Zm9j
dXMoV2ViUGFnZVByb3h5KikKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKQEAgLTg0Miw3ICs4
NTcsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpmb2N1cyhXZWJQYWdlUHJveHkqKQog
ICAgIGF1dG8gZGVsZWdhdGUgPSBtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CiAgICAg
aWYgKCFkZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuOwotICAgIAorCiAgICAgWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX2ZvY3VzV2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2Vi
Vmlldy5nZXQoKS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCmluZGV4IDM1ZGI2NzFmZjU1ZWYyYWI0ZDRjZjM2ZjJhYTVhNjAxMmE2NmRhYzQuLjNl
YmVjMjRmMWM2NTBmNGQ4OWZkYTE1MjI1ZTNkOGZjMzVlOGNlMzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzM5MCw2ICs3MzkwLDI1IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkaWRDYW5jZWxDaGVja2luZ1RleHQoVGV4dENoZWNrZXJSZXF1ZXN0SUQgcmVx
dWVzdElEKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZENhbmNlbENoZWNraW5n
VGV4dChyZXF1ZXN0SUQpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OnN3aXRjaFRvV2ViVmll
dyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgaWYgKCFtX3Vp
Q2xpZW50LT5zd2l0Y2hUb1dlYlZpZXcoKnRoaXMpKSB7CisgICAgICAgIGNhbGxiYWNrKCk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtYWtlRmly
c3RSZXNwb25kZXIoKTsKKyNlbmRpZgorCisgICAgaWYgKG1fYWN0aXZpdHlTdGF0ZS5jb250YWlu
cyhBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUpKSB7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgaW5zdGFsbEFjdGl2aXR5U3RhdGVDaGFuZ2VDb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIC8vIE90aGVyCiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDgxN2QzZjI4ZmNhYjI2MTUxZTMzMDk4NjViNDUzNmMxMDEzYzFm
NGEuLmE3MTBiOTY2MDMzOTM4NTVlYTdjNDk2NzY3NTNlMGUzNmEwZmJlNTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjg5LDYgKzE2ODksNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0lj
b24mLCBXZWJLaXQ6OkNhbGxiYWNrSUQpOwogCisgICAgdm9pZCBzd2l0Y2hUb1dlYlZpZXcoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEZvY3VzKGJvb2wgZm9jdXNl
ZCk7CiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsK
ICAgICB2b2lkIGdldFdpbmRvd0ZyYW1lKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkdldFdpbmRv
d0ZyYW1lRGVsYXllZFJlcGx5JiYpOwpAQCAtMzIzMCw2ICszMjMxLDcgQEAgcHJpdmF0ZToKICAg
ICBXZWJDb3JlOjpQbGF0Zm9ybUltYWdlUHRyIG1fY3JvcHBlZEltYWdlUmVzdWx0OwogICAgIENy
b3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSBtX2Nyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSB7IENyb3Bw
ZWRJbWFnZU92ZXJsYXlTdGF0ZTo6SW5hY3RpdmUgfTsKICNlbmRpZiAvLyBFTkFCTEUoSU1BR0Vf
QU5BTFlTSVNfRU5IQU5DRU1FTlRTKQorICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4gbV9z
d2l0Y2hUb1dlYlZpZXdDYWxsYmFjazsKIH07CiAKICNpZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGZlYmRl
MDlmYmZlZDkxMTY2ZGYyODg0NzkwMDZhNjhlYTdjMDdjYzkuLjRmNDk3NGZhZTU0OTIzMjgyZmM1
NmZhMWEwZWY2NmYxOWYwNGVkOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQxLDYgKzQxLDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKICAgICBTZXRTdGF0dXNUZXh0KFN0cmluZyBzdGF0dXNUZXh0KQogICAgIFNl
dEZvY3VzKGJvb2wgZm9jdXNlZCkKICAgICBUYWtlRm9jdXModWludDhfdCBkaXJlY3Rpb24pCisg
ICAgU3dpdGNoVG9XZWJWaWV3KCkgLT4gKCkKICAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiBmcmFtZUlEKQogICAgIFNldFJlbmRl
clRyZWVTaXplKHVpbnQ2NF90IHRyZWVTaXplKQogICAgIFNldFRvb2xiYXJzQXJlVmlzaWJsZShi
b29sIHRvb2xiYXJzQXJlVmlzaWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDY2MDM3NTc1
NmRkN2JmNDVjZmFhMzAwNmM2N2RmZGVjMzBlNmMxODMuLjgyMmI1ZDczNGJjYTY1YzBmNGMxY2E1
N2Q3MGU4NWYyZmYzNzRkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtNDEsNiArNDEsOCBA
QAogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmg+CkBAIC0zMDEsNiArMzAzLDI4IEBAIHZvaWQgV2ViU1dDbGllbnRDb25u
ZWN0aW9uOjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpCiAgICAgfSk7CiB9CiAKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpmb2N1c1NlcnZp
Y2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiBjbGllbnQgPSBEb2N1
bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0KGNsaWVudElkZW50aWZpZXIpOworICAgIGF1dG8q
IHBhZ2UgPSBjbGllbnQgPyBjbGllbnQtPnBhZ2UoKSA6IG51bGxwdHI7CisgICAgaWYgKCFwYWdl
KSB7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBXZWJQYWdlOjpmcm9tQ29yZVBhZ2UoKnBhZ2UpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpTd2l0Y2hUb1dlYlZpZXcoKSwgW2NsaWVudElkZW50aWZpZXIsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8qIGNs
aWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5nZXQoY2xpZW50SWRlbnRpZmllcik7
CisgICAgICAgIGF1dG8qIGZyYW1lID0gY2xpZW50ID8gY2xpZW50LT5mcmFtZSgpIDogbnVsbHB0
cjsKKyAgICAgICAgYXV0byogcGFnZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IG51bGxwdHI7
CisgICAgICAgIGlmICghcGFnZSkgeworICAgICAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRnJhbWUoZnJhbWUpOworICAgICAgICBjYWxsYmFjayhTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YTo6ZnJvbSgqY2xpZW50KSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
aAppbmRleCBiMjkyNTU5MDQyYzc3NDY1NTIwMGIxYjVlZjUxMDNjODgzY2JhYjZjLi40NzcyYjYy
OWNhZGE3YjZlNzljYWM2YTQwMDgyYTM0Y2RmZmE5YTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAt
OTksNiArOTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzYWJsZU5hdmlnYXRpb25QcmVsb2Fk
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25P
clZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHNldE5hdmlnYXRpb25QcmVsb2FkSGVh
ZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0
cmluZyYmLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldE5h
dmlnYXRpb25QcmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgZm9jdXNTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKTsKIAogICAgIHZv
aWQgc2NoZWR1bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRh
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBiZWY4ZGEyZWUx
ZDAzNmYwYzdhYmRjM2I3N2M4YjAyZGExOWFlMmMwLi4yMWRiNTY0YjdjODJiNWRhZTc5NTE0Mjcz
MzRhN2NlZDgxODA5NDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0zOSw2ICszOSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAg
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyRGF0YSBzb3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBTZXRE
b2N1bWVudElzQ29udHJvbGxlZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllciB0ZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YSBkYXRhKSAtPiAoYm9vbCBpc1N1Y2Nlc3MpCisKKyAgICBG
b2N1c1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+IHJlc3VsdCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhMWM2
OGNiZWE0MzJlMTE2NDg4Yzk1OTlkYzIzYmQ2MmVlOGYxYmRlLi5lMjNjMjU3MTdiY2EyNDFmZjhj
Yzk3NTljMGYzZWQ3YTMyNzZiZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCkBAIC0zMzIsMTMgKzMzMiwxOCBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcgogICAgICAg
ICBjYWxsYmFjayhXVEZNb3ZlKGNsaWVudHNEYXRhKSk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OmNsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6Y2xhaW0oU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY2FsbGJh
Y2spCiB7CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OkNsYWltIHsgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgfSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1
dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBjYWxsYmFjayhyZXN1bHQgPyByZXN1bHQt
PnRvRXhjZXB0aW9uKCkgOiBFeGNlcHRpb25Pcjx2b2lkPiB7IH0pOwogICAgIH0pOwogfQogCit2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmb2N1cyhTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmIGNh
bGxiYWNrKQoreworICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpGb2N1cyB7
IGNsaWVudElkZW50aWZpZXIgfSwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiB2b2lkIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjbG9zZSgpCiB7CiAgICAgUkVMRUFTRV9MT0coU2Vy
dmljZVdvcmtlciwgIlNlcnZpY2Ugd29ya2VyIHByb2Nlc3MgaXMgcmVxdWVzdGVkIHRvIHN0b3Ag
YWxsIHNlcnZpY2Ugd29ya2VycyIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5k
ZXggYjU2OTQwZTRiMDMzNDc0ZGIyMzA3ZTFkZGNlMjA5NGJhMDVmOGI5MC4uZWNkODFmYjNmMmFi
ODk2MzI2NTI2MzU2ZmJiODA3NGMyNjRmMjM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5oCkBAIC04MSw2ICs4MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlW
aXNpYmxlSWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZv
aWQgbWF0Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbGFpbShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBmb2N1cyhXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKT4m
JikgZmluYWw7CiAgICAgdm9pZCBza2lwV2FpdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKICAgICB2b2lkIHNl
dFNjcmlwdFJlc291cmNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBV
UkwmLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2Ny
aXB0JikgZmluYWw7CiAgICAgYm9vbCBpc1Rocm90dGxlYWJsZSgpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDIxMmM4OTY3
NDM0M2M5ZDdlYjNjM2Y5OTcxNjY0ZGNlNjA2YzFiYjIuLjQ3NGU0Yjg0OTlhNTE1YzNmYWY1N2Uz
ODQxMWEwZjI1YmYwYjkyODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wMy0yNSAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IFNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQuZm9jdXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODMxOQorICAgICAgICA8cmRhcjovLzkwNjE2NDkwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisKIDIwMjItMDMtMjIgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBTcXVlbGNoIHdhcm5p
bmcgbWVzc2FnZSBmcm9tIG91dHB1dCBvZiBidWlsZC1qc2MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0K
aW5kZXggNTNkY2IzOTVlMTVmYjExNGJjMWUzNmUzZTBjZDMzMzJhYmZiZDM2Yy4uNjBjYzIzNDI4
YjZmOTg5NzgyNzYxYjFlOTg3NTVjMzQ0YjZjMmUxMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TZXJ2aWNlV29ya2VyQmFzaWMubW0K
QEAgLTQ2LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3RvcmVSZWYu
aD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tFeHBlcmlt
ZW50YWxGZWF0dXJlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUu
aD4KICNpbXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KICNpbXBv
cnQgPFdlYktpdC9fV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UuaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tSZW1vdGVPYmplY3RSZWdpc3RyeS5oPgpAQCAtMjgwMiwzICsyODAzLDE2NiBAQCBURVNUKFNl
cnZpY2VXb3JrZXIsIEV4dGVuc2lvblNlcnZpY2VXb3JrZXJGYWlsdXJlVmlld0Rlc3Ryb3llZCkK
ICAgICB9CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIH0KKworc3RhdGlj
IGNvbnN0IGNoYXIqIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnRGb2N1c01haW4gPQorIjxkaXY+
dGVzdCBwYWdlPC9kaXY+IgorIjxzY3JpcHQ+IgorImxldCB3b3JrZXI7IgorImFzeW5jIGZ1bmN0
aW9uIHRlc3QoKSB7IgorIiAgICB0cnkgeyIKKyIgICAgICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9
IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvc3cuanMnKTsiCisiICAg
ICAgICBpZiAocmVnaXN0cmF0aW9uLmFjdGl2ZSkgeyIKKyIgICAgICAgICAgICB3b3JrZXIgPSBy
ZWdpc3RyYXRpb24uYWN0aXZlOyIKKyIgICAgICAgICAgICBhbGVydCgnYWxyZWFkeSBhY3RpdmUn
KTsiCisiICAgICAgICAgICAgcmV0dXJuOyIKKyIgICAgICAgIH0iCisiICAgICAgICB3b3JrZXIg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsiCisiICAgICAgICB3b3JrZXIuYWRkRXZlbnRMaXN0
ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7IgorIiAgICAgICAgICAgIGlmICh3b3JrZXIuc3Rh
dGUgPT0gJ2FjdGl2YXRlZCcpIgorIiAgICAgICAgICAgICAgICBhbGVydCgnc3VjY2Vzc2Z1bGx5
IHJlZ2lzdGVyZWQnKTsiCisiICAgICAgICB9KTsiCisiICAgIH0gY2F0Y2goZSkgeyIKKyIgICAg
ICAgIGFsZXJ0KCdFeGNlcHRpb246ICcgKyBlKTsiCisiICAgIH0iCisifSIKKyJ3aW5kb3cub25s
b2FkID0gdGVzdDsiCisiIgorImZ1bmN0aW9uIGZvY3VzQ2xpZW50KCkgeyIKKyIgICAgd29ya2Vy
LnBvc3RNZXNzYWdlKCdzdGFydCcpOyIKKyIgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIub25t
ZXNzYWdlID0gKGV2ZW50KSA9PiB7IgorIiAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFu
ZGxlcnMuc3cucG9zdE1lc3NhZ2UoZXZlbnQuZGF0YSk7IgorIiAgICB9IgorIn0iCisiIgorImZ1
bmN0aW9uIGNoZWNrRm9jdXNWYWx1ZSh2YWx1ZSwgbmFtZSkgeyIKKyIgICAgd2luZG93LndlYmtp
dC5tZXNzYWdlSGFuZGxlcnMuc3cucG9zdE1lc3NhZ2UoZG9jdW1lbnQuaGFzRm9jdXMoKSA9PT0g
dmFsdWUgPyAnUEFTUycgOiAnRkFJTDogZXhwZWN0ZWQgJyArIHZhbHVlICsgJyBmb3IgJyArIG5h
bWUpOyIKKyJ9IgorIjwvc2NyaXB0PiI7CitzdGF0aWMgY29uc3QgY2hhciogU2VydmljZVdvcmtl
cldpbmRvd0NsaWVudEZvY3VzSlMgPQorInNlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScs
IChldmVudCkgPT4geyIKKyIgICBldmVudC5zb3VyY2UuZm9jdXMoKS50aGVuKChjbGllbnQpID0+
IHsiCisiICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgnZm9jdXNlZCcpOyIKKyIgICB9
LCAoZXJyb3IpID0+IHsiCisiICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgnbm90IGZv
Y3VzZWQnKTsiCisiICAgfSk7IgorIn0pOyI7CisKK1RFU1QoU2VydmljZVdvcmtlciwgU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudEZvY3VzKQoreworICAgIFtXS1dlYnNpdGVEYXRhU3RvcmUgX2Fs
bG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICAvLyBTdGFydCB3aXRo
IGEgY2xlYW4gc2xhdGUgZGF0YSBzdG9yZQorICAgIFtbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1
bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRhU3RvcmUgYWxsV2Vi
c2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQYXN0XSBjb21wbGV0
aW9uSGFuZGxlcjpeKCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1
dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9uIHByZWZlcmVu
Y2VzXTsKKworICAgIGZvciAoX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZlYXR1cmUgaW4gW1dL
UHJlZmVyZW5jZXMgX2ludGVybmFsRGVidWdGZWF0dXJlc10pIHsKKyAgICAgICAgaWYgKFtmZWF0
dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJTZXJ2aWNlV29ya2Vyc1VzZXJHZXN0dXJlRW5hYmxl
ZCJdKQorICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOk5PIGZvckludGVybmFs
RGVidWdGZWF0dXJlOmZlYXR1cmVdOworICAgIH0KKworICAgIGF1dG8gbWVzc2FnZUhhbmRsZXIg
PSBhZG9wdE5TKFtbU1dNZXNzYWdlSGFuZGxlcldpdGhFeHBlY3RlZE1lc3NhZ2UgYWxsb2NdIGlu
aXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3Jp
cHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAic3ciXTsKKworICAg
IGF1dG8gd2ViVmlldzEgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMo
W1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAw
LCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNd
KTsKKworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBTZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAi
LyIsIHsgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudEZvY3VzTWFpbiB9IH0sCisgICAgICAgIHsg
Ii9zdy5qcyIsIHsge3sgIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0IiB9
fSwgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudEZvY3VzSlMgfSB9CisgICAgfSk7CisKKyAgICBb
d2ViVmlldzEgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgRVhQRUNUX1dLX1NU
UkVRKFt3ZWJWaWV3MSBfdGVzdF93YWl0Rm9yQWxlcnRdLCAic3VjY2Vzc2Z1bGx5IHJlZ2lzdGVy
ZWQiKTsKKworICAgIFt3ZWJWaWV3MiBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAg
ICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcyIF90ZXN0X3dhaXRGb3JBbGVydF0sICJhbHJlYWR5
IGFjdGl2ZSIpOworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIFtbd2ViVmlldzEgaG9zdFdpbmRv
d10gbWluaWF0dXJpemU6W3dlYlZpZXcxIGhvc3RXaW5kb3ddXTsKKyAgICBbW3dlYlZpZXcyIGhv
c3RXaW5kb3ddIG1pbmlhdHVyaXplOlt3ZWJWaWV3MiBob3N0V2luZG93XV07CisgICAgRVhQRUNU
X0ZBTFNFKFt3ZWJWaWV3MSBob3N0V2luZG93XS5pc1Zpc2libGUpOworICAgIEVYUEVDVF9GQUxT
RShbd2ViVmlldzIgaG9zdFdpbmRvd10uaXNWaXNpYmxlKTsKKyNlbmRpZgorCisgICAgZG9uZSA9
IGZhbHNlOworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJmb2N1c2VkIjsKKyAgICBbd2ViVmlldzEg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9jdXNDbGllbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6IG5p
bF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyNpZiBQTEFURk9STShN
QUMpCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcxIGhvc3RXaW5kb3ddLmlzVmlzaWJsZSk7Cisg
ICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3MiBob3N0V2luZG93XS5pc1Zpc2libGUpOworICAgIEVY
UEVDVF9GQUxTRShbd2ViVmlldzEgaG9zdFdpbmRvd10uaXNNaW5pYXR1cml6ZWQpOworICAgIEVY
UEVDVF9UUlVFKFt3ZWJWaWV3MiBob3N0V2luZG93XS5pc01pbmlhdHVyaXplZCk7CisKKyAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuIHRoZXNlIHRlc3RzIGluIGlPUyBvbmNl
IHBhZ2VzIGFyZSBhY3R1YWxseSB2aXNpYmxlLgorICAgIGRvbmUgPSBmYWxzZTsKKyAgICBleHBl
Y3RlZE1lc3NhZ2UgPSAiUEFTUyI7CisgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpA
ImNoZWNrRm9jdXNWYWx1ZSh0cnVlLCAnd2ViVmlldzEnKSIgY29tcGxldGlvbkhhbmRsZXI6bmls
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJQQVNTIjsKKyAgICBbd2ViVmlldzIgZXZhbHVh
dGVKYXZhU2NyaXB0OkAiY2hlY2tGb2N1c1ZhbHVlKGZhbHNlLCAnd2ViVmlldzInKSIgY29tcGxl
dGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
I2VuZGlmCisKKyAgICBkb25lID0gZmFsc2U7CisgICAgZXhwZWN0ZWRNZXNzYWdlID0gImZvY3Vz
ZWQiOworICAgIFt3ZWJWaWV3MiBldmFsdWF0ZUphdmFTY3JpcHQ6QCJmb2N1c0NsaWVudCgpIiBj
b21wbGV0aW9uSGFuZGxlcjogbmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRv
bmUpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBFWFBFQ1RfVFJVRShbd2ViVmlldzIgaG9zdFdp
bmRvd10uaXNWaXNpYmxlKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcxIGhvc3RXaW5kb3dd
LmlzTWluaWF0dXJpemVkKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZpZXcyIGhvc3RXaW5kb3dd
LmlzTWluaWF0dXJpemVkKTsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBy
dW4gdGhlc2UgdGVzdHMgaW4gaU9TIG9uY2UgcGFnZXMgYXJlIGFjdHVhbGx5IHZpc2libGUuCisg
ICAgZG9uZSA9IGZhbHNlOworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJQQVNTIjsKKyAgICBbd2Vi
VmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAiY2hlY2tGb2N1c1ZhbHVlKHRydWUsICd3ZWJWaWV3
MicpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmZG9uZSk7CisjZW5kaWYKK30KKworVEVTVChTZXJ2aWNlV29ya2VyLCBTZXJ2aWNlV29ya2Vy
V2luZG93Q2xpZW50Rm9jdXNSZXF1aXJlc1VzZXJHZXN0dXJlKQoreworICAgIFtXS1dlYnNpdGVE
YXRhU3RvcmUgX2FsbG93V2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3JpZ2luc107CisKKyAgICAv
LyBTdGFydCB3aXRoIGEgY2xlYW4gc2xhdGUgZGF0YSBzdG9yZQorICAgIFtbV0tXZWJzaXRlRGF0
YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVdIHJlbW92ZURhdGFPZlR5cGVzOltXS1dlYnNpdGVEYXRh
U3RvcmUgYWxsV2Vic2l0ZURhdGFUeXBlc10gbW9kaWZpZWRTaW5jZTpbTlNEYXRlIGRpc3RhbnRQ
YXN0XSBjb21wbGV0aW9uSGFuZGxlcjpeKCkgeworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxz
ZTsKKworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0
aW9uIHByZWZlcmVuY2VzXTsKKworICAgIGZvciAoX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUgKmZl
YXR1cmUgaW4gW1dLUHJlZmVyZW5jZXMgX2ludGVybmFsRGVidWdGZWF0dXJlc10pIHsKKyAgICAg
ICAgaWYgKFtmZWF0dXJlLmtleSBpc0VxdWFsVG9TdHJpbmc6QCJTZXJ2aWNlV29ya2Vyc1VzZXJH
ZXN0dXJlRW5hYmxlZCJdKQorICAgICAgICAgICAgW3ByZWZlcmVuY2VzIF9zZXRFbmFibGVkOllF
UyBmb3JJbnRlcm5hbERlYnVnRmVhdHVyZTpmZWF0dXJlXTsKKyAgICB9CisKKyAgICBhdXRvIG1l
c3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1NXTWVzc2FnZUhhbmRsZXJXaXRoRXhwZWN0ZWRNZXNz
YWdlIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJv
bGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpA
InN3Il07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBUZXN0V2ViS2l0
QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IFNlcnZpY2VXb3JrZXJX
aW5kb3dDbGllbnRGb2N1c01haW4gfSB9LAorICAgICAgICB7ICIvc3cuanMiLCB7IHt7ICJDb250
ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIFNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnRGb2N1c0pTIH0gfQorICAgIH0pOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6
c2VydmVyLnJlcXVlc3QoKV07CisgICAgRVhQRUNUX1dLX1NUUkVRKFt3ZWJWaWV3IF90ZXN0X3dh
aXRGb3JBbGVydF0sICJzdWNjZXNzZnVsbHkgcmVnaXN0ZXJlZCIpOworCisgICAgZG9uZSA9IGZh
bHNlOworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJub3QgZm9jdXNlZCI7CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9jdXNDbGllbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6IG5p
bF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjZDUy
NTE3MmE3MzcxMGYzMDZjMTM5ODEwMTk2ZjExZmZjM2ExZmZmLi5hZGNjNGE0MTk0MGI0NmEzMjA0
ZTE1ODc3MWU3NzMyMTFkYTMxZjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDMtMjUg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBT
ZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6Ly85MDYxNjQ5MD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUg
dGVzdHMgdG8gY292ZXIgdGhlIGZhY3Qgd2Ugbm8gbG9uZ2VyIHJldXNlIENsaWVudCBvYmplY3Rz
LgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3Rt
ZXNzYWdlLWVjaG8td29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9zZXJ2aWNld29ya2VyY2xpZW50cy1nZXQtd29ya2VyLmpzOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNo
QWxsLXdvcmtlci5qczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwu
aHR0cHMuaHRtbDoKKwogMjAyMi0wMy0yMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQ29tcHV0YXRpb24gb2YgRG9jdW1lbnQgc2l0ZUZvckNvb2tpZXMgaXMg
YnVnZ3kgaW4gY2FzZSBkb2N1bWVudCBpcyBjcmVhdGVkIGJ5IHdpbmRvdy5vcGVuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9z
dG1lc3NhZ2UtZWNoby13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13b3JrZXIuanMKaW5kZXggZWUzZGU1
OTcxYjEwOWZjZGEwMTFlMTBjMjlhODgyYjQ4NDE5YjNlYi4uNzNiNDcyN2NlMTZhOGExZmQ0NDlm
N2I4ZWM2MjAwZTYxYTZmNTJiZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpzCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVz
c2FnZS1lY2hvLXdvcmtlci5qcwpAQCAtNiw5ICs2LDEyIEBAIHNlbGYuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIChldmVudCkgPT4gewogICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RN
ZXNzYWdlKCJGQUlMOiBjbGllbnQgc291cmNlIGlzIG5vdCBhIFdpbmRvd0NsaWVudCIpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgfSBlbHNlIGlmIChjbGllbnQgIT09IGV2
ZW50LnNvdXJjZSkgeworICAgIH0gZWxzZSBpZiAoY2xpZW50LmlkICE9PSBldmVudC5zb3VyY2Uu
aWQpIHsKICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiBjbGllbnQgc291
cmNlIG9mIHRoZSBzZWNvbmQgbWVzc2FnZSBpcyBub3QgdGhlIHNhbWUgYXMgdGhlIGZpcnN0IG1l
c3NhZ2UiKTsKICAgICAgICAgcmV0dXJuOworICAgIH0gZWxzZSBpZiAoY2xpZW50ID09PSBldmVu
dC5zb3VyY2UpIHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiBjbGll
bnQgc291cmNlIG9mIHRoZSBzZWNvbmQgbWVzc2FnZSBpcyB0aGUgc2FtZSBvYmplY3QgYXMgZm9y
IHRoZSBmaXJzdCBtZXNzYWdlIik7CisgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZXZlbnQu
c291cmNlLnBvc3RNZXNzYWdlKCJQQVNTOiBTZXJ2aWNlIHdvcmtlciByZWNlaXZlZCBtZXNzYWdl
ICciICsgZXZlbnQuZGF0YSArICInIGZyb20gb3JpZ2luICciICsgZXZlbnQub3JpZ2luICsgIici
KTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3NlcnZpY2V3b3JrZXJjbGllbnRzLWdldC13b3JrZXIuanMgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZXdvcmtlcmNs
aWVudHMtZ2V0LXdvcmtlci5qcwppbmRleCBjYTNiYmEyMzhhNmIyZThjYjIxNjk1OWM3Njg1NmE2
NjQ4OWMzZDY0Li42ZGQ1M2U5M2ZmYTk5OTQ5MTVlYzAxOTJjZjhhNjQ2YTRhODRkZWY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMv
c2VydmljZXdvcmtlcmNsaWVudHMtZ2V0LXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZXdvcmtlcmNsaWVudHMtZ2V0
LXdvcmtlci5qcwpAQCAtMTksOCArMTksOCBAQCBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCBhc3luYyAoZXZlbnQpID0+IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChyZXRyaWV2ZWRDbGllbnQgIT09IGNsaWVudCkgewotICAgICAgICAgICAg
ZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiBjbGllbnQgaXMgZGlmZmVyZW50IGZyb20g
dGhlIG9uZSByZXRyaWV2ZWQgdGhyb3VnaCBzZWxmLmNsaWVudHMuZ2V0Iik7CisgICAgICAgIGlm
IChyZXRyaWV2ZWRDbGllbnQgPT09IGNsaWVudCkgeworICAgICAgICAgICAgZXZlbnQuc291cmNl
LnBvc3RNZXNzYWdlKCJGQUlMOiByZXVzaW5nIHNhbWUgY2xpZW50IG9iamVjdCBpbiBkaWZmZXJl
bnQgc2VsZi5jbGllbnRzLmdldCBjYWxscyIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdv
cmtlci5qcwppbmRleCBkYjZmMDU0ZjY4OTJjZjAyYTY4ZGQ5OTlmYjg4NjhlMjJmM2NjYTcwLi40
ZjJlNTIwZmY3NmUxZTM3ZjY5ZmNhNDFjNzEyNjJlNDUyMThlOTlhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1t
YXRjaEFsbC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzCkBAIC00MSw2ICs0
MSwyNSBAQCBmdW5jdGlvbiBjaGVja0NsaWVudEluVW5jb250cm9sbGVkQ2xpZW50cyhjbGllbnRJ
ZGVudGlmaWVyKQogYXN5bmMgZnVuY3Rpb24gZG9UZXN0QWZ0ZXJNZXNzYWdlKGV2ZW50KQogewog
ICAgIHRyeSB7CisgICAgICAgIGlmIChldmVudC5kYXRhLnRlc3QgPT09ICJjaGVja05ld0NsaWVu
dE9iamVjdCIpIHsKKyAgICAgICAgICAgIGNvbnN0IGNsaWVudHMxID0gYXdhaXQgc2VsZi5jbGll
bnRzLm1hdGNoQWxsKHsgaW5jbHVkZVVuY29udHJvbGxlZCA6IHRydWUgfSk7CisgICAgICAgICAg
ICBjb25zdCBjbGllbnRzMiA9IGF3YWl0IHNlbGYuY2xpZW50cy5tYXRjaEFsbCh7IGluY2x1ZGVV
bmNvbnRyb2xsZWQgOiB0cnVlIH0pOworICAgICAgICAgICAgaWYgKCFjbGllbnRzMS5sZW5ndGgg
fHwgIWNsaWVudHMyLmxlbmd0aCkgeworICAgICAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0
TWVzc2FnZSgibm8gY2xpZW50cyIpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIGZvciAobGV0IGNsaWVudDEgb2YgY2xpZW50czEpIHsKKyAgICAg
ICAgICAgICAgICBmb3IgKGxldCBjbGllbnQyIG9mIGNsaWVudHMyKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmIChjbGllbnQxID09PSBjbGllbnQyKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJldXNpbmcgY2xpZW50IG9iamVjdHMi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGV2ZW50LnNv
dXJjZS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKICAgICAgICAgaWYgKGV2ZW50LmRhdGEudGVzdCAhPT0gImNoZWNrQ2xpZW50SXNVbmNvbnRy
b2xsZWQiKSB7CiAgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJl
Y2VpdmVkIHVuZXhwZWN0ZWQgbWVzc2FnZSBmcm9tIGNsaWVudCIpOwogICAgICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0
Y2hBbGwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDljYjQzOWM0ZDJhNjNmOTE2OWRlOWIyNzgx
ZGJlMDQ3ZThhYWEyNmYuLjA4MDcxNTI2YjlhODU4Y2JkMTg5NmIzMmVkMDJkNDFhM2UwZmYyYTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRj
aEFsbC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw1IEBACiAKIFBBU1MgU2V0dXAgd29y
a2VyCitQQVNTIFRlc3Qgc2VsZi5jbGllbnRzLm1hdGNoQWxsIGNyZWF0ZSBuZXcgY2xpZW50IG9i
amVjdCBldmVyeSB0aW1lCiBQQVNTIFRlc3Qgc2VsZi5jbGllbnRzLm1hdGNoQWxsCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3Jr
ZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5odG1sCmlu
ZGV4IDY5YjVmMjg5MDE2ZmU0ODAxYmUxYWE5MDEyYjVkYjllNmRiNDZmYTAuLjE5ODcxN2ZjNTU3
ODFlYTZjNjBiOGZlZDk1NzExYjdjYTRiNTg1YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0
dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbApAQCAtMjYsNiArMjYsMTggQEAg
cHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgfSk7CiB9LCAiU2V0dXAgd29ya2Vy
Iik7CiAKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIHZhciBwcm9taXNlID0g
bmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgdGVzdC5zdGVwX2Z1bmMoKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGV2ZW50LmRhdGEsICJQQVNTIik7
CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pKTsKKyAgICB9KTsKKworICAgIGFj
dGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7dGVzdDogImNoZWNrTmV3Q2xpZW50T2JqZWN0In0pOwor
ICAgIGF3YWl0IHByb21pc2U7Cit9LCAiVGVzdCBzZWxmLmNsaWVudHMubWF0Y2hBbGwgY3JlYXRl
IG5ldyBjbGllbnQgb2JqZWN0IGV2ZXJ5IHRpbWUiKTsKKwogcHJvbWlzZV90ZXN0KGFzeW5jICh0
ZXN0KSA9PiB7CiAgICAgY29uc3Qgc2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgPSBpbnRl
cm5hbHMuc2VydmljZVdvcmtlckNsaWVudEludGVybmFsSWRlbnRpZmllcihkb2N1bWVudCk7CiAg
ICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455842</attachid>
            <date>2022-03-26 06:11:33 -0700</date>
            <delta_ts>2022-03-26 10:36:19 -0700</delta_ts>
            <desc>Rebasing</desc>
            <filename>bug-238319-20220326141130.patch</filename>
            <type>text/plain</type>
            <size>67155</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ3ZjIwNGU5YmM0NTc0YzQyMjQ1NzE2
MWE1MGI2NTEwYzgzNmNiNWUuLmZhMWFlYjNmOGMyNzZlYWIxMzY3NzQyY2Y3ZGU0ZDRlMjg1ZTc1
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDMtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2VyV2luZG93Q2xp
ZW50LmZvY3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzgzMTkKKyAgICAgICAgPHJkYXI6Ly85MDYxNjQ5MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBCcmFkeSBFaWRzb24uCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZl
cmVuY2VzSW50ZXJuYWwueWFtbDoKKwogMjAyMi0wMy0yNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBTdHJpbmdWaWV3OjpzcGxpdCgpIGluc3RlYWQgb2Yg
U3RyaW5nOjpzcGxpdCgpIGluIG1vcmUgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRkNDA1N2Y0ODAy
NzFkZDg3NjBlODA2ZGZmMDk1OWY1N2Q2MTgxMC4uYTFkNDZkZTBlYmYyOWNkOTg0MTY5YThhZGQz
MjA4ZGU1NTdjMmIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIyLTAzLTI2ICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU2Vy
dmljZVdvcmtlcldpbmRvd0NsaWVudC5mb2N1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzE5CisgICAgICAgIDxyZGFyOi8vOTA2MTY0OTA+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBzZXJ2aWNlIHdvcmtlciBmb2N1czoKKyAgICAgICAgLSBJbXBsZW1lbnQgdXNlciBnZXN0
dXJlIHJlcXVpcmVtZW50IGJ5IGludHJvZHVjaW5nIGEgZmxhZyBpbiBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUgdGhhdCBpcyB0dXJuZWQgb24gZm9yIHNvbWUgdGltZQorICAgICAgICAgIHdoZW4g
cmVjZWl2aW5nIHNwZWNpZmljIGV2ZW50cyBsaWtlIG5vdGlmaWNhdGlvbiBjbGljayBldmVudC4g
VGhlIG1heCB0aW1lIGlzIGN1cnJlbnRseSBzZXQgdG8gMiBzZWNvbmRzLgorICAgICAgICAgIFdl
IG1pZ2h0IHdhbnQgdG8gaW1wcm92ZSBoYW5kbGluZyBvZiB1c2VyIGFjdGl2YXRpb24gaW4gbm9u
LWRvY3VtZW50IGNvbnRleHRzIGJ1dCB0aGlzIGlzIGEgZnV6enkgYXJlYSByaWdodCBub3cgc28g
YSBzZXJ2aWNlIHdvcmtlcgorICAgICAgICAgIHNvbHV0aW9uIHNlZW1zIGdvb2QgZm9yIG5vdy4K
KyAgICAgICAgLSBSZW1vdmUgdGhlIG1hcCBvZiBzZXJ2aWNlIHdvcmtlciBjbGllbnQgc2luY2Ug
d2UgbmVlZCB0byBjcmVhdGUgbmV3IG9uZXMgZXZlcnkgdGltZS4KKyAgICAgICAgLSBmb2N1cyB3
aWxsIGdvIGl0cyBjb250ZXh0IG1hbmFnZXIgdGhhdCB3aWxsIHNlbmQgYW4gSVBDIG1lc3NhZ2Ug
dG8gdGhlIG5ldHdvcmsgcHJvY2VzcyB0byBhY3R1YWxseSB0cmlnZ2VyIGZvY3VzLgorICAgICAg
ICBXZSBhcmUgbWlzc2luZyBmb2N1c2VkIGNoZWNrIGF0IHByb21pc2UgcmVzb2x1dGlvbiwgdGhp
cyB3aWxsIGJlIGRvbmUgaW4gYSBmb2xsb3ctdXAuCisKKyAgICAgICAgQ292ZXJlZCBieSBBUEkg
dGVzdC4KKworICAgICAgICAqIHRlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5jcHA6Cisg
ICAgICAgICogdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmg6CisgICAgICAgICogdGVz
dGluZy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50cy5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnRzLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVu
dC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
LmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2Vy
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorCiAy
MDIyLTAzLTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2lt
cGxpZnkgLyBPcHRpbWl6ZSBKU05vZGVPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA2ZWRkMTJmZDgwOTUxYjk4OWIzMTY4M2JkYzRjMWEyN2YyMTRlOGZjLi5h
ZGJjYTg4MmQ2Yjk1Y2I2MjY1ODUzN2U5NDUyMDZjZDkzOTFjMzQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM2IEBACisyMDIyLTAzLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5mb2N1cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzE5CisgICAg
ICAgIDxyZGFyOi8vOTA2MTY0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29u
LgorCisgICAgICAgIFN1cHBvcnQgbmV3IElQQyBtZXNzYWdlIGZsb3cgdG8gZm9jdXMgZnJvbSBh
IHNlcnZpY2Ugd29ya2VyIHRvIG5ldHdvcmsgcHJvY2VzcyB0byBzZXJ2aWNlIHdvcmtlciBjbGll
bnQgcHJvY2VzcyB0byBVSVByb2Nlc3MuCisgICAgICAgIEludHJvZHVjZSBhIG5ldyBkZWxlZ2F0
ZSBfZm9jdXNXZWJWaWV3RnJvbVNlcnZpY2VXb3JrZXIgYXMgdGhlIHNjb3BlIGlzIHNwZWNpZmlj
IHRvIHNlcnZpY2Ugd29ya2VyIGFuZCB1c2FnZSBpcyBkaWZmZXJlbnQgZnJvbSBleGlzdGluZyBf
Zm9jdXNXZWJWaWV3IGFuZCBvdGhlciBkZWxlZ2F0ZXMuCisKKyAgICAgICAgVGhlIG92ZXJhbGwg
ZmxvdyBpcyBsaWtlIHRoaXM6CisgICAgICAgIC0gU2VydmljZVdvcmtlciBwcm9jZXNzIHRvIE5l
dHdvcmtQcm9jZXNzIHRvIENsaWVudCBXZWJQcm9jZXNzIHByb2Nlc3MgdG8gVUlQcm9jZXNzIChk
byB0aGUgYWN0dWFsIGZvY3VzKSB0byBOZXR3b3JrUHJvY2VzcyB0byBTZXJ2aWNlV29ya2VyIHBy
b2Nlc3MKKyAgICAgICAgV2UgbWlnaHQgd2FudCB0byBkaXJlY3RseSBnbyBmcm9tIE5ldHdvcmtQ
cm9jZXNzIHRvIFVJUHJvY2VzcyBidXQgd2UgbmVlZCB0byBoYW5kbGUgcG90ZW50aWFsIHJhY2Ug
Y29uZGl0aW9ucyBpbiB0aGF0IGNhc2UuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorCiAyMDIyLTAzLTI1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlbXBvcmFyaWx5IGRpc2FibGUg
YXNzZXJ0aW9uIGluIE1lc3NhZ2VSZWNlaXZlUXVldWVNYXA6OmFkZEltcGwoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwu
eWFtbCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWwKaW5kZXggNjJiYmJkZmQ3NzhiMWUxNWJkOGIyMjgzNTY2ZDljY2UwMGY1Y2Q2NS4u
ZWQ1YjgyM2U2ZDNkNTEzZjkzMDI2ZjNlMTkxYzg1MDJkNWJjYzUxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAor
KysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5h
bC55YW1sCkBAIC04NDMsNiArODQzLDE5IEBAIFNlcnZpY2VXb3JrZXJzRW5hYmxlZDoKICAgICBX
ZWJDb3JlOgogICAgICAgZGVmYXVsdDogZmFsc2UKIAorU2VydmljZVdvcmtlcnNVc2VyR2VzdHVy
ZUVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJWYWxpZGF0ZSBV
c2VyR2VzdHVyZSByZXF1aXJlbWVudHMgaW4gU2VydmljZSBXb3JrZXJzIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJWYWxpZGF0ZSBVc2VyR2VzdHVyZSByZXF1aXJlbWVudHMgaW4gU2Vy
dmljZSBXb3JrZXJzIgorICBjb25kaXRpb246IEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyAgZGVm
YXVsdFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogdHJ1ZQorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0
OiB0cnVlCisKIFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkOgogICB0eXBlOiBib29sCiAgIHdlYmNv
cmVPbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50ZXJuYWxzLmNwcAppbmRleCBlYzAwNjc5
YzAxZmYyMDY5NjI4Y2Q4NzZkZTc5NTI0Yjk3MzlkNzg5Li5mNGVjMjFlMzgwNGVjNWYxNzlmNmY4
NjI0NmQ4YzkwNzEzYTVlZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1Nl
cnZpY2VXb3JrZXJJbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2Vy
dmljZVdvcmtlckludGVybmFscy5jcHAKQEAgLTM0LDE0ICszNCwxNiBAQAogI2luY2x1ZGUgIlB1
c2hTdWJzY3JpcHRpb25EYXRhLmgiCiAjaW5jbHVkZSAiU1dDb250ZXh0TWFuYWdlci5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnQuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5j
bHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlcnZpY2VX
b3JrZXJJbnRlcm5hbHM6OlNlcnZpY2VXb3JrZXJJbnRlcm5hbHMoU2VydmljZVdvcmtlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKK1NlcnZpY2VXb3JrZXJJbnRlcm5hbHM6OlNlcnZpY2VXb3JrZXJJ
bnRlcm5hbHMoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVy
KQogeworICAgIGdsb2JhbFNjb3BlLnNldElzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlRm9yVGVzdGlu
Zyh0cnVlKTsKIH0KIAogU2VydmljZVdvcmtlckludGVybmFsczo6flNlcnZpY2VXb3JrZXJJbnRl
cm5hbHMoKSA9IGRlZmF1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1Nl
cnZpY2VXb3JrZXJJbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdv
cmtlckludGVybmFscy5oCmluZGV4IDdiZTM3OTgzZTEwODQyOWU5MmZkYzE5MWI0MjNmYjJmNTU4
YzI3OGMuLmZmODYyMmUyY2U1NWFkMmUyMzMxOGNkYzFkMGI0OGFmN2M1OGY1Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvU2VydmljZVdvcmtlckludGVybmFscy5oCkBAIC00MCwx
MyArNDAsMTQgQEAgY2xhc3MgRmV0Y2hFdmVudDsKIGNsYXNzIEZldGNoUmVzcG9uc2U7CiBjbGFz
cyBQdXNoU3Vic2NyaXB0aW9uOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKK2NsYXNz
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKIGNsYXNzIFNlcnZpY2VXb3JrZXJDbGllbnQ7CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAog
Y2xhc3MgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgU2VydmljZVdvcmtlckludGVybmFscyA6
IHB1YmxpYyBSZWZDb3VudGVkPFNlcnZpY2VXb3JrZXJJbnRlcm5hbHM+LCBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8U2VydmljZVdvcmtlckludGVybmFscz4gewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8U2VydmljZVdvcmtlckludGVybmFscz4gY3JlYXRlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlckludGVybmFs
cyB7IGlkZW50aWZpZXIgfSk7IH0KKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJJbnRlcm5h
bHM+IGNyZWF0ZShTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZp
Y2VXb3JrZXJJbnRlcm5hbHMgeyBnbG9iYWxTY29wZSwgaWRlbnRpZmllciB9KTsgfQogICAgIH5T
ZXJ2aWNlV29ya2VySW50ZXJuYWxzKCk7CiAKICAgICB2b2lkIHNldE9ubGluZShib29sIGlzT25s
aW5lKTsKQEAgLTc2LDcgKzc3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXNJbnNwZWN0ZWQo
Ym9vbCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckludGVybmFscyhT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgU2VydmljZVdvcmtlckludGVybmFscyhTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUmVmUHRyPERlZmVycmVk
UHJvbWlzZT4gbV9sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZFByb21pc2U7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL2pzL1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKaW5kZXggNmI1
OTFmYzc5NGVmZGYzYTU3OTg1NzI3MGYxYzE2Zjc5Y2Q1ZTdjMi4uMWJkNjI3MjIzYmQ3MDJiMTkw
ZDc0YzAwNmM4MTUyZjExMGUyZGMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
anMvV2ViQ29yZVRlc3RTdXBwb3J0LmNwcApAQCAtMjI4LDcgKzIyOCw3IEBAIHZvaWQgc2V0dXBO
ZXdseUNyZWF0ZWRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KQogICAgICAgICBhdXRvJiB2bSA9IGdsb2JhbE9iamVjdC52bSgpOwogICAgICAgICBKU0xvY2tI
b2xkZXIgbG9ja2VyKHZtKTsKICAgICAgICAgYXV0byogY29udGV4dFdyYXBwZXIgPSBzY3JpcHQt
Pmdsb2JhbFNjb3BlV3JhcHBlcigpOwotICAgICAgICBjb250ZXh0V3JhcHBlci0+cHV0RGlyZWN0
KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCBJbnRlcm5hbHM6OmludGVybmFsc0lkKSwg
dG9KUygmZ2xvYmFsT2JqZWN0LCBjb250ZXh0V3JhcHBlciwgU2VydmljZVdvcmtlckludGVybmFs
czo6Y3JlYXRlKGlkZW50aWZpZXIpKSk7CisgICAgICAgIGNvbnRleHRXcmFwcGVyLT5wdXREaXJl
Y3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sIEludGVybmFsczo6aW50ZXJuYWxzSWQp
LCB0b0pTKCZnbG9iYWxPYmplY3QsIGNvbnRleHRXcmFwcGVyLCBTZXJ2aWNlV29ya2VySW50ZXJu
YWxzOjpjcmVhdGUoZ2xvYmFsU2NvcGUsIGlkZW50aWZpZXIpKSk7CiAgICAgfSk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKaW5k
ZXggODY3MmQwM2JjY2FlZjc2MWNkNDE5ZGVmZWY3OWExODllYjY0ZDcxYy4uZTJkNzYxZjJiYzFi
OTg3ZGQyNTJmYmI5YTY3YTdiNGY5MzA5ZDM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcApAQCAtMzksMTQgKzM5
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2VydmljZVdvcmtlckNsaWVudD4g
U2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCitSZWY8U2VydmljZVdv
cmtlckNsaWVudD4gU2VydmljZVdvcmtlckNsaWVudDo6Y3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQogewotICAg
IGlmIChhdXRvKiBjbGllbnQgPSBjb250ZXh0LnNlcnZpY2VXb3JrZXJDbGllbnQoZGF0YS5pZGVu
dGlmaWVyKSkgewotICAgICAgICAvLyBUZW1wb3JhcnkgZml4IHVudGlsIHdlIHJlbW92ZSByZXVz
aW5nIG9mIHNhbWUgU2VydmljZVdvcmtlckNsaWVudCBvYmplY3RzLgotICAgICAgICBjbGllbnQt
Pm1fZGF0YSA9IFdURk1vdmUoZGF0YSk7Ci0gICAgICAgIHJldHVybiAqY2xpZW50OwotICAgIH0K
LQogICAgIGlmIChkYXRhLnR5cGUgPT0gU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldpbmRvdykK
ICAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNyZWF0ZShjb250ZXh0
LCBXVEZNb3ZlKGRhdGEpKTsKIApAQCAtNTcsMTMgKzUxLDEwIEBAIFNlcnZpY2VXb3JrZXJDbGll
bnQ6OlNlcnZpY2VXb3JrZXJDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0
LCBTZXJ2CiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKICAgICAs
IG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogewotICAgIGNvbnRleHQuYWRkU2VydmljZVdvcmtlckNs
aWVudCgqdGhpcyk7CiB9CiAKIFNlcnZpY2VXb3JrZXJDbGllbnQ6On5TZXJ2aWNlV29ya2VyQ2xp
ZW50KCkKIHsKLSAgICBpZiAoYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKLSAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCku
cmVtb3ZlU2VydmljZVdvcmtlckNsaWVudCgqdGhpcyk7CiB9CiAKIGNvbnN0IFVSTCYgU2Vydmlj
ZVdvcmtlckNsaWVudDo6dXJsKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oCmluZGV4IDk3NmI5NzAxMDNkNDIwNzQ4
ODEwMWVlMzY2MDkwYWM4OWMxNWVhNDQuLjIwODA3MTMwNDgyNzBmZjRkNmVhMzUzY2RmM2NkNmI3
NTBkMDRlYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDbGllbnQuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcg
VHlwZSA9IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOwogICAgIHVzaW5nIEZyYW1lVHlwZSA9IFNl
cnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGU7CiAKLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3Jr
ZXJDbGllbnQ+IGdldE9yQ3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYpOworICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudD4g
Y3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYpOwogCiAgICAgflNlcnZpY2VXb3JrZXJDbGllbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAppbmRl
eCA5NmFhN2I5MDM3NWJjYmFlNDFiMjhiZWE3YTVkYTgyMzkxZDU2OGY5Li44NWUxMDgzZDdkNDE2
ZmY0ZmViOGIwZWI4MGMwMGVkYzMzNjQ4Y2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaApAQCAtNTMsNyAr
NTMsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGEgewogICAgIFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0ICY7CiAgICAgU2VydmljZVdvcmtlckNs
aWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgJiY7CiAKLSAgICBzdGF0aWMgU2VydmljZVdvcmtlckNs
aWVudERhdGEgZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5j
cHAKaW5kZXggOTVkNDAzNDA0OTM0NTYzMjNjMzQ1ZWNmM2RjYTdiYjY4MmY0YzIwNS4uZTI5OTE4
OTcxYTUwMWJiN2Q1NjE2ODI1Y2ZmMWYxZTFhZDJjNjM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCkBAIC00
NSwyMSArNDUsMTggQEAgc3RhdGljIGlubGluZSB2b2lkIGRpZEZpbmlzaEdldFJlcXVlc3QoU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRGVmZXJyZWQKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHByb21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNs
aWVudD4+KFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKCpj
bGllbnREYXRhKSkpOworICAgIHByb21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdv
cmtlckNsaWVudD4+KFNlcnZpY2VXb3JrZXJDbGllbnQ6OmNyZWF0ZShzY29wZSwgV1RGTW92ZSgq
Y2xpZW50RGF0YSkpKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Z2V0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
ID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KS50aHJlYWQoKS5p
ZGVudGlmaWVyKCk7CiAKLSAgICBhdXRvIHByb21pc2VQb2ludGVyID0gcHJvbWlzZS5wdHIoKTsK
LSAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQocHJvbWlzZVBvaW50ZXIsIFdURk1vdmUocHJvbWlz
ZSkpOwotCi0gICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBpZCA9IGlkLmlzb2xhdGVkQ29weSgpXSAoKSB7CisgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvbWlzZUlkZW50aWZpZXIgPSBhZGRQZW5kaW5nUHJvbWlzZShXVEZNb3ZlKHBy
b21pc2UpKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGlkID0gaWQuaXNvbGF0ZWRDb3B5KCld
ICgpIHsKICAgICAgICAgYXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xl
dG9uKCkuY29ubmVjdGlvbigpOwotICAgICAgICBjb25uZWN0aW9uLT5maW5kQ2xpZW50QnlWaXNp
YmxlSWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgaWQsIFtwcm9taXNlUG9pbnRl
ciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdIChhdXRvJiYgY2xpZW50RGF0YSkgewotICAgICAg
ICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3Jr
ZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgZGF0YSA9IGNyb3Nz
VGhyZWFkQ29weShXVEZNb3ZlKGNsaWVudERhdGEpKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUg
ewotICAgICAgICAgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBjb250ZXh0LmNsaWVudHMoKS5t
X3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VQb2ludGVyKSkKKyAgICAgICAgY29ubmVjdGlv
bi0+ZmluZENsaWVudEJ5VmlzaWJsZUlkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IGlkLCBbcHJvbWlzZUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXSAoYXV0byYm
IGNsaWVudERhdGEpIHsKKyAgICAgICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigp
LnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlz
ZUlkZW50aWZpZXIsIGRhdGEgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShjbGllbnREYXRhKSld
IChhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBwcm9t
aXNlID0gY29udGV4dC5jbGllbnRzKCkudGFrZVBlbmRpbmdQcm9taXNlKHByb21pc2VJZGVudGlm
aWVyKSkKICAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoR2V0UmVxdWVzdChjb250ZXh0LCAq
cHJvbWlzZSwgV1RGTW92ZShkYXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBA
IC03MCw3ICs2Nyw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6OmdldChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGlkCiBzdGF0aWMgaW5saW5lIHZv
aWQgbWF0Y2hBbGxDb21wbGV0ZWQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRGVm
ZXJyZWRQcm9taXNlJiBwcm9taXNlLCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYg
Y2xpZW50c0RhdGEpCiB7CiAgICAgYXV0byBjbGllbnRzID0gV1RGOjptYXAoY2xpZW50c0RhdGEs
IFsmXSAoYXV0byYmIGNsaWVudERhdGEpIHsKLSAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJD
bGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKGNsaWVudERhdGEpKTsKKyAgICAgICAg
cmV0dXJuIFNlcnZpY2VXb3JrZXJDbGllbnQ6OmNyZWF0ZShzY29wZSwgV1RGTW92ZShjbGllbnRE
YXRhKSk7CiAgICAgfSk7CiAgICAgc3RkOjpzb3J0KGNsaWVudHMuYmVnaW4oKSwgY2xpZW50cy5l
bmQoKSwgWyZdIChhdXRvJiBhLCBhdXRvJiBiKSB7CiAgICAgICAgIHJldHVybiBhLT5kYXRhKCku
Zm9jdXNPcmRlciA+IGItPmRhdGEoKS5mb2N1c09yZGVyOwpAQCAtODAsMTYgKzc3LDEzIEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCBtYXRjaEFsbENvbXBsZXRlZChTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUmIHNjb3BlLCBEZWZlcnJlZFByCiAKIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6Om1hdGNo
QWxsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IENsaWVudFF1ZXJ5T3B0
aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGF1
dG8gcHJvbWlzZVBvaW50ZXIgPSBwcm9taXNlLnB0cigpOwotICAgIG1fcGVuZGluZ1Byb21pc2Vz
LmFkZChwcm9taXNlUG9pbnRlciwgV1RGTW92ZShwcm9taXNlKSk7Ci0KICAgICBhdXRvIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KS50aHJlYWQoKS5pZGVudGlmaWVyKCk7CiAKLSAgICBjYWxsT25NYWluVGhyZWFkKFtw
cm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG9wdGlvbnNdICgpIG11dGFi
bGUgeworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb21pc2VJZGVudGlmaWVyID0gYWRkUGVuZGlu
Z1Byb21pc2UoV1RGTW92ZShwcm9taXNlKSksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBvcHRp
b25zXSAoKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFu
YWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpOwotICAgICAgICBjb25uZWN0aW9uLT5tYXRj
aEFsbChzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9ucywgW3Byb21pc2VQb2ludGVyLCBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKGF1dG8mJiBjbGllbnRzRGF0YSkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2Vydmlj
ZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBjbGllbnRz
RGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGNsaWVudHNEYXRhKSldIChhdXRvJiBzY29w
ZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHNjb3BlLmNs
aWVudHMoKS5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VQb2ludGVyKSkKKyAgICAgICAg
Y29ubmVjdGlvbi0+bWF0Y2hBbGwoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG9wdGlvbnMsIFtw
cm9taXNlSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdIChhdXRvJiYgY2xpZW50
c0RhdGEpIG11dGFibGUgeworICAgICAgICAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9t
aXNlSWRlbnRpZmllciwgY2xpZW50c0RhdGEgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShjbGll
bnRzRGF0YSkpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChh
dXRvIHByb21pc2UgPSBzY29wZS5jbGllbnRzKCkudGFrZVBlbmRpbmdQcm9taXNlKHByb21pc2VJ
ZGVudGlmaWVyKSkKICAgICAgICAgICAgICAgICAgICAgbWF0Y2hBbGxDb21wbGV0ZWQoc2NvcGUs
ICpwcm9taXNlLCBXVEZNb3ZlKGNsaWVudHNEYXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CkBAIC0xMDQsMTggKzk4LDEzIEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6Om9w
ZW5XaW5kb3coU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsCiAKIHZv
aWQgU2VydmljZVdvcmtlckNsaWVudHM6OmNsYWltKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBhdXRvJiBzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KGNvbnRleHQpOwotCi0gICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS50aHJlYWQoKS5pZGVudGlmaWVyKCk7Ci0KLSAgICBhdXRvIHByb21p
c2VQb2ludGVyID0gcHJvbWlzZS5wdHIoKTsKLSAgICBtX3BlbmRpbmdQcm9taXNlcy5hZGQocHJv
bWlzZVBvaW50ZXIsIFdURk1vdmUocHJvbWlzZSkpOworICAgIGF1dG8gc2VydmljZVdvcmtlcklk
ZW50aWZpZXIgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnRo
cmVhZCgpLmlkZW50aWZpZXIoKTsKIAotICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb21pc2VQb2lu
dGVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0gKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFp
blRocmVhZChbcHJvbWlzZUlkZW50aWZpZXIgPSBhZGRQZW5kaW5nUHJvbWlzZShXVEZNb3ZlKHBy
b21pc2UpKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdICgpIG11dGFibGUgewogICAgICAgICBh
dXRvIGNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9u
KCk7Ci0gICAgICAgIGNvbm5lY3Rpb24tPmNsYWltKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBb
cHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyXShhdXRvJiYgcmVzdWx0KSBt
dXRhYmxlIHsKLSAgICAgICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RU
YXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50
ZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29w
ZSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gcHJvbWlzZSA9IHNjb3BlLmNs
aWVudHMoKS5tX3BlbmRpbmdQcm9taXNlcy50YWtlKHByb21pc2VQb2ludGVyKSkgeworICAgICAg
ICBjb25uZWN0aW9uLT5jbGFpbShzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VJZGVu
dGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcl0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2Vy
dmljZVdvcmtlcihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VJZGVudGlmaWVyLCBy
ZXN1bHQgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShyZXN1bHQpKV0oYXV0byYgc2NvcGUpIG11
dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBzY29wZS5jbGllbnRz
KCkudGFrZVBlbmRpbmdQcm9taXNlKHByb21pc2VJZGVudGlmaWVyKSkgewogICAgICAgICAgICAg
ICAgICAgICBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4gcGVuZGluZ1Byb21pc2UgeyBwcm9taXNl
LnJlbGVhc2VOb25OdWxsKCkgfTsKICAgICAgICAgICAgICAgICAgICAgcGVuZGluZ1Byb21pc2Uu
c2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTI0LDYgKzEx
MywxOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpjbGFpbShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0LCBSZWY8RGVmZXJyZWRQcgogICAgIH0pOwogfQogCitTZXJ2aWNlV29y
a2VyQ2xpZW50czo6UHJvbWlzZUlkZW50aWZpZXIgU2VydmljZVdvcmtlckNsaWVudHM6OmFkZFBl
bmRpbmdQcm9taXNlKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3sKKyAgICBhdXRv
IGlkZW50aWZpZXIgPSBQcm9taXNlSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Cisg
ICAgbV9wZW5kaW5nUHJvbWlzZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUocHJvbWlzZSkpOwor
ICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiBTZXJ2
aWNlV29ya2VyQ2xpZW50czo6dGFrZVBlbmRpbmdQcm9taXNlKFByb21pc2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit7CisgICAgcmV0dXJuIG1fcGVuZGluZ1Byb21pc2VzLnRha2UoaWRlbnRpZmll
cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDbGllbnRzLmgKaW5kZXggZTAxOTVmNDY4NDMyN2NjMTJiMTAzY2Q0N2E5N2Q4
MzdiODY4ZDdhMC4uMjQ1NjdhNjk3ODgzMWRmMmVmMjRiZWEwMzU2ZjM0YmYzMTA4MzZkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnRzLmgKQEAgLTU0LDEwICs1NCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBvcGVuV2luZG93
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJik7CiAgICAgdm9pZCBjbGFpbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CiAKKyAgICBlbnVtIFByb21pc2VJZGVudGlmaWVyVHlwZSB7
IH07CisgICAgdXNpbmcgUHJvbWlzZUlkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFByb21p
c2VJZGVudGlmaWVyVHlwZT47CisKKyAgICBQcm9taXNlSWRlbnRpZmllciBhZGRQZW5kaW5nUHJv
bWlzZShSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKKyAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNl
PiB0YWtlUGVuZGluZ1Byb21pc2UoUHJvbWlzZUlkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAg
IFNlcnZpY2VXb3JrZXJDbGllbnRzKCkgPSBkZWZhdWx0OwogCi0gICAgSGFzaE1hcDxEZWZlcnJl
ZFByb21pc2UqLCBSZWY8RGVmZXJyZWRQcm9taXNlPj4gbV9wZW5kaW5nUHJvbWlzZXM7CisgICAg
SGFzaE1hcDxQcm9taXNlSWRlbnRpZmllciwgUmVmPERlZmVycmVkUHJvbWlzZT4+IG1fcGVuZGlu
Z1Byb21pc2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmNwcAppbmRleCBlMDY5ZDI0MzQzNmRlN2JjNzQzZjJlZmE0YzM5ODYwOGRiY2JlNzk1Li4yNWFh
ZjY3ODU5NGQyOTYwNzNhMzY5ZGQ2YWRlZGY3ODIxMjZlYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
LmNwcApAQCAtNjgsNiArNjgsNyBAQCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OlNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmJiBjbwogICAgICwgbV9j
bGllbnRzKFNlcnZpY2VXb3JrZXJDbGllbnRzOjpjcmVhdGUoKSkKICAgICAsIG1fc2Vzc2lvbklE
KHNlc3Npb25JRCkKICAgICAsIG1fbm90aWZpY2F0aW9uQ2xpZW50KFdURk1vdmUobm90aWZpY2F0
aW9uQ2xpZW50KSkKKyAgICAsIG1fdXNlckdlc3R1cmVUaW1lcigqdGhpcywgJlNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZTo6cmVzZXRVc2VyR2VzdHVyZSkKIHsKIH0KIApAQCAtMTM0LDIzICsxMzUs
NiBAQCBTZXJ2aWNlV29ya2VyVGhyZWFkJiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnRocmVh
ZCgpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNlcnZpY2VXb3JrZXJUaHJlYWQmPihXb3JrZXJH
bG9iYWxTY29wZTo6dGhyZWFkKCkpOwogfQogCi1TZXJ2aWNlV29ya2VyQ2xpZW50KiBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGU6OnNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gbV9jbGllbnRNYXAuZ2V0
KGlkZW50aWZpZXIpOwotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6YWRkU2Vy
dmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50JiBjbGllbnQpCi17Ci0gICAgYXV0
byByZXN1bHQgPSBtX2NsaWVudE1hcC5hZGQoY2xpZW50LmlkZW50aWZpZXIoKSwgJmNsaWVudCk7
Ci0gICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKLX0KLQotdm9p
ZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnJlbW92ZVNlcnZpY2VXb3JrZXJDbGllbnQoU2Vy
dmljZVdvcmtlckNsaWVudCYgY2xpZW50KQotewotICAgIGF1dG8gaXNSZW1vdmVkID0gbV9jbGll
bnRNYXAucmVtb3ZlKGNsaWVudC5pZGVudGlmaWVyKCkpOwotICAgIEFTU0VSVF9VTlVTRUQoaXNS
ZW1vdmVkLCBpc1JlbW92ZWQpOwotfQotCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vU2Vydmlj
ZVdvcmtlci8jdXBkYXRlLXNlcnZpY2Utd29ya2VyLWV4dGVuZGVkLWV2ZW50cy1zZXQtYWxnb3Jp
dGhtCiB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6dXBkYXRlRXh0ZW5kZWRFdmVudHNT
ZXQoRXh0ZW5kYWJsZUV2ZW50KiBuZXdFdmVudCkKIHsKQEAgLTIyNCw2ICsyMDgsNyBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6cG9zdFRhc2tUb0ZpcmVOb3RpZmljYXRpb25FdmVu
dChOb3RpZmljYXRpb25FdmVudAogICAgICAgICAgICAgc3dpdGNoIChldmVudFR5cGUpIHsKICAg
ICAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uRXZlbnRUeXBlOjpDbGljazoKICAgICAgICAgICAg
ICAgICBldmVudE5hbWUgPSBldmVudE5hbWVzKCkubm90aWZpY2F0aW9uY2xpY2tFdmVudDsKKyAg
ICAgICAgICAgICAgICBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5y
ZWNvcmRVc2VyR2VzdHVyZSgpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Y2FzZSBOb3RpZmljYXRpb25FdmVudFR5cGU6OkNsb3NlOgogICAgICAgICAgICAgICAgIGV2ZW50
TmFtZSA9IGV2ZW50TmFtZXMoKS5ub3RpZmljYXRpb25jbG9zZUV2ZW50OwpAQCAtMjM3LDYgKzIy
MiwxMiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6cG9zdFRhc2tUb0ZpcmVOb3Rp
ZmljYXRpb25FdmVudChOb3RpZmljYXRpb25FdmVudAogfQogI2VuZGlmCiAKK3ZvaWQgU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlOjpyZWNvcmRVc2VyR2VzdHVyZSgpCit7CisgICAgbV9pc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSA9IHRydWU7CisgICAgbV91c2VyR2VzdHVyZVRpbWVyLnN0YXJ0T25l
U2hvdCh1c2VyR2VzdHVyZUxpZmV0aW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4
IGIwNWZhMzI4MjI3NWYzZTE1YjAxMjMwYjk3ZmU4NDM3YTY5MDhlMTkuLjk1MzgwYzM4YWU5NGVj
NTk3NTllOGI0ZWQ3MmIxNmZiZTM4NmJkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTY3LDEw
ICs2Nyw2IEBAIHB1YmxpYzoKIAogICAgIFNlcnZpY2VXb3JrZXJUaHJlYWQmIHRocmVhZCgpOwog
Ci0gICAgU2VydmljZVdvcmtlckNsaWVudCogc2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcik7Ci0gICAgdm9pZCBhZGRTZXJ2aWNlV29ya2VyQ2xpZW50
KFNlcnZpY2VXb3JrZXJDbGllbnQmKTsKLSAgICB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJDbGll
bnQoU2VydmljZVdvcmtlckNsaWVudCYpOwotCiAgICAgdm9pZCB1cGRhdGVFeHRlbmRlZEV2ZW50
c1NldChFeHRlbmRhYmxlRXZlbnQqIG5ld0V2ZW50ID0gbnVsbHB0cik7CiAKICAgICBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0KiBzY3JpcHRSZXNvdXJjZShj
b25zdCBVUkwmKSBjb25zdDsKQEAgLTkyLDYgKzg4LDExIEBAIHB1YmxpYzoKICAgICBib29sIGhh
c1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1BlbmRpbmdTaWxl
bnRQdXNoRXZlbnQ7IH0KICAgICB2b2lkIHNldEhhc1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQoYm9v
bCB2YWx1ZSkgeyBtX2hhc1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQgPSB2YWx1ZTsgfQogCisgICAg
Y29uc3RleHByIHN0YXRpYyBTZWNvbmRzIHVzZXJHZXN0dXJlTGlmZXRpbWUgIHsgMl9zIH07Cisg
ICAgYm9vbCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9j
ZXNzaW5nVXNlckdlc3R1cmU7IH0KKyAgICB2b2lkIHJlY29yZFVzZXJHZXN0dXJlKCk7CisgICAg
dm9pZCBzZXRJc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZUZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBt
X2lzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0gdmFsdWU7IH0KKwogcHJpdmF0ZToKICAgICBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYsIFNlcnZpY2VX
b3JrZXJEYXRhJiYsIGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYsIFNlcnZpY2VXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2lu
LCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKiwgc3RkOjp1
bmlxdWVfcHRyPE5vdGlmaWNhdGlvbkNsaWVudD4mJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZv
aWQgbm90aWZ5U2VydmljZVdvcmtlclBhZ2VPZkNyZWF0aW9uSWZOZWNlc3NhcnkoKTsKQEAgLTEw
MywxMSArMTA0LDEyIEBAIHByaXZhdGU6CiAKICAgICBzdGQ6Om9wdGlvbmFsPFBBTDo6U2Vzc2lv
bklEPiBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRDsgfQogCisg
ICAgdm9pZCByZXNldFVzZXJHZXN0dXJlKCkgeyBtX2lzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlID0g
ZmFsc2U7IH0KKwogICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBtX2NvbnRleHREYXRhOwog
ICAgIFJlZjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPiBtX3JlZ2lzdHJhdGlvbjsKICAgICBS
ZWY8U2VydmljZVdvcmtlcj4gbV9zZXJ2aWNlV29ya2VyOwogICAgIFJlZjxTZXJ2aWNlV29ya2Vy
Q2xpZW50cz4gbV9jbGllbnRzOwotICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnQqPiBtX2NsaWVudE1hcDsKICAgICBWZWN0b3I8
UmVmPEV4dGVuZGFibGVFdmVudD4+IG1fZXh0ZW5kZWRFdmVudHM7CiAKICAgICB1aW50NjRfdCBt
X2xhc3RSZXF1ZXN0SWRlbnRpZmllciB7IDAgfTsKQEAgLTExNSw2ICsxMTcsOCBAQCBwcml2YXRl
OgogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxO
b3RpZmljYXRpb25DbGllbnQ+IG1fbm90aWZpY2F0aW9uQ2xpZW50OwogICAgIGJvb2wgbV9oYXNQ
ZW5kaW5nU2lsZW50UHVzaEV2ZW50IHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUgeyBmYWxzZSB9OworICAgIFRpbWVyIG1fdXNlckdlc3R1cmVUaW1lcjsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAppbmRleCBk
MDgwYmQ2MTZiNWRlYTc0YzQxMjU1M2JhNTAyZmQ0ZWFlMGM4NjVkLi4yYTc4NjkwMzFiZTdjZDU4
NDYyYWM1N2VmMzVkY2Y0MjdjMGU0ZjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCkBAIC0y
OSw2ICsyOSwxMCBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCIKIAog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiSlNTZXJ2aWNlV29y
a2VyV2luZG93Q2xpZW50LmgiCisjaW5jbHVkZSAiU1dDb250ZXh0TWFuYWdlci5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRzLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclRocmVh
ZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM3LDEyICs0MSwzNiBAQCBTZXJ2aWNl
V29ya2VyV2luZG93Q2xpZW50OjpTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSYgYwogewogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6
OmZvY3VzKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtl
cldpbmRvd0NsaWVudDo6Zm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIHByb21pc2UtPnJlamVjdChFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIndpbmRvd0NsaWVudC5mb2N1cygpIGlzIG5vdCB5
ZXQgc3VwcG9ydGVkIl9zIH0pOworICAgIGF1dG8mIHNlcnZpY2VXb3JrZXJDb250ZXh0ID0gZG93
bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KTsKKworICAgIGlmIChjb250
ZXh0LnNldHRpbmdzVmFsdWVzKCkuc2VydmljZVdvcmtlcnNVc2VyR2VzdHVyZUVuYWJsZWQgJiYg
IXNlcnZpY2VXb3JrZXJDb250ZXh0LmlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIldpbmRv
d0NsaWVudCBmb2N1cyByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZSJfcyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGF1dG8gcHJvbWlzZUlkZW50aWZpZXIgPSBzZXJ2aWNlV29ya2Vy
Q29udGV4dC5jbGllbnRzKCkuYWRkUGVuZGluZ1Byb21pc2UoV1RGTW92ZShwcm9taXNlKSk7Cisg
ICAgY2FsbE9uTWFpblRocmVhZChbY2xpZW50SWRlbnRpZmllciA9IGlkZW50aWZpZXIoKSwgcHJv
bWlzZUlkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gc2VydmljZVdvcmtlckNv
bnRleHQudGhyZWFkKCkuaWRlbnRpZmllcigpXSgpIG11dGFibGUgeworICAgICAgICBTV0NvbnRl
eHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCktPmZvY3VzKGNsaWVudElkZW50aWZp
ZXIsIFtwcm9taXNlSWRlbnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXJdKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigp
LnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlz
ZUlkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShh
dXRvJiBzZXJ2aWNlV29ya2VyQ29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0
byBwcm9taXNlID0gc2VydmljZVdvcmtlckNvbnRleHQuY2xpZW50cygpLnRha2VQZW5kaW5nUHJv
bWlzZShwcm9taXNlSWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgaWYgKCFwcm9taXNlKQor
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTog
Q2hlY2sgaXNGb2N1c2VkIHN0YXRlIGFuZCByZWplY3QgaWYgbm90IGZvY3VzZWQuCisgICAgICAg
ICAgICAgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIldpbmRvd0NsaWVudCBmb2N1cyBmYWlsZWQiX3Mg
fSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBwcm9taXNlLT50ZW1wbGF0ZSByZXNvbHZlPElETEludGVyZmFjZTxTZXJ2
aWNlV29ya2VyV2luZG93Q2xpZW50Pj4oU2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6Y3JlYXRl
KHNlcnZpY2VXb3JrZXJDb250ZXh0LCBXVEZNb3ZlKCpyZXN1bHQpKSk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfSk7CisgICAgfSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudDo6bmF2aWdhdGUoY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6bmF2aWdhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCiB7CiAgICAgVU5VU0VEX1BBUkFNKHVybCk7CiAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAid2luZG93Q2xpZW50Lm5hdmlnYXRl
KCkgaXMgbm90IHlldCBzdXBwb3J0ZWQiX3MgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaAppbmRleCBh
NWNmZjdiMmM2YjJhZDM2M2E0Nzc2NGMxNjQ0YWE0YzRhNTVjMjcxLi4zMTE3NDJlOTIyZGZhNWJi
Yjc4MjllN2Q2NzgyMGEwMmFmYjg0YzczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKQEAgLTQ1LDgg
KzQ1LDggQEAgcHVibGljOgogICAgIFZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBj
b25zdCB7IHJldHVybiBkYXRhKCkuaXNWaXNpYmxlID8gVmlzaWJpbGl0eVN0YXRlOjpWaXNpYmxl
IDogVmlzaWJpbGl0eVN0YXRlOjpIaWRkZW47IH0KICAgICBib29sIGlzRm9jdXNlZCgpIGNvbnN0
IHsgcmV0dXJuIGRhdGEoKS5pc0ZvY3VzZWQ7IH0KIAotICAgIHZvaWQgZm9jdXMoUmVmPERlZmVy
cmVkUHJvbWlzZT4mJik7Ci0gICAgdm9pZCBuYXZpZ2F0ZShjb25zdCBTdHJpbmcmIHVybCwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBmb2N1cyhTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CisgICAgdm9pZCBuYXZpZ2F0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYpOwogCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVu
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRv
d0NsaWVudC5pZGwKaW5kZXggZmMxYzkxZWEyNGY2M2EyMTQwNGYyMzJlNDFlOTc3MTA4YTY4N2Fm
NC4uYzQ1OGRhNTc5OGNiZjJhYzBkNTk2MTM5MjUwZmQxNzYwMGVhOTAyNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2lu
ZG93Q2xpZW50LmlkbApAQCAtMzIsNiArMzIsNiBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBW
aXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlOwogICAgIFtJbXBsZW1lbnRlZEFzPWlzRm9j
dXNlZF0gcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gZm9jdXNlZDsKIAotICAgIFtOZXdPYmpl
Y3RdIFByb21pc2U8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4gZm9jdXMoKTsKLSAgICBbTmV3
T2JqZWN0XSBQcm9taXNlPFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ+IG5hdmlnYXRlKFVTVlN0
cmluZyB1cmwpOworICAgIFtOZXdPYmplY3QsIENhbGxXaXRoPUN1cnJlbnRTY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBQcm9taXNlPFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ+IGZvY3VzKCk7Cisg
ICAgW05ld09iamVjdCwgQ2FsbFdpdGg9Q3VycmVudFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIFBy
b21pc2U8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4gbmF2aWdhdGUoVVNWU3RyaW5nIHVybCk7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IGIyNzgzMjNmOTkyZDJkNjgyNjNiOTNlM2UyMDEz
ZmQxNDc5NzU5OTMuLmZjZjVlZTA5YzhhNTBkODJhNDFlNzgyODAzZTBjZGNiY2UzYjg4NjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmgKQEAgLTY4LDYgKzY4LDggQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIHZvaWQgbWF0Y2hBbGwoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2Fs
bGJhY2smJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xhaW0oU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYp
ID0gMDsKIAorICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYpID0gMDsKKwogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmFpbEhlYXJ0QmVhdENoZWNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRBc0luc3BlY3RlZChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgYm9vbCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDMwYTk4
MzUxMDRhOWE3MmQxNzM0MDljODZiZTAwMDM5YzUxMDY4YzYuLmI1Y2M4NmFjZDRiMzYyYWZlNWE2
Yjc2OTBkM2Q2MmI1ODg4MzZlZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0x
NTEsNyArMTUxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb1Bvc3RN
ZXNzYWdlKE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2EKICAgICAgICAgVVJMIHNvdXJj
ZVVSTDsKICAgICAgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSBzb3VyY2U7CiAgICAg
ICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihz
b3VyY2VEYXRhKSkgewotICAgICAgICAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNv
dXJjZUNsaWVudCA9IFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSwgV1RGTW92ZShzdGQ6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4o
c291cmNlRGF0YSkpKTsKKyAgICAgICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBz
b3VyY2VDbGllbnQgPSBTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUoc2VydmljZVdvcmtlckds
b2JhbFNjb3BlLCBXVEZNb3ZlKHN0ZDo6Z2V0PFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihzb3Vy
Y2VEYXRhKSkpOwogCiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVCghc291cmNlQ2xpZW50LT51
cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkgfHwgIXNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS0+dXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpIHx8IHByb3RvY29sSG9zdEFuZFBvcnRB
cmVFcXVhbChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPnVybCgpLCBzb3VyY2VDbGllbnQtPnVy
bCgpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuaAppbmRleCBjZWZlOGVjZTAzMDVmYTcyMDg0MTY3Njk2MWU5ZWFmMWQ3ZTUzN2ExLi42
ZGExNDVhYWI4NzdhYjhjNDk0NzI0MTFlZjFmOGYzYzY1MzVjNGIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC05MSw2ICs5MSw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFJlZ2lzdHJhdGlvblVwZGF0ZVZp
YUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudHNP
ZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5l
d0NvbnRyb2xsZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNTZXJ2
aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYp
PiYmKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRl
ZChTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggNjdjZWVmNTQ0ODRkNzUwNjg4MDAxMTUwYWU2NTg0
ZmI5M2FmM2UwOS4uNDUyYzY3MTEzODBmMTBkMDczOTcyNTI2ZTczMGYzMjYzOWI4YWZkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTY1OSw2ICs2NTksMTEg
QEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2kKICAgICBjYWxsYmFjayhyZWdpc3RyYXRpb24tPm5h
dmlnYXRpb25QcmVsb2FkU3RhdGUoKSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojpmb2N1c1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKT4mJiBjYWxsYmFjaykKK3sKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Rm9j
dXNTZXJ2aWNlV29ya2VyQ2xpZW50IHsgY2xpZW50SWRlbnRpZmllciB9LCBXVEZNb3ZlKGNhbGxi
YWNrKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgQ09OTkVDVElPTl9N
RVNTQUdFX0NIRUNLX0NPTVBMRVRJT04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aAppbmRleCBjYjY1YWUyZTI2MTRiYTU1ZmJmMjBhZTA4NTU5YjQxY2MxOGM0NjEwLi41M2U0MWM4
MmNjM2U1NDEzYzZiZDllZGE2YTk0NDBjZDNlZTVjZjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oCkBAIC04Myw2ICs4Myw4IEBAIHB1YmxpYzoKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4gY3JlYXRlRmV0Y2hUYXNrKE5ldHdvcmtSZXNv
dXJjZUxvYWRlciYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogICAgIHZvaWQg
ZmV0Y2hUYXNrVGltZWRPdXQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogCisg
ICAgdm9pZCBmb2N1c1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYpOworCiBwcml2YXRlOgogICAg
IC8vIEltcGxlbWVudCBTV1NlcnZlcjo6Q29ubmVjdGlvbiAoTWVzc2FnZXMgdG8gdGhlIGNsaWVu
dCBXZWJQcm9jZXNzKQogICAgIHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKSBmaW5h
bDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5j
cHAKaW5kZXggZTlhNWFmNDI3NTZiNDViZjMzZDRhNzcxY2Q0YjhhMTEwNGQ2MjczZC4uMDM2NzVh
ODQ0NDJlMzBhMzQzMWY3OWIyMzNlODFiN2UzOWMwMzU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTIxNyw2ICsyMTcsMTcg
QEAgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjp3ZWJQcm9jZXNzSWRlbnRpZmllcigKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndlYlBy
b2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpmb2N1cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudERhdGE+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8qIHNlcnZlciA9
IHRoaXMtPnNlcnZlcigpOworICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBzZXJ2ZXIgPyBzZXJ2ZXIt
PmNvbm5lY3Rpb24oY2xpZW50SWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpKSA6IG51bGxw
dHI7CisgICAgaWYgKCFjb25uZWN0aW9uKSB7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgY29ubmVjdGlvbi0+Zm9jdXNTZXJ2aWNlV29ya2VyQ2xp
ZW50KGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYmU5NjE1
MjhkYjJmYTBmYmRjMDk4NTZhZmNmMWUxNDhkMzY1YTAyYS4uMDNkOTM2Y2NkMzJhZDY4MWNjYTY0
ZmE4M2FhNWI1OTY3ZDBlMTU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaApAQCAtOTgsNiArOTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mKSBmaW5hbDsKICAgICB2b2lkIGZp
cmVQdXNoRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpIGZpbmFsOwogICAgIHZvaWQgY2xvc2UoKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYm
KTsKIAogICAgIHZvaWQgY29ubmVjdGlvbklzTm9Mb25nZXJOZWVkZWQoKSBmaW5hbDsKICAgICB2
b2lkIHRlcm1pbmF0ZUR1ZVRvVW5yZXNwb25zaXZlbmVzcygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KaW5kZXggMDc4YjZlYTMwYjkxN2E3N2E3NjJhMGJkYmMwMjc2OTQ5YjNhYjk4Ny4uM2U3NzU4
NTIzNzk1MDI1ZjkxYjdmMDA4ZDExOGEwMjQxNmM5MWJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0zNSw2ICszNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
biBOb3RSZWZDb3VudGVkIHsKICAgICBGaW5kQ2xpZW50QnlWaXNpYmxlSWRlbnRpZmllcihXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU3Ry
aW5nIGNsaWVudElkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPiBkYXRhKQogICAgIE1hdGNoQWxsKHVpbnQ2NF90IG1hdGNoQWxsUmVx
dWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5
T3B0aW9ucyBvcHRpb25zKTsKICAgICBDbGFpbShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4gcmVzdWx0KQorICAgIEZvY3VzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKSAtPiAoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gcmVzdWx0KQogICAg
IFNldFNjcmlwdFJlc291cmNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFVSTCBzY3JpcHRVUkwsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6
SW1wb3J0ZWRTY3JpcHQgc2NyaXB0KQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xp
ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQog
ICAgIERpZEZhaWxIZWFydEJlYXRDaGVjayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApp
bmRleCBmYmNlOTQ1ZTQ1ODZmMmRmN2U3NTBmYTk4MDc2NjQ0ODdkZTI4NDQ1Li40ZTQ4NzU3ZTRk
NDE1NDc3OThjNzRmMGIxNjczNGQ2YWE3MTk5MmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTAxLDYgKzEwMSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGJvb2wgdGFrZUZvY3VzKFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV0tGb2N1c0RpcmVjdGlv
bikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoV2ViS2l0OjpXZWJQ
YWdlUHJveHkqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cyhXZWJLaXQ6OldlYlBhZ2VQ
cm94eSopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBmb2N1c0Zyb21TZXJ2aWNlV29ya2VyKFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBy
dW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXVEY6OlN0cmlu
ZyYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSosIFdlYktpdDo6RnJhbWVJbmZvRGF0YSYmLCBGdW5j
dGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXQ6OldlYlBhZ2VQ
cm94eSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KiwgV2ViS2l0
OjpGcmFtZUluZm9EYXRhJiYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA5OTc1
YmM0NDA1OTNiZDg3ZThmZGEzZjMwYTE3MzhmZWI0YWRlNGVhLi4yNTNlNWIyZmRkMjkzZjNhZjI0
N2NkZWEwOTFjODgwODZjNTc5ZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTI3Miw2ICsyNzIsNyBA
QCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfc2hvd1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV9mb2N1c1dlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CistIChib29sKV9mb2N1c1dlYlZpZXdGcm9tU2VydmljZVdvcmtlcjooV0tXZWJWaWV3ICopd2Vi
VmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OwogLSAodm9pZClfdW5mb2N1c1dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV93ZWJWaWV3RGlkU2Nyb2xsOihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9p
ZClfd2ViVmlld1J1bk1vZGFsOihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5oCmluZGV4IGMwMmRiNDgyOTY1YzVlOGQzZmM0MGQ5MDg2OWM5ZThmODBhZDMwMWUuLjIwYjA4
YWMyZGY3NWY1ODliYmJlMjllMmY5MjRjOTJmMzNjZjIyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTExNiw2ICsxMTYsOCBAQCBwcml2YXRlOgog
ICAgICAgICB2b2lkIHNob3dQYWdlKFdlYlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lk
IGZvY3VzKFdlYlBhZ2VQcm94eSopIGZpbmFsOwogICAgICAgICB2b2lkIHVuZm9jdXMoV2ViUGFn
ZVByb3h5KikgZmluYWw7CisgICAgICAgIGJvb2wgZm9jdXNGcm9tU2VydmljZVdvcmtlcihXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIGZpbmFsOworCiAgICAgICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBj
b25zdCBmaW5hbDsKICAgICAgICAgdm9pZCBydW5Nb2RhbChXZWJQYWdlUHJveHkmKSBmaW5hbDsK
ICAgICAgICAgdm9pZCBwYWdlRGlkU2Nyb2xsKFdlYlBhZ2VQcm94eSopIGZpbmFsOwpAQCAtMjA5
LDYgKzIxMSw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgICAgICBib29sIHNo
b3dXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCBmb2N1c1dlYlZpZXcgOiAxOworICAgICAgICBi
b29sIGZvY3VzV2ViVmlld0Zyb21TZXJ2aWNlV29ya2VyIDogMTsKICAgICAgICAgYm9vbCB1bmZv
Y3VzV2ViVmlldyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1J1bk1vZGFsIDogMTsKICAgICAg
ICAgYm9vbCB3ZWJWaWV3RGlkU2Nyb2xsIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLm1tCmluZGV4IDc2NTliMWM5ZmYwZDJmOWJjNTBhZWU3ZWQ0MzdhNzU5
YmY2ZTkyMDAuLmYzOWUxNmNiMDQ2NjQ2YTZmZTM3ZWQzZTY2ZGU2ODJhZTFiYWMyYWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTI1LDYgKzEy
NSw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVs
ZWdhdGUpCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIG1fZGVsZWdhdGVNZXRob2RzLnNob3dXZWJW
aWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3Nob3dXZWJWaWV3
OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmZvY3VzV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9mb2N1c1dlYlZpZXc6KV07CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMuZm9jdXNXZWJWaWV3RnJvbVNlcnZpY2VXb3JrZXIgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfZm9jdXNXZWJWaWV3RnJvbVNlcnZpY2VXb3JrZXI6KV07
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMudW5mb2N1c1dlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfdW5mb2N1c1dlYlZpZXc6KV07CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld1J1bk1vZGFsID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXdSdW5Nb2RhbDopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJW
aWV3RGlkU2Nyb2xsID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXdEaWRTY3JvbGw6KV07CkBAIC04MzEsNiArODMyLDI2IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OnBhZ2VEaWRTY3JvbGwoV2ViUGFnZVByb3h5KikKICAgICBbKGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBfd2ViVmlld0RpZFNjcm9sbDptX3VpRGVsZWdhdGUtPm1f
d2ViVmlldy5nZXQoKS5nZXQoKV07CiB9CiAKK2Jvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmZv
Y3VzRnJvbVNlcnZpY2VXb3JrZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHByb3h5KQoreworICAg
IGJvb2wgaGFzSW1wbGVtZW50YXRpb24gPSBtX3VpRGVsZWdhdGUgJiYgbV91aURlbGVnYXRlLT5t
X2RlbGVnYXRlTWV0aG9kcy5mb2N1c1dlYlZpZXdGcm9tU2VydmljZVdvcmtlciAmJiBtX3VpRGVs
ZWdhdGUtPm1fZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCFoYXNJbXBsZW1lbnRhdGlvbikgewor
ICAgICAgICBhdXRvKiB3ZWJWaWV3ID0gbV91aURlbGVnYXRlID8gbV91aURlbGVnYXRlLT5tX3dl
YlZpZXcuZ2V0KCkuZ2V0KCkgOiBudWxscHRyOworICAgICAgICBpZiAoIXdlYlZpZXcgfHwgIXdl
YlZpZXcud2luZG93KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisjaWYgUExBVEZPUk0o
TUFDKQorICAgICAgICBbd2ViVmlldy53aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsK
KyNlbHNlCisgICAgICAgIFt3ZWJWaWV3LndpbmRvdyBtYWtlS2V5QW5kVmlzaWJsZV07CisjZW5k
aWYKKyAgICAgICAgW1t3ZWJWaWV3IHdpbmRvd10gbWFrZUZpcnN0UmVzcG9uZGVyOndlYlZpZXdd
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gWyhpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpIF9mb2N1c1dlYlZp
ZXdGcm9tU2VydmljZVdvcmtlcjptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKV07
Cit9CisKIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmZvY3VzKFdlYlBhZ2VQcm94eSopCiB7
CiAgICAgaWYgKCFtX3VpRGVsZWdhdGUpCkBAIC04NDIsNyArODYzLDcgQEAgdm9pZCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6Zm9jdXMoV2ViUGFnZVByb3h5KikKICAgICBhdXRvIGRlbGVnYXRlID0g
bV91aURlbGVnYXRlLT5tX2RlbGVnYXRlLmdldCgpOwogICAgIGlmICghZGVsZWdhdGUpCiAgICAg
ICAgIHJldHVybjsKLSAgICAKKwogICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+KWRlbGVn
YXRlIF9mb2N1c1dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCldOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4ZWYwNTM2
NTkxMDhjNzdlMmJiMzlhNDNkMDk2NjBhYzBmNjVkMWQ4Li4zN2E0NTI0ZjljN2JkNzg5ZGYzYjRl
YWJiM2ExYjJlMDgyZGU5ZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTc0MTUsNiArNzQxNSwyNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ2FuY2Vs
Q2hlY2tpbmdUZXh0KFRleHRDaGVja2VyUmVxdWVzdElEIHJlcXVlc3RJRCkKIHsKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDYW5jZWxDaGVja2luZ1RleHQocmVxdWVzdElEKSk7CiB9
CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c0Zyb21TZXJ2aWNlV29ya2VyKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fdWlDbGllbnQtPmZvY3Vz
RnJvbVNlcnZpY2VXb3JrZXIoKnRoaXMpKSB7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBtYWtlRmlyc3RSZXNw
b25kZXIoKTsKKyNlbmRpZgorCisgICAgaWYgKG1fYWN0aXZpdHlTdGF0ZS5jb250YWlucyhBY3Rp
dml0eVN0YXRlOjpJc1Zpc2libGUpKSB7CisgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaW5zdGFsbEFjdGl2aXR5U3RhdGVDaGFuZ2VDb21wbGV0aW9uSGFu
ZGxlcihXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIC8vIE90aGVyCiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRGb2N1cyhib29sIGZvY3VzZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGQyNjUwODVkN2E1NmZkMGZlOGE4N2E2MDM5NTk2YTZiYmQ2MWY2YTAuLmNh
MjQyZjIzZmIwZGFjZDlmYzIzMWIyNDg2YjAxM2YyMzQyNmMxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjkyLDYgKzE2OTIsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBX
ZWJLaXQ6OkNhbGxiYWNrSUQpOwogCisgICAgdm9pZCBmb2N1c0Zyb21TZXJ2aWNlV29ya2VyKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRGb2N1cyhib29sIGZvY3Vz
ZWQpOwogICAgIHZvaWQgc2V0V2luZG93RnJhbWUoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
CiAgICAgdm9pZCBnZXRXaW5kb3dGcmFtZShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpHZXRXaW5k
b3dGcmFtZURlbGF5ZWRSZXBseSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBmZWJkZTA5ZmJmZWQ5MTE2NmRmMjg4NDc5MDA2
YTY4ZWE3YzA3Y2M5Li5jNzdkYjIzNGZhZGYxMTAwMzkwODMzMTY3YjMyNGZiNGJiN2Q4MmEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC00MSw2ICs0MSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgU2V0U3Rh
dHVzVGV4dChTdHJpbmcgc3RhdHVzVGV4dCkKICAgICBTZXRGb2N1cyhib29sIGZvY3VzZWQpCiAg
ICAgVGFrZUZvY3VzKHVpbnQ4X3QgZGlyZWN0aW9uKQorICAgIEZvY3VzRnJvbVNlcnZpY2VXb3Jr
ZXIoKSAtPiAoKQogICAgIEZvY3VzZWRGcmFtZUNoYW5nZWQoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGcmFtZUlkZW50aWZpZXI+IGZyYW1lSUQpCiAgICAgU2V0UmVuZGVyVHJlZVNpemUodWludDY0
X3QgdHJlZVNpemUpCiAgICAgU2V0VG9vbGJhcnNBcmVWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVW
aXNpYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNjYwMzc1NzU2ZGQ3YmY0NWNmYWEzMDA2
YzY3ZGZkZWMzMGU2YzE4My4uZTA1YTk3YmYzYmIxNjc4YmYwN2M4ODQyM2MwNWNkMzE1YWYzMTg2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC00MSw2ICs0MSw4IEBACiAjaW5jbHVkZSAiV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRm9jdXNDb250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3Vy
aXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4K
QEAgLTMwMSw2ICszMDMsMjggQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldE5hdmln
YXRpb25QcmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2kKICAgICB9KTsKIH0K
IAordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmZvY3VzU2VydmljZVdvcmtlckNsaWVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYp
PiYmIGNhbGxiYWNrKQoreworICAgIGF1dG8qIGNsaWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVu
dHNNYXAoKS5nZXQoY2xpZW50SWRlbnRpZmllcik7CisgICAgYXV0byogcGFnZSA9IGNsaWVudCA/
IGNsaWVudC0+cGFnZSgpIDogbnVsbHB0cjsKKyAgICBpZiAoIXBhZ2UpIHsKKyAgICAgICAgY2Fs
bGJhY2soeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFdlYlBhZ2U6OmZyb21D
b3JlUGFnZSgqcGFnZSkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkZvY3VzRnJvbVNlcnZpY2VXb3JrZXIgeyB9LCBbY2xpZW50SWRlbnRpZmllciwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byogY2xpZW50ID0g
RG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmdldChjbGllbnRJZGVudGlmaWVyKTsKKyAgICAg
ICAgYXV0byogZnJhbWUgPSBjbGllbnQgPyBjbGllbnQtPmZyYW1lKCkgOiBudWxscHRyOworICAg
ICAgICBhdXRvKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgpIDogbnVsbHB0cjsKKyAgICAg
ICAgaWYgKCFwYWdlKSB7CisgICAgICAgICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZv
Y3VzZWRGcmFtZShmcmFtZSk7CisgICAgICAgIGNhbGxiYWNrKFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhOjpmcm9tKCpjbGllbnQpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4
IGIyOTI1NTkwNDJjNzc0NjU1MjAwYjFiNWVmNTEwM2M4ODNjYmFiNmMuLjQ3NzJiNjI5Y2FkYTdi
NmU3OWNhYzZhNDAwODJhMzRjZGZmYTlhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05OSw2ICs5
OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENh
bGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1
ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYs
IEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0TmF2aWdhdGlv
blByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgZmluYWw7Cisg
ICAgdm9pZCBmb2N1c1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYpOwogCiAgICAgdm9pZCBzY2hl
ZHVsZVN0b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGJlZjhkYTJlZTFkMDM2ZjBj
N2FiZGMzYjc3YzhiMDJkYTE5YWUyYzAuLjIxZGI1NjRiN2M4MmI1ZGFlNzk1MTQyNzMzNGE3Y2Vk
ODE4MDk0NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM5LDYg
KzM5LDggQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKICAgICBQb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJEYXRhIHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFNldERvY3VtZW50
SXNDb250cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHRl
bXBvcmFyeURvY3VtZW50SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykKKworICAgIEZvY3VzU2Vy
dmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBjbGllbnRJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YT4gcmVzdWx0KQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IGExYzY4Y2JlYTQz
MmUxMTY0ODhjOTU5OWRjMjNiZDYyZWU4ZjFiZGUuLmUyM2MyNTcxN2JjYTI0MWZmOGNjOTc1OWMw
ZjNlZDdhMzI3NmJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAg
LTMzMiwxMyArMzMyLDE4IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Om1h
dGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyCiAgICAgICAgIGNhbGxi
YWNrKFdURk1vdmUoY2xpZW50c0RhdGEpKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6Y2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9p
ZD4mJik+JiYgY2FsbGJhY2spCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpj
bGFpbShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6Q2xhaW0geyBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciB9LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJl
c3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCA/IHJlc3VsdC0+dG9FeGNl
cHRpb24oKSA6IEV4Y2VwdGlvbk9yPHZvaWQ+IHsgfSk7CiAgICAgfSk7CiB9CiAKK3ZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZvY3VzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+JiYgY2FsbGJhY2sp
Cit7CisgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OkZvY3VzIHsgY2xpZW50
SWRlbnRpZmllciB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OmNsb3NlKCkKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29y
a2VyLCAiU2VydmljZSB3b3JrZXIgcHJvY2VzcyBpcyByZXF1ZXN0ZWQgdG8gc3RvcCBhbGwgc2Vy
dmljZSB3b3JrZXJzIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBiNTY5
NDBlNGIwMzM0NzRkYjIzMDdlMWRkY2UyMDk0YmEwNWY4YjkwLi5lY2Q4MWZiM2YyYWI4OTYzMjY1
MjYzNTZmYmI4MDc0YzI2NGYyMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgK
QEAgLTgxLDYgKzgxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmRDbGllbnRCeVZpc2libGVJ
ZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
LCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBtYXRj
aEFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4
Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzKFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpPiYmKSBmaW5h
bDsKICAgICB2b2lkIHNraXBXYWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgc2V0U2NyaXB0
UmVzb3VyY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFVSTCYsIGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmKSBm
aW5hbDsKICAgICBib29sIGlzVGhyb3R0bGVhYmxlKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWQyODYyNDM5N2I5ZjY1
NDI5YjA1MWQ1ZGFlOTRlZWM2NzQ5ZDkxNy4uNDUxNzJhMDFiMWIwYzhhOGJhYjM3NDQ4MDZiZTlj
MDA1M2I3ZjIzNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAzLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU2VydmljZVdvcmtlcldpbmRvd0NsaWVu
dC5mb2N1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM4MzE5CisgICAgICAgIDxyZGFyOi8vOTA2MTY0OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QnJhZHkgRWlkc29uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9TZXJ2aWNlV29ya2VyQmFzaWMubW06CisKIDIwMjItMDMtMjUgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIFBHTyB3aGVuIGJ1aWxkaW5n
IGZvciByZWxlYXNlIGFuZCBwcm9kdWN0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1NlcnZpY2VXb3JrZXJCYXNpYy5tbSBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCmluZGV4IDUz
ZGNiMzk1ZTE1ZmIxMTRiYzFlMzZlM2UwY2QzMzMyYWJmYmQzNmMuLjYwY2MyMzQyOGI2Zjk4OTc4
Mjc2MWIxZTk4NzU1YzM0NGI2YzJlMTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2VydmljZVdvcmtlckJhc2ljLm1tCkBAIC00Niw2
ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV2ViS2l0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLRXhwZXJpbWVudGFsRmVh
dHVyZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0ludGVybmFsRGVidWdGZWF0dXJlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJL
aXQvX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkuaD4KQEAgLTI4MDIsMyArMjgwMywxNjYgQEAgVEVTVChTZXJ2aWNlV29y
a2VyLCBFeHRlbnNpb25TZXJ2aWNlV29ya2VyRmFpbHVyZVZpZXdEZXN0cm95ZWQpCiAgICAgfQog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CiB9CisKK3N0YXRpYyBjb25zdCBj
aGFyKiBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Rm9jdXNNYWluID0KKyI8ZGl2PnRlc3QgcGFn
ZTwvZGl2PiIKKyI8c2NyaXB0PiIKKyJsZXQgd29ya2VyOyIKKyJhc3luYyBmdW5jdGlvbiB0ZXN0
KCkgeyIKKyIgICAgdHJ5IHsiCisiICAgICAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcignL3N3LmpzJyk7IgorIiAgICAgICAgaWYg
KHJlZ2lzdHJhdGlvbi5hY3RpdmUpIHsiCisiICAgICAgICAgICAgd29ya2VyID0gcmVnaXN0cmF0
aW9uLmFjdGl2ZTsiCisiICAgICAgICAgICAgYWxlcnQoJ2FscmVhZHkgYWN0aXZlJyk7IgorIiAg
ICAgICAgICAgIHJldHVybjsiCisiICAgICAgICB9IgorIiAgICAgICAgd29ya2VyID0gcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmc7IgorIiAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0
YXRlY2hhbmdlJywgKCkgPT4geyIKKyIgICAgICAgICAgICBpZiAod29ya2VyLnN0YXRlID09ICdh
Y3RpdmF0ZWQnKSIKKyIgICAgICAgICAgICAgICAgYWxlcnQoJ3N1Y2Nlc3NmdWxseSByZWdpc3Rl
cmVkJyk7IgorIiAgICAgICAgfSk7IgorIiAgICB9IGNhdGNoKGUpIHsiCisiICAgICAgICBhbGVy
dCgnRXhjZXB0aW9uOiAnICsgZSk7IgorIiAgICB9IgorIn0iCisid2luZG93Lm9ubG9hZCA9IHRl
c3Q7IgorIiIKKyJmdW5jdGlvbiBmb2N1c0NsaWVudCgpIHsiCisiICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgnc3RhcnQnKTsiCisiICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLm9ubWVzc2FnZSA9
IChldmVudCkgPT4geyIKKyIgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnN3
LnBvc3RNZXNzYWdlKGV2ZW50LmRhdGEpOyIKKyIgICAgfSIKKyJ9IgorIiIKKyJmdW5jdGlvbiBj
aGVja0ZvY3VzVmFsdWUodmFsdWUsIG5hbWUpIHsiCisiICAgIHdpbmRvdy53ZWJraXQubWVzc2Fn
ZUhhbmRsZXJzLnN3LnBvc3RNZXNzYWdlKGRvY3VtZW50Lmhhc0ZvY3VzKCkgPT09IHZhbHVlID8g
J1BBU1MnIDogJ0ZBSUw6IGV4cGVjdGVkICcgKyB2YWx1ZSArICcgZm9yICcgKyBuYW1lKTsiCisi
fSIKKyI8L3NjcmlwdD4iOworc3RhdGljIGNvbnN0IGNoYXIqIFNlcnZpY2VXb3JrZXJXaW5kb3dD
bGllbnRGb2N1c0pTID0KKyJzZWxmLmFkZEV2ZW50TGlzdGVuZXIoJ21lc3NhZ2UnLCAoZXZlbnQp
ID0+IHsiCisiICAgZXZlbnQuc291cmNlLmZvY3VzKCkudGhlbigoY2xpZW50KSA9PiB7IgorIiAg
ICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoJ2ZvY3VzZWQnKTsiCisiICAgfSwgKGVycm9y
KSA9PiB7IgorIiAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoJ25vdCBmb2N1c2VkJyk7
IgorIiAgIH0pOyIKKyJ9KTsiOworCitURVNUKFNlcnZpY2VXb3JrZXIsIFNlcnZpY2VXb3JrZXJX
aW5kb3dDbGllbnRGb2N1cykKK3sKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3JlIF9hbGxvd1dlYnNp
dGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgLy8gU3RhcnQgd2l0aCBhIGNsZWFu
IHNsYXRlIGRhdGEgc3RvcmUKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0
b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRh
VHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRs
ZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIGNvbmZp
Z3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisK
KyAgICBmb3IgKF9XS0ludGVybmFsRGVidWdGZWF0dXJlICpmZWF0dXJlIGluIFtXS1ByZWZlcmVu
Y2VzIF9pbnRlcm5hbERlYnVnRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChbZmVhdHVyZS5rZXkg
aXNFcXVhbFRvU3RyaW5nOkAiU2VydmljZVdvcmtlcnNVc2VyR2VzdHVyZUVuYWJsZWQiXSkKKyAg
ICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpOTyBmb3JJbnRlcm5hbERlYnVnRmVh
dHVyZTpmZWF0dXJlXTsKKyAgICB9CisKKyAgICBhdXRvIG1lc3NhZ2VIYW5kbGVyID0gYWRvcHRO
UyhbW1NXTWVzc2FnZUhhbmRsZXJXaXRoRXhwZWN0ZWRNZXNzYWdlIGFsbG9jXSBpbml0XSk7Cisg
ICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2Fn
ZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInN3Il07CisKKyAgICBhdXRvIHdl
YlZpZXcxID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNN
YWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgp
IGFkZFRvV2luZG93OllFU10pOworICAgIGF1dG8gd2ViVmlldzIgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi8iLCB7IFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnRGb2N1c01haW4gfSB9LAorICAgICAgICB7ICIvc3cuanMi
LCB7IHt7ICJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vamF2YXNjcmlwdCIgfX0sIFNlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnRGb2N1c0pTIH0gfQorICAgIH0pOworCisgICAgW3dlYlZpZXcx
IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOworICAgIEVYUEVDVF9XS19TVFJFUShbd2Vi
VmlldzEgX3Rlc3Rfd2FpdEZvckFsZXJ0XSwgInN1Y2Nlc3NmdWxseSByZWdpc3RlcmVkIik7CisK
KyAgICBbd2ViVmlldzIgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgRVhQRUNU
X1dLX1NUUkVRKFt3ZWJWaWV3MiBfdGVzdF93YWl0Rm9yQWxlcnRdLCAiYWxyZWFkeSBhY3RpdmUi
KTsKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBbW3dlYlZpZXcxIGhvc3RXaW5kb3ddIG1pbmlh
dHVyaXplOlt3ZWJWaWV3MSBob3N0V2luZG93XV07CisgICAgW1t3ZWJWaWV3MiBob3N0V2luZG93
XSBtaW5pYXR1cml6ZTpbd2ViVmlldzIgaG9zdFdpbmRvd11dOworICAgIEVYUEVDVF9GQUxTRShb
d2ViVmlldzEgaG9zdFdpbmRvd10uaXNWaXNpYmxlKTsKKyAgICBFWFBFQ1RfRkFMU0UoW3dlYlZp
ZXcyIGhvc3RXaW5kb3ddLmlzVmlzaWJsZSk7CisjZW5kaWYKKworICAgIGRvbmUgPSBmYWxzZTsK
KyAgICBleHBlY3RlZE1lc3NhZ2UgPSAiZm9jdXNlZCI7CisgICAgW3dlYlZpZXcxIGV2YWx1YXRl
SmF2YVNjcmlwdDpAImZvY3VzQ2xpZW50KCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7CisjaWYgUExBVEZPUk0oTUFDKQorICAg
IEVYUEVDVF9UUlVFKFt3ZWJWaWV3MSBob3N0V2luZG93XS5pc1Zpc2libGUpOworICAgIEVYUEVD
VF9GQUxTRShbd2ViVmlldzIgaG9zdFdpbmRvd10uaXNWaXNpYmxlKTsKKyAgICBFWFBFQ1RfRkFM
U0UoW3dlYlZpZXcxIGhvc3RXaW5kb3ddLmlzTWluaWF0dXJpemVkKTsKKyAgICBFWFBFQ1RfVFJV
RShbd2ViVmlldzIgaG9zdFdpbmRvd10uaXNNaW5pYXR1cml6ZWQpOworCisgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBiZSBhYmxlIHRvIHJ1biB0aGVzZSB0ZXN0cyBpbiBpT1Mgb25jZSBwYWdlcyBh
cmUgYWN0dWFsbHkgdmlzaWJsZS4KKyAgICBkb25lID0gZmFsc2U7CisgICAgZXhwZWN0ZWRNZXNz
YWdlID0gIlBBU1MiOworICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJjaGVja0Zv
Y3VzVmFsdWUodHJ1ZSwgJ3dlYlZpZXcxJykiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBleHBlY3RlZE1lc3NhZ2UgPSAiUEFTUyI7CisgICAgW3dlYlZpZXcyIGV2YWx1YXRlSmF2YVNj
cmlwdDpAImNoZWNrRm9jdXNWYWx1ZShmYWxzZSwgJ3dlYlZpZXcyJykiIGNvbXBsZXRpb25IYW5k
bGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyNlbmRpZgor
CisgICAgZG9uZSA9IGZhbHNlOworICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJmb2N1c2VkIjsKKyAg
ICBbd2ViVmlldzIgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZm9jdXNDbGllbnQoKSIgY29tcGxldGlv
bkhhbmRsZXI6IG5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgRVhQRUNUX1RSVUUoW3dlYlZpZXcyIGhvc3RXaW5kb3ddLmlz
VmlzaWJsZSk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3MSBob3N0V2luZG93XS5pc01pbmlh
dHVyaXplZCk7CisgICAgRVhQRUNUX0ZBTFNFKFt3ZWJWaWV3MiBob3N0V2luZG93XS5pc01pbmlh
dHVyaXplZCk7CisKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuIHRoZXNl
IHRlc3RzIGluIGlPUyBvbmNlIHBhZ2VzIGFyZSBhY3R1YWxseSB2aXNpYmxlLgorICAgIGRvbmUg
PSBmYWxzZTsKKyAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUEFTUyI7CisgICAgW3dlYlZpZXcyIGV2
YWx1YXRlSmF2YVNjcmlwdDpAImNoZWNrRm9jdXNWYWx1ZSh0cnVlLCAnd2ViVmlldzInKSIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUp
OworI2VuZGlmCit9CisKK1RFU1QoU2VydmljZVdvcmtlciwgU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudEZvY3VzUmVxdWlyZXNVc2VyR2VzdHVyZSkKK3sKKyAgICBbV0tXZWJzaXRlRGF0YVN0b3Jl
IF9hbGxvd1dlYnNpdGVEYXRhUmVjb3Jkc0ZvckFsbE9yaWdpbnNdOworCisgICAgLy8gU3RhcnQg
d2l0aCBhIGNsZWFuIHNsYXRlIGRhdGEgc3RvcmUKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBk
ZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFs
bFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29t
cGxldGlvbkhhbmRsZXI6XigpIHsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIGF1dG8gcHJlZmVyZW5jZXMgPSBbY29uZmlndXJhdGlvbiBwcmVm
ZXJlbmNlc107CisKKyAgICBmb3IgKF9XS0ludGVybmFsRGVidWdGZWF0dXJlICpmZWF0dXJlIGlu
IFtXS1ByZWZlcmVuY2VzIF9pbnRlcm5hbERlYnVnRmVhdHVyZXNdKSB7CisgICAgICAgIGlmIChb
ZmVhdHVyZS5rZXkgaXNFcXVhbFRvU3RyaW5nOkAiU2VydmljZVdvcmtlcnNVc2VyR2VzdHVyZUVu
YWJsZWQiXSkKKyAgICAgICAgICAgIFtwcmVmZXJlbmNlcyBfc2V0RW5hYmxlZDpZRVMgZm9ySW50
ZXJuYWxEZWJ1Z0ZlYXR1cmU6ZmVhdHVyZV07CisgICAgfQorCisgICAgYXV0byBtZXNzYWdlSGFu
ZGxlciA9IGFkb3B0TlMoW1tTV01lc3NhZ2VIYW5kbGVyV2l0aEV4cGVjdGVkTWVzc2FnZSBhbGxv
Y10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFk
ZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOm1lc3NhZ2VIYW5kbGVyLmdldCgpIG5hbWU6QCJzdyJdOwor
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCAzMDAsIDMwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpIGFkZFRvV2luZG93OllFU10pOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvIiwgeyBTZXJ2aWNlV29ya2VyV2luZG93Q2xp
ZW50Rm9jdXNNYWluIH0gfSwKKyAgICAgICAgeyAiL3N3LmpzIiwgeyB7eyAiQ29udGVudC1UeXBl
IiwgImFwcGxpY2F0aW9uL2phdmFzY3JpcHQiIH19LCBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
Rm9jdXNKUyB9IH0KKyAgICB9KTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5y
ZXF1ZXN0KCldOworICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxl
cnRdLCAic3VjY2Vzc2Z1bGx5IHJlZ2lzdGVyZWQiKTsKKworICAgIGRvbmUgPSBmYWxzZTsKKyAg
ICBleHBlY3RlZE1lc3NhZ2UgPSAibm90IGZvY3VzZWQiOworICAgIFt3ZWJWaWV3IGV2YWx1YXRl
SmF2YVNjcmlwdDpAImZvY3VzQ2xpZW50KCkiIGNvbXBsZXRpb25IYW5kbGVyOiBuaWxdOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWZlNWIyMjkwYTQ2
MGNlNDdjZWExMDlmM2RiOGI4M2Y2OGJkYjMzMy4uNjkzZGQ1MWM0ZmM5NDBhMGE2OTZmYWI2MGVj
M2UwM2VjOWQ5NDA3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAzLTI2ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU2VydmljZVdv
cmtlcldpbmRvd0NsaWVudC5mb2N1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4MzE5CisgICAgICAgIDxyZGFyOi8vOTA2MTY0OTA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29uLgorCisgICAgICAgIFVwZGF0ZSB0ZXN0cyB0byBj
b3ZlciB0aGUgZmFjdCB3ZSBubyBsb25nZXIgcmV1c2UgQ2xpZW50IG9iamVjdHMuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNo
by13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL3NlcnZpY2V3b3JrZXJjbGllbnRzLWdldC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2Vy
LmpzOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJj
bGllbnRzLW1hdGNoQWxsLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5odG1s
OgorCiAyMDIyLTAzLTI1ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+
CiAKICAgICAgICAgW0dUS11bV1BFXSBVcGRhdGUgd2lkZ2V0IHN0eWxlIHRvIG1hdGNoIGxpYmFk
d2FpdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9wb3N0bWVzc2FnZS1lY2hvLXdvcmtlci5q
cwppbmRleCBlZTNkZTU5NzFiMTA5ZmNkYTAxMWUxMGMyOWE4ODJiNDg0MTliM2ViLi43M2I0NzI3
Y2UxNmE4YTFmZDQ0OWY3YjhlYzYyMDBlNjFhNmY1MmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcG9zdG1lc3NhZ2UtZWNoby13
b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL3Bvc3RtZXNzYWdlLWVjaG8td29ya2VyLmpzCkBAIC02LDkgKzYsMTIgQEAgc2VsZi5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBldmVu
dC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IGNsaWVudCBzb3VyY2UgaXMgbm90IGEgV2luZG93
Q2xpZW50Iik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICB9IGVsc2UgaWYg
KGNsaWVudCAhPT0gZXZlbnQuc291cmNlKSB7CisgICAgfSBlbHNlIGlmIChjbGllbnQuaWQgIT09
IGV2ZW50LnNvdXJjZS5pZCkgewogICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZB
SUw6IGNsaWVudCBzb3VyY2Ugb2YgdGhlIHNlY29uZCBtZXNzYWdlIGlzIG5vdCB0aGUgc2FtZSBh
cyB0aGUgZmlyc3QgbWVzc2FnZSIpOwogICAgICAgICByZXR1cm47CisgICAgfSBlbHNlIGlmIChj
bGllbnQgPT09IGV2ZW50LnNvdXJjZSkgeworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3Nh
Z2UoIkZBSUw6IGNsaWVudCBzb3VyY2Ugb2YgdGhlIHNlY29uZCBtZXNzYWdlIGlzIHRoZSBzYW1l
IG9iamVjdCBhcyBmb3IgdGhlIGZpcnN0IG1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIlBBU1M6IFNlcnZpY2Ugd29ya2VyIHJl
Y2VpdmVkIG1lc3NhZ2UgJyIgKyBldmVudC5kYXRhICsgIicgZnJvbSBvcmlnaW4gJyIgKyBldmVu
dC5vcmlnaW4gKyAiJyIpOwogfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZXdvcmtlcmNsaWVudHMtZ2V0LXdvcmtl
ci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9z
ZXJ2aWNld29ya2VyY2xpZW50cy1nZXQtd29ya2VyLmpzCmluZGV4IGNhM2JiYTIzOGE2YjJlOGNi
MjE2OTU5Yzc2ODU2YTY2NDg5YzNkNjQuLjZkZDUzZTkzZmZhOTk5NDkxNWVjMDE5MmNmOGE2NDZh
NGE4NGRlZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9zZXJ2aWNld29ya2VyY2xpZW50cy1nZXQtd29ya2VyLmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNld29y
a2VyY2xpZW50cy1nZXQtd29ya2VyLmpzCkBAIC0xOSw4ICsxOSw4IEBAIHNlbGYuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIGFzeW5jIChldmVudCkgPT4gewogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHJldHJpZXZlZENsaWVudCAhPT0gY2xpZW50KSB7
Ci0gICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IGNsaWVudCBpcyBk
aWZmZXJlbnQgZnJvbSB0aGUgb25lIHJldHJpZXZlZCB0aHJvdWdoIHNlbGYuY2xpZW50cy5nZXQi
KTsKKyAgICAgICAgaWYgKHJldHJpZXZlZENsaWVudCA9PT0gY2xpZW50KSB7CisgICAgICAgICAg
ICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJldXNpbmcgc2FtZSBjbGllbnQgb2Jq
ZWN0IGluIGRpZmZlcmVudCBzZWxmLmNsaWVudHMuZ2V0IGNhbGxzIik7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVu
dHMtbWF0Y2hBbGwtd29ya2VyLmpzCmluZGV4IGRiNmYwNTRmNjg5MmNmMDJhNjhkZDk5OWZiODg2
OGUyMmYzY2NhNzAuLjRmMmU1MjBmZjc2ZTFlMzdmNjlmY2E0MWM3MTI2MmU0NTIxOGU5OWEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3
b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC13b3JrZXIu
anMKQEAgLTQxLDYgKzQxLDI1IEBAIGZ1bmN0aW9uIGNoZWNrQ2xpZW50SW5VbmNvbnRyb2xsZWRD
bGllbnRzKGNsaWVudElkZW50aWZpZXIpCiBhc3luYyBmdW5jdGlvbiBkb1Rlc3RBZnRlck1lc3Nh
Z2UoZXZlbnQpCiB7CiAgICAgdHJ5IHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEudGVzdCA9PT0g
ImNoZWNrTmV3Q2xpZW50T2JqZWN0IikgeworICAgICAgICAgICAgY29uc3QgY2xpZW50czEgPSBh
d2FpdCBzZWxmLmNsaWVudHMubWF0Y2hBbGwoeyBpbmNsdWRlVW5jb250cm9sbGVkIDogdHJ1ZSB9
KTsKKyAgICAgICAgICAgIGNvbnN0IGNsaWVudHMyID0gYXdhaXQgc2VsZi5jbGllbnRzLm1hdGNo
QWxsKHsgaW5jbHVkZVVuY29udHJvbGxlZCA6IHRydWUgfSk7CisgICAgICAgICAgICBpZiAoIWNs
aWVudHMxLmxlbmd0aCB8fCAhY2xpZW50czIubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgZXZl
bnQuc291cmNlLnBvc3RNZXNzYWdlKCJubyBjbGllbnRzIik7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChsZXQgY2xpZW50MSBvZiBjbGll
bnRzMSkgeworICAgICAgICAgICAgICAgIGZvciAobGV0IGNsaWVudDIgb2YgY2xpZW50czIpIHsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGNsaWVudDEgPT09IGNsaWVudDIpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmV1c2luZyBj
bGllbnQgb2JqZWN0cyIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJQQVNTIik7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKwogICAgICAgICBpZiAoZXZlbnQuZGF0YS50ZXN0ICE9PSAiY2hlY2tD
bGllbnRJc1VuY29udHJvbGxlZCIpIHsKICAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVz
c2FnZSgiRkFJTDogcmVjZWl2ZWQgdW5leHBlY3RlZCBtZXNzYWdlIGZyb20gY2xpZW50Iik7CiAg
ICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29y
a2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggOWNiNDM5YzRkMmE2
M2Y5MTY5ZGU5YjI3ODFkYmUwNDdlOGFhYTI2Zi4uMDgwNzE1MjZiOWE4NThjYmQxODk2YjMyZWQw
MmQ0MWEzZTBmZjJhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3Jr
ZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIAog
UEFTUyBTZXR1cCB3b3JrZXIKK1BBU1MgVGVzdCBzZWxmLmNsaWVudHMubWF0Y2hBbGwgY3JlYXRl
IG5ldyBjbGllbnQgb2JqZWN0IGV2ZXJ5IHRpbWUKIFBBU1MgVGVzdCBzZWxmLmNsaWVudHMubWF0
Y2hBbGwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxs
Lmh0dHBzLmh0bWwKaW5kZXggNjliNWYyODkwMTZmZTQ4MDFiZTFhYTkwMTJiNWRiOWU2ZGI0NmZh
MC4uMTk4NzE3ZmM1NTc4MWVhNmM2MGI4ZmVkOTU3MTFiN2NhNGI1ODViMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVu
dHMtbWF0Y2hBbGwuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5odG1sCkBAIC0y
Niw2ICsyNiwxOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICB9KTsKIH0s
ICJTZXR1cCB3b3JrZXIiKTsKIAorcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAg
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0
LnN0ZXBfZnVuYygoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZXZlbnQu
ZGF0YSwgIlBBU1MiKTsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSkpOworICAg
IH0pOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHt0ZXN0OiAiY2hlY2tOZXdDbGll
bnRPYmplY3QifSk7CisgICAgYXdhaXQgcHJvbWlzZTsKK30sICJUZXN0IHNlbGYuY2xpZW50cy5t
YXRjaEFsbCBjcmVhdGUgbmV3IGNsaWVudCBvYmplY3QgZXZlcnkgdGltZSIpOworCiBwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICBjb25zdCBzZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciA9IGludGVybmFscy5zZXJ2aWNlV29ya2VyQ2xpZW50SW50ZXJuYWxJZGVudGlmaWVy
KGRvY3VtZW50KTsKICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsK
</data>
<flag name="commit-queue"
          id="483953"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>