<?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>178876</bug_id>
          
          <creation_ts>2017-10-26 10:44:21 -0700</creation_ts>
          <short_desc>Bring back SWContextManager abstraction in WebCore</short_desc>
          <delta_ts>2017-11-15 12:51:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174541</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>178794</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1364902</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-26 10:44:21 -0700</bug_when>
    <thetext>Bring back SWContextManager abstraction in WebCore. It was killed in &lt;https://trac.webkit.org/changeset/223718&gt; but is actually useful when the ServiceWorker wants to message the storage process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364962</commentid>
    <comment_count>1</comment_count>
      <attachid>325038</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-26 12:06:40 -0700</bug_when>
    <thetext>Created attachment 325038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364969</commentid>
    <comment_count>2</comment_count>
      <attachid>325040</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-10-26 12:22:52 -0700</bug_when>
    <thetext>Created attachment 325040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364979</commentid>
    <comment_count>3</comment_count>
      <attachid>325040</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-10-26 12:54:19 -0700</bug_when>
    <thetext>Comment on attachment 325040
Patch

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

r=me

&gt; Source/WebCore/workers/service/context/SWContextManager.cpp:68
&gt; +    // FIXME: We should pass valid MessagePortChannels.

Can you add a bug for this?

&gt; Source/WebKit/WebProcess/Storage/WebSWContextManagerConnection.cpp:99
&gt; +    // FIXME: Provide a sensical session ID.

And this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364993</commentid>
    <comment_count>4</comment_count>
      <attachid>325040</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 13:14:44 -0700</bug_when>
    <thetext>Comment on attachment 325040
Patch

Clearing flags on attachment: 325040

Committed r224041: &lt;https://trac.webkit.org/changeset/224041&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1364994</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-26 13:14:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372269</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-15 12:51:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/35568303&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325038</attachid>
            <date>2017-10-26 12:06:40 -0700</date>
            <delta_ts>2017-10-26 12:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178876-20171026120639.patch</filename>
            <type>text/plain</type>
            <size>61758</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ2ZDg2ZmZjNDE1YzAw
ZTZlZGM0YTBmZjRkYzM4NzIwMTIxOTIyMS4uMDcwYzZhYTQwMDgzNTZlNDYyYzk3NmNmNzliYWYw
NDUzMGQxMTViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQnJpbmcgYmFjayBTV0NvbnRl
eHRNYW5hZ2VyIGFic3RyYWN0aW9uIGluIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJyaW5nIGJhY2sgU1dDb250ZXh0TWFuYWdlciBhYnN0
cmFjdGlvbiBpbiBXZWJDb3JlLiBJdCB3YXMga2lsbGVkIGluIDxodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjIzNzE4PiBidXQKKyAgICAgICAgaXMgYWN0dWFsbHkgdXNlZnVsIHdo
ZW4gdGhlIFNlcnZpY2VXb3JrZXIgd2FudHMgdG8gbWVzc2FnZSB0aGUgc3RvcmFnZSBwcm9jZXNz
LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFn
ZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpzZXRD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OmNvbm5lY3Rp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6cmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6
OnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV0Nv
bnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlci5oLgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVj
dGlvbjo6fkNvbm5lY3Rpb24pOgorCiAyMDE3LTEwLTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFhNTEh0dHBSZXF1ZXN0IHNob3VsZCBub3QgdHJlYXQg
ZmlsZSBVUkxzIGFzIHNhbWUgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkNGEwMzkxMzk1ZjhmNjU2MmUx
M2U5YzVmYzQ2YzE3MmFmM2Y2Y2UuLmI0ZDI4ZjQ5YzJkYjQ0YjAyODUwOTE4YTlkMTZmYjE4NWJj
YThjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTctMTAtMjYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBCcmluZyBiYWNrIFNXQ29udGV4dE1hbmFn
ZXIgYWJzdHJhY3Rpb24gaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnJpbmcgYmFjayBTV0NvbnRleHRNYW5hZ2VyIGFic3RyYWN0aW9u
IGluIFdlYkNvcmUuIEl0IHdhcyBraWxsZWQgaW4gPGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yMjM3MTg+IGJ1dAorICAgICAgICBpcyBhY3R1YWxseSB1c2VmdWwgd2hlbiB0aGUg
U2VydmljZVdvcmtlciB3YW50cyB0byBtZXNzYWdlIHRoZSBzdG9yYWdlIHByb2Nlc3MuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNl
cnZpY2VXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNw
cC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0U2VydmljZVdvcmtlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0V29y
a2VyQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE3LTEwLTI2ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4K
IAogICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDA3ZjZmYWIwNjczNzYyY2ZlNGZiY2M1MWM3NTNhYjBmMDQ4NjlmZGYuLjIxNmExNDA2ZDg1
M2MxMTE5NzFlOGUyOGQ2NjI0NjAyY2IyMTAwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMTY5LDYg
KzIxNjksNyBAQCB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAK
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKIHdvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCiB3b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCit3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAogCiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOTVmNGMzNGQ4Njk4Mjc0ZTZmYzQ3Yjc5ZDNkZTI4OGU1YmY4YjhkMC4uNGI2YjQ1NDMwZjNi
ZDY0MDMxZjdlNGViY2IxNmUxOGYzODE1NDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIwMyw2ICsxMjAzLDcgQEAKIAkJ
NDYzNDU5MkMxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNDU5MkIxQUMyMjcxMDAw
RUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovOyB9OwogCQk0NjNFQjYyMzFCODc4OUUw
MDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rp
b24uaCAqLzsgfTsKIAkJNDY1MzA3RDAxREI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTA0NUVG
MURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJRXZlbnRJbml0LmggKi87IH07CisJCTQ2NjU4REM5MUZB
MjRCODcwMEY3REQ1NCAvKiBTV0NvbnRleHRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjcyNDEzQjFGQTI0QjE0MDA4OEJENkQgLyogU1dD
b250ZXh0TWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2NkVEOEQzMUVERTAxNDQwMDVFNDNGNiAvKiBKU0RPTVJlY3RMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZFRDhEMjFFREUw
MTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5oICovOyB9OwogCQk0NjcxRTA2NjFENjdBNTk2
MDBDNkI0OTcgLyogQ2FudmFzUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAq
LzsgfTsKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5s
b2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5n
VW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwpAQCAtNzM3Nyw2ICs3Mzc4LDggQEAKIAkJ
NDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFzUGF0aC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQYXRoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZh
c1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FudmFzUGF0aC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjcyNDEzQTFGQTI0QjE0MDA4OEJENkQgLyog
U1dDb250ZXh0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTV0NvbnRleHRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY3
MjQxM0IxRkEyNEIxNDAwODhCRDZEIC8qIFNXQ29udGV4dE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1dDb250ZXh0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJp
bmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjgyRDFGRjFGNzk3ODIzMDBDODYzREIgLyogU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0
REMxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI0Myw2ICsxNzI0Niw4IEBACiAJ
CQkJNTE3Qzg3MTAxRjhFRTcyRTAwRUI4MDc2IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWQuaCAqLywK
IAkJCQk0MTEyQjU0MTFGOUY5QzlDMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmNwcCAqLywKIAkJCQk0MTEyQjUzRjFGOUY5QzlCMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmggKi8sCisJCQkJNDY3MjQxM0ExRkEyNEIxNDAwODhCRDZEIC8qIFNXQ29udGV4
dE1hbmFnZXIuY3BwICovLAorCQkJCTQ2NzI0MTNCMUZBMjRCMTQwMDg4QkQ2RCAvKiBTV0NvbnRl
eHRNYW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvbnRleHQ7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjkzMzUsNiArMjkzNDAsNyBAQAogCQkJCUIyMjI3QUY2MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdab29tQW5kUGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkU0RUM5
ODBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTdBNTMxRDFGNEI1M0IxMDBEQ0RDMEEgLyogU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjY1OERDOTFGQTI0Qjg3MDBGN0RENTQgLyogU1dDb250ZXh0TWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUyRjAxRjQ3NTM1QjAwRENEQzBBIC8qIFNXU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDU5NzFGNEE2ODZGMDBCNTRERUQgLyogU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzQ2MUY1MEMxN0YwMERD
REMwQSAvKiBTV1NlcnZlcldvcmtlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIzMDNmZjM4MzNlMjAwZWQzOGMxYWYxZmMwZmFhMzI3NmE0M2NhMGQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNXQ29udGV4dE1hbmFnZXIuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitTV0NvbnRleHRNYW5hZ2VyJiBTV0NvbnRleHRNYW5hZ2VyOjpzaW5n
bGV0b24oKQoreworICAgIHN0YXRpYyBTV0NvbnRleHRNYW5hZ2VyKiBzaGFyZWRNYW5hZ2VyID0g
bmV3IFNXQ29udGV4dE1hbmFnZXI7CisgICAgcmV0dXJuICpzaGFyZWRNYW5hZ2VyOworfQorCit2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OnNldENvbm5lY3Rpb24oc3RkOjp1bmlxdWVfcHRyPENvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKK3sKKyAgICBBU1NFUlQoIW1fY29ubmVjdGlvbik7CisgICAg
bV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25uZWN0aW9uKTsKK30KKworYXV0byBTV0NvbnRleHRN
YW5hZ2VyOjpjb25uZWN0aW9uKCkgY29uc3QgLT4gQ29ubmVjdGlvbioKK3sKKyAgICByZXR1cm4g
bV9jb25uZWN0aW9uLmdldCgpOworfQorCit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnJlZ2lzdGVy
U2VydmljZVdvcmtlclRocmVhZChSZWY8U2VydmljZVdvcmtlclRocmVhZFByb3h5PiYmIHNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eSkKK3sKKyAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
ID0gc2VydmljZVdvcmtlclRocmVhZFByb3h5LT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1
bHQgPSBtX3dvcmtlck1hcC5hZGQoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3Vs
dC5pc05ld0VudHJ5KTsKK30KKworU2VydmljZVdvcmtlclRocmVhZFByb3h5KiBTV0NvbnRleHRN
YW5hZ2VyOjpzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkodWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7Cit9CisKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNv
dXJjZU9yaWdpbikKK3sKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0
KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdl
UG9ydENoYW5uZWxzLgorICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNl
T3JpZ2luKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNkY2NhY2MxYTA3ZTVjYzg1YTNmMDViZDFkZDg0NTM4OWY0MDdhNWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0Nv
bnRleHRNYW5hZ2VyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKKworY2xhc3MgU1dDb250ZXh0TWFuYWdlciB7CitwdWJsaWM6CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIFNXQ29udGV4dE1hbmFnZXImIHNpbmdsZXRvbigpOworCisgICAgY2xh
c3MgQ29ubmVjdGlvbiB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Db25uZWN0aW9u
KCkgeyB9CisgICAgfTsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q29ubmVjdGlvbihz
dGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29ubmVj
dGlvbiogY29ubmVjdGlvbigpIGNvbnN0OworCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdp
c3RlclNlcnZpY2VXb3JrZXJUaHJlYWQoUmVmPFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eT4mJik7
CisgICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVhZFByb3h5KiBzZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkodWludDY0X3QpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CisKK3ByaXZhdGU6CisgICAgU1dDb250ZXh0TWFuYWdl
cigpID0gZGVmYXVsdDsKKworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHk+PiBtX3dvcmtlck1hcDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5kZXggOTg0MTE4
M2M2MjEwM2E2NTU4YTQ0MmFlZmQ3YTc1ZGFjOTJkMjcxNS4uZTE4NzdmY2E4ZGNkY2ZhZmRjMzU5
MGI5N2EyYWYwYzkxNDI0ZTgyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC01NDEsOCArNTQxLDgg
QEAgc2V0KFdlYktpdF9TT1VSQ0VTCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luU3RyZWFtLmNwcAogCiAgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VX
b3JrZXJDbGllbnRGZXRjaC5jcHAKLSAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtl
ckNvbnRleHRNYW5hZ2VyLmNwcAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwCisgICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmNwcAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNw
cAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
LmNwcAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuY3Bw
CkBAIC02ODgsOCArNjg4LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIFdl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5tZXNzYWdlcy5pbgogCiAgICAgV2ViUHJvY2Vz
cy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5tZXNzYWdlcy5pbgotICAgIFdlYlBy
b2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIubWVzc2FnZXMuaW4KICAg
ICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisg
ICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCiAKICAgICBXZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5tZXNzYWdlcy5pbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNjY4MTQ3
NjQ5NmVkMjVlNjgxN2Y1ZmU2ZTQ0ZjYwZjM5NWUyNGE3OS4uN2I1M2YyN2ExZjI3MjA1OWJiMzMy
YzA3YjZhODI3ZTVlZmVhNjkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTI2
LDcgKzEyNiw2IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIFJlbW90ZVdlYkluc3BlY3Rv
clVJIFwKICAgICBTZWNJdGVtU2hpbVByb3h5IFwKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2ggXAotICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciBcCiAgICAgU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlciBcCiAgICAgU3RvcmFnZUFyZWFNYXAgXAogICAgIFN0b3JhZ2VNYW5h
Z2VyIFwKQEAgLTE2Myw2ICsxNjIsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKICAgICBXZWJQ
YXltZW50Q29vcmRpbmF0b3IgXAogICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IFwKICAg
ICBXZWJTV0NsaWVudENvbm5lY3Rpb24gXAorICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uIFwKICAgICBXZWJTV1NlcnZlckNvbm5lY3Rpb24gXAogICAgIFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXIgXAogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGU5YmNiMzI1MzQyY2Y1ZTVmYzA4ZTE1NTUw
MWVlYWU2N2MwMjk1MTEuLmZjMWM1ZjA3NWJiYzM1YjA0NmRjZWJkOTQzNTc0YjQ5YTIwYWUyZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0zMSwxMyArMzEs
MTMgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdl
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
U1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgog
I2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
VG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudCh1aW50NjRfdCBqb2JJ
ZGVudGlmaWVyKQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTZXJ2aWNlV29y
a2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiB7Ci0gICAg
aWYgKHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1h
bmFnZXI6OlN0YXJ0U2VydmljZVdvcmtlcihpZGVudGlmaWVyKCksIGRhdGEpKSkKKyAgICBpZiAo
c2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpTdGFydFNlcnZpY2VXb3JrZXIoaWRlbnRpZmllcigpLCBkYXRhKSkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fcGVuZGluZ0NvbnRleHREYXRhcy5hcHBlbmQoZGF0YSk7CkBAIC0xMDUs
MTIgKzEwNSwxMiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTZXJ2aWNlV29y
a2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dAogCiB2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBzZW5kVG9Db250ZXh0UHJvY2Vz
cyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpTdGFydEZldGNoKGlkZW50
aWZpZXIoKSwgZmV0Y2hJZGVudGlmaWVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgcmVxdWVz
dCwgb3B0aW9ucykpOworICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaChpZGVudGlmaWVyKCksIGZldGNoSWRl
bnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpKTsKIH0K
IAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7Ci0g
ICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFu
YWdlcjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShpZGVudGlmaWVyKCks
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VPcmlnaW4pKTsKKyAgICBz
ZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZU9yaWdpbikpOwogfQogCiB2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk3MWZiZGU3ZjM0YzM5MTBj
NDEzZDUwZTc0MGQ2MWZkZWI2MTM4MjYuLjkxN2U4NDAzMzA0YzFkY2I0YWI0ZWU2MTg4NjI3MDcz
NDBiZjBhMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtODkyLDggKzg5Miw2IEBACiAJCTQxMzA3NUIzMURFODVGNTgwMDM5RUM2OSAv
KiBMaWJXZWJSVENQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTMwNzVBNzFERTg1RUU3MDAzOUVDNjkgLyogTGliV2ViUlRDUHJvdmlk
ZXIuY3BwICovOyB9OwogCQk0MTMwNzVCNDFERTg1RjU4MDAzOUVDNjkgLyogTGliV2ViUlRDUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
MzA3NUE4MURFODVFRTcwMDM5RUM2OSAvKiBMaWJXZWJSVENQcm92aWRlci5oICovOyB9OwogCQk0
MTMxRjNEMTFGOTZCQ0NDMDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzFGM0QwMUY5
NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovOyB9OwotCQk0
MTMxRjNENDFGOTZFOTM1MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzFGM0Qz
MUY5NkU5MzEwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwICovOyB9
OwotCQk0MTMxRjNENTFGOTZFOTM1MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMx
RjNEMjFGOTZFOTMwMDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmggKi87
IH07CiAJCTQxMzFGM0UyMUY5ODgwODQwMDU5OTk1QSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxMzFGM0UwMUY5ODcxMkMwMDU5OTk1QSAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50LmNwcCAqLzsgfTsKIAkJNDEzNUZCRDExRjRGQjgwOTAwNzRDNDdCIC8qIENhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MTM1RkJDRjFGNEZCN0YyMDA3NEM0N0IgLyogQ2FjaGVTdG9yYWdlRW5naW5l
Q2FjaGVzLmNwcCAqLzsgfTsKIAkJNDE0REVERDcxRjlFRERFNTAwNDdDNDBEIC8qIFNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxNERFREQ1MUY5RUREREYwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5LmggKi87IH07CkBAIC05MjAsMTIgKzkxOCwxNCBAQAogCQk0MUZBRjVGODFFM0MxMDIx
MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY2MUUzQzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJS
VENSZXNvbHZlci5oICovOyB9OwogCQk0MUZBRjVGOTFFM0MxMDI1MDAxQUU2NzggLyogTGliV2Vi
UlRDUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFGQUY1RjcxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmNwcCAq
LzsgfTsKIAkJNDQ1MEFFQzAxREMzRkFFNTAwOTk0M0YyIC8qIFNoYXJlZE1lbW9yeUNvY29hLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0NTBBRUJG
MURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi87IH07Ci0JCTQ2MEY0
ODhGMUY5OTZGNzEwMENGNEI4NyAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDYwRjQ4OEQxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07Ci0JCTQ2MEY0ODkwMUY5OTZGNzEwMENGNEI4NyAv
KiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwRjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8q
IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlck1lc3NhZ2VzLmggKi87IH07CisJCTQ2MEY0ODhG
MUY5OTZGNzEwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OworCQk0NjBGNDg5MDFGOTk2RjcxMDBDRjRCODcg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwRjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3
IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCAqLzsgfTsKIAkJNDYy
MTA3RDgxRjM4REJEQjAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MjEwN0Q3MUYzOERCRDMwMERENzgxMCAvKiBQ
aW5nTG9hZC5jcHAgKi87IH07CiAJCTQ2M0ZENDgwMUVCOTQ1OTYwMEEyOTgyQyAvKiBXS1Byb2Nl
c3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzRkQ0
ODExRUI5NEVBRDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyB9Owog
CQk0NjUyNTBFNjFFQ0Y1MkRDMDAyMDI1Q0IgLyogV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NTI1MEU1MUVD
RjUyQ0QwMDIwMjVDQiAvKiBXZWJLaXQySW5pdGlhbGl6ZUNvY29hLm1tICovOyB9OworCQk0NjZC
QzAzQjFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY2QkMwMzgx
RkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLzsg
fTsKKwkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NjZCQzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aCAqLzsgfTsKIAkJNDZBMkI2MDgxRTU2NzZBNjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNz
UmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0NkEyQjYwNjFFNTY3NUEyMDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nl
c3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcCAqLzsgfTsKIAkJNDZBMkI2MDkxRTU2NzZBNjAwQzNE
RURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZBMkI2MDcxRTU2NzVBMjAwQzNE
RURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovOyB9OwogCQk0
NkRGMDYzQjFGMzkwNUY4MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2REYwNjM5
MUYzOTA1RTUwMDE5ODBCQiAvKiBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwICovOyB9
OwpAQCAtMzE5Niw4ICszMTk2LDYgQEAKIAkJNDEzMUYzQ0UxRjk2QTQ5NTAwNTk5OTVBIC8qIFNl
cnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDEzMUYzQ0YxRjk2QTkzNjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0
Y2gubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzFGM0QwMUY5
NkJDQzgwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDEzMUYzRDIxRjk2RTkzMDAwNTk5OTVBIC8q
IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDEzMUYzRDMxRjk2RTkzMTAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDEzNUZCQ0YxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVD
YWNoZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTM1RkJEMDFGNEZCN0Yy
MDA3NEM0N0IgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzIzMywxMiArMzIzMSwxNSBAQAogCQk0MUZBRjVGNjFFM0MwQjQ3
MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gTGliV2ViUlRDUmVzb2x2ZXIuaDsgcGF0aCA9IE5ldHdvcmsvd2VicnRjL0xpYldl
YlJUQ1Jlc29sdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRkFGNUY3MUUz
QzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMaWJXZWJSVENSZXNvbHZlci5jcHA7IHBhdGggPSBOZXR3b3Jr
L3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTQ0NTBBRUJGMURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFyZWRNZW1vcnlDb2NvYS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MEY0ODhEMUY5OTZGNkMwMENGNEI4NyAv
KiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDYwRjQ4
OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlck1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDb250ZXh0
TWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MEY0ODhE
MUY5OTZGNkMwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQ2MEY0ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDYyMTA3RDcxRjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFBpbmdMb2FkLmNwcDsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDYzRkQ0N0YxRUI5NDU4NDAwQTI5ODJDIC8qIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVh
c29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJvY2Vzc1Rlcm1pbmF0
aW9uUmVhc29uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2M0ZENDgxMUVCOTRF
QUQwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2NTI1MEU1MUVDRjUyQ0QwMDIwMjVDQiAvKiBXZWJLaXQySW5p
dGlhbGl6ZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY2QkMw
MzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NkJDMDNBMUZBMjY2QzkwMDJG
QTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDYxRTU2NzVBMjAwQzNERURB
IC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNz
VGltZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkEyQjYwNzFFNTY3NUEy
MDBDM0RFREEgLyogQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5l
c3NUaW1lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkRGMDYzOTFGMzkwNUU1
MDAxOTgwQkIgLyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA7
IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjIxNSw4ICs2MjE2LDYgQEAKIAkJCQk0MTMx
RjNEMDFGOTZCQ0M4MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLywK
IAkJCQk0MTMxRjNDRTFGOTZBNDk1MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNsaWVudEZldGNo
LmggKi8sCiAJCQkJNDEzMUYzQ0YxRjk2QTkzNjAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGll
bnRGZXRjaC5tZXNzYWdlcy5pbiAqLywKLQkJCQk0MTMxRjNEMzFGOTZFOTMxMDA1OTk5NUEgLyog
U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcCAqLywKLQkJCQk0MTMxRjNEMjFGOTZFOTMw
MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmggKi8sCiAJCQkJNDE0REVE
QzUxRjlFNEJFQzAwNDdDNDBEIC8qIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Ki8sCiAJCQkJNDE0REVEQzQxRjlFNEJFQjAwNDdDNDBEIC8qIFNlcnZpY2VXb3JrZXJGcmFtZUxv
YWRlckNsaWVudC5oICovLAogCQkJCTQxMzFGM0UwMUY5ODcxMkMwMDU5OTk1QSAvKiBXZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCAqLywKQEAgLTYyMjYsNiArNjIyNSw5IEBACiAJ
CQkJNTE3QTUzMDMxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAg
Ki8sCiAJCQkJNTE3QTUzMDIxRjQ3OTNCMjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oICovLAogCQkJCTUxN0E1MzBDMUY0NzlFOTcwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJNDY2QkMwMzgxRkEyNjZDOTAwMkZBOUMxIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLywKKwkJCQk0NjZCQzAzOTFGQTI2NkM5
MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAqLywKKwkJCQk0NjZC
QzAzQTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gKi8sCiAJCQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2lu
VGFibGUuY3BwICovLAogCQkJCTgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAvKiBXZWJTV09yaWdp
blRhYmxlLmggKi8sCiAJCQkJNTExOEU5OTkxRjI5NTI1OTAwM0VGOUY1IC8qIFdlYlRvU3RvcmFn
ZVByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLywKQEAgLTgwNjgsOCArODA3MCw2IEBACiAJCQkJRTE4
RTY5MTMxNjlCNjY3QjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCUUxOEU2OTE0MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5
TWVzc2FnZXMuaCAqLywKIAkJCQk2MTdBNTJENzFGNDNBOUI2MDBEQ0RDMEEgLyogU2VydmljZVdv
cmtlckNsaWVudEZldGNoTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKLQkJCQk0NjBGNDg4RDFGOTk2
RjZDMDBDRjRCODcgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKLQkJCQk0NjBGNDg4RTFGOTk2RjZDMDBDRjRCODcgLyogU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQkyREU2OTQzQjE4QkQyQTY4MDA1QzE1RTUg
LyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJ
CQkJMkRFNjk0M0MxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXJNZXNzYWdlcy5oICovLAogCQkJCTFBMzM0REVCMTZERThGODgwMDZBOEUzOCAvKiBTdG9yYWdl
QXJlYU1hcE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC04MTY0LDYgKzgxNjQsOCBAQAogCQkJ
CTVDMEIxNzc3MUU3Qzg3OUMwMEU5MTIzQyAvKiBXZWJTb2NrZXRTdHJlYW1NZXNzYWdlcy5oICov
LAogCQkJCTUxN0E1MzBFMUY0N0E4NDMwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxN0E1MzBEMUY0N0E4NDMwMERDREMwQSAvKiBX
ZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlcy5oICovLAorCQkJCTQ2MEY0ODhEMUY5OTZGNkMw
MENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8sCisJCQkJNDYwRjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCAqLywKIAkJCQk1MTdBNTJENzFGNDNBOUI2MDBEQ0RDMEEg
LyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MTdB
NTJENjFGNDNBOUI2MDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCAq
LywKIAkJCQkxQUFGMDhCNTE5MjY5RTZEMDBCNjM5MEMgLyogV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTg4NDQsOCArODg0Niw2IEBACiAJCQkJRTE4
RTY5MEMxNjlCNTYzRjAwOUI2NjcwIC8qIFNlY0l0ZW1TaGltUHJveHkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxOEU2OTE4MTY5QjY2N0IwMDlCNjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNEQ5RjU3MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2
aWNlc0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTQxMzFGM0Q1MUY5NkU5MzUwMDU5
OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQ2MEY0ODkwMUY5OTZGNzEwMENGNEI4NyAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDE0REVERDcxRjlFRERFNTAwNDdDNDBEIC8q
IFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRkRFNjVB
MTk1NEE0MkIwMEM0OEZGQSAvKiBTZXNzaW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
MDAyRDQ5MTk2QjM0NUQwMEI5QUQ0NCAvKiBTZXNzaW9uU3RhdGVDb2RpbmcuaCBpbiBIZWFkZXJz
ICovLApAQCAtOTA4MSw2ICs5MDgxLDggQEAKIAkJCQkxQTUyQzBGODFBMzhDREM3MDAxNjE2MEEg
LyogV2ViU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdB
NTMwNTFGNDc5M0M2MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTdBNTMxMDFGNDdBODYyMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0
aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2NkJDMDNDMUZBMjY2REEwMDJGQTlD
MSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NDYwRjQ4OTAxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMjk5NEE4MUY5NkY1MDIwMEFDNTdCMSAv
KiBXZWJTV09yaWdpblN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4M0YxQTA3QTFGOTZFNzc5
MDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUz
MEIxRjQ3OUUzNjAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMDQ0MCw4ICsxMDQ0Miw2IEBACiAJCQkJNTE0RDlGNTgxOTExOUQzNTAwMDA2M0E3
IC8qIFNlcnZpY2VzQ29udHJvbGxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQxMzFGM0QxMUY5
NkJDQ0MwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2guY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNjE3QTUyRDgxRjQzQTlEQTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRG
ZXRjaE1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MTMxRjNENDFGOTZF
OTM1MDA1OTk5NUEgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTQ2MEY0ODhGMUY5OTZGNzEwMENGNEI4NyAvKiBTZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDE0REVERDgx
RjlFRERFNTAwNDdDNDBEIC8qIFNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUFGREU2NTkxOTU0QTQyQjAwQzQ4RkZBIC8qIFNlc3Npb25TdGF0ZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQTAwMkQ0ODE5NkIzNDVEMDBCOUFENDQgLyogU2Vzc2lvblN0
YXRlQ29kaW5nLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMDc0MCw2ICsxMDc0MCw4IEBACiAJCQkJ
MUE1MkMwRjcxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdBNTMwNDFGNDc5M0M2MDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIw
MERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNDY2QkMwM0IxRkEyNjZEQTAwMkZBOUMxIC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ2MEY0ODhGMUY5OTZGNzEw
MENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzI5OTRBNzFGOTZGNTAyMDBBQzU3QjEgLyogV2ViU1dP
cmlnaW5TdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4M0YxQTA3OTFGOTZFNzc5MDA0NUI5
NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdBNTMwQTFG
NDc5RTM2MDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDk0ZDYzNGQ2MTJiZGM0M2M5NWMyZjZhM2ZlZWNjOWQwN2QwNzM4MGYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDE0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIgotCi0jaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgotI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKLSNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCi0jaW5jbHVkZSAi
V2ViQ2FjaGVTdG9yYWdlUHJvdmlkZXIuaCIKLSNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKLSNpbmNsdWRlICJXZWJEb2N1bWVudExvYWRlci5oIgotI2luY2x1ZGUgIldlYlByZWZl
cmVuY2VzS2V5cy5oIgotI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNpbmNsdWRl
ICJXZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSAiV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5oIgotI2luY2x1ZGUgIldlYlNvY2tldFByb3ZpZGVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9F
ZGl0b3JDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5Q2xpZW50cy5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
TGliV2ViUlRDUHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VQb3J0Q2hhbm5l
bC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oPgotI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KLQotI2lmIFVT
RShRVUlDS19MT09LKQotI2luY2x1ZGUgPFdlYkNvcmUvUHJldmlld0xvYWRlckNsaWVudC5oPgot
I2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBQQUw7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNs
aWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAg
ICBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2NF90IGZyYW1lSUQpCi0gICAgICAgIDogbV9zZXNzaW9u
SUQoc2Vzc2lvbklEKQotICAgICAgICAsIG1fcGFnZUlEKHBhZ2VJRCkKLSAgICAgICAgLCBtX2Zy
YW1lSUQoZnJhbWVJRCkKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFJlZjxEb2N1bWVu
dExvYWRlcj4gY3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0YSYgc3Vic3RpdHV0ZURhdGEpIGZpbmFsCi0gICAgewot
ICAgICAgICByZXR1cm4gV2ViRG9jdW1lbnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0
dXRlRGF0YSk7Ci0gICAgfQotCi0gICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQ7IH0KLSAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJRDsgfQotICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2ZyYW1lSUQ7IH0KLQotICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vz
c2lvbklEOwotICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fZnJh
bWVJRCB7IDAgfTsKLX07Ci0KLVNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6U2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWlu
dDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKLSAgICA6IG1f
Y29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKLSAgICAsIG1f
cGFnZUlEKHBhZ2VJRCkKLXsKLSAgICB1cGRhdGVQcmVmZXJlbmNlcyhzdG9yZSk7Ci19Ci0KLXZv
aWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKLXsKLSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLnNldENhY2hlQVBJRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNhY2hlQVBJRW5hYmxlZEtleSgpKSk7Ci0gICAgUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmZXRjaEFQSUVuYWJs
ZWRLZXkoKSkpOwotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6c3RhcnRT
ZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCi17Ci0gICAgLy8gRklYTUU6IFByb3ZpZGUg
YSBzZW5zaWNhbCBzZXNzaW9uIElELgotICAgIGF1dG8gc2Vzc2lvbklEID0gUEFMOjpTZXNzaW9u
SUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKLQotICAgIFBhZ2VDb25maWd1cmF0aW9uIHBhZ2VDb25m
aWd1cmF0aW9uIHsKLSAgICAgICAgY3JlYXRlRW1wdHlFZGl0b3JDbGllbnQoKSwKLSAgICAgICAg
V2ViU29ja2V0UHJvdmlkZXI6OmNyZWF0ZSgpLAotICAgICAgICBXZWJDb3JlOjpMaWJXZWJSVENQ
cm92aWRlcjo6Y3JlYXRlKCksCi0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hl
U3RvcmFnZVByb3ZpZGVyKCkKLSAgICB9OwotICAgIGZpbGxXaXRoRW1wdHlDbGllbnRzKHBhZ2VD
b25maWd1cmF0aW9uKTsKLSAgICBhdXRvIGZyYW1lTG9hZGVyQ2xpZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ+KHNlc3Npb25JRCwgbV9wYWdlSUQs
ICsrbV9wcmV2aW91c1NlcnZpY2VXb3JrZXJJRCk7Ci0gICAgcGFnZUNvbmZpZ3VyYXRpb24ubG9h
ZGVyQ2xpZW50Rm9yTWFpbkZyYW1lID0gZnJhbWVMb2FkZXJDbGllbnQucmVsZWFzZSgpOwotCi0g
ICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OmNyZWF0ZShXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSwgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGRhdGEsIHNlc3Npb25JRCwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVT
dG9yYWdlUHJvdmlkZXIoKSk7Ci0gICAgYXV0byBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IHNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+aWRlbnRpZmllcigpOwotICAgIGF1dG8gcmVzdWx0ID0g
bV93b3JrZXJNYXAuYWRkKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXVEZNb3ZlKHNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eSkpOwotICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNO
ZXdFbnRyeSk7Ci0KLSAgICBMT0coU2VydmljZVdvcmtlciwgIkNvbnRleHQgcHJvY2VzcyBQSUQ6
ICVpIHN0YXJ0ZWQgd29ya2VyIHRocmVhZCAlc1xuIiwgZ2V0cGlkKCksIGRhdGEud29ya2VySUQu
dXRmOCgpLmRhdGEoKSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5k
KE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6U2VydmljZVdvcmtlckNvbnRleHRTdGFydGVkKHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLnJlZ2lzdHJhdGlvbktleSwgc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGRhdGEud29ya2VySUQpLCAwKTsKLX0KLQotdm9pZCBTZXJ2aWNlV29y
a2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9w
dGlvbnMpCi17Ci0gICAgYXV0byBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciA/IG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcikg
OiBudWxscHRyOwotICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7Ci0gICAgICAg
IG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9j
ZXNzOjpEaWROb3RIYW5kbGVGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyKSwgMCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIGNsaWVu
dCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25U
b1N0b3JhZ2VQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZl
dGNoSWRlbnRpZmllcik7Ci0gICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT50aHJlYWQoKS5w
b3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShv
cHRpb25zKSk7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKLXsKLSAg
ICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKLSAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCi0gICAgICAgIHJldHVybjsKLQotICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgotICAg
IHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgbnVs
bHB0ciwgc291cmNlT3JpZ2luKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTBkYjgyNjllNzNjNzJhYmE1OWIzN2JiY2Y1
YjdlMzg1ODYwNGZiNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIkNv
bm5lY3Rpb24uaCIKLSNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKLSNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLXN0cnVjdCBGZXRjaE9wdGlvbnM7Ci1jbGFzcyBSZXNv
dXJjZVJlcXVlc3Q7Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwotfQotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLXN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwotCi1jbGFzcyBTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewot
cHVibGljOgotICAgIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcihSZWY8SVBDOjpDb25uZWN0
aW9uPiYmLCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKLQot
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlJik7Ci0KLSAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlcih1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRleHREYXRhJik7Ci0gICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJiYpOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwotCi0gICAgUmVmPElQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBS
ZWZQdHI8V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZFByb3h5Pj4gbV93b3JrZXJNYXA7Ci0g
ICAgdWludDY0X3QgbV9wYWdlSUQgeyAwIH07Ci0gICAgdWludDY0X3QgbV9wcmV2aW91c1NlcnZp
Y2VXb3JrZXJJRCB7IDAgfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5h
Z2VyLm1lc3NhZ2VzLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjY2M2Y4MWU3
Y2EwYjg2ZTY2M2NmOTRiZjA1NWU1Y2IwNGQ1YzI3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1Nl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgorKysgL2Rldi9udWxsCkBAIC0x
LDMxICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotbWVzc2FnZXMgLT4gU2VydmljZVdvcmtlckNvbnRl
eHRNYW5hZ2VyIHsKLSAgICBTdGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEg
Y29udGV4dERhdGEpCi0gICAgU3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJD
b3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKLSAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFN0
cmluZyBzb3VyY2VPcmlnaW4pCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkMGIyN2Q5Y2RiZWU4MjBlOWIzZmM5NGJiNzg1NjkyMTYx
MTg2NmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiU3Rv
cmFnZVByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVByb3ZpZGVy
LmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRG9j
dW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1
ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJTb2Nr
ZXRQcm92aWRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9FbXB0eUNsaWVudHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5RnJhbWVM
b2FkZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorCisjaWYgVVNFKFFVSUNL
X0xPT0spCisjaW5jbHVkZSA8V2ViQ29yZS9QcmV2aWV3TG9hZGVyQ2xpZW50Lmg+CisjZW5kaWYK
KwordXNpbmcgbmFtZXNwYWNlIFBBTDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50IGZp
bmFsIDogcHVibGljIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQgeworcHVibGljOgorICAgIFNlcnZp
Y2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90IHBhZ2VJRCwgdWludDY0X3QgZnJhbWVJRCkKKyAgICAgICAgOiBtX3Nlc3Npb25JRChzZXNz
aW9uSUQpCisgICAgICAgICwgbV9wYWdlSUQocGFnZUlEKQorICAgICAgICAsIG1fZnJhbWVJRChm
cmFtZUlEKQorICAgIHsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVmPERvY3VtZW50TG9hZGVy
PiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNv
bnN0IFN1YnN0aXR1dGVEYXRhJiBzdWJzdGl0dXRlRGF0YSkgZmluYWwKKyAgICB7CisgICAgICAg
IHJldHVybiBXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRh
KTsKKyAgICB9CisKKyAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3Nlc3Npb25JRDsgfQorICAgIHVpbnQ2NF90IHBhZ2VJRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fcGFnZUlEOyB9CisgICAgdWludDY0X3QgZnJhbWVJRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fZnJhbWVJRDsgfQorCisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7
CisgICAgdWludDY0X3QgbV9wYWdlSUQgeyAwIH07CisgICAgdWludDY0X3QgbV9mcmFtZUlEIHsg
MCB9OworfTsKKworV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKKyAgICA6IG1fY29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKKyAgICAsIG1fcGFn
ZUlEKHBhZ2VJRCkKK3sKKyAgICB1cGRhdGVQcmVmZXJlbmNlcyhzdG9yZSk7Cit9CisKK3ZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQoreworICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q2FjaGVBUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6Y2FjaGVBUElFbmFibGVkS2V5KCkpKTsKKyAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZldGNoQVBJRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZldGNoQVBJRW5hYmxl
ZEtleSgpKSk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0
U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQoreworICAgIC8vIEZJWE1FOiBQcm92aWRl
IGEgc2Vuc2ljYWwgc2Vzc2lvbiBJRC4KKyAgICBhdXRvIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CisKKyAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29u
ZmlndXJhdGlvbiB7CisgICAgICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCisgICAgICAg
IFdlYlNvY2tldFByb3ZpZGVyOjpjcmVhdGUoKSwKKyAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRD
UHJvdmlkZXI6OmNyZWF0ZSgpLAorICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNo
ZVN0b3JhZ2VQcm92aWRlcigpCisgICAgfTsKKyAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdl
Q29uZmlndXJhdGlvbik7CisgICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91
bmlxdWU8U2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50PihzZXNzaW9uSUQsIG1fcGFnZUlE
LCArK21fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQpOworICAgIHBhZ2VDb25maWd1cmF0aW9uLmxv
YWRlckNsaWVudEZvck1haW5GcmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LnJlbGVhc2UoKTsKKwor
ICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFBy
b3h5OjpjcmVhdGUoV1RGTW92ZShwYWdlQ29uZmlndXJhdGlvbiksIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBkYXRhLCBzZXNzaW9uSUQsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hl
U3RvcmFnZVByb3ZpZGVyKCkpOworICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSBz
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPmlkZW50aWZpZXIoKTsKKyAgICBTV0NvbnRleHRNYW5h
Z2VyOjpzaW5nbGV0b24oKS5yZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWQoV1RGTW92ZShzZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkpKTsKKworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiQ29udGV4
dCBwcm9jZXNzIFBJRDogJWkgc3RhcnRlZCB3b3JrZXIgdGhyZWFkICVzXG4iLCBnZXRwaWQoKSwg
ZGF0YS53b3JrZXJJRC51dGY4KCkuZGF0YSgpKTsKKworICAgIG1fY29ubmVjdGlvblRvU3RvcmFn
ZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpTZXJ2aWNlV29ya2VyQ29u
dGV4dFN0YXJ0ZWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGRhdGEucmVnaXN0cmF0aW9u
S2V5LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZGF0YS53b3JrZXJJRCksIDApOworfQorCit2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2
NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBG
ZXRjaE9wdGlvbnMmJiBvcHRpb25zKQoreworICAgIGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgaWYgKCFzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkpIHsKKyAgICAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkRpZE5vdEhhbmRsZUZldGNoKHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpLCAwKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGF1dG8gY2xpZW50ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6
Y3JlYXRlKG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MuY29weVJlZigpLCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHktPnRocmVhZCgpLnBvc3RGZXRjaFRhc2soV1RGTW92ZShjbGllbnQpLCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50
NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBTV0NvbnRleHRNYW5h
Z2VyOjpzaW5nbGV0b24oKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KG1lc3Nh
Z2UudmVjdG9yKCkpLCBzb3VyY2VPcmlnaW4pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDZkMjI2M2I2NDliNmQyNWU4NjEyMWY2YTQyMmQ3MmFk
ZWFjZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDY1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNp
bmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K3N0cnVjdCBGZXRjaE9wdGlvbnM7CitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitzdHJ1Y3QgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0
IFdlYlByZWZlcmVuY2VzU3RvcmU7CisKK2NsYXNzIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uIDogcHVibGljIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24sIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgdWludDY0X3QgcGFnZUlELCBjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CisKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOworCisgICAgdm9pZCBwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNv
bnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKKworICAgIHZvaWQgc3RhcnRTZXJ2aWNlV29ya2Vy
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmKTsKKyAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgdWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBX
ZWJDb3JlOjpGZXRjaE9wdGlvbnMmJik7CisKKyAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzOworICAgIHVpbnQ2NF90IG1fcGFnZUlEIHsgMCB9Owor
ICAgIHVpbnQ2NF90IG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgeyAwIH07Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWQ3MmQxYjVmODNmNjFhYzVmYzA0MjdkODk2NGMxNGMxZTk2NDcxOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMzEgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKwor
bWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24geworICAgIFN0YXJ0U2Vy
dmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSkKKyAgICBTdGFydEZl
dGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25z
KQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBTdHJpbmcg
c291cmNlT3JpZ2luKQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCAzMzg0YWI4MDliOGJiNzYyN2U2MTAxYmUzNGJhMWU2NzFhYzdmMTVmLi5k
NzdmNTZjZDgyN2RlODk5NGUwNjkyZDk4ZWYyMzkzZWY1NTk3MDhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC00MSw4ICs0MSw2IEBACiAjaW5jbHVkZSAiTmV0
d29ya1Nlc3Npb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbkNyZWF0aW9uUGFyYW1ldGVy
cy5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgotI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJDb250ZXh0TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIK
ICNpbmNsdWRlICJTdGF0aXN0aWNzRGF0YS5oIgogI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzTWVz
c2FnZXMuaCIKQEAgLTY4LDYgKzY2LDggQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbE1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJQcm92aWRl
ci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIldlYlRvU3RvcmFn
ZVByb2Nlc3NDb25uZWN0aW9uLmgiCkBAIC02NzQsMTAgKzY3NCwxMCBAQCB2b2lkIFdlYlByb2Nl
c3M6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpE
ZWNvZGVyJiBkZQogICAgIH0KIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBpZiAo
ZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIEFTU0VSVCht
X3NlcnZpY2VXb3JrZXJNYW5hZ2VyKTsKLSAgICAgICAgaWYgKG1fc2VydmljZVdvcmtlck1hbmFn
ZXIpCi0gICAgICAgICAgICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyLT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJO
YW1lKCkgPT0gTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQVNTRVJUKFNXQ29udGV4dE1hbmFnZXI6OnNpbmds
ZXRvbigpLmNvbm5lY3Rpb24oKSk7CisgICAgICAgIGlmIChhdXRvKiBjb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpCisg
ICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiY+KCpj
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24pLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRl
Y29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCkBAIC0xNjQyLDggKzE2NDIs
NiBAQCBMaWJXZWJSVENOZXR3b3JrJiBXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKCkKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIFdlYlByb2Nlc3M6OmdldFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUpCiB7Ci0gICAgQVNTRVJUKCFtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyKTsKLQogI2lmIFVT
RShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBz
b2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKTsK
ICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoc29j
a2V0UGFpci5zZXJ2ZXIpOwpAQCAtMTY2NCw3ICsxNjYyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpn
ZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZl
cmVuY2UKIAogICAgIGF1dG8gd29ya2VyQ29udGV4dENvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rp
b246OmNyZWF0ZVNlcnZlckNvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsK
ICAgICB3b3JrZXJDb250ZXh0Q29ubmVjdGlvbi0+b3BlbigpOwotICAgIG1fc2VydmljZVdvcmtl
ck1hbmFnZXIgPSBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoV1RGTW92ZSh3b3JrZXJDb250
ZXh0Q29ubmVjdGlvbiksIHBhZ2VJRCwgc3RvcmUpOworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNp
bmdsZXRvbigpLnNldENvbm5lY3Rpb24oc3RkOjptYWtlX3VuaXF1ZTxXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbj4oV1RGTW92ZSh3b3JrZXJDb250ZXh0Q29ubmVjdGlvbiksIHBhZ2VJRCwg
c3RvcmUpKTsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpZEdldFdvcmtlckNvbnRl
eHRDb25uZWN0aW9uKGNvbm5lY3Rpb25DbGllbnRQb3J0KSwgMCk7CiB9CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDI0NmY3N2Y2MmY2OTk2YzE1NmNhMTRj
MmY1ZGRiZjYyYTMyZDA1ZTYuLjJmMjYyYTZhMjQ5ZGIzYzQ2MTE3NmU0ZGIzNGI5YjAyNmU5YWQ0
NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMzAsNyArMzAsNiBA
QAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIgogI2luY2x1ZGUg
IlJlc291cmNlQ2FjaGVzVG9DbGVhci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
LSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuaCIKICNpbmNsdWRlICJUZXh0
Q2hlY2tlclN0YXRlLmgiCiAjaW5jbHVkZSAiVmlld1VwZGF0ZURpc3BhdGNoZXIuaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyLmgiCkBAIC00MzcsOSArNDM2LDYg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShXQVlMQU5EKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
YXlsYW5kQ29tcG9zaXRvckRpc3BsYXk+IG1fd2F5bGFuZENvbXBvc2l0b3JEaXNwbGF5OwogI2Vu
ZGlmCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyPiBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyOwotI2VuZGlmCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>325040</attachid>
            <date>2017-10-26 12:22:52 -0700</date>
            <delta_ts>2017-10-26 13:14:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178876-20171026122251.patch</filename>
            <type>text/plain</type>
            <size>61798</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0MDIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDQ2ZDg2ZmZjNDE1YzAw
ZTZlZGM0YTBmZjRkYzM4NzIwMTIxOTIyMS4uMDcwYzZhYTQwMDgzNTZlNDYyYzk3NmNmNzliYWYw
NDUzMGQxMTViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEwLTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQnJpbmcgYmFjayBTV0NvbnRl
eHRNYW5hZ2VyIGFic3RyYWN0aW9uIGluIFdlYkNvcmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEJyaW5nIGJhY2sgU1dDb250ZXh0TWFuYWdlciBhYnN0
cmFjdGlvbiBpbiBXZWJDb3JlLiBJdCB3YXMga2lsbGVkIGluIDxodHRwczovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMjIzNzE4PiBidXQKKyAgICAgICAgaXMgYWN0dWFsbHkgdXNlZnVsIHdo
ZW4gdGhlIFNlcnZpY2VXb3JrZXIgd2FudHMgdG8gbWVzc2FnZSB0aGUgc3RvcmFnZSBwcm9jZXNz
LgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFn
ZXI6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpzZXRD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OmNvbm5lY3Rp
b24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6cmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6
OnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV0Nv
bnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlci5oLgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVj
dGlvbjo6fkNvbm5lY3Rpb24pOgorCiAyMDE3LTEwLTI1ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFhNTEh0dHBSZXF1ZXN0IHNob3VsZCBub3QgdHJlYXQg
ZmlsZSBVUkxzIGFzIHNhbWUgb3JpZ2luCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNkNGEwMzkxMzk1ZjhmNjU2MmUx
M2U5YzVmYzQ2YzE3MmFmM2Y2Y2UuLmI0ZDI4ZjQ5YzJkYjQ0YjAyODUwOTE4YTlkMTZmYjE4NWJj
YThjNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTctMTAtMjYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBCcmluZyBiYWNrIFNXQ29udGV4dE1hbmFn
ZXIgYWJzdHJhY3Rpb24gaW4gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc4ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnJpbmcgYmFjayBTV0NvbnRleHRNYW5hZ2VyIGFic3RyYWN0aW9u
IGluIFdlYkNvcmUuIEl0IHdhcyBraWxsZWQgaW4gPGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8yMjM3MTg+IGJ1dAorICAgICAgICBpcyBhY3R1YWxseSB1c2VmdWwgd2hlbiB0aGUg
U2VydmljZVdvcmtlciB3YW50cyB0byBtZXNzYWdlIHRoZSBzdG9yYWdlIHByb2Nlc3MuCisKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNl
cnZpY2VXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNw
cC4KKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0U2VydmljZVdvcmtlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6Z2V0V29y
a2VyQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorCiAyMDE3LTEwLTI2ICBDaHJpc3RvcGhlciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4K
IAogICAgICAgICBSZW1vdmUgc2NvcGVndWFyZCBmcm9tIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDA3ZjZmYWIwNjczNzYyY2ZlNGZiY2M1MWM3NTNhYjBmMDQ4NjlmZGYuLjIxNmExNDA2ZDg1
M2MxMTE5NzFlOGUyOGQ2NjI0NjAyY2IyMTAwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yMTY5LDYg
KzIxNjksNyBAQCB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAK
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKIHdvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCiB3b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCit3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAogCiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggOTVmNGMzNGQ4Njk4Mjc0ZTZmYzQ3Yjc5ZDNkZTI4OGU1YmY4YjhkMC4uNGI2YjQ1NDMwZjNi
ZDY0MDMxZjdlNGViY2IxNmUxOGYzODE1NDZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIwMyw2ICsxMjAzLDcgQEAKIAkJ
NDYzNDU5MkMxQUMyMjcxMDAwRUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzNDU5MkIxQUMyMjcxMDAw
RUNCNzFDIC8qIFBvd2VyT2JzZXJ2ZXJNYWMuY3BwICovOyB9OwogCQk0NjNFQjYyMzFCODc4OUUw
MDA5NkVENTEgLyogVGFnQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDYzRUI2MjExQjg3ODlDQjAwOTZFRDUxIC8qIFRhZ0NvbGxlY3Rp
b24uaCAqLzsgfTsKIAkJNDY1MzA3RDAxREI2RUU0ODAwRTQxMzdDIC8qIEpTVUlFdmVudEluaXQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRTA0NUVG
MURBQTEwNEYwMEIwRDhCOSAvKiBKU1VJRXZlbnRJbml0LmggKi87IH07CisJCTQ2NjU4REM5MUZB
MjRCODcwMEY3REQ1NCAvKiBTV0NvbnRleHRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjcyNDEzQjFGQTI0QjE0MDA4OEJENkQgLyogU1dD
b250ZXh0TWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQ2NkVEOEQzMUVERTAxNDQwMDVFNDNGNiAvKiBKU0RPTVJlY3RMaXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjZFRDhEMjFFREUw
MTM1MDA1RTQzRjYgLyogSlNET01SZWN0TGlzdC5oICovOyB9OwogCQk0NjcxRTA2NjFENjdBNTk2
MDBDNkI0OTcgLyogQ2FudmFzUGF0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZhc1BhdGguaCAq
LzsgfTsKIAkJNDY3MzAyMDIxQzRFRkU3ODAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5nVW5s
b2FkQ291bnRJbmNyZW1lbnRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDY3MzAyMDExQzRFRkU2NjAwQkNCMzU3IC8qIElnbm9yZU9wZW5zRHVyaW5n
VW5sb2FkQ291bnRJbmNyZW1lbnRlci5oICovOyB9OwpAQCAtNzM3Nyw2ICs3Mzc4LDggQEAKIAkJ
NDY2RUQ4RDIxRURFMDEzNTAwNUU0M0Y2IC8qIEpTRE9NUmVjdExpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01SZWN0TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0NjcxRTA2MzFENjdBNTdCMDBDNkI0OTcgLyogQ2FudmFzUGF0aC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNQYXRoLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY3MUUwNjQxRDY3QTU3QjAwQzZCNDk3IC8qIENhbnZh
c1BhdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FudmFzUGF0aC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjcyNDEzQTFGQTI0QjE0MDA4OEJENkQgLyog
U1dDb250ZXh0TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTV0NvbnRleHRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDY3
MjQxM0IxRkEyNEIxNDAwODhCRDZEIC8qIFNXQ29udGV4dE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1dDb250ZXh0TWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NjczMDIwMTFDNEVGRTY2MDBCQ0IzNTcgLyogSWdub3JlT3BlbnNEdXJp
bmdVbmxvYWRDb3VudEluY3JlbWVudGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IElnbm9yZU9wZW5zRHVyaW5nVW5sb2FkQ291bnRJbmNyZW1lbnRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0NjgyRDFGRjFGNzk3ODIzMDBDODYzREIgLyogU3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDY4MzQ0
REMxRURERkE1RjAwQjc3OTVCIC8qIERPTVJlY3RMaXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01SZWN0TGlzdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzI0Myw2ICsxNzI0Niw4IEBACiAJ
CQkJNTE3Qzg3MTAxRjhFRTcyRTAwRUI4MDc2IC8qIFNlcnZpY2VXb3JrZXJUaHJlYWQuaCAqLywK
IAkJCQk0MTEyQjU0MTFGOUY5QzlDMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmNwcCAqLywKIAkJCQk0MTEyQjUzRjFGOUY5QzlCMDBFNjc4NzUgLyogU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmggKi8sCisJCQkJNDY3MjQxM0ExRkEyNEIxNDAwODhCRDZEIC8qIFNXQ29udGV4
dE1hbmFnZXIuY3BwICovLAorCQkJCTQ2NzI0MTNCMUZBMjRCMTQwMDg4QkQ2RCAvKiBTV0NvbnRl
eHRNYW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGNvbnRleHQ7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMjkzMzUsNiArMjkzNDAsNyBAQAogCQkJCUIyMjI3QUY2MEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdab29tQW5kUGFuLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkU0RUM5
ODBEMDBDMjJCMDA0MzI2NDMgLyogU1ZHWm9vbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk1
MTdBNTMxRDFGNEI1M0IxMDBEQ0RDMEEgLyogU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk0NjY1OERDOTFGQTI0Qjg3MDBGN0RENTQgLyogU1dDb250ZXh0TWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUyRjAxRjQ3NTM1QjAwRENEQzBBIC8qIFNXU2VydmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUY2NDU5NzFGNEE2ODZGMDBCNTRERUQgLyogU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzQ2MUY1MEMxN0YwMERD
REMwQSAvKiBTV1NlcnZlcldvcmtlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY3OGI5MmI0MzYwMWQ3NGI0ZjZjZjJmZDFlY2U5ZTQ1MWM0MmFiZGMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorI2luY2x1ZGUg
IlNXQ29udGV4dE1hbmFnZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTV0NvbnRleHRN
YW5hZ2VyJiBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKQoreworICAgIHN0YXRpYyBTV0Nv
bnRleHRNYW5hZ2VyKiBzaGFyZWRNYW5hZ2VyID0gbmV3IFNXQ29udGV4dE1hbmFnZXI7CisgICAg
cmV0dXJuICpzaGFyZWRNYW5hZ2VyOworfQorCit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnNldENv
bm5lY3Rpb24oc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK3sKKyAg
ICBBU1NFUlQoIW1fY29ubmVjdGlvbik7CisgICAgbV9jb25uZWN0aW9uID0gV1RGTW92ZShjb25u
ZWN0aW9uKTsKK30KKworYXV0byBTV0NvbnRleHRNYW5hZ2VyOjpjb25uZWN0aW9uKCkgY29uc3Qg
LT4gQ29ubmVjdGlvbioKK3sKKyAgICByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOworfQorCit2
b2lkIFNXQ29udGV4dE1hbmFnZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZChSZWY8U2Vy
dmljZVdvcmtlclRocmVhZFByb3h5PiYmIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkKK3sKKyAg
ICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gc2VydmljZVdvcmtlclRocmVhZFByb3h5
LT5pZGVudGlmaWVyKCk7CisgICAgYXV0byByZXN1bHQgPSBtX3dvcmtlck1hcC5hZGQoc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdURk1vdmUoc2VydmljZVdvcmtlclRocmVhZFByb3h5KSk7Cisg
ICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKK30KKworU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5KiBTV0NvbnRleHRNYW5hZ2VyOjpzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Cit9CisKK3ZvaWQg
U1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1
aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3sKKyAgICBhdXRvKiBz
ZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsK
KyAgICBpZiAoIXNlcnZpY2VXb3JrZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcGFzcyB2YWxpZCBNZXNzYWdlUG9ydENoYW5uZWxzLgorICAgIHNlcnZpY2VX
b3JrZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV1RG
TW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNlT3JpZ2luKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGNjYWNj
MWEwN2U1Y2M4NWEzZjA1YmQxZGQ4NDUzODlmNDA3YTVjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCkBA
IC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CisKK2NsYXNz
IFNXQ29udGV4dE1hbmFnZXIgeworcHVibGljOgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBT
V0NvbnRleHRNYW5hZ2VyJiBzaW5nbGV0b24oKTsKKworICAgIGNsYXNzIENvbm5lY3Rpb24gewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+Q29ubmVjdGlvbigpIHsgfQorICAgIH07CisK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbm5lY3Rpb24oc3RkOjp1bmlxdWVfcHRyPENv
bm5lY3Rpb24+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIENvbm5lY3Rpb24qIGNvbm5lY3Rpb24o
KSBjb25zdDsKKworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
VGhyZWFkKFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+JiYpOworICAgIFdFQkNPUkVfRVhQ
T1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2VydmljZVdvcmtlclRocmVhZFByb3h5KHVp
bnQ2NF90KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VP
cmlnaW4pOworCitwcml2YXRlOgorICAgIFNXQ29udGV4dE1hbmFnZXIoKSA9IGRlZmF1bHQ7CisK
KyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U2VydmljZVdvcmtlclRocmVhZFByb3h5Pj4g
bV93b3JrZXJNYXA7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbm5lY3Rpb24+IG1fY29ubmVjdGlv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9T
b3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CmluZGV4IDk4NDExODNjNjIxMDNhNjU1OGE0NDJh
ZWZkN2E3NWRhYzkyZDI3MTUuLmUxODc3ZmNhOGRjZGNmYWZkYzM1OTBiOTdhMmFmMGM5MTQyNGU4
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dApAQCAtNTQxLDggKzU0MSw4IEBAIHNldChXZWJLaXRfU09V
UkNFUwogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpblN0cmVh
bS5jcHAKIAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gu
Y3BwCi0gICAgV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5j
cHAKICAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorICAg
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKICAg
ICBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKICAgICBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKICAgICBXZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcApAQCAtNjg4LDggKzY4OCw4
IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklMRVMKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJveHkubWVzc2FnZXMuaW4KIAogICAgIFdlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4KLSAgICBXZWJQcm9jZXNzL1N0b3JhZ2UvU2Vy
dmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLm1lc3NhZ2VzLmluCiAgICAgV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorICAgIFdlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgogCiAgICAgV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIubWVzc2FnZXMuaW4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDY2ODE0NzY0OTZlZDI1ZTY4MTdmNWZl
NmU0NGY2MGYzOTVlMjRhNzkuLjdiNTNmMjdhMWYyNzIwNTliYjMzMmMwN2I2YTgyN2U1ZWZlYTY5
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNiw3ICsxMjYsNiBAQCBNRVNT
QUdFX1JFQ0VJVkVSUyA9IFwKICAgICBSZW1vdGVXZWJJbnNwZWN0b3JVSSBcCiAgICAgU2VjSXRl
bVNoaW1Qcm94eSBcCiAgICAgU2VydmljZVdvcmtlckNsaWVudEZldGNoIFwKLSAgICBTZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXIgXAogICAgIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIg
XAogICAgIFN0b3JhZ2VBcmVhTWFwIFwKICAgICBTdG9yYWdlTWFuYWdlciBcCkBAIC0xNjMsNiAr
MTYyLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAgICAgV2ViUGF5bWVudENvb3JkaW5hdG9y
IFwKICAgICBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBcCiAgICAgV2ViU1dDbGllbnRDb25u
ZWN0aW9uIFwKKyAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBcCiAgICAgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uIFwKICAgICBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyIFwKICAgICBQbGF5
YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcAppbmRleCBlOWJjYjMyNTM0MmNmNWU1ZmMwOGUxNTU1MDFlZWFlNjdjMDI5NTExLi5m
YzFjNWYwNzViYmMzNWIwNDZkY2ViZDk0MzU3NGI0OWEyMGFlMmVjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMzEsMTMgKzMxLDEzIEBACiAjaW5jbHVkZSAi
RGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3MuaCIKICNpbmNs
dWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlNXT3JpZ2luU3RvcmUuaCIKICNpbmNsdWRlICJXZWJTV1Nl
cnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlRvU3RvcmFnZVByb2Nlc3ND
b25uZWN0aW9uLmgiCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpzdGFydFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllcikKIAogdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBkYXRhKQogewotICAgIGlmIChzZW5kVG9Db250ZXh0
UHJvY2VzcyhNZXNzYWdlczo6U2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyOjpTdGFydFNlcnZp
Y2VXb3JrZXIoaWRlbnRpZmllcigpLCBkYXRhKSkpCisgICAgaWYgKHNlbmRUb0NvbnRleHRQcm9j
ZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRTZXJ2aWNl
V29ya2VyKGlkZW50aWZpZXIoKSwgZGF0YSkpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Bl
bmRpbmdDb250ZXh0RGF0YXMuYXBwZW5kKGRhdGEpOwpAQCAtMTA1LDEyICsxMDUsMTIgQEAgdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2VydmljZVdvcmtlckNvbnRleHQoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHQKIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0
RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBGZXRjaE9wdGlv
bnMmIG9wdGlvbnMpCiB7Ci0gICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6U3RhcnRGZXRjaChpZGVudGlmaWVyKCksIGZldGNoSWRl
bnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMpKTsKKyAg
ICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OlN0YXJ0RmV0Y2goaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zKSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2
NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewotICAgIHNlbmRUb0NvbnRleHRQ
cm9jZXNzKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRlbnRpZmllcigpLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgbWVzc2FnZSwgc291cmNlT3JpZ2luKSk7CisgICAgc2VuZFRvQ29udGV4dFByb2Nl
c3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdl
LCBzb3VyY2VPcmlnaW4pKTsKIH0KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpZFJl
Y2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA5NzFmYmRlN2YzNGMzOTEwYzQxM2Q1MGU3NDBkNjFmZGVi
NjEzODI2Li45MTdlODQwMzMwNGMxZGNiNGFiNGVlNjE4ODYyNzA3MzQwYmYwYTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg5Miw4
ICs4OTIsNiBAQAogCQk0MTMwNzVCMzFERTg1RjU4MDAzOUVDNjkgLyogTGliV2ViUlRDUHJvdmlk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEz
MDc1QTcxREU4NUVFNzAwMzlFQzY5IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmNwcCAqLzsgfTsKIAkJ
NDEzMDc1QjQxREU4NUY1ODAwMzlFQzY5IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMwNzVBODFERTg1RUU3MDAz
OUVDNjkgLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDEzMUYzRDExRjk2QkNDQzAw
NTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxRjNEMDFGOTZCQ0M4MDA1OTk5NUEgLyog
U2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLzsgfTsKLQkJNDEzMUYzRDQxRjk2RTkzNTAw
NTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxRjNEMzFGOTZFOTMxMDA1OTk5NUEg
LyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmNwcCAqLzsgfTsKLQkJNDEzMUYzRDUxRjk2
RTkzNTAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzMUYzRDIxRjk2RTkzMDAwNTk5
OTVBIC8qIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oICovOyB9OwogCQk0MTMxRjNFMjFG
OTg4MDg0MDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTMxRjNFMDFGOTg3
MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAgKi87IH07
CiAJCTQxMzVGQkQxMUY0RkI4MDkwMDc0QzQ3QiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDEzNUZC
Q0YxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hlU3RvcmFnZUVuZ2luZUNhY2hlcy5jcHAgKi87IH07
CiAJCTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURE
NTFGOUVERERGMDA0N0M0MEQgLyogU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oICovOyB9OwpA
QCAtOTIwLDEyICs5MTgsMTQgQEAKIAkJNDFGQUY1RjgxRTNDMTAyMTAwMUFFNjc4IC8qIExpYldl
YlJUQ1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUZBRjVGNjFFM0MwQjQ3MDAxQUU2NzggLyogTGliV2ViUlRDUmVzb2x2ZXIuaCAqLzsg
fTsKIAkJNDFGQUY1RjkxRTNDMTAyNTAwMUFFNjc4IC8qIExpYldlYlJUQ1Jlc29sdmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRkFGNUY3MUUz
QzBCNDcwMDFBRTY3OCAvKiBMaWJXZWJSVENSZXNvbHZlci5jcHAgKi87IH07CiAJCTQ0NTBBRUMw
MURDM0ZBRTUwMDk5NDNGMiAvKiBTaGFyZWRNZW1vcnlDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDUwQUVCRjFEQzNGQUU1MDA5OTQzRjIg
LyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovOyB9OwotCQk0NjBGNDg4RjFGOTk2RjcxMDBDRjRC
ODcgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MEY0ODhEMUY5OTZG
NkMwMENGNEI4NyAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwotCQk0NjBGNDg5MDFGOTk2RjcxMDBDRjRCODcgLyogU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2MEY0ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBTZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXJNZXNzYWdlcy5oICovOyB9OworCQk0NjBGNDg4RjFGOTk2RjcxMDBDRjRCODcg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDYwRjQ4OEQxRjk5NkY2
QzAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLzsgfTsKKwkJNDYwRjQ4OTAxRjk5NkY3MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ2MEY0ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi87IH07CiAJCTQ2MjEwN0Q4MUYzOERCREIwMERE
NzgxMCAvKiBQaW5nTG9hZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0NjIxMDdENzFGMzhEQkQzMDBERDc4MTAgLyogUGluZ0xvYWQuY3BwICovOyB9
OwogCQk0NjNGRDQ4MDFFQjk0NTk2MDBBMjk4MkMgLyogV0tQcm9jZXNzVGVybWluYXRpb25SZWFz
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZE
NDdGMUVCOTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2M0ZENDgyMUVC
OTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2M0ZENDgxMUVCOTRFQUQwMEEyOTgy
QyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCAqLzsgfTsKIAkJNDY1MjUwRTYxRUNGNTJE
QzAwMjAyNUNCIC8qIFdlYktpdDJJbml0aWFsaXplQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjUyNTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyog
V2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbSAqLzsgfTsKKwkJNDY2QkMwM0IxRkEyNjZEQTAwMkZB
OUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAv
KiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi87IH07CisJCTQ2NkJDMDNDMUZB
MjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDY2QkMwMzkxRkEyNjZDOTAw
MkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi87IH07CiAJCTQ2QTJC
NjA4MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGlt
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZB
MkI2MDYxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tncm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NU
aW1lci5jcHAgKi87IH07CiAJCTQ2QTJCNjA5MUU1Njc2QTYwMEMzREVEQSAvKiBCYWNrZ3JvdW5k
UHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ2QTJCNjA3MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5k
UHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaCAqLzsgfTsKIAkJNDZERjA2M0IxRjM5MDVGODAw
MTk4MEJCIC8qIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkRGMDYzOTFGMzkwNUU1MDAxOTgwQkIg
LyogTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCAqLzsgfTsKQEAgLTMxOTYsOCArMzE5
Niw2IEBACiAJCTQxMzFGM0NFMUY5NkE0OTUwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50
RmV0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckNs
aWVudEZldGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzFGM0NGMUY5NkE5
MzYwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEZldGNoLm1lc3NhZ2VzLmluOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTMxRjNEMDFGOTZCQ0M4MDA1OTk5NUEgLyog
U2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTQxMzFGM0QyMUY5NkU5MzAwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxMzFG
M0QzMUY5NkU5MzEwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzMUYzRTAxRjk4NzEy
QzAwNTk5OTVBIC8qIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxMzVGQkNGMUY0RkI3RjIw
MDc0QzQ3QiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEzNUZCRDAxRjRGQjdGMjAwNzRDNDdCIC8qIENhY2hl
U3RvcmFnZUVuZ2luZUNhY2hlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZVN0b3JhZ2VFbmdpbmVDYWNoZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTMyMzMsMTIgKzMyMzEsMTUgQEAKIAkJNDFGQUY1RjYxRTNDMEI0NzAwMUFFNjc4IC8qIExpYldl
YlJUQ1Jlc29sdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJU
Q1Jlc29sdmVyLmg7IHBhdGggPSBOZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENSZXNvbHZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUZBRjVGNzFFM0MwQjQ3MDAxQUU2NzggLyog
TGliV2ViUlRDUmVzb2x2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gTGliV2ViUlRDUmVzb2x2ZXIuY3BwOyBwYXRoID0gTmV0d29yay93ZWJydGMvTGliV2ViUlRD
UmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDUwQUVCRjFEQzNG
QUU1MDA5OTQzRjIgLyogU2hhcmVkTWVtb3J5Q29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2hhcmVkTWVtb3J5Q29jb2EuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogU2VydmljZVdvcmtlckNv
bnRleHRNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ2MEY0ODhFMUY5OTZGNkMwMENGNEI4
NyAvKiBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJNZXNzYWdlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcg
LyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
NjBGNDg4RTFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25N
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ2MjEwN0Q3MUYzOERCRDMwMERENzgxMCAvKiBQaW5nTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQaW5nTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
cy9QaW5nTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2M0ZENDdGMUVC
OTQ1ODQwMEEyOTgyQyAvKiBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1Byb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NjNGRDQ4MTFFQjk0RUFEMDBBMjk4MkMgLyogUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NjUyNTBFNTFFQ0Y1MkNEMDAyMDI1Q0IgLyogV2ViS2l0MkluaXRpYWxpemVDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdDJJbml0aWFsaXpl
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NkJDMDM4MUZBMjY2Qzkw
MDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2NkJDMDM5MUZBMjY2QzkwMDJGQTlD
MSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NjZCQzAzQTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ2QTJCNjA2MUU1Njc1QTIwMEMzREVEQSAvKiBCYWNrZ3JvdW5kUHJv
Y2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZBMkI2MDcxRTU2NzVBMjAwQzNERURBIC8qIEJhY2tn
cm91bmRQcm9jZXNzUmVzcG9uc2l2ZW5lc3NUaW1lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVuZXNzVGltZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZERjA2MzkxRjM5MDVFNTAwMTk4MEJCIC8qIE5ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYyMTUsOCArNjIxNiw2IEBACiAJCQkJNDEzMUYzRDAxRjk2QkNDODAwNTk5
OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5jcHAgKi8sCiAJCQkJNDEzMUYzQ0UxRjk2
QTQ5NTAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaC5oICovLAogCQkJCTQxMzFG
M0NGMUY5NkE5MzYwMDU5OTk1QSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2gubWVzc2FnZXMu
aW4gKi8sCi0JCQkJNDEzMUYzRDMxRjk2RTkzMTAwNTk5OTVBIC8qIFNlcnZpY2VXb3JrZXJDb250
ZXh0TWFuYWdlci5jcHAgKi8sCi0JCQkJNDEzMUYzRDIxRjk2RTkzMDAwNTk5OTVBIC8qIFNlcnZp
Y2VXb3JrZXJDb250ZXh0TWFuYWdlci5oICovLAogCQkJCTQxNERFREM1MUY5RTRCRUMwMDQ3QzQw
RCAvKiBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQuY3BwICovLAogCQkJCTQxNERFREM0
MUY5RTRCRUIwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQuaCAqLywK
IAkJCQk0MTMxRjNFMDFGOTg3MTJDMDA1OTk5NUEgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudC5jcHAgKi8sCkBAIC02MjI2LDYgKzYyMjUsOSBAQAogCQkJCTUxN0E1MzAzMUY0Nzkz
QjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwICovLAogCQkJCTUxN0E1MzAy
MUY0NzkzQjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLywKIAkJCQk1MTdB
NTMwQzFGNDc5RTk3MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
ICovLAorCQkJCTQ2NkJDMDM4MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAgKi8sCisJCQkJNDY2QkMwMzkxRkEyNjZDOTAwMkZBOUMxIC8qIFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggKi8sCisJCQkJNDY2QkMwM0ExRkEyNjZDOTAwMkZB
OUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovLAogCQkJ
CTgzRjFBMDc3MUY5NkU3NzAwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmNwcCAqLywKIAkJ
CQk4M0YxQTA3ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovLAogCQkJ
CTUxMThFOTk5MUYyOTUyNTkwMDNFRjlGNSAvKiBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlv
bi5jcHAgKi8sCkBAIC04MDY4LDggKzgwNzAsNiBAQAogCQkJCUUxOEU2OTEzMTY5QjY2N0IwMDlC
NjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQlFMThF
NjkxNDE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggKi8sCiAJ
CQkJNjE3QTUyRDcxRjQzQTlCNjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRGZXRjaE1l
c3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJNDYwRjQ4OEQxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFNl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCi0JCQkJNDYw
RjQ4OEUxRjk5NkY2QzAwQ0Y0Qjg3IC8qIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlck1lc3Nh
Z2VzLmggKi8sCiAJCQkJMkRFNjk0M0IxOEJEMkE2ODAwNUMxNUU1IC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTJERTY5NDNDMThCRDJB
NjgwMDVDMTVFNSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyTWVzc2FnZXMuaCAqLywK
IAkJCQkxQTMzNERFQjE2REU4Rjg4MDA2QThFMzggLyogU3RvcmFnZUFyZWFNYXBNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLApAQCAtODE2NCw2ICs4MTY0LDggQEAKIAkJCQk1QzBCMTc3NzFFN0M4NzlD
MDBFOTEyM0MgLyogV2ViU29ja2V0U3RyZWFtTWVzc2FnZXMuaCAqLywKIAkJCQk1MTdBNTMwRTFG
NDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCAqLywKIAkJCQk1MTdBNTMwRDFGNDdBODQzMDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0
aW9uTWVzc2FnZXMuaCAqLywKKwkJCQk0NjBGNDg4RDFGOTk2RjZDMDBDRjRCODcgLyogV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJCTQ2MEY0
ODhFMUY5OTZGNkMwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmggKi8sCiAJCQkJNTE3QTUyRDcxRjQzQTlCNjAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29u
bmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTE3QTUyRDYxRjQzQTlCNjAwRENE
QzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmggKi8sCiAJCQkJMUFBRjA4QjUx
OTI2OUU2RDAwQjYzOTBDIC8qIFdlYlVzZXJDb250ZW50Q29udHJvbGxlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCkBAIC04ODQ0LDggKzg4NDYsNiBAQAogCQkJCUUxOEU2OTBDMTY5QjU2M0YwMDlC
NjY3MCAvKiBTZWNJdGVtU2hpbVByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMThFNjkxODE2
OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1MTREOUY1NzE5MTE5RDM1MDAwMDYzQTcgLyogU2VydmljZXNDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQk0MTMxRjNENTFGOTZFOTM1MDA1OTk5NUEgLyogU2VydmljZVdv
cmtlckNvbnRleHRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQk0NjBGNDg5MDFGOTk2Rjcx
MDBDRjRCODcgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxNERFREQ3MUY5RURERTUwMDQ3QzQwRCAvKiBTZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUZERTY1QTE5NTRBNDJCMDBDNDhGRkEg
LyogU2Vzc2lvblN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTAwMkQ0OTE5NkIzNDVEMDBC
OUFENDQgLyogU2Vzc2lvblN0YXRlQ29kaW5nLmggaW4gSGVhZGVycyAqLywKQEAgLTkwODEsNiAr
OTA4MSw4IEBACiAJCQkJMUE1MkMwRjgxQTM4Q0RDNzAwMTYxNjBBIC8qIFdlYlN0b3JhZ2VOYW1l
c3BhY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUzMDUxRjQ3OTNDNjAwRENE
QzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUz
MTAxRjQ3QTg2MjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2MEY0ODkwMUY5OTZGNzEw
MENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MzI5OTRBODFGOTZGNTAyMDBBQzU3QjEgLyogV2ViU1dPcmlnaW5TdG9y
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNGMUEwN0ExRjk2RTc3OTAwNDVCOTRFIC8qIFdlYlNX
T3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzBCMUY0NzlFMzYwMERDREMw
QSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMTA0NDAsOCAr
MTA0NDIsNiBAQAogCQkJCTUxNEQ5RjU4MTkxMTlEMzUwMDAwNjNBNyAvKiBTZXJ2aWNlc0NvbnRy
b2xsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MTMxRjNEMTFGOTZCQ0NDMDA1OTk5NUEgLyog
U2VydmljZVdvcmtlckNsaWVudEZldGNoLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTYxN0E1MkQ4
MUY0M0E5REEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RmV0Y2hNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDEzMUYzRDQxRjk2RTkzNTAwNTk5OTVBIC8qIFNl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0NjBGNDg4
RjFGOTk2RjcxMDBDRjRCODcgLyogU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxNERFREQ4MUY5RURERTUwMDQ3QzQwRCAv
KiBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRkRF
NjU5MTk1NEE0MkIwMEM0OEZGQSAvKiBTZXNzaW9uU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEwMDJENDgxOTZCMzQ1RDAwQjlBRDQ0IC8qIFNlc3Npb25TdGF0ZUNvZGluZy5tbSBpbiBT
b3VyY2VzICovLApAQCAtMTA3NDAsNiArMTA3NDAsOCBAQAogCQkJCTFBNTJDMEY3MUEzOENEQzcw
MDE2MTYwQSAvKiBXZWJTdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE3QTUzMDQxRjQ3OTNDNjAwRENEQzBBIC8qIFdlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdBNTMwRjFGNDdBODYyMDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ2
NkJDMDNCMUZBMjY2REEwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQk0NjBGNDg4RjFGOTk2RjcxMDBDRjRCODcgLyogV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJODMyOTk0QTcxRjk2RjUwMjAwQUM1N0IxIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJODNGMUEwNzkxRjk2RTc3OTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2lu
VGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QTUzMEExRjQ3OUUzNjAwRENEQzBBIC8q
IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29u
dGV4dE1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGQ2MzRkNjEy
YmRjNDNjOTVjMmY2YTNmZWVjYzlkMDdkMDczODBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1Nl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNDcgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyQ29udGV4dE1hbmFnZXIuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQot
I2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKLSNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVk
ZSAiU3RvcmFnZVByb2Nlc3NNZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYkNhY2hlU3RvcmFnZVBy
b3ZpZGVyLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSAi
V2ViRG9jdW1lbnRMb2FkZXIuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKLSNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCi0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgot
I2luY2x1ZGUgIldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCIKLSNpbmNsdWRlICJX
ZWJTb2NrZXRQcm92aWRlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9FbXB0eUNsaWVudHMuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0VtcHR5
RnJhbWVMb2FkZXJDbGllbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9NZXNzYWdlUG9ydENoYW5uZWwuaD4KLSNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUu
aD4KLSNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0KLSNpZiBVU0UoUVVJQ0tfTE9PSykKLSNp
bmNsdWRlIDxXZWJDb3JlL1ByZXZpZXdMb2FkZXJDbGllbnQuaD4KLSNlbmRpZgotCi11c2luZyBu
YW1lc3BhY2UgUEFMOwotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBTZXJ2aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQgZmluYWwgOiBwdWJs
aWMgRW1wdHlGcmFtZUxvYWRlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlckZy
YW1lTG9hZGVyQ2xpZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlEKQotICAgICAgICA6IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKLSAg
ICAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCi0gICAgICAgICwgbV9mcmFtZUlEKGZyYW1lSUQpCi0g
ICAgewotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWY8RG9jdW1lbnRMb2FkZXI+IGNyZWF0ZURv
Y3VtZW50TG9hZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Vic3Rp
dHV0ZURhdGEmIHN1YnN0aXR1dGVEYXRhKSBmaW5hbAotICAgIHsKLSAgICAgICAgcmV0dXJuIFdl
YkRvY3VtZW50TG9hZGVyOjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwotICAgIH0K
LQotICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
c2Vzc2lvbklEOyB9Ci0gICAgdWludDY0X3QgcGFnZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9wYWdlSUQ7IH0KLSAgICB1aW50NjRfdCBmcmFtZUlEKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9mcmFtZUlEOyB9Ci0KLSAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAgICB1aW50
NjRfdCBtX3BhZ2VJRCB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2ZyYW1lSUQgeyAwIH07Ci19Owot
Ci1TZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OlNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdl
cihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCi0gICAgOiBtX2Nvbm5lY3Rpb25Ub1N0b3Jh
Z2VQcm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCi0gICAgLCBtX3BhZ2VJRChwYWdlSUQpCi17
Ci0gICAgdXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUpOwotfQotCi12b2lkIFNlcnZpY2VXb3JrZXJD
b250ZXh0TWFuYWdlcjo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9y
ZSYgc3RvcmUpCi17Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRDYWNoZUFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpjYWNoZUFQSUVuYWJsZWRLZXkoKSkpOwotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RmV0Y2hBUElFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZmV0Y2hBUElFbmFibGVkS2V5KCkpKTsKLX0KLQot
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6OnN0YXJ0U2VydmljZVdvcmtlcih1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiBkYXRhKQotewotICAgIC8vIEZJWE1FOiBQcm92aWRlIGEgc2Vuc2ljYWwgc2Vzc2lv
biBJRC4KLSAgICBhdXRvIHNlc3Npb25JRCA9IFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lv
bklEKCk7Ci0KLSAgICBQYWdlQ29uZmlndXJhdGlvbiBwYWdlQ29uZmlndXJhdGlvbiB7Ci0gICAg
ICAgIGNyZWF0ZUVtcHR5RWRpdG9yQ2xpZW50KCksCi0gICAgICAgIFdlYlNvY2tldFByb3ZpZGVy
OjpjcmVhdGUoKSwKLSAgICAgICAgV2ViQ29yZTo6TGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZSgp
LAotICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigp
Ci0gICAgfTsKLSAgICBmaWxsV2l0aEVtcHR5Q2xpZW50cyhwYWdlQ29uZmlndXJhdGlvbik7Ci0g
ICAgYXV0byBmcmFtZUxvYWRlckNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8U2VydmljZVdvcmtl
ckZyYW1lTG9hZGVyQ2xpZW50PihzZXNzaW9uSUQsIG1fcGFnZUlELCArK21fcHJldmlvdXNTZXJ2
aWNlV29ya2VySUQpOwotICAgIHBhZ2VDb25maWd1cmF0aW9uLmxvYWRlckNsaWVudEZvck1haW5G
cmFtZSA9IGZyYW1lTG9hZGVyQ2xpZW50LnJlbGVhc2UoKTsKLQotICAgIGF1dG8gc2VydmljZVdv
cmtlclRocmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVhdGUoV1RGTW92
ZShwYWdlQ29uZmlndXJhdGlvbiksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLCBz
ZXNzaW9uSUQsIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkp
OwotICAgIGF1dG8gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPSBzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHktPmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIHJlc3VsdCA9IG1fd29ya2VyTWFwLmFkZChz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV1RGTW92ZShzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkp
KTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOwotCi0gICAg
TE9HKFNlcnZpY2VXb3JrZXIsICJDb250ZXh0IHByb2Nlc3MgUElEOiAlaSBzdGFydGVkIHdvcmtl
ciB0aHJlYWQgJXNcbiIsIGdldHBpZCgpLCBkYXRhLndvcmtlcklELnV0ZjgoKS5kYXRhKCkpOwot
Ci0gICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFn
ZVByb2Nlc3M6OlNlcnZpY2VXb3JrZXJDb250ZXh0U3RhcnRlZChzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZGF0YS5yZWdpc3RyYXRpb25LZXksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBk
YXRhLndvcmtlcklEKSwgMCk7Ci19Ci0KLXZvaWQgU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2Vy
OjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQotewotICAgIGF1
dG8gc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gc2VydmljZVdvcmtlcklkZW50aWZpZXIgPyBt
X3dvcmtlck1hcC5nZXQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpIDogbnVsbHB0cjsKLSAgICBp
ZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewotICAgICAgICBtX2Nvbm5lY3Rpb25Ub1N0
b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6RGlkTm90SGFuZGxl
RmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciksIDApOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYXV0byBjbGllbnQgPSBXZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50OjpjcmVhdGUobV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy5j
b3B5UmVmKCksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwot
ICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+dGhyZWFkKCkucG9zdEZldGNoVGFzayhXVEZN
b3ZlKGNsaWVudCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOwotfQotCi12
b2lkIFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCi17Ci0gICAgYXV0byogc2VydmljZVdv
cmtlciA9IG1fd29ya2VyTWFwLmdldChzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0gICAgaWYg
KCFzZXJ2aWNlV29ya2VyKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIHBhc3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4KLSAgICBzZXJ2aWNlV29ya2VyLT50
aHJlYWQoKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIG51bGxwdHIsIHNvdXJjZU9yaWdp
bik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGUwZGI4MjY5ZTczYzcyYWJhNTliMzdiYmNmNWI3ZTM4NTg2MDRmYjQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvU2VydmljZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNpbmNsdWRlICJDb25uZWN0aW9uLmgiCi0jaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1zdHJ1Y3QgRmV0Y2hPcHRpb25zOwotY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owotc3Ry
dWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1z
dHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKLQotY2xhc3MgU2VydmljZVdvcmtlckNvbnRleHRN
YW5hZ2VyIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKLXB1YmxpYzoKLSAgICBTZXJ2
aWNlV29ya2VyQ29udGV4dE1hbmFnZXIoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgdWludDY0X3Qg
cGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7Ci0KLSAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwotCi1wcml2
YXRlOgotICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9y
ZSYpOwotCi0gICAgdm9pZCBzdGFydFNlcnZpY2VXb3JrZXIodWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYp
OwotICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYm
KTsKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luKTsKLQotICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRv
U3RvcmFnZVByb2Nlc3M7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJUaHJlYWRQcm94eT4+IG1fd29ya2VyTWFwOwotICAgIHVpbnQ2NF90IG1fcGFn
ZUlEIHsgMCB9OwotICAgIHVpbnQ2NF90IG1fcHJldmlvdXNTZXJ2aWNlV29ya2VySUQgeyAwIH07
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1Nl
cnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1NlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlci5tZXNzYWdlcy5pbgpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY2NjNmODFlN2NhMGI4NmU2NjNjZjk0YmYw
NTVlNWNiMDRkNWMyNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9TZXJ2aWNlV29ya2VyQ29udGV4
dE1hbmFnZXIubWVzc2FnZXMuaW4KKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0jIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMK
LSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCi0KLW1lc3NhZ2VzIC0+IFNlcnZpY2VXb3JrZXJDb250ZXh0TWFuYWdlciB7Ci0gICAg
U3RhcnRTZXJ2aWNlV29ya2VyKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQotICAg
IFN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IGZldGNoSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25z
IG9wdGlvbnMpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSh1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBTdHJpbmcgc291cmNlT3JpZ2lu
KQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zZDBiMjdkOWNkYmVlODIwZTliM2ZjOTRiYjc4NTY5MjE2MTE4NjZkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgi
CisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNl
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VQcm9jZXNzTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJDYWNoZVN0b3JhZ2VQcm92aWRlci5oIgorI2luY2x1ZGUgIldl
YkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkRvY3VtZW50TG9hZGVyLmgiCisj
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNT
dG9yZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlICJXZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViU29ja2V0UHJvdmlkZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0VkaXRvckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRW1wdHlD
bGllbnRzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUNvbmZpZ3VyYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KKworI2lmIFVTRShRVUlDS19MT09LKQorI2luY2x1ZGUg
PFdlYkNvcmUvUHJldmlld0xvYWRlckNsaWVudC5oPgorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFj
ZSBQQUw7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFNlcnZpY2VXb3JrZXJGcmFtZUxvYWRlckNsaWVudCBmaW5hbCA6IHB1YmxpYyBFbXB0
eUZyYW1lTG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBTZXJ2aWNlV29ya2VyRnJhbWVMb2Fk
ZXJDbGllbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBwYWdlSUQsIHVpbnQ2
NF90IGZyYW1lSUQpCisgICAgICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorICAgICAgICAs
IG1fcGFnZUlEKHBhZ2VJRCkKKyAgICAgICAgLCBtX2ZyYW1lSUQoZnJhbWVJRCkKKyAgICB7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIFJlZjxEb2N1bWVudExvYWRlcj4gY3JlYXRlRG9jdW1lbnRM
b2FkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdWJzdGl0dXRlRGF0
YSYgc3Vic3RpdHV0ZURhdGEpIGZpbmFsCisgICAgeworICAgICAgICByZXR1cm4gV2ViRG9jdW1l
bnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRlRGF0YSk7CisgICAgfQorCisgICAg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9u
SUQ7IH0KKyAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BhZ2VJ
RDsgfQorICAgIHVpbnQ2NF90IGZyYW1lSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2ZyYW1l
SUQ7IH0KKworICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIHVpbnQ2NF90IG1f
cGFnZUlEIHsgMCB9OworICAgIHVpbnQ2NF90IG1fZnJhbWVJRCB7IDAgfTsKK307CisKK1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbihS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCisgICAgOiBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQ
cm9jZXNzKFdURk1vdmUoY29ubmVjdGlvbikpCisgICAgLCBtX3BhZ2VJRChwYWdlSUQpCit7Cisg
ICAgdXBkYXRlUHJlZmVyZW5jZXMoc3RvcmUpOworfQorCit2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
JiBzdG9yZSkKK3sKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LnNldENhY2hlQVBJRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmNhY2hlQVBJRW5hYmxlZEtleSgpKSk7CisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpmZXRjaEFQSUVuYWJsZWRLZXkoKSkpOworfQorCit2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydFNlcnZpY2VXb3JrZXIodWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSYgZGF0YSkKK3sKKyAgICAvLyBGSVhNRTogUHJvdmlkZSBhIHNlbnNpY2FsIHNlc3Np
b24gSUQuCisgICAgYXV0byBzZXNzaW9uSUQgPSBQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpOworCisgICAgUGFnZUNvbmZpZ3VyYXRpb24gcGFnZUNvbmZpZ3VyYXRpb24geworICAg
ICAgICBjcmVhdGVFbXB0eUVkaXRvckNsaWVudCgpLAorICAgICAgICBXZWJTb2NrZXRQcm92aWRl
cjo6Y3JlYXRlKCksCisgICAgICAgIFdlYkNvcmU6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGUo
KSwKKyAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIo
KQorICAgIH07CisgICAgZmlsbFdpdGhFbXB0eUNsaWVudHMocGFnZUNvbmZpZ3VyYXRpb24pOwor
ICAgIGF1dG8gZnJhbWVMb2FkZXJDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFNlcnZpY2VXb3Jr
ZXJGcmFtZUxvYWRlckNsaWVudD4oc2Vzc2lvbklELCBtX3BhZ2VJRCwgKyttX3ByZXZpb3VzU2Vy
dmljZVdvcmtlcklEKTsKKyAgICBwYWdlQ29uZmlndXJhdGlvbi5sb2FkZXJDbGllbnRGb3JNYWlu
RnJhbWUgPSBmcmFtZUxvYWRlckNsaWVudC5yZWxlYXNlKCk7CisKKyAgICBhdXRvIHNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKFdURk1v
dmUocGFnZUNvbmZpZ3VyYXRpb24pLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZGF0YSwg
c2Vzc2lvbklELCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5jYWNoZVN0b3JhZ2VQcm92aWRlcigp
KTsKKyAgICBhdXRvIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gc2VydmljZVdvcmtlclRocmVh
ZFByb3h5LT5pZGVudGlmaWVyKCk7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyVGhyZWFkKFdURk1vdmUoc2VydmljZVdvcmtlclRocmVhZFBy
b3h5KSk7CisKKyAgICBMT0coU2VydmljZVdvcmtlciwgIkNvbnRleHQgcHJvY2VzcyBQSUQ6ICVp
IHN0YXJ0ZWQgd29ya2VyIHRocmVhZCAlc1xuIiwgZ2V0cGlkKCksIGRhdGEud29ya2VySUQudXRm
OCgpLmRhdGEoKSk7CisKKyAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6U2VydmljZVdvcmtlckNvbnRleHRTdGFydGVkKHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBkYXRhLnJlZ2lzdHJhdGlvbktleSwgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGRhdGEud29ya2VySUQpLCAwKTsKK30KKwordm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRfdCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0
aW9ucykKK3sKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBTV0NvbnRleHRN
YW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoc2VydmljZVdvcmtl
cklkZW50aWZpZXIpOworICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7CisgICAg
ICAgIG1fY29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQ
cm9jZXNzOjpEaWROb3RIYW5kbGVGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0
Y2hJZGVudGlmaWVyKSwgMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIGNs
aWVudCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rp
b25Ub1N0b3JhZ2VQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IGZldGNoSWRlbnRpZmllcik7CisgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT50aHJlYWQo
KS5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShvcHRpb25zKSk7Cit9CisKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUodWludDY0X3Qgc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgc291
cmNlT3JpZ2luKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDQ2ZDIyNjNiNjQ5YjZkMjVlODYxMjFmNmE0MjJkNzJhZGVhY2VlNQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiQ29ubmVjdGlv
bi5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU1dD
b250ZXh0TWFuYWdlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgRmV0Y2hPcHRp
b25zOworY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Oworc3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBXZWJQcmVmZXJlbmNlc1N0
b3JlOworCitjbGFzcyBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiA6IHB1YmxpYyBXZWJD
b3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIgeworcHVibGljOgorICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYpOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBmaW5hbDsKKworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSh1aW50NjRfdCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CisK
K3ByaXZhdGU6CisgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJik7CisKKyAgICB2b2lkIHN0YXJ0U2VydmljZVdvcmtlcih1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHRE
YXRhJik7CisgICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRp
b25zJiYpOworCisgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uVG9TdG9yYWdl
UHJvY2VzczsKKyAgICB1aW50NjRfdCBtX3BhZ2VJRCB7IDAgfTsKKyAgICB1aW50NjRfdCBtX3By
ZXZpb3VzU2VydmljZVdvcmtlcklEIHsgMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkNzJkMWI1ZjgzZjYx
YWM1ZmMwNDI3ZDg5NjRjMTRjMWU5NjQ3MTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgpAQCAtMCwwICsxLDMxIEBACisjIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJl
IG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgor
IyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
CisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKK21lc3NhZ2VzIC0+IFdlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uIHsKKyAgICBTdGFydFNlcnZpY2VXb3JrZXIodWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEgY29udGV4dERhdGEpCisgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCB1aW50NjRf
dCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucykKKyAgICBQb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKHVpbnQ2NF90IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKK30K
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMzM4
NGFiODA5YjhiYjc2MjdlNjEwMWJlMzRiYTFlNjcxYWM3ZjE1Zi4uZDc3ZjU2Y2Q4MjdkZTg5OTRl
MDY5MmQ5OGVmMjM5M2VmNTU5NzA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcApAQCAtNDEsOCArNDEsNiBAQAogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
Q29udGV4dE1hbmFnZXIuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXJN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc0RhdGEuaCIKICNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCkBAIC02OCw2
ICs2Niw4IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2xNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKICNpbmNsdWRlICJX
ZWJTb2NrZXRTdHJlYW0uaCIKICNpbmNsdWRlICJXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlv
bi5oIgpAQCAtNjc0LDEwICs2NzQsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGUKICAgICB9
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyQ29udGV4dE1hbmFnZXI6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewotICAgICAgICBBU1NFUlQobV9zZXJ2aWNlV29ya2VyTWFu
YWdlcik7Ci0gICAgICAgIGlmIChtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyKQotICAgICAgICAgICAg
bV9zZXJ2aWNlV29ya2VyTWFuYWdlci0+ZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVj
b2Rlcik7CisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2Vz
OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CisgICAgICAgIEFTU0VSVChTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9u
KCkpOworICAgICAgICBpZiAoYXV0byogY29udGV4dE1hbmFnZXJDb25uZWN0aW9uID0gU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpKQorICAgICAgICAgICAgc3RhdGlj
X2Nhc3Q8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24mPigqY29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uKS5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMTY0Miw4ICsxNjQyLDYgQEAgTGliV2ViUlRDTmV0
d29yayYgV2ViUHJvY2Vzczo6bGliV2ViUlRDTmV0d29yaygpCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50
NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogewotICAgIEFT
U0VSVCghbV9zZXJ2aWNlV29ya2VyTWFuYWdlcik7Ci0KICNpZiBVU0UoVU5JWF9ET01BSU5fU09D
S0VUUykKICAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6
Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7CiAgICAgSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKHNvY2tldFBhaXIuc2VydmVyKTsK
QEAgLTE2NjQsNyArMTY2Miw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Z2V0V29ya2VyQ29udGV4dENv
bm5lY3Rpb24odWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlCiAKICAgICBhdXRv
IHdvcmtlckNvbnRleHRDb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJD
b25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcyk7CiAgICAgd29ya2VyQ29udGV4
dENvbm5lY3Rpb24tPm9wZW4oKTsKLSAgICBtX3NlcnZpY2VXb3JrZXJNYW5hZ2VyID0gU2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyKFdURk1vdmUod29ya2VyQ29udGV4dENvbm5lY3Rpb24pLCBw
YWdlSUQsIHN0b3JlKTsKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRDb25u
ZWN0aW9uKHN0ZDo6bWFrZV91bmlxdWU8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24+KFdU
Rk1vdmUod29ya2VyQ29udGV4dENvbm5lY3Rpb24pLCBwYWdlSUQsIHN0b3JlKSk7CiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaWRHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihjb25u
ZWN0aW9uQ2xpZW50UG9ydCksIDApOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAppbmRleCAyNDZmNzdmNjJmNjk5NmMxNTZjYTE0YzJmNWRkYmY2MmEzMmQwNWU2
Li4yZjI2MmE2YTI0OWRiM2M0NjExNzZlNGRiMzRiOWIwMjZlOWFkNDc0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUNhY2hlc1Rv
Q2xlYXIuaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckNvbnRleHRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5oIgog
I2luY2x1ZGUgIlZpZXdVcGRhdGVEaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9y
SW50ZXJydXB0RGlzcGF0Y2hlci5oIgpAQCAtNDM3LDkgKzQzNiw2IEBAIHByaXZhdGU6CiAjaWYg
UExBVEZPUk0oV0FZTEFORCkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2F5bGFuZENvbXBvc2l0b3JE
aXNwbGF5PiBtX3dheWxhbmRDb21wb3NpdG9yRGlzcGxheTsKICNlbmRpZgotI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDb250ZXh0TWFu
YWdlcj4gbV9zZXJ2aWNlV29ya2VyTWFuYWdlcjsKLSNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>