<?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>225712</bug_id>
          
          <creation_ts>2021-05-12 12:11:57 -0700</creation_ts>
          <short_desc>Notification.requestPermission() should return a Promise</short_desc>
          <delta_ts>2021-05-12 22:03:16 -0700</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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>225711</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759346</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 12:11:57 -0700</bug_when>
    <thetext>Notification.requestPermission() should return a Promise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759395</commentid>
    <comment_count>1</comment_count>
      <attachid>428416</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 14:04:45 -0700</bug_when>
    <thetext>Created attachment 428416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759402</commentid>
    <comment_count>2</comment_count>
      <attachid>428418</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 14:14:59 -0700</bug_when>
    <thetext>Created attachment 428418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759481</commentid>
    <comment_count>3</comment_count>
      <attachid>428439</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 17:43:22 -0700</bug_when>
    <thetext>Created attachment 428439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759483</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-12 17:44:10 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759484</commentid>
    <comment_count>5</comment_count>
      <attachid>428440</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 18:04:59 -0700</bug_when>
    <thetext>Created attachment 428440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759489</commentid>
    <comment_count>6</comment_count>
      <attachid>428443</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 18:09:28 -0700</bug_when>
    <thetext>Created attachment 428443
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759516</commentid>
    <comment_count>7</comment_count>
      <attachid>428443</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-12 20:33:57 -0700</bug_when>
    <thetext>Comment on attachment 428443
Patch

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

&gt; Source/WebCore/Modules/notifications/NotificationClient.h:69
&gt; +    virtual void requestPermission(ScriptExecutionContext*, CompletionHandler&lt;void(NotificationClient::Permission)&gt;&amp;&amp;) = 0;

This should take a ScriptExecutionContext&amp;, not a pointer, since it’s required to be non-null.

&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:68
&gt; +        for (auto&amp; completionHandler : completionHandlers)
&gt; +            completionHandler(NotificationClient::Permission::Denied);

Seems like we could use a helper function for this loop since it’s done twice.

&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:90
&gt; +        for (auto&amp; completionHandler : completionHandlers)
&gt; +            completionHandler(allowed ? NotificationClient::Permission::Granted : NotificationClient::Permission::Denied);

Here is the second time that loop is done.

&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h:52
&gt; +    void startRequest(const WebCore::SecurityOriginData&amp;, CompletionHandler&lt;void(WebCore::NotificationClient::Permission)&gt;&amp;&amp;);

A named type for the completion handler could possibly make the code less verbose.

&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h:65
&gt; +    HashMap&lt;WebCore::SecurityOriginData, Vector&lt;CompletionHandler&lt;void(WebCore::NotificationClient::Permission)&gt;&gt;&gt; m_requestsPerOrigin;

A named type for the vector could possibly make the code less verbose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759520</commentid>
    <comment_count>8</comment_count>
      <attachid>428443</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-12 20:39:40 -0700</bug_when>
    <thetext>Comment on attachment 428443
Patch

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

&gt;&gt; Source/WebCore/Modules/notifications/NotificationClient.h:69
&gt;&gt; +    virtual void requestPermission(ScriptExecutionContext*, CompletionHandler&lt;void(NotificationClient::Permission)&gt;&amp;&amp;) = 0;
&gt; 
&gt; This should take a ScriptExecutionContext&amp;, not a pointer, since it’s required to be non-null.

Would really like you to do this one if you’re willing.

&gt;&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:68
&gt;&gt; +            completionHandler(NotificationClient::Permission::Denied);
&gt; 
&gt; Seems like we could use a helper function for this loop since it’s done twice.

Not sure this is such a great idea; I think you’ll have to decide if it’s really helpful.

&gt;&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.cpp:90
&gt;&gt; +            completionHandler(allowed ? NotificationClient::Permission::Granted : NotificationClient::Permission::Denied);
&gt; 
&gt; Here is the second time that loop is done.

Ditto.

&gt;&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h:52
&gt;&gt; +    void startRequest(const WebCore::SecurityOriginData&amp;, CompletionHandler&lt;void(WebCore::NotificationClient::Permission)&gt;&amp;&amp;);
&gt; 
&gt; A named type for the completion handler could possibly make the code less verbose.

Ditto.

&gt;&gt; Source/WebKit/WebProcess/Notifications/NotificationPermissionRequestManager.h:65
&gt;&gt; +    HashMap&lt;WebCore::SecurityOriginData, Vector&lt;CompletionHandler&lt;void(WebCore::NotificationClient::Permission)&gt;&gt;&gt; m_requestsPerOrigin;
&gt; 
&gt; A named type for the vector could possibly make the code less verbose.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759536</commentid>
    <comment_count>9</comment_count>
      <attachid>428456</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-12 21:17:44 -0700</bug_when>
    <thetext>Created attachment 428456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759543</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-12 22:02:52 -0700</bug_when>
    <thetext>Committed r277420 (237670@main): &lt;https://commits.webkit.org/237670@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428456.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759544</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-12 22:03:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/77951307&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428416</attachid>
            <date>2021-05-12 14:04:45 -0700</date>
            <delta_ts>2021-05-12 14:14:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225712-20210512140444.patch</filename>
            <type>text/plain</type>
            <size>33123</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzMxNDlmZDdlYWVkYTZk
ODM1MGQ1ZDY4YjFiMzU4NjVmY2U1NjQ2YS4uMjhkYjg1YTRmNTQ5NDU3YWRhYTNjMDZmZWZiMjQw
NWUzMWExZTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbjoK
KyAgICAgICAgLSBodHRwczovL25vdGlmaWNhdGlvbnMuc3BlYy53aGF0d2cub3JnLyNub3RpZmlj
YXRpb24KKworICAgICAgICBCb3RoIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IHN1cHBvcnQg
dGhpcy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13
aXRoLXByb21pc2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6
CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIx
LTA1LTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhTG9hZGluZ0ZhaWxlZEZhdGFsbHkoKSBkb2VzIGRpcmVjdCBkaXNw
YXRjaCBvZiBldmVudHM7IHNob3VsZCBlbnF1ZXVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0MDAwNTRlODY3MjQy
ZmJiODAwNjM2MzFjNDQ3OWNiZjlmNDk0MDUuLjdmMWQwOTg2N2YzMzY1NjRkMDgwNGI3NzQyODI4
MDFlNWM3YjQwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMTIgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVz
dFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvZGUgbm93IHRoYXQgV2ViQ29y
ZSBwYXNzZXMgYSBDb21wbGV0aW9uSGFuZGxlciBpbnN0ZWFkIG9mIGEKKyAgICAgICAgTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6fk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZpY2F0aW9u
IHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCBjZmRjNDEwNzJmYzE1NGU2ZTU5MjYwMmZkNWZjMDZkZDQ5MjUzYjA4Li42Yzc0NjhiMGMwYWZm
NzU1MDg5OTg3OWFlNGFlNzNmMzE2OTVkNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQg
cmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXBkYXRlIGNvZGUgbm93IHRoYXQgV2ViQ29yZSBwYXNzZXMgYSBDb21wbGV0aW9u
SGFuZGxlciBpbnN0ZWFkIG9mIGEKKyAgICAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAg
ICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGluaXRXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG93XSk6
CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGRlbnldKToKKwogMjAy
MS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFF1ZXVl
IG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHJlcXVlc3RzIGZvciB0aGUgc2FtZSBvcmlnaW4gb24g
V2ViS2l0IHNpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBlYzllODlmZjQ0NTgz
MTc3YjU5NWUyZWQ5MjcwNTcxODU4NDU1ZDhlLi4zYWJiMjU2ZTY1ZDZlYjRiODA4ODVlNmY3YjU1
NWExNDQ2OTU1M2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IGNvZGUgbm93IHRoYXQgV2ViQ29yZSBwYXNzZXMgYSBDb21wbGV0aW9uSGFuZGxlciBpbnN0ZWFk
IG9mIGEKKyAgICAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHA6Cisg
ICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lv
bik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxl
Z2F0ZS5oOgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUXVldWUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcmVxdWVzdHMgZm9yIHRoZSBz
YW1lIG9yaWdpbiBvbiBXZWJLaXQgc2lkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCA1YTBkOTkxMzRjNDI5NTE1
Y2ZkNTAyYTI0ZGVkZTgxNGUyNjViYjY5Li4xMDlhZmZjODI2Mzg5NmVhMDdmZWFhNGYxZTU3ODI0
MTg1MzBlZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5j
bHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgiCkBAIC0xODQsMjIgKzE4NSwyNyBAQCBhdXRv
IE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpIC0+IFBlcm1pc3Np
b24KICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdl
KCkpLT5jbGllbnQoKS5jaGVja1Blcm1pc3Npb24oJmRvY3VtZW50KTsKIH0KIAotdm9pZCBOb3Rp
ZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIHsKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFkb2N1bWVudC5pc1NlY3VyZUNv
bnRleHQoKSkgewotICAgICAgICBpZiAoY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGRvY3VtZW50
LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBkb2N1bWVudC5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpF
cnJvciwgIlRoZSBOb3RpZmljYXRpb24gcGVybWlzc2lvbiBtYXkgb25seSBiZSByZXF1ZXN0ZWQg
aW4gYSBzZWN1cmUgY29udGV4dC4iX3MpOworICAgICAgICBkb2N1bWVudC5ldmVudExvb3AoKS5x
dWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoY2FsbGJhY2spCiAgICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2
ZW50KFBlcm1pc3Npb246OkRlbmllZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQorICAg
ICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExFbnVtZXJhdGlvbjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uPj4oUGVybWlzc2lvbjo6RGVuaWVkKTsKKyAgICAgICAgfSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGll
bnQoKS5yZXF1ZXN0UGVybWlzc2lvbigmZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKS5yZXF1ZXN0UGVy
bWlzc2lvbigmZG9jdW1lbnQsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBlcm1p
c3Npb24pIHsKKyAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgY2FsbGJhY2stPmhh
bmRsZUV2ZW50KHBlcm1pc3Npb24pOworICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEVudW1l
cmF0aW9uPE5vdGlmaWNhdGlvblBlcm1pc3Npb24+PihwZXJtaXNzaW9uKTsKKyAgICB9KTsKIH0K
IAogdm9pZCBOb3RpZmljYXRpb246OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAppbmRl
eCA0MjljZmQ0ODhhZjlhZWNlM2EwNzkzY2UwZmViZDI1NTRhN2NhMGRhLi42NTM5MTUyZTk4YzVh
YWM4ODg3NTFlOGEyYWIxOTQ3YmFiODIyMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC00Miw2ICs0Miw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiAKQEAgLTgyLDcg
KzgzLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluYWxpemUoKTsKIAog
ICAgIHN0YXRpYyBQZXJtaXNzaW9uIHBlcm1pc3Npb24oRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2s+JiYpOworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERv
Y3VtZW50JiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0Ojpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAppbmRleCBlMzVmODc4OGVjMWUx
YTg3NDEzYjAyNmRmYzlmNTIzOGY1NWVmNDU1Li5kMDMxYmI3M2NkYTA1MDkyMTA1ZDYwNGRjNjA4
Zjg5ZjZjODM0ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbApAQCAtNDAsNyArNDAsNyBAQAogICAgIFtDYWxsV2l0
aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoRE9NU3RyaW5nIHRpdGxlLCBvcHRpb25hbCBOb3RpZmlj
YXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMg
cmVhZG9ubHkgYXR0cmlidXRlIE5vdGlmaWNhdGlvblBlcm1pc3Npb24gcGVybWlzc2lvbjsKLSAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyB1bmRlZmluZWQgcmVxdWVzdFBlcm1pc3Npb24o
b3B0aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPyBkZXByZWNhdGVkQ2FsbGJh
Y2spOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZTxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uPi4KKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyBQcm9taXNlPE5vdGlm
aWNhdGlvblBlcm1pc3Npb24+IHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjaz8gZGVwcmVjYXRlZENhbGxiYWNrKTsKIAogICAgIC8vIHN0YXRp
YyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBY3Rpb25zOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2xpZW50LmgKaW5kZXggY2Y3NWNkN2Y4ZGE1ZjNjYjA4MjBmNTZhMGI0ZWIxNTU3ZWQ3MDA4OC4u
MDVmMjZmZjZlMTc2OTIxZmU5YjkzNTc5NjdjMGJjYzY0YTU2ZmI3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGll
bnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmVxdWVzdHMgdXNlciBwZXJt
aXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1bGFyCiAg
ICAgLy8gc2NyaXB0IGNvbnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJ1
biB3aGVuIHRoZSB1c2VyIGhhcwogICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJikgPSAwOwogCiAgICAg
Ly8gQ2hlY2tzIHRoZSBjdXJyZW50IGxldmVsIG9mIHBlcm1pc3Npb24uCiAgICAgdmlydHVhbCBQ
ZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAKaW5kZXggNGM5OWYyOTMxMDUyZmEyNDBlM2JkY2JkZDg3NzEwYWI3MWVlNjY4Mi4uY2YyZDg1
MjIzZjJiZDBjZmI4MzUxOTMxMDU0YzgxZTI3N2JmZDEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC01OSwyOSArNTks
MzMgQEAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGEKIH0KICNlbmRpZgogCitOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKQoreworICAgIGF1dG8gcmVxdWVzdHNQZXJPcmlnaW4gPSBzdGQ6OmV4Y2hhbmdlKG1f
cmVxdWVzdHNQZXJPcmlnaW4sIHsgfSk7CisgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxl
cnMgOiByZXF1ZXN0c1Blck9yaWdpbi52YWx1ZXMoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGNv
bXBsZXRpb25IYW5kbGVyIDogY29tcGxldGlvbkhhbmRsZXJzKQorICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOworICAg
IH0KK30KKwogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotdm9pZCBOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdChjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHNlY3VyaXR5T3JpZ2luLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
PiYmIGNhbGxiYWNrKQordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6
OnN0YXJ0UmVxdWVzdChjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byBwZXJtaXNzaW9uID0gcGVybWlzc2lvbkxl
dmVsKHNlY3VyaXR5T3JpZ2luKTsKLSAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb246OkRlZmF1bHQpIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrKQotICAg
ICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KHBlcm1pc3Npb24pOwotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIGlmIChwZXJtaXNzaW9uICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbjo6RGVmYXVsdCkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHBlcm1p
c3Npb24pOwogCi0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlcXVlc3RzUGVyT3JpZ2luLmFkZChz
ZWN1cml0eU9yaWdpbiwgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2s+PiB7IH0pOwotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5k
KFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVxdWVzdHNQZXJP
cmlnaW4uYWRkKHNlY3VyaXR5T3JpZ2luLCBWZWN0b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPj4geyB9KTsKKyAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgaWYg
KCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wYWdlLT5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNh
dGlvblBlcm1pc3Npb24oc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNl
Y3VyaXR5T3JpZ2luXShib29sIGFsbG93ZWQpIG11dGFibGUgeworICAgIG1fcGFnZS0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3ROb3RpZmljYXRpb25Q
ZXJtaXNzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCkpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZWN1cml0eU9yaWdpbl0oYm9vbCBhbGxvd2VkKSBtdXRhYmxlIHsKICAgICAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5h
Z2VyPigpLT5kaWRVcGRhdGVOb3RpZmljYXRpb25EZWNpc2lvbihzZWN1cml0eU9yaWdpbi50b1N0
cmluZygpLCBhbGxvd2VkKTsKIAotICAgICAgICBhdXRvIGNhbGxiYWNrcyA9IG1fcmVxdWVzdHNQ
ZXJPcmlnaW4udGFrZShzZWN1cml0eU9yaWdpbik7Ci0gICAgICAgIGZvciAoYXV0byYgY2FsbGJh
Y2sgOiBjYWxsYmFja3MpIHsKLSAgICAgICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAg
ICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbjo6R3JhbnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVu
aWVkKTsKLSAgICAgICAgfQorICAgICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVycyA9IG1fcmVx
dWVzdHNQZXJPcmlnaW4udGFrZShzZWN1cml0eU9yaWdpbik7CisgICAgICAgIGZvciAoYXV0byYg
Y29tcGxldGlvbkhhbmRsZXIgOiBjb21wbGV0aW9uSGFuZGxlcnMpCisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihhbGxvd2VkID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpH
cmFudGVkIDogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwogICAgIH0p
OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oCmluZGV4IDEyMDcxYjFjNDVhYWY4ODRhNjY0ZDE3NzUwNGE3ODcyMTBhODkw
NzMuLjM2ZmJiNWE4ODEyYWZjMGE3YzgwMTY3MzY3NjQ0ZTkyMDg4ZjBlOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oCkBAIC00Niw5
ICs0NiwxMCBAQCBjbGFzcyBXZWJQYWdlOwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyIDogcHVibGljIFJlZkNvdW50ZWQ8Tm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXI+IGNyZWF0ZShXZWJQYWdlKik7CisgICAgfk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMp
Ci0gICAgdm9pZCBzdGFydFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7Cisg
ICAgdm9pZCBzdGFydFJlcXVlc3QoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24pPiYmKTsKICNlbmRpZgogICAgIAogICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhJik7CkBAIC02MSw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2UqKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKQotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBWZWN0b3I8UmVm
UHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4+PiBtX3JlcXVlc3Rz
UGVyT3JpZ2luOworICAgIEhhc2hNYXA8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhLCBWZWN0
b3I8Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb24pPj4+IG1fcmVxdWVzdHNQZXJPcmlnaW47CiAgICAgV2ViUGFnZSogbV9wYWdlOwog
I2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAppbmRleCBlMmY2Nzhm
NTE0MDhjZGI5OTI5OWM3N2FjMTMyYWE5M2ZkZDNkMGNkLi4wZmY3YTg2NDdiNWNhYzY5YzVjNTlj
OTIwZTM2MjVhMzEzZTE5Y2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcApA
QCAtNzEsMTUgKzcxLDEyIEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBXZWJO
b3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2Fs
bGJhY2spCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGF1dG8qIHNlY3VyaXR5T3JpZ2luID0gY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBp
ZiAoIXNlY3VyaXR5T3JpZ2luKSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAgICAgICAgICAg
IGNhbGxiYWNrLT5oYW5kbGVFdmVudChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRl
bmllZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgbV9wYWdlLT5ub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luLT5k
YXRhKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uOjpEZW5pZWQpOworICAgIG1fcGFnZS0+bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyKCktPnN0YXJ0UmVxdWVzdChzZWN1cml0eU9yaWdpbi0+ZGF0YSgpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OmNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IDQzOTNhZWQy
MTEyYjIzZWY4YzNiMDY5MzEyNTRjMzA0Y2M4MDFkZTIuLjU1ZTRiMTUzYmJhM2VjMjljOTQ2ZmQ0
ZmNhMjZhMjBhZTkwMDBjNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdGlmaWNhdGlvbkNsaWVudC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7
CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CkBAIC01MSw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIHZvaWQgbm90
aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIG92ZXJyaWRl
OwogICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwot
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92
ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uKT4mJikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCA2YTVkZWFmZTkwNGQ1MzMzYWIwOWNlZTQ1MTFh
ZjhmNGY2OWE4MmRiLi5mOGVmYjRmMWJjZmRiYzhhODhmMWI0MTkzZTdiODRjNzFmNTA4ZjZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtNTAsNyArNTAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJD
b3JlOjpOb3RpZmljYXRpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRy
b2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpIG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Bl
cm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQubW0KaW5kZXggY2QyODdlN2I0NTE1MjQ3NTg1OTI3M2QyZDYwZGI2OTYyOGY4ZmMzYi4u
Y2MwY2E3ZTNjN2M2YjhjZTAyOGRjNWRhOTZmNzYxYzFiMGNiOTIxZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5tbQpAQCAtMzMsMTggKzMzLDE4IEBACiAjaW1wb3J0ICJXZWJTZWN1cml0
eU9yaWdpbkludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJVSURlbGVnYXRlUHJpdmF0ZS5oIgogI2lt
cG9ydCAiV2ViVmlld0ludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJDb3JlL05vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgorI2ltcG9ydCA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIEBpbnRlcmZhY2UgV2ViTm90aWZpY2F0aW9u
UG9saWN5TGlzdGVuZXIgOiBOU09iamVjdCA8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+CiB7
Ci0gICAgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4gX2NhbGxiYWNrOwor
ICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
KT4gX2NvbXBsZXRpb25IYW5kbGVyOwogfQotLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRy
PE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiljYWxsYmFjazsKKy0gKGlkKWluaXRX
aXRoQ29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIEBlbmQKIAogc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlTm90aWZpY2F0aW9uSUQoKQpAQCAtMTM1LDEwICsxMzUsMTAgQEAg
dm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFcKICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNl
bGVjdG9yLCB3ZWJPcmlnaW4uZ2V0KCksIGxpc3RlbmVyKTsKIH0KIAotdm9pZCBXZWJOb3RpZmlj
YXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2sp
Cit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwotICAgIGF1dG8gbGlzdGVuZXIgPSBhZG9wdE5TKFtbV2Vi
Tm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6V1RGTW92
ZShjYWxsYmFjayldKTsKKyAgICBhdXRvIGxpc3RlbmVyID0gYWRvcHROUyhbW1dlYk5vdGlmaWNh
dGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENvbXBsZXRpb25IYW5kbGVyOldURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSk7CiAgICAgcmVxdWVzdFBlcm1pc3Npb24oY29udGV4dCwg
bGlzdGVuZXIuZ2V0KCkpOwogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIH0KQEAgLTE3
MCwyNSArMTcwLDI1IEBAIHVpbnQ2NF90IFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0
aW9uSURGb3JUZXN0aW5nKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbioKIAogQGltcGxlbWVudGF0aW9u
IFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyCiAKLS0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6
KFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpY2FsbGJhY2sKKy0gKGlk
KWluaXRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiljb21wbGV0aW9uSGFuZGxlcgogewogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CisgICAgX2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcik7CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKIC0gKHZvaWQp
YWxsb3cKIHsKLSAgICBpZiAoX2NhbGxiYWNrKQotICAgICAgICBfY2FsbGJhY2stPmhhbmRsZUV2
ZW50KE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6R3JhbnRlZCk7CisgICAgaWYgKF9j
b21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgX2NvbXBsZXRpb25IYW5kbGVyKE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbjo6R3JhbnRlZCk7CiB9CiAKIC0gKHZvaWQpZGVueQogewotICAg
IGlmIChfY2FsbGJhY2spCi0gICAgICAgIF9jYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOworICAgIGlmIChfY29tcGxldGlvbkhhbmRs
ZXIpCisgICAgICAgIF9jb21wbGV0aW9uSGFuZGxlcihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb246OkRlbmllZCk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlm
aWNhdGlvbnNEZWxlZ2F0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcAppbmRleCAxZTg2NDAyZjk3
ZDcxMzcxNmVjODIzYzdmMWFlMzZlNjRhZTgwY2QyLi5jNzhiN2JjYzlhYmE4Mzc2MDJjOTY4MTQ5
ZWRhOGJkY2Y4OTQxYzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlLmNwcApAQCAtMTc3LDggKzE3Nyw5IEBAIHZvaWQgV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwK
ICAgICAgICAgbm90aWZpY2F0aW9uRGVsZWdhdGUoKS0+cmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24ob3JnKTsKIH0KIAotdm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpy
ZXF1ZXN0UGVybWlzc2lvbihTZWN1cml0eU9yaWdpbiosIFJlZlB0cjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2s+JiYpCit2b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6
OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
eworICAgIGNvbXBsZXRpb25IYW5kbGVyKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6
RGVuaWVkKTsKIH0KIAogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGU6OmNoZWNrUGVybWlzc2lvbihjb25zdCBVUkwmIHVybCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaAppbmRleCAzNmE2MmMw
N2U0OTljMTJiZjNhYTBiNjU5ZDMxM2UwMjljZWYyNzU2Li45NjZjMzRmOGIwYThhODVmNWIzYzZi
YTFlZTMyYjE0NDNjNDk2ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZS5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
Y2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogb2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogb2JqZWN0
KTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwot
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOwor
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uKT4mJik7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKGNvbnN0IFVSTCYpOwogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGZjOGE3MjI1YTdlNjYxYTkyMmJhZTQ3N2FjNGI0MWE2NTM1NTE0MGMuLjVlYWI5NjFkYWUy
MWI3MjY0NjBhMDExYzZlY2JjNTU3OWQ3MzZkMDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vdGlm
aWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgUmViYXNlbGluZSB0ZXN0IG5vdyB0aGF0IHdlIGxvZyBhbiBlcnJvciBt
ZXNzYWdlIGluIHRoZSBKUyBjb25zb2xlIHdoZW4gdHJ5aW5nIHRvIGNhbGwKKyAgICAgICAgTm90
aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgaW4gYSBub24tc2VjdXJlIGNvbnRleHQuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2Ut
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMv
cmVxdWVzdC13aXRoLXByb21pc2UuaHRtbDogQWRkZWQuCisgICAgICAgIEFkZCBsYXlvdXQgdGVz
dCBjb3ZlcmFnZS4KKwogMjAyMS0wNS0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBtX2NsaWVudHMuY29udGFp
bnMoJmNsaWVudCkgaW4gQ1NTRm9udEZhY2U6OnJlbW92ZUNsaWVudCB2aWEgQ1NTU2VnbWVudGVk
Rm9udEZhY2U6On5DU1NTZWdtZW50ZWRGb250RmFjZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCA2MWJkOTI3OTE1ZjQyZWE1MTZlMmRmNjVhMjU1NTdmODBmNWVhMTg2Li42MDNm
ZGI1MDY1MWM2ZTBjZDQ0YWRlNGRiZmIwZDkzMTkyODk0MDY3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lv
bigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEcm9wIG1hbnVhbCB0ZXN0IHRoYXQgc2hvdWxkIG5vdCBoYXZl
IGJlZW4gaW1wb3J0ZWQgZnJvbSBXUFQuIFRoZSB0ZXN0IGhhcHBlbmVkIHRvIGJlIHVzaW5nIE5v
dGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpCisgICAgICAgIGludGVybmFsbHkuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRwcy5odG1sOiBSZW1vdmVkLgor
CiAyMDIxLTA1LTEyICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtjc3MtZmxleGJveF0gRG8gbm90IHVzZSBtYXJnaW5zIHdoZW4gY29tcHV0aW5n
IGFzcGVjdCByYXRpbyBjcm9zcyBzaXplcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1pbi1ub24tc2VjdXJlLWNvbnRleHQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbi1pbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CmluZGV4IDdiMTg5NTdlYWU1
YmNkYTExNTY0MWJkYmMzYzM4Y2ViYWQ1MDE3NjguLjIyNmY3NWFjN2YzN2I4YWQ1MjdlYmMzZTU4
OWY4MDhhMDQ5ODIxN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZp
Y2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWlu
LW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw1IEBACitDT05TT0xF
IE1FU1NBR0U6IFRoZSBOb3RpZmljYXRpb24gcGVybWlzc2lvbiBtYXkgb25seSBiZSByZXF1ZXN0
ZWQgaW4gYSBzZWN1cmUgY29udGV4dC4KK0NPTlNPTEUgTUVTU0FHRTogVGhlIE5vdGlmaWNhdGlv
biBwZXJtaXNzaW9uIG1heSBvbmx5IGJlIHJlcXVlc3RlZCBpbiBhIHNlY3VyZSBjb250ZXh0Lgog
CiBQQVNTIE5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGluIGluc2VjdXJlIGNvbnRleHQKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0
aC1wcm9taXNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzFiYjg3
MjEwNDFiMmRkYjk1M2M4OGMyY2VjNDM3OGMxODZhNzAyMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGhpcyB0ZXN0cyBOb3RpZmljYXRpb24ucGVy
bWlzc2lvbidzIHJldHVybmVkIFByb21pc2UKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1JlcXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIGRlZmF1bHQgcGVybWlzc2lvbgorUEFTUyBO
b3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZGVmYXVsdCIKK1BBU1MgcGVybWlzc2lvbiBpcyBn
cmFudGVkCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJncmFudGVkIgorUmVxdWVz
dGluZyBwZXJtaXNzaW9uIHdpdGggbm9uLWRlZmF1bHQgcGVybWlzc2lvbgorUEFTUyBwZXJtaXNz
aW9uIGlzIGRlbmllZAorUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZGVuaWVkIgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgt
cHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVl
c3Qtd2l0aC1wcm9taXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJmNTMxOWY2YzdlMzVlNzhkZTY0MzZl
ZGM2NDEwZDA4MDlkMTMwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS5odG1sCkBAIC0wLDAgKzEsMzQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBOb3Rp
ZmljYXRpb24ucGVybWlzc2lvbidzIHJldHVybmVkIFByb21pc2UiKTsKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCitmdW5jdGlvbiBzdGVwMSgpIHsKKyAgICBkZWJ1ZygiUmVxdWVzdGluZyBwZXJt
aXNzaW9uIHdpdGggZGVmYXVsdCBwZXJtaXNzaW9uIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIsICJkZWZhdWx0Iik7CisgICAgTm90aWZpY2F0
aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocGVybWlzc2lvbikgPT4geworICAgICAgICBp
ZiAocGVybWlzc2lvbiA9PSAnZ3JhbnRlZCcpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJwZXJt
aXNzaW9uIGlzIGdyYW50ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgicGVybWlzc2lvbiBzaG91bGQgYmUgZ3JhbnRlZCwgYnV0IGlzICIgKyBwZXJtaXNzaW9uKTsK
KyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJOb3RpZmljYXRpb24ucGVybWlzc2lvbiIs
ICJncmFudGVkIik7CisgICAgICAgIHNldFRpbWVvdXQoc3RlcDIsIDApOworICAgIH0pOworfQor
CitmdW5jdGlvbiBzdGVwMigpIHsKKyAgICBkZWJ1ZygiUmVxdWVzdGluZyBwZXJtaXNzaW9uIHdp
dGggbm9uLWRlZmF1bHQgcGVybWlzc2lvbiIpOworICAgIHRlc3RSdW5uZXIuZGVueVdlYk5vdGlm
aWNhdGlvblBlcm1pc3Npb24oc2VsZi5vcmlnaW4pOworICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0
UGVybWlzc2lvbigpLnRoZW4oKHBlcm1pc3Npb24pID0+IHsKKyAgICAgICAgaWYgKHBlcm1pc3Np
b24gPT0gJ2RlbmllZCcpCisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJwZXJtaXNzaW9uIGlzIGRl
bmllZCIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJwZXJtaXNzaW9u
IHNob3VsZCBiZSBkZW5pZWQsIGJ1dCBpcyAiICsgcGVybWlzc2lvbik7CisgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVuaWVkIik7Cisg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0pOworfQorCitzdGVwMSgpOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFu
dWFsLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdp
dGhpbi1zdy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyNDdkN2Q5ZjQ0OTA1ZTgzZWIyYjU0MzNjMjI4MTg3NzY4Njg0Yzg2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMyArMCwwIEBACi0KLUZBSUwgTm90aWZpY2F0aW9uIHJlcXVlc3RzIGludGVy
Y2VwdGVkIGJvdGggZnJvbSB3aW5kb3cgYW5kIFNXIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICdOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuJykKLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVh
bC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1h
bnVhbC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNWEyZTk1YmQz
OWQ0MTFhMjU3OWRkNGUwNjYxNzkxY2RlNmQxNzVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhp
bi1zdy1tYW51YWwuaHR0cHMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdGVzdC1oZWxwZXJzLnN1Yi5qcyI+PC9zY3Jp
cHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1jb25zdCB3b3JrZXIgPSAncmVzb3VyY2VzL2ZldGNoLWV2
ZW50LXdpdGhpbi1zdy13b3JrZXIuanMnOwotCi1mdW5jdGlvbiB3YWl0KG1zKSB7Ci0gIHJldHVy
biBuZXcgUHJvbWlzZShyID0+IHNldFRpbWVvdXQociwgbXMpKTsKLX0KLQotZnVuY3Rpb24gcmVz
ZXQoKSB7Ci0gIGZvciAoY29uc3QgaWZyYW1lIG9mIFsuLi5kb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCcudGVzdC1pZnJhbWUnKV0pIHsKLSAgICBpZnJhbWUucmVtb3ZlKCk7Ci0gIH0KLSAgcmV0
dXJuIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJlZ2lzdHJhdGlvbnMoKS50aGVuKHJlZ2lz
dHJhdGlvbnMgPT4gewotICAgIHJldHVybiBQcm9taXNlLmFsbChyZWdpc3RyYXRpb25zLm1hcChy
ID0+IHIudW5yZWdpc3RlcigpKSk7Ci0gIH0pLnRoZW4oKCkgPT4gY2FjaGVzLmtleXMoKSkudGhl
bihjYWNoZUtleXMgPT4gewotICAgIHJldHVybiBQcm9taXNlLmFsbChjYWNoZUtleXMubWFwKGMg
PT4gY2FjaGVzLmRlbGV0ZShjKSkpOwotICB9KTsKLX0KLQotYWRkX2NvbXBsZXRpb25fY2FsbGJh
Y2socmVzZXQpOwotCi1mdW5jdGlvbiByZWdSZWFkeShyZWcpIHsKLSAgcmV0dXJuIG5ldyBQcm9t
aXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICBpZiAocmVnLmFjdGl2ZSkgewotICAgICAg
cmVzb2x2ZSgpOwotICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjb25zdCBuZXh0V29ya2VyID0g
cmVnLndhaXRpbmcgfHwgcmVnLmluc3RhbGxpbmc7Ci0KLSAgICBuZXh0V29ya2VyLmFkZEV2ZW50
TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4gewotICAgICAgaWYgKG5leHRXb3JrZXIuc3Rh
dGUgPT0gJ3JlZHVuZGFudCcpIHsKLSAgICAgICAgcmVqZWN0KEVycm9yKGBTZXJ2aWNlIHdvcmtl
ciBmYWlsZWQgdG8gaW5zdGFsbGApKTsKLSAgICAgICAgcmV0dXJuOwotICAgICAgfQotICAgICAg
aWYgKG5leHRXb3JrZXIuc3RhdGUgPT0gJ2FjdGl2YXRlZCcpIHsKLSAgICAgICAgcmVzb2x2ZSgp
OwotICAgICAgfQotICAgIH0pOwotICB9KTsKLX0KLQotZnVuY3Rpb24gZ2V0Q29va2llcygpIHsK
LSAgcmV0dXJuIG5ldyBNYXAoCi0gICAgZG9jdW1lbnQuY29va2llCi0gICAgICAuc3BsaXQoLzsv
ZykKLSAgICAgIC5tYXAoYyA9PiBjLnRyaW0oKS5zcGxpdCgnPScpLm1hcChzID0+IHMudHJpbSgp
KSkKLSAgKTsKLX0KLQotZnVuY3Rpb24gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpIHsKLSAgcmV0
dXJuIHJlc2V0KCkudGhlbigoKSA9PiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcih3
b3JrZXIsIHtzY29wZTogJ3Jlc291cmNlcy8nfSkpCi0gICAgLnRoZW4ocmVnID0+IHJlZ1JlYWR5
KHJlZykpCi0gICAgLnRoZW4oKCkgPT4gd2l0aF9pZnJhbWUoJ3Jlc291cmNlcy9zaW1wbGUuaHRt
bCcpKTsKLX0KLQotZnVuY3Rpb24gcmFjZUJyb2FkY2FzdEFuZENvb2tpZShjaGFubmVsLCBjb29r
aWUpIHsKLSAgY29uc3QgaW5pdGlhbENvb2tpZSA9IGdldENvb2tpZXMoKS5nZXQoY29va2llKTsK
LSAgbGV0IGRvbmUgPSBmYWxzZTsKLQotICByZXR1cm4gUHJvbWlzZS5yYWNlKFsKLSAgICBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKLSAgICAgIGNvbnN0IGJjID0gbmV3IEJyb2FkY2FzdENoYW5u
ZWwoY2hhbm5lbCk7Ci0gICAgICBiYy5vbm1lc3NhZ2UgPSAoKSA9PiB7Ci0gICAgICAgIGJjLmNs
b3NlKCk7Ci0gICAgICAgIHJlc29sdmUoJ2Jyb2FkY2FzdCcpOwotICAgICAgfTsKLSAgICB9KSwK
LSAgICAoZnVuY3Rpb24gY2hlY2tDb29raWUoKSB7Ci0gICAgICAvLyBTdG9wIHBvbGxpbmcgaWYg
dGhlIGJyb2FkY2FzdCBjaGFubmVsIHdvbgotICAgICAgaWYgKGRvbmUgPT0gdHJ1ZSkgcmV0dXJu
OwotICAgICAgaWYgKGdldENvb2tpZXMoKS5nZXQoY29va2llKSAhPSBpbml0aWFsQ29va2llKSBy
ZXR1cm4gJ2Nvb2tpZSc7Ci0KLSAgICAgIHJldHVybiB3YWl0KDIwMCkudGhlbihjaGVja0Nvb2tp
ZSk7Ci0gICAgfSgpKQotICBdKS50aGVuKHZhbCA9PiB7Ci0gICAgZG9uZSA9IHRydWU7Ci0gICAg
cmV0dXJuIHZhbDsKLSAgfSk7Ci19Ci0KLXByb21pc2VfdGVzdCgoKSA9PiB7Ci0gIHJldHVybiBO
b3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKHBlcm1pc3Npb24gPT4gewotICAg
IGlmIChwZXJtaXNzaW9uICE9ICJncmFudGVkIikgewotICAgICAgdGhyb3cgRXJyb3IoJ1lvdSBt
dXN0IGFsbG93IG5vdGlmaWNhdGlvbnMgZm9yIHRoaXMgb3JpZ2luIGJlZm9yZSBydW5uaW5nIHRo
aXMgdGVzdC4nKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUoKTsK
LSAgfSkudGhlbihpZnJhbWUgPT4gewotICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKS50aGVu
KCgpID0+IHsKLSAgICAgIC8vIEluIHRoaXMgdGVzdCwgdGhlIHNlcnZpY2Ugd29ya2VyIHdpbGwg
cGluZyB0aGUgJ2ljb24tcmVxdWVzdCcgY2hhbm5lbAotICAgICAgLy8gaWYgaXQgaW50ZXJjZXB0
cyBhIHJlcXVlc3QgZm9yICdub3RpZmljYXRpb25faWNvbi5weScuIElmIHRoZSByZXF1ZXN0Ci0g
ICAgICAvLyByZWFjaGVzIHRoZSBzZXJ2ZXIgaXQgc2V0cyB0aGUgJ25vdGlmaWNhdGlvbicgY29v
a2llIHRvIHRoZSB2YWx1ZSBnaXZlbgotICAgICAgLy8gaW4gdGhlIFVSTC4gInJhY2VCcm9hZGNh
c3RBbmRDb29raWUiIG1vbml0b3JzIGJvdGggYW5kIHJldHVybnMgd2hpY2gKLSAgICAgIC8vIGhh
cHBlbnMgZmlyc3QuCi0gICAgICBjb25zdCByYWNlID0gcmFjZUJyb2FkY2FzdEFuZENvb2tpZSgn
aWNvbi1yZXF1ZXN0JywgJ25vdGlmaWNhdGlvbicpOwotICAgICAgY29uc3Qgbm90aWZpY2F0aW9u
ID0gbmV3IGlmcmFtZS5jb250ZW50V2luZG93Lk5vdGlmaWNhdGlvbigndGVzdCcsIHsKLSAgICAg
ICAgaWNvbjogYG5vdGlmaWNhdGlvbl9pY29uLnB5P3NldC1jb29raWUtbm90aWZpY2F0aW9uPSR7
TWF0aC5yYW5kb20oKX1gCi0gICAgICB9KTsKLSAgICAgIG5vdGlmaWNhdGlvbi5jbG9zZSgpOwot
Ci0gICAgICByZXR1cm4gcmFjZS50aGVuKHdpbm5lciA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVh
bHMod2lubmVyLCAnYnJvYWRjYXN0JywgJ1RoZSBzZXJ2aWNlIHdvcmtlciBpbnRlcmNlcHRlZCB0
aGUgZnJvbS13aW5kb3cgbm90aWZpY2F0aW9uIGljb24gcmVxdWVzdCcpOwotICAgICAgfSk7Ci0g
ICAgfSkudGhlbigoKSA9PiB7Ci0gICAgICAvLyBTaW1pbGFyIHJhY2UgdG8gYWJvdmUsIGJ1dCB0
aGlzIHRpbWUgdGhlIHNlcnZpY2Ugd29ya2VyIHJlcXVlc3RzIHRoZQotICAgICAgLy8gbm90aWZp
Y2F0aW9uLgotICAgICAgY29uc3QgcmFjZSA9IHJhY2VCcm9hZGNhc3RBbmRDb29raWUoJ2ljb24t
cmVxdWVzdCcsICdub3RpZmljYXRpb24nKTsKLSAgICAgIGlmcmFtZS5jb250ZW50V2luZG93LmZl
dGNoKGBzaG93LW5vdGlmaWNhdGlvbj9zZXQtY29va2llLW5vdGlmaWNhdGlvbj0ke01hdGgucmFu
ZG9tKCl9YCk7Ci0KLSAgICAgIHJldHVybiByYWNlLnRoZW4od2lubmVyID0+IHsKLSAgICAgICAg
YXNzZXJ0X2VxdWFscyh3aW5uZXIsICdicm9hZGNhc3QnLCAnVGhlIHNlcnZpY2Ugd29ya2VyIGlu
dGVyY2VwdGVkIHRoZSBmcm9tLXNlcnZpY2Utd29ya2VyIG5vdGlmaWNhdGlvbiBpY29uIHJlcXVl
c3QnKTsKLSAgICAgIH0pOwotICAgIH0pCi0gIH0pOwotfSwgYE5vdGlmaWNhdGlvbiByZXF1ZXN0
cyBpbnRlcmNlcHRlZCBib3RoIGZyb20gd2luZG93IGFuZCBTV2ApOwotCi08L3NjcmlwdD4KLTwv
Ym9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428418</attachid>
            <date>2021-05-12 14:14:59 -0700</date>
            <delta_ts>2021-05-12 17:43:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225712-20210512141458.patch</filename>
            <type>text/plain</type>
            <size>33250</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzMxNDlmZDdlYWVkYTZk
ODM1MGQ1ZDY4YjFiMzU4NjVmY2U1NjQ2YS4uMjhkYjg1YTRmNTQ5NDU3YWRhYTNjMDZmZWZiMjQw
NWUzMWExZTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbjoK
KyAgICAgICAgLSBodHRwczovL25vdGlmaWNhdGlvbnMuc3BlYy53aGF0d2cub3JnLyNub3RpZmlj
YXRpb24KKworICAgICAgICBCb3RoIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IHN1cHBvcnQg
dGhpcy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13
aXRoLXByb21pc2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6
CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIx
LTA1LTEyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhTG9hZGluZ0ZhaWxlZEZhdGFsbHkoKSBkb2VzIGRpcmVjdCBkaXNw
YXRjaCBvZiBldmVudHM7IHNob3VsZCBlbnF1ZXVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc0MDAwNTRlODY3MjQy
ZmJiODAwNjM2MzFjNDQ3OWNiZjlmNDk0MDUuLjdmMWQwOTg2N2YzMzY1NjRkMDgwNGI3NzQyODI4
MDFlNWM3YjQwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMTIgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVz
dFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGNvZGUgbm93IHRoYXQgV2ViQ29y
ZSBwYXNzZXMgYSBDb21wbGV0aW9uSGFuZGxlciBpbnN0ZWFkIG9mIGEKKyAgICAgICAgTm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6fk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJl
cXVlc3RQZXJtaXNzaW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Yk5vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgLyBNb2Rlcm5pemUgTm90aWZpY2F0aW9u
IHBlcm1pc3Npb24gaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCBjZmRjNDEwNzJmYzE1NGU2ZTU5MjYwMmZkNWZjMDZkZDQ5MjUzYjA4Li42Yzc0NjhiMGMwYWZm
NzU1MDg5OTg3OWFlNGFlNzNmMzE2OTVkNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQg
cmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXBkYXRlIGNvZGUgbm93IHRoYXQgV2ViQ29yZSBwYXNzZXMgYSBDb21wbGV0aW9u
SGFuZGxlciBpbnN0ZWFkIG9mIGEKKyAgICAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxi
YWNrLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAg
ICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGluaXRXaXRoQ29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG93XSk6
CisgICAgICAgICgtW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGRlbnldKToKKwogMjAy
MS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFF1ZXVl
IG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHJlcXVlc3RzIGZvciB0aGUgc2FtZSBvcmlnaW4gb24g
V2ViS2l0IHNpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBlYzllODlmZjQ0NTgz
MTc3YjU5NWUyZWQ5MjcwNTcxODU4NDU1ZDhlLi4zYWJiMjU2ZTY1ZDZlYjRiODA4ODVlNmY3YjU1
NWExNDQ2OTU1M2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlz
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IGNvZGUgbm93IHRoYXQgV2ViQ29yZSBwYXNzZXMgYSBDb21wbGV0aW9uSGFuZGxlciBpbnN0ZWFk
IG9mIGEKKyAgICAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHA6Cisg
ICAgICAgIChXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lv
bik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxl
Z2F0ZS5oOgorCiAyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUXVldWUgbm90aWZpY2F0aW9uIHBlcm1pc3Npb24gcmVxdWVzdHMgZm9yIHRoZSBz
YW1lIG9yaWdpbiBvbiBXZWJLaXQgc2lkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCA1YTBkOTkxMzRjNDI5NTE1
Y2ZkNTAyYTI0ZGVkZTgxNGUyNjViYjY5Li4xMzEzNjNjYmY4OTA4ZGFkNWUxZDY3ZjhjOTQ5NTg4
MmI4NjRlYWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5j
bHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25DbGll
bnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgiCkBAIC0xODQsMjIgKzE4NSwyNiBAQCBhdXRv
IE5vdGlmaWNhdGlvbjo6cGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpIC0+IFBlcm1pc3Np
b24KICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShkb2N1bWVudC5wYWdl
KCkpLT5jbGllbnQoKS5jaGVja1Blcm1pc3Npb24oJmRvY3VtZW50KTsKIH0KIAotdm9pZCBOb3Rp
ZmljYXRpb246OnJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0
aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIHsKKyAgICBhdXRvIHJlc29sdmVQcm9taXNlQW5kQ2FsbGJhY2sgPSBbZG9j
dW1lbnQgPSBtYWtlUmVmKGRvY3VtZW50KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKFBlcm1pc3Npb24gcGVybWlzc2lvbikgbXV0YWJs
ZSB7CisgICAgICAgIGRvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
RE9NTWFuaXB1bGF0aW9uLCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgcHJvbWlzZSA9
IFdURk1vdmUocHJvbWlzZSksIHBlcm1pc3Npb25dKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBp
ZiAoY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KHBlcm1p
c3Npb24pOworICAgICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExFbnVtZXJhdGlvbjxOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uPj4ocGVybWlzc2lvbik7CisgICAgICAgIH0pOworICAgIH07CisK
ICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOwogICAgIGlmICghcGFnZSkKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VBbmRDYWxsYmFjayhQZXJt
aXNzaW9uOjpEZW5pZWQpOwogCiAgICAgaWYgKCFkb2N1bWVudC5pc1NlY3VyZUNvbnRleHQoKSkg
ewotICAgICAgICBpZiAoY2FsbGJhY2spIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFtjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5o
YW5kbGVFdmVudChQZXJtaXNzaW9uOjpEZW5pZWQpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0KLSAgICAgICAgcmV0dXJuOworICAgICAgICBkb2N1bWVudC5hZGRDb25zb2xlTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgIlRoZSBOb3RpZmlj
YXRpb24gcGVybWlzc2lvbiBtYXkgb25seSBiZSByZXF1ZXN0ZWQgaW4gYSBzZWN1cmUgY29udGV4
dC4iX3MpOworICAgICAgICByZXR1cm4gcmVzb2x2ZVByb21pc2VBbmRDYWxsYmFjayhQZXJtaXNz
aW9uOjpEZW5pZWQpOwogICAgIH0KIAotICAgIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20o
cGFnZSktPmNsaWVudCgpLnJlcXVlc3RQZXJtaXNzaW9uKCZkb2N1bWVudCwgV1RGTW92ZShjYWxs
YmFjaykpOworICAgIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20ocGFnZSktPmNsaWVudCgp
LnJlcXVlc3RQZXJtaXNzaW9uKCZkb2N1bWVudCwgV1RGTW92ZShyZXNvbHZlUHJvbWlzZUFuZENh
bGxiYWNrKSk7CiB9CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpldmVudExpc3RlbmVyc0RpZENoYW5n
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmgKaW5kZXggNDI5Y2ZkNDg4YWY5YWVjZTNhMDc5M2NlMGZlYmQyNTU0YTdjYTBkYS4u
NjUzOTE1MmU5OGM1YWFjODg4NzUxZThhMmFiMTk0N2JhYjgyMjMwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaApAQCAtNDIs
NiArNDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlZmVycmVkUHJvbWlz
ZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
OwogCkBAIC04Miw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZp
bmFsaXplKCk7CiAKICAgICBzdGF0aWMgUGVybWlzc2lvbiBwZXJtaXNzaW9uKERvY3VtZW50Jik7
Ci0gICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBSZWZQdHI8Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJh
Y2s+JiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2
ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKaW5kZXgg
ZTM1Zjg3ODhlYzFlMWE4NzQxM2IwMjZkZmM5ZjUyMzhmNTVlZjQ1NS4uZDAzMWJiNzNjZGEwNTA5
MjEwNWQ2MDRkYzYwOGY4OWY2YzgzNGU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKQEAgLTQwLDcgKzQwLDcgQEAK
ICAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0aXRsZSwgb3B0
aW9uYWwgTm90aWZpY2F0aW9uT3B0aW9ucyBvcHRpb25zKTsKIAogICAgIFtDYWxsV2l0aD1Eb2N1
bWVudF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBl
cm1pc3Npb247Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdW5kZWZpbmVkIHJlcXVl
c3RQZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz8gZGVw
cmVjYXRlZENhbGxiYWNrKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiBhIFByb21pc2U8
Tm90aWZpY2F0aW9uUGVybWlzc2lvbj4uCisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMg
UHJvbWlzZTxOb3RpZmljYXRpb25QZXJtaXNzaW9uPiByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25h
bCBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s/IGRlcHJlY2F0ZWRDYWxsYmFjayk7CiAK
ICAgICAvLyBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4QWN0aW9u
czsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGNmNzVjZDdmOGRhNWYzY2IwODIwZjU2YTBiNGVi
MTU1N2VkNzAwODguLjA1ZjI2ZmY2ZTE3NjkyMWZlOWI5MzU3OTY3YzBiY2M2NGE1NmZiNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogICAgIC8vIFJlcXVl
c3RzIHVzZXIgcGVybWlzc2lvbiB0byBzaG93IGRlc2t0b3Agbm90aWZpY2F0aW9ucyBmcm9tIGEg
cGFydGljdWxhcgogICAgIC8vIHNjcmlwdCBjb250ZXh0LiBUaGUgY2FsbGJhY2sgcGFyYW1ldGVy
IHNob3VsZCBiZSBydW4gd2hlbiB0aGUgdXNlciBoYXMKICAgICAvLyBtYWRlIGEgZGVjaXNpb24u
Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYp
ID0gMDsKIAogICAgIC8vIENoZWNrcyB0aGUgY3VycmVudCBsZXZlbCBvZiBwZXJtaXNzaW9uLgog
ICAgIHZpcnR1YWwgUGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuY3BwCmluZGV4IDRjOTlmMjkzMTA1MmZhMjQwZTNiZGNiZGQ4NzcxMGFiNzFl
ZTY2ODIuLmNmMmQ4NTIyM2YyYmQwY2ZiODM1MTkzMTA1NGM4MWUyNzdiZmQxMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcApA
QCAtNTksMjkgKzU5LDMzIEBAIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhCiB9CiAjZW5kaWYKIAor
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjp+Tm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyAgICBhdXRvIHJlcXVlc3RzUGVyT3JpZ2luID0gc3Rk
OjpleGNoYW5nZShtX3JlcXVlc3RzUGVyT3JpZ2luLCB7IH0pOworICAgIGZvciAoYXV0byYgY29t
cGxldGlvbkhhbmRsZXJzIDogcmVxdWVzdHNQZXJPcmlnaW4udmFsdWVzKCkpIHsKKyAgICAgICAg
Zm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IGNvbXBsZXRpb25IYW5kbGVycykKKyAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6
RGVuaWVkKTsKKyAgICB9Cit9CisKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXZvaWQgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1
cml0eU9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb24pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcGVybWlzc2lvbiA9
IHBlcm1pc3Npb25MZXZlbChzZWN1cml0eU9yaWdpbik7Ci0gICAgaWYgKHBlcm1pc3Npb24gIT0g
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZWZhdWx0KSB7Ci0gICAgICAgIGlmIChj
YWxsYmFjaykKLSAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChwZXJtaXNzaW9uKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb246OkRlZmF1bHQpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihwZXJtaXNzaW9uKTsKIAotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZXF1ZXN0c1Bl
ck9yaWdpbi5hZGQoc2VjdXJpdHlPcmlnaW4sIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPj4geyB9KTsKLSAgICBhZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlLmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBt
X3JlcXVlc3RzUGVyT3JpZ2luLmFkZChzZWN1cml0eU9yaWdpbiwgVmVjdG9yPENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4+IHsgfSk7CisgICAg
YWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fcGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJl
cXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCkpLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spLCBzZWN1cml0eU9yaWdpbl0oYm9vbCBhbGxvd2VkKSBtdXRhYmxlIHsKKyAgICBt
X3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWN1cml0eU9yaWdpbi50b1N0cmluZygpKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2VjdXJpdHlPcmlnaW5dKGJvb2wgYWxsb3dlZCkgbXV0
YWJsZSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2ViTm90
aWZpY2F0aW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oc2VjdXJp
dHlPcmlnaW4udG9TdHJpbmcoKSwgYWxsb3dlZCk7CiAKLSAgICAgICAgYXV0byBjYWxsYmFja3Mg
PSBtX3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOwotICAgICAgICBmb3Ig
KGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAoY2FsbGJhY2sp
Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KGFsbG93ZWQgPyBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb246OkRlbmllZCk7Ci0gICAgICAgIH0KKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFu
ZGxlcnMgPSBtX3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOworICAgICAg
ICBmb3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVyIDogY29tcGxldGlvbkhhbmRsZXJzKQorICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbjo6R3JhbnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVu
aWVkKTsKICAgICB9KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAppbmRleCAxMjA3MWIxYzQ1YWFmODg0YTY2NGQxNzc1
MDRhNzg3MjEwYTg5MDczLi4zNmZiYjVhODgxMmFmYzBhN2M4MDE2NzM2NzY0NGU5MjA4OGYwZThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXIuaApAQCAtNDYsOSArNDYsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Tm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAg
IH5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogI2lmIEVOQUJMRShO
T1RJRklDQVRJT05TKQotICAgIHZvaWQgc3RhcnRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYsIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2s+JiYpOworICAgIHZvaWQgc3RhcnRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uKT4mJik7CiAjZW5kaWYKICAgICAKICAgICBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbkxldmVsKGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYpOwpAQCAtNjEsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlKik7CiAKICNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSwgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+
Pj4gbV9yZXF1ZXN0c1Blck9yaWdpbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSwgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4+PiBtX3JlcXVlc3RzUGVyT3JpZ2luOwogICAgIFdlYlBh
Z2UqIG1fcGFnZTsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAK
aW5kZXggZTJmNjc4ZjUxNDA4Y2RiOTkyOTljNzdhYzEzMmFhOTNmZGQzZDBjZC4uMGZmN2E4NjQ3
YjVjYWM2OWM1YzU5YzkyMGUzNjI1YTMxM2UxOWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlv
bkNsaWVudC5jcHAKQEAgLTcxLDE1ICs3MSwxMiBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVu
dDo6bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9
CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrPiYmIGNhbGxiYWNrKQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQ
ZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBhdXRvKiBzZWN1cml0eU9yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3Jp
Z2luKCk7Ci0gICAgaWYgKCFzZWN1cml0eU9yaWdpbikgewotICAgICAgICBpZiAoY2FsbGJhY2sp
Ci0gICAgICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uOjpEZW5pZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fcGFnZS0+
bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnN0YXJ0UmVxdWVzdChzZWN1
cml0eU9yaWdpbi0+ZGF0YSgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgaWYgKCFzZWN1cml0
eU9yaWdpbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE5vdGlmaWNhdGlvbkNs
aWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFydFJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4tPmRhdGEo
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb24gV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApp
bmRleCA0MzkzYWVkMjExMmIyM2VmOGMzYjA2OTMxMjU0YzMwNGNjODAxZGUyLi41NWU0YjE1M2Ji
YTNlYzI5Yzk0NmZkNGZjYTI2YTIwYWU5MDAwYzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25D
bGllbnQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIApAQCAtNTEsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJO
b3RpZmljYXRpb25zKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsK
ICAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRp
b24qKSBvdmVycmlkZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpIG92ZXJyaWRlOwogICAgIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIAogICAgIFdlYlBhZ2Uq
IG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggNmE1ZGVhZmU5MDRkNTMz
M2FiMDljZWU0NTExYWY4ZjRmNjlhODJkYi4uZjhlZmI0ZjFiY2ZkYmM4YTg4ZjFiNDE5M2U3Yjg0
YzcxZjUwOGY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTUwLDcgKzUwLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3RE
ZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3Rp
ZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0
UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNv
cmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b24pPiYmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50Lm1tCmluZGV4IGNkMjg3ZTdiNDUxNTI0NzU4NTkyNzNkMmQ2MGRi
Njk2MjhmOGZjM2IuLmNjMGNhN2UzYzdjNmI4Y2UwMjhkYzVkYTk2Zjc2MWMxYjBjYjkyMWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTMzLDE4ICszMywxOCBAQAogI2ltcG9y
dCAiV2ViU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVUlEZWxlZ2F0ZVBy
aXZhdGUuaCIKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9O
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
KyNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1Zl
Y3RvckNvY29hLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50ZXJmYWNlIFdl
Yk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGlj
eUxpc3RlbmVyPgogewotICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+
IF9jYWxsYmFjazsKKyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbik+IF9jb21wbGV0aW9uSGFuZGxlcjsKIH0KLS0gKGlkKWluaXRXaXRoQ2Fs
bGJhY2s6KFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpY2FsbGJhY2s7
CistIChpZClpbml0V2l0aENvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiBA
ZW5kCiAKIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZU5vdGlmaWNhdGlvbklEKCkKQEAgLTEzNSwx
MCArMTM1LDEwIEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXCiAgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBzZWxlY3Rvciwgd2ViT3JpZ2luLmdldCgpLCBsaXN0ZW5lcik7CiB9CiAKLXZv
aWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
PiYmIGNhbGxiYWNrKQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNz
aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBhdXRvIGxpc3RlbmVyID0g
YWRvcHROUyhbW1dlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENh
bGxiYWNrOldURk1vdmUoY2FsbGJhY2spXSk7CisgICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMo
W1tXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhDb21wbGV0aW9u
SGFuZGxlcjpXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0pOwogICAgIHJlcXVlc3RQZXJtaXNz
aW9uKGNvbnRleHQsIGxpc3RlbmVyLmdldCgpKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TCiB9CkBAIC0xNzAsMjUgKzE3MCwyNSBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25DbGll
bnQ6Om5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qCiAKIEBp
bXBsZW1lbnRhdGlvbiBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0
V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKWNh
bGxiYWNrCistIChpZClpbml0V2l0aENvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpY29tcGxldGlvbkhhbmRs
ZXIKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgIF9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworICAgIF9jb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHJldHVybiBzZWxmOwog
fQogCiAtICh2b2lkKWFsbG93CiB7Ci0gICAgaWYgKF9jYWxsYmFjaykKLSAgICAgICAgX2NhbGxi
YWNrLT5oYW5kbGVFdmVudChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQp
OworICAgIGlmIChfY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIF9jb21wbGV0aW9uSGFuZGxl
cihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQpOwogfQogCiAtICh2b2lk
KWRlbnkKIHsKLSAgICBpZiAoX2NhbGxiYWNrKQotICAgICAgICBfY2FsbGJhY2stPmhhbmRsZUV2
ZW50KE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKKyAgICBpZiAoX2Nv
bXBsZXRpb25IYW5kbGVyKQorICAgICAgICBfY29tcGxldGlvbkhhbmRsZXIoTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKaW5k
ZXggMWU4NjQwMmY5N2Q3MTM3MTZlYzgyM2M3ZjFhZTM2ZTY0YWU4MGNkMi4uYzc4YjdiY2M5YWJh
ODM3NjAyYzk2ODE0OWVkYThiZGNmODk0MWM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3Rv
cE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKQEAgLTE3Nyw4ICsxNzcsOSBAQCB2b2lkIFdlYkRl
c2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3Jp
Z2luKiBvcmlnaW4sCiAgICAgICAgIG5vdGlmaWNhdGlvbkRlbGVnYXRlKCktPnJlcXVlc3ROb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKG9yZyk7CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qLCBSZWZQdHI8Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKQordm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0
aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lvbihTZWN1cml0eU9yaWdpbiosIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb246OkRlbmllZCk7CiB9CiAKIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
biBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpjaGVja1Blcm1pc3Npb24oY29uc3Qg
VVJMJiB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgK
aW5kZXggMzZhNjJjMDdlNDk5YzEyYmYzYWEwYjY1OWQzMTNlMDI5Y2VmMjc1Ni4uOTY2YzM0Zjhi
MGE4YTg1ZjViM2M2YmExZWUzMmIxNDQzYzQ5NmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmlj
YXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNh
bGxiYWNrPiYmKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihjb25zdCBVUkwmKTsKIAog
cHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBmYzhhNzIyNWE3ZTY2MWE5MjJiYWU0NzdhYzRiNDFhNjUzNTUxNDBj
Li41ZWFiOTYxZGFlMjFiNzI2NDYwYTAxMWM2ZWNiYzU1NzlkNzM2ZDAwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEg
UHJvbWlzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgdGVzdCBub3cgdGhhdCB3ZSBs
b2cgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUgSlMgY29uc29sZSB3aGVuIHRyeWluZyB0byBjYWxs
CisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpIGluIGEgbm9uLXNlY3Vy
ZSBjb250ZXh0LgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qt
d2l0aC1wcm9taXNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9u
b3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLmh0bWw6IEFkZGVkLgorICAgICAgICBB
ZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKIDIwMjEtMDUtMTIgIFNlcmdpbyBWaWxsYXIgU2Vu
aW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogbV9j
bGllbnRzLmNvbnRhaW5zKCZjbGllbnQpIGluIENTU0ZvbnRGYWNlOjpyZW1vdmVDbGllbnQgdmlh
IENTU1NlZ21lbnRlZEZvbnRGYWNlOjp+Q1NTU2VnbWVudGVkRm9udEZhY2UoKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjFiZDkyNzkxNWY0MmVhNTE2ZTJkZjY1YTI1NTU3Zjgw
ZjVlYTE4Ni4uNjAzZmRiNTA2NTFjNmUwY2Q0NGFkZTRkYmZiMGQ5MzE5Mjg5NDA2NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVx
dWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBtYW51YWwgdGVzdCB0aGF0IHNo
b3VsZCBub3QgaGF2ZSBiZWVuIGltcG9ydGVkIGZyb20gV1BULiBUaGUgdGVzdCBoYXBwZW5lZCB0
byBiZSB1c2luZyBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKQorICAgICAgICBpbnRl
cm5hbGx5LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRt
bDogUmVtb3ZlZC4KKwogMjAyMS0wNS0xMiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJA
aWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhib3hdIERvIG5vdCB1c2UgbWFyZ2lucyB3
aGVuIGNvbXB1dGluZyBhc3BlY3QgcmF0aW8gY3Jvc3Mgc2l6ZXMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3Vy
ZS1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRl
eCA3YjE4OTU3ZWFlNWJjZGExMTU2NDFiZGJjM2MzOGNlYmFkNTAxNzY4Li4yMjZmNzVhYzdmMzdi
OGFkNTI3ZWJjM2U1ODlmODA4YTA0OTgyMTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25v
dGlmaWNhdGlvbi1pbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEs
NSBAQAorQ09OU09MRSBNRVNTQUdFOiBUaGUgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9u
bHkgYmUgcmVxdWVzdGVkIGluIGEgc2VjdXJlIGNvbnRleHQuCitDT05TT0xFIE1FU1NBR0U6IFRo
ZSBOb3RpZmljYXRpb24gcGVybWlzc2lvbiBtYXkgb25seSBiZSByZXF1ZXN0ZWQgaW4gYSBzZWN1
cmUgY29udGV4dC4KIAogUEFTUyBOb3RpZmljYXRpb24gcGVybWlzc2lvbiBpbiBpbnNlY3VyZSBj
b250ZXh0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjcxYmI4NzIxMDQxYjJkZGI5NTNjODhjMmNlYzQzNzhjMTg2YTcwMjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13
aXRoLXByb21pc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdHMgTm90
aWZpY2F0aW9uLnBlcm1pc3Npb24ncyByZXR1cm5lZCBQcm9taXNlCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBkZWZhdWx0IHBlcm1p
c3Npb24KK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImRlZmF1bHQiCitQQVNTIHBl
cm1pc3Npb24gaXMgZ3JhbnRlZAorUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZ3Jh
bnRlZCIKK1JlcXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIG5vbi1kZWZhdWx0IHBlcm1pc3Npb24K
K1BBU1MgcGVybWlzc2lvbiBpcyBkZW5pZWQKK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24g
aXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMv
cmVxdWVzdC13aXRoLXByb21pc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZp
Y2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZjUzMTlmNmM3
ZTM1ZTc4ZGU2NDM2ZWRjNjQxMGQwODA5ZDEzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdHMgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24ncyByZXR1cm5lZCBQcm9taXNlIik7Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc3RlcDEoKSB7CisgICAgZGVidWcoIlJl
cXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIGRlZmF1bHQgcGVybWlzc2lvbiIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVmYXVsdCIpOwor
ICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHBlcm1pc3Npb24pID0+
IHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0gJ2dyYW50ZWQnKQorICAgICAgICAgICAgdGVz
dFBhc3NlZCgicGVybWlzc2lvbiBpcyBncmFudGVkIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoInBlcm1pc3Npb24gc2hvdWxkIGJlIGdyYW50ZWQsIGJ1dCBpcyAiICsg
cGVybWlzc2lvbik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9u
LnBlcm1pc3Npb24iLCAiZ3JhbnRlZCIpOworICAgICAgICBzZXRUaW1lb3V0KHN0ZXAyLCAwKTsK
KyAgICB9KTsKK30KKworZnVuY3Rpb24gc3RlcDIoKSB7CisgICAgZGVidWcoIlJlcXVlc3Rpbmcg
cGVybWlzc2lvbiB3aXRoIG5vbi1kZWZhdWx0IHBlcm1pc3Npb24iKTsKKyAgICB0ZXN0UnVubmVy
LmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKHNlbGYub3JpZ2luKTsKKyAgICBOb3RpZmlj
YXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChwZXJtaXNzaW9uKSA9PiB7CisgICAgICAg
IGlmIChwZXJtaXNzaW9uID09ICdkZW5pZWQnKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgicGVy
bWlzc2lvbiBpcyBkZW5pZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxl
ZCgicGVybWlzc2lvbiBzaG91bGQgYmUgZGVuaWVkLCBidXQgaXMgIiArIHBlcm1pc3Npb24pOwor
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwg
ImRlbmllZCIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworc3RlcDEo
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQt
d2l0aGluLXN3LW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ3ZDdkOWY0NDkwNWU4M2ViMmI1NDMzYzIyODE4Nzc2ODY4
NGM4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1GQUlMIE5vdGlmaWNhdGlvbiBy
ZXF1ZXN0cyBpbnRlcmNlcHRlZCBib3RoIGZyb20gd2luZG93IGFuZCBTVyB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9u
KCkudGhlbicpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdp
dGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50
LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTVhMmU5NWJkMzlkNDExYTI1NzlkZDRlMDY2MTc5MWNkZTZkMTc1Zi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRj
aC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5z
dWIuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2NyaXB0PgotY29uc3Qgd29ya2VyID0gJ3Jlc291
cmNlcy9mZXRjaC1ldmVudC13aXRoaW4tc3ctd29ya2VyLmpzJzsKLQotZnVuY3Rpb24gd2FpdCht
cykgewotICByZXR1cm4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7Ci19Ci0K
LWZ1bmN0aW9uIHJlc2V0KCkgewotICBmb3IgKGNvbnN0IGlmcmFtZSBvZiBbLi4uZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnLnRlc3QtaWZyYW1lJyldKSB7Ci0gICAgaWZyYW1lLnJlbW92ZSgp
OwotICB9Ci0gIHJldHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25z
KCkudGhlbihyZWdpc3RyYXRpb25zID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVnaXN0
cmF0aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIoKSkpOwotICB9KS50aGVuKCgpID0+IGNhY2hl
cy5rZXlzKCkpLnRoZW4oY2FjaGVLZXlzID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5hbGwoY2Fj
aGVLZXlzLm1hcChjID0+IGNhY2hlcy5kZWxldGUoYykpKTsKLSAgfSk7Ci19Ci0KLWFkZF9jb21w
bGV0aW9uX2NhbGxiYWNrKHJlc2V0KTsKLQotZnVuY3Rpb24gcmVnUmVhZHkocmVnKSB7Ci0gIHJl
dHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgaWYgKHJlZy5hY3Rp
dmUpIHsKLSAgICAgIHJlc29sdmUoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY29uc3Qg
bmV4dFdvcmtlciA9IHJlZy53YWl0aW5nIHx8IHJlZy5pbnN0YWxsaW5nOwotCi0gICAgbmV4dFdv
cmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKLSAgICAgIGlmIChu
ZXh0V29ya2VyLnN0YXRlID09ICdyZWR1bmRhbnQnKSB7Ci0gICAgICAgIHJlamVjdChFcnJvcihg
U2VydmljZSB3b3JrZXIgZmFpbGVkIHRvIGluc3RhbGxgKSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICAgIH0KLSAgICAgIGlmIChuZXh0V29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKSB7Ci0gICAg
ICAgIHJlc29sdmUoKTsKLSAgICAgIH0KLSAgICB9KTsKLSAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGdl
dENvb2tpZXMoKSB7Ci0gIHJldHVybiBuZXcgTWFwKAotICAgIGRvY3VtZW50LmNvb2tpZQotICAg
ICAgLnNwbGl0KC87L2cpCi0gICAgICAubWFwKGMgPT4gYy50cmltKCkuc3BsaXQoJz0nKS5tYXAo
cyA9PiBzLnRyaW0oKSkpCi0gICk7Ci19Ci0KLWZ1bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJh
bWUoKSB7Ci0gIHJldHVybiByZXNldCgpLnRoZW4oKCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIod29ya2VyLCB7c2NvcGU6ICdyZXNvdXJjZXMvJ30pKQotICAgIC50aGVuKHJl
ZyA9PiByZWdSZWFkeShyZWcpKQotICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKCdyZXNvdXJj
ZXMvc2ltcGxlLmh0bWwnKSk7Ci19Ci0KLWZ1bmN0aW9uIHJhY2VCcm9hZGNhc3RBbmRDb29raWUo
Y2hhbm5lbCwgY29va2llKSB7Ci0gIGNvbnN0IGluaXRpYWxDb29raWUgPSBnZXRDb29raWVzKCku
Z2V0KGNvb2tpZSk7Ci0gIGxldCBkb25lID0gZmFsc2U7Ci0KLSAgcmV0dXJuIFByb21pc2UucmFj
ZShbCi0gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICBjb25zdCBiYyA9IG5ldyBC
cm9hZGNhc3RDaGFubmVsKGNoYW5uZWwpOwotICAgICAgYmMub25tZXNzYWdlID0gKCkgPT4gewot
ICAgICAgICBiYy5jbG9zZSgpOwotICAgICAgICByZXNvbHZlKCdicm9hZGNhc3QnKTsKLSAgICAg
IH07Ci0gICAgfSksCi0gICAgKGZ1bmN0aW9uIGNoZWNrQ29va2llKCkgewotICAgICAgLy8gU3Rv
cCBwb2xsaW5nIGlmIHRoZSBicm9hZGNhc3QgY2hhbm5lbCB3b24KLSAgICAgIGlmIChkb25lID09
IHRydWUpIHJldHVybjsKLSAgICAgIGlmIChnZXRDb29raWVzKCkuZ2V0KGNvb2tpZSkgIT0gaW5p
dGlhbENvb2tpZSkgcmV0dXJuICdjb29raWUnOwotCi0gICAgICByZXR1cm4gd2FpdCgyMDApLnRo
ZW4oY2hlY2tDb29raWUpOwotICAgIH0oKSkKLSAgXSkudGhlbih2YWwgPT4gewotICAgIGRvbmUg
PSB0cnVlOwotICAgIHJldHVybiB2YWw7Ci0gIH0pOwotfQotCi1wcm9taXNlX3Rlc3QoKCkgPT4g
ewotICByZXR1cm4gTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihwZXJtaXNz
aW9uID0+IHsKLSAgICBpZiAocGVybWlzc2lvbiAhPSAiZ3JhbnRlZCIpIHsKLSAgICAgIHRocm93
IEVycm9yKCdZb3UgbXVzdCBhbGxvdyBub3RpZmljYXRpb25zIGZvciB0aGlzIG9yaWdpbiBiZWZv
cmUgcnVubmluZyB0aGlzIHRlc3QuJyk7Ci0gICAgfQotICAgIHJldHVybiByZWdpc3RlclN3QW5k
T3BlbkZyYW1lKCk7Ci0gIH0pLnRoZW4oaWZyYW1lID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCkudGhlbigoKSA9PiB7Ci0gICAgICAvLyBJbiB0aGlzIHRlc3QsIHRoZSBzZXJ2aWNl
IHdvcmtlciB3aWxsIHBpbmcgdGhlICdpY29uLXJlcXVlc3QnIGNoYW5uZWwKLSAgICAgIC8vIGlm
IGl0IGludGVyY2VwdHMgYSByZXF1ZXN0IGZvciAnbm90aWZpY2F0aW9uX2ljb24ucHknLiBJZiB0
aGUgcmVxdWVzdAotICAgICAgLy8gcmVhY2hlcyB0aGUgc2VydmVyIGl0IHNldHMgdGhlICdub3Rp
ZmljYXRpb24nIGNvb2tpZSB0byB0aGUgdmFsdWUgZ2l2ZW4KLSAgICAgIC8vIGluIHRoZSBVUkwu
ICJyYWNlQnJvYWRjYXN0QW5kQ29va2llIiBtb25pdG9ycyBib3RoIGFuZCByZXR1cm5zIHdoaWNo
Ci0gICAgICAvLyBoYXBwZW5zIGZpcnN0LgotICAgICAgY29uc3QgcmFjZSA9IHJhY2VCcm9hZGNh
c3RBbmRDb29raWUoJ2ljb24tcmVxdWVzdCcsICdub3RpZmljYXRpb24nKTsKLSAgICAgIGNvbnN0
IG5vdGlmaWNhdGlvbiA9IG5ldyBpZnJhbWUuY29udGVudFdpbmRvdy5Ob3RpZmljYXRpb24oJ3Rl
c3QnLCB7Ci0gICAgICAgIGljb246IGBub3RpZmljYXRpb25faWNvbi5weT9zZXQtY29va2llLW5v
dGlmaWNhdGlvbj0ke01hdGgucmFuZG9tKCl9YAotICAgICAgfSk7Ci0gICAgICBub3RpZmljYXRp
b24uY2xvc2UoKTsKLQotICAgICAgcmV0dXJuIHJhY2UudGhlbih3aW5uZXIgPT4gewotICAgICAg
ICBhc3NlcnRfZXF1YWxzKHdpbm5lciwgJ2Jyb2FkY2FzdCcsICdUaGUgc2VydmljZSB3b3JrZXIg
aW50ZXJjZXB0ZWQgdGhlIGZyb20td2luZG93IG5vdGlmaWNhdGlvbiBpY29uIHJlcXVlc3QnKTsK
LSAgICAgIH0pOwotICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgLy8gU2ltaWxhciByYWNlIHRv
IGFib3ZlLCBidXQgdGhpcyB0aW1lIHRoZSBzZXJ2aWNlIHdvcmtlciByZXF1ZXN0cyB0aGUKLSAg
ICAgIC8vIG5vdGlmaWNhdGlvbi4KLSAgICAgIGNvbnN0IHJhY2UgPSByYWNlQnJvYWRjYXN0QW5k
Q29va2llKCdpY29uLXJlcXVlc3QnLCAnbm90aWZpY2F0aW9uJyk7Ci0gICAgICBpZnJhbWUuY29u
dGVudFdpbmRvdy5mZXRjaChgc2hvdy1ub3RpZmljYXRpb24/c2V0LWNvb2tpZS1ub3RpZmljYXRp
b249JHtNYXRoLnJhbmRvbSgpfWApOwotCi0gICAgICByZXR1cm4gcmFjZS50aGVuKHdpbm5lciA9
PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMod2lubmVyLCAnYnJvYWRjYXN0JywgJ1RoZSBzZXJ2
aWNlIHdvcmtlciBpbnRlcmNlcHRlZCB0aGUgZnJvbS1zZXJ2aWNlLXdvcmtlciBub3RpZmljYXRp
b24gaWNvbiByZXF1ZXN0Jyk7Ci0gICAgICB9KTsKLSAgICB9KQotICB9KTsKLX0sIGBOb3RpZmlj
YXRpb24gcmVxdWVzdHMgaW50ZXJjZXB0ZWQgYm90aCBmcm9tIHdpbmRvdyBhbmQgU1dgKTsKLQot
PC9zY3JpcHQ+Ci08L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428439</attachid>
            <date>2021-05-12 17:43:22 -0700</date>
            <delta_ts>2021-05-12 18:08:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225712-20210512174322.patch</filename>
            <type>text/plain</type>
            <size>33320</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkxZDgwNmQwMzQ3Yzlk
MGRlZTI2YTM3OWM1YTZiZjhlNzQzZDZhYi4uYWUyNjdmMGVkNDA1Y2I3ZGQ4ZjhlNTU1N2E3N2Vi
YjZlZTMwZGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbjoK
KyAgICAgICAgLSBodHRwczovL25vdGlmaWNhdGlvbnMuc3BlYy53aGF0d2cub3JnLyNub3RpZmlj
YXRpb24KKworICAgICAgICBCb3RoIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IHN1cHBvcnQg
dGhpcy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13
aXRoLXByb21pc2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6
CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIx
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJU
SU9OIEZBSUxFRDogYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIg
aW4gdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0ICosIFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0ICosIFJlZjxXZWJDb3JlOjpBdWRpb05vZGU+ICYmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
MjM5Yjc3YzA5ODIwYjM5YTRhNmE1MzA4ZDFmNjg5ODQ2ODA1ODFiLi41YzQ5YTU0MzY2NzllNzYy
MzQzNjY0N2MxNmFmZjlkZjM2YWI1YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIx
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZp
Y2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5v
dyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisg
ICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gTW9kZXJuaXpl
IE5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggY2ZkYzQxMDcyZmMxNTRlNmU1OTI2MDJmZDVmYzA2ZGQ0OTI1M2IwOC4u
NmM3NDY4YjBjMGFmZjc1NTA4OTk4NzlhZTRhZTczZjMxNjk1ZDcwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2Vz
IGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5tbToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBpbml0V2l0aENv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0
ZW5lciBhbGxvd10pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBk
ZW55XSk6CisKIDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBRdWV1ZSBub3RpZmljYXRpb24gcGVybWlzc2lvbiByZXF1ZXN0cyBmb3IgdGhlIHNh
bWUgb3JpZ2luIG9uIFdlYktpdCBzaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
ZWM5ZTg5ZmY0NDU4MzE3N2I1OTVlMmVkOTI3MDU3MTg1ODQ1NWQ4ZS4uM2FiYjI1NmU2NWQ2ZWI0
YjgwODg1ZTZmN2I1NTVhMTQ0Njk1NTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJl
dHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhh
bmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
ay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGUuY3BwOgorICAgICAgICAoV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVx
dWVzdFBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGUuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFF1ZXVlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHJlcXVl
c3RzIGZvciB0aGUgc2FtZSBvcmlnaW4gb24gV2ViS2l0IHNpZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggNWEw
ZDk5MTM0YzQyOTUxNWNmZDUwMmEyNGRlZGU4MTRlMjY1YmI2OS4uMTMxMzYzY2JmODkwOGRhZDVl
MWQ2N2Y4Yzk0OTU4ODJiODY0ZWFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTm90
aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oIgpAQCAtMTg0LDIyICsx
ODUsMjYgQEAgYXV0byBOb3RpZmljYXRpb246OnBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50
KSAtPiBQZXJtaXNzaW9uCiAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20o
ZG9jdW1lbnQucGFnZSgpKS0+Y2xpZW50KCkuY2hlY2tQZXJtaXNzaW9uKCZkb2N1bWVudCk7CiB9
CiAKLXZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2
b2lkIE5vdGlmaWNhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBS
ZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CisgICAgYXV0byByZXNvbHZlUHJvbWlzZUFuZENh
bGxiYWNrID0gW2RvY3VtZW50ID0gbWFrZVJlZihkb2N1bWVudCksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJtaXNzaW9uIHBlcm1p
c3Npb24pIG11dGFibGUgeworICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNr
KFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwZXJtaXNzaW9uXSgpIG11dGFibGUgewor
ICAgICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5k
bGVFdmVudChwZXJtaXNzaW9uKTsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMRW51
bWVyYXRpb248Tm90aWZpY2F0aW9uUGVybWlzc2lvbj4+KHBlcm1pc3Npb24pOworICAgICAgICB9
KTsKKyAgICB9OworCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKICAgICBpZiAo
IXBhZ2UpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlQW5k
Q2FsbGJhY2soUGVybWlzc2lvbjo6RGVuaWVkKTsKIAogICAgIGlmICghZG9jdW1lbnQuaXNTZWN1
cmVDb250ZXh0KCkpIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBkb2N1
bWVudC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBb
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAg
ICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoUGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICAgICAgICAg
IH0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3Is
ICJUaGUgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkgYmUgcmVxdWVzdGVkIGluIGEg
c2VjdXJlIGNvbnRleHQuIl9zKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlQW5kQ2Fs
bGJhY2soUGVybWlzc2lvbjo6RGVuaWVkKTsKICAgICB9CiAKLSAgICBOb3RpZmljYXRpb25Db250
cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKS5yZXF1ZXN0UGVybWlzc2lvbigmZG9jdW1lbnQs
IFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UpLT5jbGllbnQoKS5yZXF1ZXN0UGVybWlzc2lvbigmZG9jdW1lbnQsIFdURk1vdmUocmVzb2x2
ZVByb21pc2VBbmRDYWxsYmFjaykpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvbjo6ZXZlbnRMaXN0
ZW5lcnNEaWRDaGFuZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDQyOWNmZDQ4OGFmOWFlY2UzYTA3OTNjZTBmZWJk
MjU1NGE3Y2EwZGEuLjY1MzkxNTJlOThjNWFhYzg4ODc1MWU4YTJhYjE5NDdiYWI4MjIzMDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmgKQEAgLTQyLDYgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBE
ZWZlcnJlZFByb21pc2U7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjazsKIApAQCAtODIsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBmaW5hbGl6ZSgpOwogCiAgICAgc3RhdGljIFBlcm1pc3Npb24gcGVybWlzc2lv
bihEb2N1bWVudCYpOwotICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50
JiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CisgICAgc3RhdGlj
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrPiYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAogICAgIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b24uaWRsCmluZGV4IGUzNWY4Nzg4ZWMxZTFhODc0MTNiMDI2ZGZjOWY1MjM4ZjU1ZWY0NTUuLmQw
MzFiYjczY2RhMDUwOTIxMDVkNjA0ZGM2MDhmODlmNmM4MzRlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCkBAIC00
MCw3ICs0MCw3IEBACiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcihET01TdHJp
bmcgdGl0bGUsIG9wdGlvbmFsIE5vdGlmaWNhdGlvbk9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBb
Q2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgTm90aWZpY2F0aW9u
UGVybWlzc2lvbiBwZXJtaXNzaW9uOwotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHVu
ZGVmaW5lZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2s/IGRlcHJlY2F0ZWRDYWxsYmFjayk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZXR1
cm4gYSBQcm9taXNlPE5vdGlmaWNhdGlvblBlcm1pc3Npb24+LgorICAgIFtDYWxsV2l0aD1Eb2N1
bWVudF0gc3RhdGljIFByb21pc2U8Tm90aWZpY2F0aW9uUGVybWlzc2lvbj4gcmVxdWVzdFBlcm1p
c3Npb24ob3B0aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPyBkZXByZWNhdGVk
Q2FsbGJhY2spOwogCiAgICAgLy8gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIG1heEFjdGlvbnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAppbmRleCBjZjc1Y2Q3ZjhkYTVmM2Ni
MDgyMGY1NmEwYjRlYjE1NTdlZDcwMDg4Li4wNWYyNmZmNmUxNzY5MjFmZTliOTM1Nzk2N2MwYmNj
NjRhNTZmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoK
ICAgICAvLyBSZXF1ZXN0cyB1c2VyIHBlcm1pc3Npb24gdG8gc2hvdyBkZXNrdG9wIG5vdGlmaWNh
dGlvbnMgZnJvbSBhIHBhcnRpY3VsYXIKICAgICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxi
YWNrIHBhcmFtZXRlciBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHVzZXIgaGFzCiAgICAgLy8gbWFk
ZSBhIGRlY2lzaW9uLgotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4m
JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb24pPiYmKSA9IDA7CiAKICAgICAvLyBDaGVja3MgdGhlIGN1cnJlbnQgbGV2ZWwgb2Yg
cGVybWlzc2lvbi4KICAgICB2aXJ0dWFsIFBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA0Yzk5ZjI5MzEwNTJmYTI0MGUzYmRj
YmRkODc3MTBhYjcxZWU2NjgyLi5jZjJkODUyMjNmMmJkMGNmYjgzNTE5MzEwNTRjODFlMjc3YmZk
MTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlci5jcHAKQEAgLTU5LDI5ICs1OSwzMyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQog
fQogI2VuZGlmCiAKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6fk5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7CisgICAgYXV0byByZXF1ZXN0c1Bl
ck9yaWdpbiA9IHN0ZDo6ZXhjaGFuZ2UobV9yZXF1ZXN0c1Blck9yaWdpbiwgeyB9KTsKKyAgICBm
b3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVycyA6IHJlcXVlc3RzUGVyT3JpZ2luLnZhbHVlcygp
KSB7CisgICAgICAgIGZvciAoYXV0byYgY29tcGxldGlvbkhhbmRsZXIgOiBjb21wbGV0aW9uSGFu
ZGxlcnMpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb246OkRlbmllZCk7CisgICAgfQorfQorCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1
ZXN0KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIFJlZlB0cjxOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRv
IHBlcm1pc3Npb24gPSBwZXJtaXNzaW9uTGV2ZWwoc2VjdXJpdHlPcmlnaW4pOwotICAgIGlmIChw
ZXJtaXNzaW9uICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVmYXVsdCkgewot
ICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQo
cGVybWlzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKHBlcm1pc3Npb24g
IT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZWZhdWx0KQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIocGVybWlzc2lvbik7CiAKLSAgICBhdXRvIGFkZFJlc3VsdCA9
IG1fcmVxdWVzdHNQZXJPcmlnaW4uYWRkKHNlY3VyaXR5T3JpZ2luLCBWZWN0b3I8UmVmUHRyPFdl
YkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4+IHsgfSk7Ci0gICAgYWRkUmVz
dWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOworICAgIGF1dG8g
YWRkUmVzdWx0ID0gbV9yZXF1ZXN0c1Blck9yaWdpbi5hZGQoc2VjdXJpdHlPcmlnaW4sIFZlY3Rv
cjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+
PiB7IH0pOworICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWN1cml0eU9yaWdpbi50
b1N0cmluZygpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2VjdXJpdHlPcmlnaW5dKGJvb2wgYWxsb3dlZCkgbXV0
YWJsZSB7CisgICAgbV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oc2VjdXJpdHlPcmlnaW4udG9TdHJp
bmcoKSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlY3VyaXR5T3JpZ2luXShib29s
IGFsbG93ZWQpIG11dGFibGUgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBw
bGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZU5vdGlmaWNhdGlvbkRl
Y2lzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCksIGFsbG93ZWQpOwogCi0gICAgICAgIGF1
dG8gY2FsbGJhY2tzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNlY3VyaXR5T3JpZ2luKTsK
LSAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykgewotICAgICAgICAgICAg
aWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChhbGxv
d2VkID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkIDogTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwotICAgICAgICB9CisgICAgICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXJzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNlY3VyaXR5T3Jp
Z2luKTsKKyAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IGNvbXBsZXRpb25I
YW5kbGVycykKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFsbG93ZWQgPyBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb246OkRlbmllZCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggMTIwNzFiMWM0NWFh
Zjg4NGE2NjRkMTc3NTA0YTc4NzIxMGE4OTA3My4uMzZmYmI1YTg4MTJhZmMwYTdjODAxNjczNjc2
NDRlOTIwODhmMGU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyLmgKQEAgLTQ2LDkgKzQ2LDEwIEBAIGNsYXNzIFdlYlBhZ2U7CiBjbGFz
cyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4gY3JlYXRlKFdl
YlBhZ2UqKTsKKyAgICB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCk7CiAK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2b2lkIHN0YXJ0UmVxdWVzdChjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvbkNhbGxiYWNrPiYmKTsKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdChjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpOwogI2VuZGlmCiAgICAgCiAgICAg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBlcm1pc3Npb25MZXZlbChj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKTsKQEAgLTYxLDcgKzYyLDcgQEAgcHJp
dmF0ZToKICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGFnZSop
OwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPj4+IG1fcmVxdWVzdHNQZXJPcmlnaW47CisgICAgSGFzaE1hcDxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEsIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+Pj4gbV9yZXF1ZXN0c1Blck9yaWdp
bjsKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuY3BwCmluZGV4IGUyZjY3OGY1MTQwOGNkYjk5Mjk5Yzc3YWMxMzJhYTkzZmRkM2Qw
Y2QuLjBmZjdhODY0N2I1Y2FjNjljNWM1OWM5MjBlMzYyNWEzMTNlMTljYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC03MSwxNSArNzEsMTIgQEAgdm9pZCBXZWJOb3Rp
ZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKQogICAgIGRl
bGV0ZSB0aGlzOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1p
c3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xp
ZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogc2VjdXJpdHlPcmlnaW4gPSBjb250ZXh0
LT5zZWN1cml0eU9yaWdpbigpOwotICAgIGlmICghc2VjdXJpdHlPcmlnaW4pIHsKLSAgICAgICAg
aWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFy
dFJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IGlmICghc2VjdXJpdHlPcmlnaW4pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CisgICAgbV9wYWdlLT5ub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KHNlY3VyaXR5
T3JpZ2luLT5kYXRhKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJt
aXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmgKaW5kZXggNDM5M2FlZDIxMTJiMjNlZjhjM2IwNjkzMTI1NGMzMDRjYzgwMWRl
Mi4uNTVlNGIxNTNiYmEzZWMyOWM5NDZmZDRmY2EyNmEyMGFlOTAwMGM1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTUxLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25Db250cm9s
bGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmKSBvdmVycmlk
ZTsKICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJt
aXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKICAgICAK
ICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IDZh
NWRlYWZlOTA0ZDUzMzNhYjA5Y2VlNDUxMWFmOGY0ZjY5YTgyZGIuLmY4ZWZiNGYxYmNmZGJjOGE4
OGYxYjQxOTNlN2I4NGM3MWY1MDhmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBA
IC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZp
Y2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIG92ZXJyaWRlOwog
ICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAg
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xp
ZW50OjpQZXJtaXNzaW9uKT4mJikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5l
ciAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBjZDI4N2U3YjQ1MTUyNDc1
ODU5MjczZDJkNjBkYjY5NjI4ZjhmYzNiLi5jYzBjYTdlM2M3YzZiOGNlMDI4ZGM1ZGE5NmY3NjFj
MWIwY2I5MjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCkBAIC0zMywxOCArMzMs
MTggQEAKICNpbXBvcnQgIldlYlNlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKICNpbXBvcnQgIldl
YlVJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKLSNpbXBv
cnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja09iakNF
eGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbXBvcnQg
PHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAog
QGludGVyZmFjZSBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciA6IE5TT2JqZWN0IDxXZWJB
bGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4KIHsKLSAgICBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiBfY2FsbGJhY2s7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiBfY29tcGxldGlvbkhhbmRsZXI7CiB9Ci0tIChp
ZClpbml0V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
PiYmKWNhbGxiYWNrOworLSAoaWQpaW5pdFdpdGhDb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmKWNvbXBsZXRp
b25IYW5kbGVyOwogQGVuZAogCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVOb3RpZmljYXRpb25J
RCgpCkBAIC0xMzUsMTAgKzEzNSwxMCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVx
dWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVwogICAgIENh
bGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHdlYk9yaWdpbi5nZXQoKSwgbGlzdGVu
ZXIpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpy
ZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgYXV0
byBsaXN0ZW5lciA9IGFkb3B0TlMoW1tXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBhbGxv
Y10gaW5pdFdpdGhDYWxsYmFjazpXVEZNb3ZlKGNhbGxiYWNrKV0pOworICAgIGF1dG8gbGlzdGVu
ZXIgPSBhZG9wdE5TKFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRX
aXRoQ29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKTsKICAgICBy
ZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBsaXN0ZW5lci5nZXQoKSk7CiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwogfQpAQCAtMTcwLDI1ICsxNzAsMjUgQEAgdWludDY0X3QgV2ViTm90
aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uKgogCiBAaW1wbGVtZW50YXRpb24gV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIK
IAotLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjaz4mJiljYWxsYmFjaworLSAoaWQpaW5pdFdpdGhDb21wbGV0aW9uSGFuZGxlcjooQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmKWNv
bXBsZXRpb25IYW5kbGVyCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKLSAgICBfY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKKyAg
ICBfY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICBy
ZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZClhbGxvdwogewotICAgIGlmIChfY2FsbGJhY2spCi0g
ICAgICAgIF9jYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNz
aW9uOjpHcmFudGVkKTsKKyAgICBpZiAoX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBfY29t
cGxldGlvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkKTsK
IH0KIAogLSAodm9pZClkZW55CiB7Ci0gICAgaWYgKF9jYWxsYmFjaykKLSAgICAgICAgX2NhbGxi
YWNrLT5oYW5kbGVFdmVudChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7
CisgICAgaWYgKF9jb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgX2NvbXBsZXRpb25IYW5kbGVy
KE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKIH0KIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcCBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGUuY3BwCmluZGV4IDFlODY0MDJmOTdkNzEzNzE2ZWM4MjNjN2YxYWUzNmU2NGFlODBjZDIu
LmM3OGI3YmNjOWFiYTgzNzYwMmM5NjgxNDllZGE4YmRjZjg5NDFjOGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRp
b25zRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCkBAIC0xNzcsOCArMTc3LDkg
QEAgdm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lv
bihTZWN1cml0eU9yaWdpbiogb3JpZ2luLAogICAgICAgICBub3RpZmljYXRpb25EZWxlZ2F0ZSgp
LT5yZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmcpOwogfQogCi12b2lkIFdlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2lu
KiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikKK3ZvaWQgV2ViRGVz
a3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmln
aW4qLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgY29tcGxldGlvbkhhbmRsZXIoTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwogfQogCiBOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb24gV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6Y2hlY2tQZXJt
aXNzaW9uKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZS5oCmluZGV4IDM2YTYyYzA3ZTQ5OWMxMmJmM2FhMGI2NTlkMzEzZTAyOWNlZjI3
NTYuLjk2NmMzNGY4YjBhOGE4NWY1YjNjNmJhMWVlMzJiMTQ0M2M0OTZlN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKQEAgLTUzLDcgKzUzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBv
YmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjaz4mJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmKTsKICAgICB2aXJ0dWFsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oY29u
c3QgVVJMJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhkNzVhMzNjZDA5ODU5ZjQzYjU2ODQ2ZDVh
ZDdiMDBmZGMzOWJjMi4uZDMzYzFmZmJjYTM4ZjZhZGE5ZDllZTU0MGQ2ODhkZDIzNjhhMmY1ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hv
dWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1pbi1u
b24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIHRlc3Qg
bm93IHRoYXQgd2UgbG9nIGFuIGVycm9yIG1lc3NhZ2UgaW4gdGhlIEpTIGNvbnNvbGUgd2hlbiB0
cnlpbmcgdG8gY2FsbAorICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBp
biBhIG5vbi1zZWN1cmUgY29udGV4dC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCiAyMDIxLTA1LTEyICBBbWly
IE1hcmsgSnIgIDxhbWlyX21hcmtAYXBwbGUuY29tPgogCiAgICAgICAgIFtCaWdTdXIgV2sxIFJl
bGVhc2VdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13aWxsLWNoYW5n
ZS93aWxsLWNoYW5nZS1maXhwb3MtY2ItdHJhbnNmb3JtLTEuaHRtbCBpcyBhIGZsYWt5IGltYWdl
IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDAzMWIwODQ0MmNkZjA0
Nzc5YjgxNTRjOTMyYjJhZWNhNzUyYzYyZTcuLjBiMGZhZjAyZTZlNzYzYjVhOGVkODExYWQ5MzI3
ZGZiMjVmZGE3OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21p
c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcx
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3Ag
bWFudWFsIHRlc3QgdGhhdCBzaG91bGQgbm90IGhhdmUgYmVlbiBpbXBvcnRlZCBmcm9tIFdQVC4g
VGhlIHRlc3QgaGFwcGVuZWQgdG8gYmUgdXNpbmcgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uKCkKKyAgICAgICAgaW50ZXJuYWxseS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1h
bnVhbC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4t
c3ctbWFudWFsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisKIDIwMjEtMDUtMTIgIFppcmFuIFN1biAg
PHpzdW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBXcm9uZyBwb3NpdGlvbiBmb3Igb3J0aG9nb25h
bCBwb3NpdGlvbmVkIGVsZW1lbnQgd2l0aCB3cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9u
LWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBl
Y3RlZC50eHQKaW5kZXggN2IxODk1N2VhZTViY2RhMTE1NjQxYmRiYzNjMzhjZWJhZDUwMTc2OC4u
MjI2Zjc1YWM3ZjM3YjhhZDUyN2ViYzNlNTg5ZjgwOGEwNDk4MjE3ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1pbi1ub24tc2Vj
dXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90
aWZpY2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4
dApAQCAtMSwzICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVGhlIE5vdGlmaWNhdGlvbiBwZXJt
aXNzaW9uIG1heSBvbmx5IGJlIHJlcXVlc3RlZCBpbiBhIHNlY3VyZSBjb250ZXh0LgorQ09OU09M
RSBNRVNTQUdFOiBUaGUgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkgYmUgcmVxdWVz
dGVkIGluIGEgc2VjdXJlIGNvbnRleHQuCiAKIFBBU1MgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24g
aW4gaW5zZWN1cmUgY29udGV4dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MWJiODcyMTA0MWIyZGRiOTUzYzg4YzJjZWM0Mzc4YzE4NmE3
MDIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRp
b25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitU
aGlzIHRlc3RzIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uJ3MgcmV0dXJuZWQgUHJvbWlzZQorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUmVxdWVzdGluZyBwZXJtaXNzaW9uIHdpdGgg
ZGVmYXVsdCBwZXJtaXNzaW9uCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJkZWZh
dWx0IgorUEFTUyBwZXJtaXNzaW9uIGlzIGdyYW50ZWQKK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1p
c3Npb24gaXMgImdyYW50ZWQiCitSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBub24tZGVmYXVs
dCBwZXJtaXNzaW9uCitQQVNTIHBlcm1pc3Npb24gaXMgZGVuaWVkCitQQVNTIE5vdGlmaWNhdGlv
bi5wZXJtaXNzaW9uIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
b3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iYmY1MzE5ZjZjN2UzNWU3OGRlNjQzNmVkYzY0MTBkMDgwOWQxMzAyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1w
cm9taXNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c2NyaXB0IHNy
Yz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUaGlzIHRlc3RzIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uJ3MgcmV0dXJuZWQg
UHJvbWlzZSIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHN0ZXAxKCkgewor
ICAgIGRlYnVnKCJSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBkZWZhdWx0IHBlcm1pc3Npb24i
KTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwg
ImRlZmF1bHQiKTsKKyAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKChw
ZXJtaXNzaW9uKSA9PiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdncmFudGVkJykKKyAg
ICAgICAgICAgIHRlc3RQYXNzZWQoInBlcm1pc3Npb24gaXMgZ3JhbnRlZCIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJwZXJtaXNzaW9uIHNob3VsZCBiZSBncmFudGVk
LCBidXQgaXMgIiArIHBlcm1pc3Npb24pOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Ik5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImdyYW50ZWQiKTsKKyAgICAgICAgc2V0VGltZW91
dChzdGVwMiwgMCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkgeworICAgIGRlYnVn
KCJSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBub24tZGVmYXVsdCBwZXJtaXNzaW9uIik7Cisg
ICAgdGVzdFJ1bm5lci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWxmLm9yaWdpbik7
CisgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocGVybWlzc2lvbikg
PT4geworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnZGVuaWVkJykKKyAgICAgICAgICAgIHRl
c3RQYXNzZWQoInBlcm1pc3Npb24gaXMgZGVuaWVkIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoInBlcm1pc3Npb24gc2hvdWxkIGJlIGRlbmllZCwgYnV0IGlzICIgKyBw
ZXJtaXNzaW9uKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJOb3RpZmljYXRpb24u
cGVybWlzc2lvbiIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7
Cit9CisKK3N0ZXAxKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRwcy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0N2Q3ZDlmNDQ5MDVlODNlYjJiNTQz
M2MyMjgxODc3Njg2ODRjODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5o
dHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLQotRkFJTCBO
b3RpZmljYXRpb24gcmVxdWVzdHMgaW50ZXJjZXB0ZWQgYm90aCBmcm9tIHdpbmRvdyBhbmQgU1cg
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ05vdGlmaWNhdGlvbi5yZXF1
ZXN0UGVybWlzc2lvbigpLnRoZW4nKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9m
ZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDE1YTJlOTViZDM5ZDQxMWEyNTc5ZGQ0ZTA2NjE3OTFjZGU2ZDE3NWYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRwcy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMTIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9jb21tb24v
Z2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy90
ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4KLWNvbnN0IHdv
cmtlciA9ICdyZXNvdXJjZXMvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LXdvcmtlci5qcyc7Ci0KLWZ1
bmN0aW9uIHdhaXQobXMpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gc2V0VGltZW91dChy
LCBtcykpOwotfQotCi1mdW5jdGlvbiByZXNldCgpIHsKLSAgZm9yIChjb25zdCBpZnJhbWUgb2Yg
Wy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50ZXN0LWlmcmFtZScpXSkgewotICAgIGlm
cmFtZS5yZW1vdmUoKTsKLSAgfQotICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuZ2V0
UmVnaXN0cmF0aW9ucygpLnRoZW4ocmVnaXN0cmF0aW9ucyA9PiB7Ci0gICAgcmV0dXJuIFByb21p
c2UuYWxsKHJlZ2lzdHJhdGlvbnMubWFwKHIgPT4gci51bnJlZ2lzdGVyKCkpKTsKLSAgfSkudGhl
bigoKSA9PiBjYWNoZXMua2V5cygpKS50aGVuKGNhY2hlS2V5cyA9PiB7Ci0gICAgcmV0dXJuIFBy
b21pc2UuYWxsKGNhY2hlS2V5cy5tYXAoYyA9PiBjYWNoZXMuZGVsZXRlKGMpKSk7Ci0gIH0pOwot
fQotCi1hZGRfY29tcGxldGlvbl9jYWxsYmFjayhyZXNldCk7Ci0KLWZ1bmN0aW9uIHJlZ1JlYWR5
KHJlZykgewotICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gewotICAg
IGlmIChyZWcuYWN0aXZlKSB7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgICByZXR1cm47Ci0gICAg
fQotICAgIGNvbnN0IG5leHRXb3JrZXIgPSByZWcud2FpdGluZyB8fCByZWcuaW5zdGFsbGluZzsK
LQotICAgIG5leHRXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7
Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAncmVkdW5kYW50JykgewotICAgICAgICBy
ZWplY3QoRXJyb3IoYFNlcnZpY2Ugd29ya2VyIGZhaWxlZCB0byBpbnN0YWxsYCkpOwotICAgICAg
ICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAnYWN0aXZh
dGVkJykgewotICAgICAgICByZXNvbHZlKCk7Ci0gICAgICB9Ci0gICAgfSk7Ci0gIH0pOwotfQot
Ci1mdW5jdGlvbiBnZXRDb29raWVzKCkgewotICByZXR1cm4gbmV3IE1hcCgKLSAgICBkb2N1bWVu
dC5jb29raWUKLSAgICAgIC5zcGxpdCgvOy9nKQotICAgICAgLm1hcChjID0+IGMudHJpbSgpLnNw
bGl0KCc9JykubWFwKHMgPT4gcy50cmltKCkpKQotICApOwotfQotCi1mdW5jdGlvbiByZWdpc3Rl
clN3QW5kT3BlbkZyYW1lKCkgewotICByZXR1cm4gcmVzZXQoKS50aGVuKCgpID0+IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlciwge3Njb3BlOiAncmVzb3VyY2VzLyd9KSkK
LSAgICAudGhlbihyZWcgPT4gcmVnUmVhZHkocmVnKSkKLSAgICAudGhlbigoKSA9PiB3aXRoX2lm
cmFtZSgncmVzb3VyY2VzL3NpbXBsZS5odG1sJykpOwotfQotCi1mdW5jdGlvbiByYWNlQnJvYWRj
YXN0QW5kQ29va2llKGNoYW5uZWwsIGNvb2tpZSkgewotICBjb25zdCBpbml0aWFsQ29va2llID0g
Z2V0Q29va2llcygpLmdldChjb29raWUpOwotICBsZXQgZG9uZSA9IGZhbHNlOwotCi0gIHJldHVy
biBQcm9taXNlLnJhY2UoWwotICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgY29u
c3QgYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChjaGFubmVsKTsKLSAgICAgIGJjLm9ubWVzc2Fn
ZSA9ICgpID0+IHsKLSAgICAgICAgYmMuY2xvc2UoKTsKLSAgICAgICAgcmVzb2x2ZSgnYnJvYWRj
YXN0Jyk7Ci0gICAgICB9OwotICAgIH0pLAotICAgIChmdW5jdGlvbiBjaGVja0Nvb2tpZSgpIHsK
LSAgICAgIC8vIFN0b3AgcG9sbGluZyBpZiB0aGUgYnJvYWRjYXN0IGNoYW5uZWwgd29uCi0gICAg
ICBpZiAoZG9uZSA9PSB0cnVlKSByZXR1cm47Ci0gICAgICBpZiAoZ2V0Q29va2llcygpLmdldChj
b29raWUpICE9IGluaXRpYWxDb29raWUpIHJldHVybiAnY29va2llJzsKLQotICAgICAgcmV0dXJu
IHdhaXQoMjAwKS50aGVuKGNoZWNrQ29va2llKTsKLSAgICB9KCkpCi0gIF0pLnRoZW4odmFsID0+
IHsKLSAgICBkb25lID0gdHJ1ZTsKLSAgICByZXR1cm4gdmFsOwotICB9KTsKLX0KLQotcHJvbWlz
ZV90ZXN0KCgpID0+IHsKLSAgcmV0dXJuIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigp
LnRoZW4ocGVybWlzc2lvbiA9PiB7Ci0gICAgaWYgKHBlcm1pc3Npb24gIT0gImdyYW50ZWQiKSB7
Ci0gICAgICB0aHJvdyBFcnJvcignWW91IG11c3QgYWxsb3cgbm90aWZpY2F0aW9ucyBmb3IgdGhp
cyBvcmlnaW4gYmVmb3JlIHJ1bm5pbmcgdGhpcyB0ZXN0LicpOwotICAgIH0KLSAgICByZXR1cm4g
cmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpOwotICB9KS50aGVuKGlmcmFtZSA9PiB7Ci0gICAgcmV0
dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gewotICAgICAgLy8gSW4gdGhpcyB0ZXN0
LCB0aGUgc2VydmljZSB3b3JrZXIgd2lsbCBwaW5nIHRoZSAnaWNvbi1yZXF1ZXN0JyBjaGFubmVs
Ci0gICAgICAvLyBpZiBpdCBpbnRlcmNlcHRzIGEgcmVxdWVzdCBmb3IgJ25vdGlmaWNhdGlvbl9p
Y29uLnB5Jy4gSWYgdGhlIHJlcXVlc3QKLSAgICAgIC8vIHJlYWNoZXMgdGhlIHNlcnZlciBpdCBz
ZXRzIHRoZSAnbm90aWZpY2F0aW9uJyBjb29raWUgdG8gdGhlIHZhbHVlIGdpdmVuCi0gICAgICAv
LyBpbiB0aGUgVVJMLiAicmFjZUJyb2FkY2FzdEFuZENvb2tpZSIgbW9uaXRvcnMgYm90aCBhbmQg
cmV0dXJucyB3aGljaAotICAgICAgLy8gaGFwcGVucyBmaXJzdC4KLSAgICAgIGNvbnN0IHJhY2Ug
PSByYWNlQnJvYWRjYXN0QW5kQ29va2llKCdpY29uLXJlcXVlc3QnLCAnbm90aWZpY2F0aW9uJyk7
Ci0gICAgICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgaWZyYW1lLmNvbnRlbnRXaW5kb3cuTm90
aWZpY2F0aW9uKCd0ZXN0JywgewotICAgICAgICBpY29uOiBgbm90aWZpY2F0aW9uX2ljb24ucHk/
c2V0LWNvb2tpZS1ub3RpZmljYXRpb249JHtNYXRoLnJhbmRvbSgpfWAKLSAgICAgIH0pOwotICAg
ICAgbm90aWZpY2F0aW9uLmNsb3NlKCk7Ci0KLSAgICAgIHJldHVybiByYWNlLnRoZW4od2lubmVy
ID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5uZXIsICdicm9hZGNhc3QnLCAnVGhlIHNl
cnZpY2Ugd29ya2VyIGludGVyY2VwdGVkIHRoZSBmcm9tLXdpbmRvdyBub3RpZmljYXRpb24gaWNv
biByZXF1ZXN0Jyk7Ci0gICAgICB9KTsKLSAgICB9KS50aGVuKCgpID0+IHsKLSAgICAgIC8vIFNp
bWlsYXIgcmFjZSB0byBhYm92ZSwgYnV0IHRoaXMgdGltZSB0aGUgc2VydmljZSB3b3JrZXIgcmVx
dWVzdHMgdGhlCi0gICAgICAvLyBub3RpZmljYXRpb24uCi0gICAgICBjb25zdCByYWNlID0gcmFj
ZUJyb2FkY2FzdEFuZENvb2tpZSgnaWNvbi1yZXF1ZXN0JywgJ25vdGlmaWNhdGlvbicpOwotICAg
ICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goYHNob3ctbm90aWZpY2F0aW9uP3NldC1jb29r
aWUtbm90aWZpY2F0aW9uPSR7TWF0aC5yYW5kb20oKX1gKTsKLQotICAgICAgcmV0dXJuIHJhY2Uu
dGhlbih3aW5uZXIgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbm5lciwgJ2Jyb2FkY2Fz
dCcsICdUaGUgc2VydmljZSB3b3JrZXIgaW50ZXJjZXB0ZWQgdGhlIGZyb20tc2VydmljZS13b3Jr
ZXIgbm90aWZpY2F0aW9uIGljb24gcmVxdWVzdCcpOwotICAgICAgfSk7Ci0gICAgfSkKLSAgfSk7
Ci19LCBgTm90aWZpY2F0aW9uIHJlcXVlc3RzIGludGVyY2VwdGVkIGJvdGggZnJvbSB3aW5kb3cg
YW5kIFNXYCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5Pgo=
</data>
<flag name="commit-queue"
          id="449357"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428440</attachid>
            <date>2021-05-12 18:04:59 -0700</date>
            <delta_ts>2021-05-12 18:09:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225712-20210512180459.patch</filename>
            <type>text/plain</type>
            <size>33386</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkxZDgwNmQwMzQ3Yzlk
MGRlZTI2YTM3OWM1YTZiZjhlNzQzZDZhYi4uYWUyNjdmMGVkNDA1Y2I3ZGQ4ZjhlNTU1N2E3N2Vi
YjZlZTMwZGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbjoK
KyAgICAgICAgLSBodHRwczovL25vdGlmaWNhdGlvbnMuc3BlYy53aGF0d2cub3JnLyNub3RpZmlj
YXRpb24KKworICAgICAgICBCb3RoIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IHN1cHBvcnQg
dGhpcy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13
aXRoLXByb21pc2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6
CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIx
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJU
SU9OIEZBSUxFRDogYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIg
aW4gdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0ICosIFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0ICosIFJlZjxXZWJDb3JlOjpBdWRpb05vZGU+ICYmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
MjM5Yjc3YzA5ODIwYjM5YTRhNmE1MzA4ZDFmNjg5ODQ2ODA1ODFiLi41YzQ5YTU0MzY2NzllNzYy
MzQzNjY0N2MxNmFmZjlkZjM2YWI1YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIx
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZp
Y2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5v
dyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisg
ICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gTW9kZXJuaXpl
IE5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggY2ZkYzQxMDcyZmMxNTRlNmU1OTI2MDJmZDVmYzA2ZGQ0OTI1M2IwOC4u
NmM3NDY4YjBjMGFmZjc1NTA4OTk4NzlhZTRhZTczZjMxNjk1ZDcwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2Vz
IGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5tbToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBpbml0V2l0aENv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0
ZW5lciBhbGxvd10pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBk
ZW55XSk6CisKIDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBRdWV1ZSBub3RpZmljYXRpb24gcGVybWlzc2lvbiByZXF1ZXN0cyBmb3IgdGhlIHNh
bWUgb3JpZ2luIG9uIFdlYktpdCBzaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
ZWM5ZTg5ZmY0NDU4MzE3N2I1OTVlMmVkOTI3MDU3MTg1ODQ1NWQ4ZS4uM2FiYjI1NmU2NWQ2ZWI0
YjgwODg1ZTZmN2I1NTVhMTQ0Njk1NTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJl
dHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhh
bmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
ay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGUuY3BwOgorICAgICAgICAoV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVx
dWVzdFBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGUuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFF1ZXVlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHJlcXVl
c3RzIGZvciB0aGUgc2FtZSBvcmlnaW4gb24gV2ViS2l0IHNpZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggNWEw
ZDk5MTM0YzQyOTUxNWNmZDUwMmEyNGRlZGU4MTRlMjY1YmI2OS4uMTk3MjM3NjI1YzFkMWFlODUz
NjgxNjQyMTM4ZmRlMzg2ZWI4NzdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTm90
aWZpY2F0aW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay5oIgpAQCAtMTg0LDIyICsx
ODUsMjYgQEAgYXV0byBOb3RpZmljYXRpb246OnBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50
KSAtPiBQZXJtaXNzaW9uCiAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20o
ZG9jdW1lbnQucGFnZSgpKS0+Y2xpZW50KCkuY2hlY2tQZXJtaXNzaW9uKCZkb2N1bWVudCk7CiB9
CiAKLXZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2
b2lkIE5vdGlmaWNhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBS
ZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChQ
ZXJtaXNzaW9uKT4gcmVzb2x2ZVByb21pc2VBbmRDYWxsYmFjayA9IFtkb2N1bWVudCA9IG1ha2VS
ZWYoZG9jdW1lbnQpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oUGVybWlzc2lvbiBwZXJtaXNzaW9uKSBtdXRhYmxlIHsKKyAgICAgICAg
ZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRp
b24sIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBwcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKSwgcGVybWlzc2lvbl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChjYWxsYmFjaykK
KyAgICAgICAgICAgICAgICBjYWxsYmFjay0+aGFuZGxlRXZlbnQocGVybWlzc2lvbik7CisgICAg
ICAgICAgICBwcm9taXNlLT5yZXNvbHZlPElETEVudW1lcmF0aW9uPE5vdGlmaWNhdGlvblBlcm1p
c3Npb24+PihwZXJtaXNzaW9uKTsKKyAgICAgICAgfSk7CisgICAgfTsKKwogICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiByZXNvbHZlUHJvbWlzZUFuZENhbGxiYWNrKFBlcm1pc3Npb246OkRlbmll
ZCk7CiAKICAgICBpZiAoIWRvY3VtZW50LmlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgIGlm
IChjYWxsYmFjaykgewotICAgICAgICAgICAgZG9jdW1lbnQuZXZlbnRMb29wKCkucXVldWVUYXNr
KFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KFBl
cm1pc3Npb246OkRlbmllZCk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgICBy
ZXR1cm47CisgICAgICAgIGRvY3VtZW50LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAiVGhlIE5vdGlmaWNhdGlvbiBwZXJtaXNz
aW9uIG1heSBvbmx5IGJlIHJlcXVlc3RlZCBpbiBhIHNlY3VyZSBjb250ZXh0LiJfcyk7CisgICAg
ICAgIHJldHVybiByZXNvbHZlUHJvbWlzZUFuZENhbGxiYWNrKFBlcm1pc3Npb246OkRlbmllZCk7
CiAgICAgfQogCi0gICAgTm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50
KCkucmVxdWVzdFBlcm1pc3Npb24oJmRvY3VtZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAg
Tm90aWZpY2F0aW9uQ29udHJvbGxlcjo6ZnJvbShwYWdlKS0+Y2xpZW50KCkucmVxdWVzdFBlcm1p
c3Npb24oJmRvY3VtZW50LCBXVEZNb3ZlKHJlc29sdmVQcm9taXNlQW5kQ2FsbGJhY2spKTsKIH0K
IAogdm9pZCBOb3RpZmljYXRpb246OmV2ZW50TGlzdGVuZXJzRGlkQ2hhbmdlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAppbmRl
eCA0MjljZmQ0ODhhZjlhZWNlM2EwNzkzY2UwZmViZDI1NTRhN2NhMGRhLi42NTM5MTUyZTk4YzVh
YWM4ODg3NTFlOGEyYWIxOTQ3YmFiODIyMzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC00Miw2ICs0Miw3IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRG9j
dW1lbnQ7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s7CiAKQEAgLTgyLDcg
KzgzLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluYWxpemUoKTsKIAog
ICAgIHN0YXRpYyBQZXJtaXNzaW9uIHBlcm1pc3Npb24oRG9jdW1lbnQmKTsKLSAgICBzdGF0aWMg
dm9pZCByZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJt
aXNzaW9uQ2FsbGJhY2s+JiYpOworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERv
Y3VtZW50JiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJik7CiAKICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQWN0aXZlRE9NT2JqZWN0Ojpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbAppbmRleCBlMzVmODc4OGVjMWUx
YTg3NDEzYjAyNmRmYzlmNTIzOGY1NWVmNDU1Li5kMDMxYmI3M2NkYTA1MDkyMTA1ZDYwNGRjNjA4
Zjg5ZjZjODM0ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbApAQCAtNDAsNyArNDAsNyBAQAogICAgIFtDYWxsV2l0
aD1Eb2N1bWVudF0gY29uc3RydWN0b3IoRE9NU3RyaW5nIHRpdGxlLCBvcHRpb25hbCBOb3RpZmlj
YXRpb25PcHRpb25zIG9wdGlvbnMpOwogCiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMg
cmVhZG9ubHkgYXR0cmlidXRlIE5vdGlmaWNhdGlvblBlcm1pc3Npb24gcGVybWlzc2lvbjsKLSAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyB1bmRlZmluZWQgcmVxdWVzdFBlcm1pc3Npb24o
b3B0aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPyBkZXByZWNhdGVkQ2FsbGJh
Y2spOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZTxOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uPi4KKyAgICBbQ2FsbFdpdGg9RG9jdW1lbnRdIHN0YXRpYyBQcm9taXNlPE5vdGlm
aWNhdGlvblBlcm1pc3Npb24+IHJlcXVlc3RQZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjaz8gZGVwcmVjYXRlZENhbGxiYWNrKTsKIAogICAgIC8vIHN0YXRp
YyByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBtYXhBY3Rpb25zOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
Q2xpZW50LmgKaW5kZXggY2Y3NWNkN2Y4ZGE1ZjNjYjA4MjBmNTZhMGI0ZWIxNTU3ZWQ3MDA4OC4u
MDVmMjZmZjZlMTc2OTIxZmU5YjkzNTc5NjdjMGJjYzY0YTU2ZmI3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGll
bnQuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAgICAgLy8gUmVxdWVzdHMgdXNlciBwZXJt
aXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZyb20gYSBwYXJ0aWN1bGFyCiAg
ICAgLy8gc2NyaXB0IGNvbnRleHQuIFRoZSBjYWxsYmFjayBwYXJhbWV0ZXIgc2hvdWxkIGJlIHJ1
biB3aGVuIHRoZSB1c2VyIGhhcwogICAgIC8vIG1hZGUgYSBkZWNpc2lvbi4KLSAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFJlZlB0cjxO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJikgPSAwOwogCiAgICAg
Ly8gQ2hlY2tzIHRoZSBjdXJyZW50IGxldmVsIG9mIHBlcm1pc3Npb24uCiAgICAgdmlydHVhbCBQ
ZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5j
cHAKaW5kZXggNGM5OWYyOTMxMDUyZmEyNDBlM2JkY2JkZDg3NzEwYWI3MWVlNjY4Mi4uMjY0YjQy
NDQ3NTkzYjY5OGRiOGM3YTU1Yjg4ZjFjODdkODY2NmE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCkBAIC01OSwyOSArNTks
MzUgQEAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoV2ViUGEKIH0KICNlbmRpZgogCitOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXIoKQoreworI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorICAgIGF1dG8gcmVxdWVzdHNQ
ZXJPcmlnaW4gPSBzdGQ6OmV4Y2hhbmdlKG1fcmVxdWVzdHNQZXJPcmlnaW4sIHsgfSk7CisgICAg
Zm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlcnMgOiByZXF1ZXN0c1Blck9yaWdpbi52YWx1ZXMo
KSkgeworICAgICAgICBmb3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVyIDogY29tcGxldGlvbkhh
bmRsZXJzKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uOjpEZW5pZWQpOworICAgIH0KKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCi12b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6
c3RhcnRSZXF1ZXN0KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIFJl
ZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIE5v
dGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBhdXRvIHBlcm1pc3Npb24gPSBwZXJtaXNzaW9uTGV2ZWwoc2VjdXJpdHlPcmlnaW4pOwot
ICAgIGlmIChwZXJtaXNzaW9uICE9IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVm
YXVsdCkgewotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAgICBjYWxsYmFjay0+aGFu
ZGxlRXZlbnQocGVybWlzc2lvbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKHBl
cm1pc3Npb24gIT0gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZWZhdWx0KQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIocGVybWlzc2lvbik7CiAKLSAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fcmVxdWVzdHNQZXJPcmlnaW4uYWRkKHNlY3VyaXR5T3JpZ2luLCBWZWN0b3I8
UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4+IHsgfSk7Ci0g
ICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShjYWxsYmFjaykpOwor
ICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZXF1ZXN0c1Blck9yaWdpbi5hZGQoc2VjdXJpdHlPcmln
aW4sIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVy
bWlzc2lvbik+PiB7IH0pOworICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWN1cml0
eU9yaWdpbi50b1N0cmluZygpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgc2VjdXJpdHlPcmlnaW5dKGJvb2wgYWxs
b3dlZCkgbXV0YWJsZSB7CisgICAgbV9wYWdlLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oc2VjdXJpdHlPcmln
aW4udG9TdHJpbmcoKSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlY3VyaXR5T3Jp
Z2luXShib29sIGFsbG93ZWQpIG11dGFibGUgewogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPmRpZFVwZGF0ZU5vdGlm
aWNhdGlvbkRlY2lzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCksIGFsbG93ZWQpOwogCi0g
ICAgICAgIGF1dG8gY2FsbGJhY2tzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNlY3VyaXR5
T3JpZ2luKTsKLSAgICAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGNhbGxiYWNrcykgewotICAg
ICAgICAgICAgaWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVF
dmVudChhbGxvd2VkID8gTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpHcmFudGVkIDog
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwotICAgICAgICB9CisgICAg
ICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXJzID0gbV9yZXF1ZXN0c1Blck9yaWdpbi50YWtlKHNl
Y3VyaXR5T3JpZ2luKTsKKyAgICAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IGNv
bXBsZXRpb25IYW5kbGVycykKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGFsbG93ZWQg
PyBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CiAgICAgfSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggMTIw
NzFiMWM0NWFhZjg4NGE2NjRkMTc3NTA0YTc4NzIxMGE4OTA3My4uMzZmYmI1YTg4MTJhZmMwYTdj
ODAxNjczNjc2NDRlOTIwODhmMGU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKQEAgLTQ2LDkgKzQ2LDEwIEBAIGNsYXNzIFdlYlBh
Z2U7CiBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIgOiBwdWJsaWMg
UmVmQ291bnRlZDxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUmVmPE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcj4g
Y3JlYXRlKFdlYlBhZ2UqKTsKKyAgICB+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKCk7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLSAgICB2b2lkIHN0YXJ0UmVxdWVz
dChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBSZWZQdHI8V2ViQ29yZTo6Tm90
aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKTsKKyAgICB2b2lkIHN0YXJ0UmVxdWVzdChj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpOwogI2VuZGlmCiAg
ICAgCiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIHBlcm1pc3Np
b25MZXZlbChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKTsKQEAgLTYxLDcgKzYy
LDcgQEAgcHJpdmF0ZToKICAgICBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIo
V2ViUGFnZSopOwogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi0gICAgSGFzaE1hcDxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrPj4+IG1fcmVxdWVzdHNQZXJPcmlnaW47CisgICAgSGFzaE1h
cDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEsIFZlY3RvcjxDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+Pj4gbV9yZXF1ZXN0
c1Blck9yaWdpbjsKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQuY3BwCmluZGV4IGUyZjY3OGY1MTQwOGNkYjk5Mjk5Yzc3YWMxMzJh
YTkzZmRkM2QwY2QuLjBmZjdhODY0N2I1Y2FjNjljNWM1OWM5MjBlMzYyNWEzMTNlMTljYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC03MSwxNSArNzEsMTIgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQo
KQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVx
dWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPE5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZp
Y2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0byogc2VjdXJpdHlPcmlnaW4g
PSBjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpOwotICAgIGlmICghc2VjdXJpdHlPcmlnaW4pIHsK
LSAgICAgICAgaWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50
KE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLSAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
cigpLT5zdGFydFJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgIGlmICghc2VjdXJpdHlPcmlnaW4pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CisgICAgbV9w
YWdlLT5ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0
KHNlY3VyaXR5T3JpZ2luLT5kYXRhKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0K
IAogTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6
Y2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggNDM5M2FlZDIxMTJiMjNlZjhjM2IwNjkzMTI1NGMz
MDRjYzgwMWRlMi4uNTVlNGIxNTNiYmEzZWMyOWM5NDZmZDRmY2EyNmEyMGFlOTAwMGM1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvTm90aWZpY2F0aW9uQ2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNs
YXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKQEAgLTUxLDcgKzUwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95
ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6Ok5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYm
KSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24g
Y2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlk
ZTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5o
CmluZGV4IDZhNWRlYWZlOTA0ZDUzMzNhYjA5Y2VlNDUxMWFmOGY0ZjY5YTgyZGIuLmY4ZWZiNGYx
YmNmZGJjOGE4OGYxYjQxOTNlN2I4NGM3MWY1MDhmNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhck5vdGlmaWNh
dGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIHZv
aWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIG92
ZXJyaWRlOwogICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJy
aWRlOwotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+
JiYpIG92ZXJyaWRlOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBXZWJOb3RpZmljYXRpb25Qb2xp
Y3lMaXN0ZW5lciAqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBjZDI4N2U3
YjQ1MTUyNDc1ODU5MjczZDJkNjBkYjY5NjI4ZjhmYzNiLi5jYzBjYTdlM2M3YzZiOGNlMDI4ZGM1
ZGE5NmY3NjFjMWIwY2I5MjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCkBAIC0z
MywxOCArMzMsMTggQEAKICNpbXBvcnQgIldlYlNlY3VyaXR5T3JpZ2luSW50ZXJuYWwuaCIKICNp
bXBvcnQgIldlYlVJRGVsZWdhdGVQcml2YXRlLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwu
aCIKLSNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbXBvcnQgPHd0Zi9C
bG9ja09iakNFeGNlcHRpb25zLmg+CisjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKIAogQGludGVyZmFjZSBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciA6IE5TT2Jq
ZWN0IDxXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4KIHsKLSAgICBSZWZQdHI8Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrPiBfY2FsbGJhY2s7CisgICAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiBfY29tcGxldGlvbkhhbmRsZXI7
CiB9Ci0tIChpZClpbml0V2l0aENhbGxiYWNrOihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lv
bkNhbGxiYWNrPiYmKWNhbGxiYWNrOworLSAoaWQpaW5pdFdpdGhDb21wbGV0aW9uSGFuZGxlcjoo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYm
KWNvbXBsZXRpb25IYW5kbGVyOwogQGVuZAogCiBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVOb3Rp
ZmljYXRpb25JRCgpCkBAIC0xMzUsMTAgKzEzNSwxMCBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNs
aWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
VwogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHdlYk9yaWdpbi5nZXQo
KSwgbGlzdGVuZXIpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPE5vdGlmaWNh
dGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViTm90aWZpY2F0aW9u
Q2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
Ci0gICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMoW1tXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0
ZW5lciBhbGxvY10gaW5pdFdpdGhDYWxsYmFjazpXVEZNb3ZlKGNhbGxiYWNrKV0pOworICAgIGF1
dG8gbGlzdGVuZXIgPSBhZG9wdE5TKFtbV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgYWxs
b2NdIGluaXRXaXRoQ29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KTsKICAgICByZXF1ZXN0UGVybWlzc2lvbihjb250ZXh0LCBsaXN0ZW5lci5nZXQoKSk7CiAgICAg
RU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogfQpAQCAtMTcwLDI1ICsxNzAsMjUgQEAgdWludDY0
X3QgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKgogCiBAaW1wbGVtZW50YXRpb24gV2ViTm90aWZpY2F0aW9uUG9saWN5
TGlzdGVuZXIKIAotLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooUmVmUHRyPE5vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjaz4mJiljYWxsYmFjaworLSAoaWQpaW5pdFdpdGhDb21wbGV0aW9uSGFu
ZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b24pPiYmKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKTsKKyAgICBfY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KTsKICAgICByZXR1cm4gc2VsZjsKIH0KIAogLSAodm9pZClhbGxvdwogewotICAgIGlmIChfY2Fs
bGJhY2spCi0gICAgICAgIF9jYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uOjpHcmFudGVkKTsKKyAgICBpZiAoX2NvbXBsZXRpb25IYW5kbGVyKQorICAg
ICAgICBfY29tcGxldGlvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpH
cmFudGVkKTsKIH0KIAogLSAodm9pZClkZW55CiB7Ci0gICAgaWYgKF9jYWxsYmFjaykKLSAgICAg
ICAgX2NhbGxiYWNrLT5oYW5kbGVFdmVudChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246
OkRlbmllZCk7CisgICAgaWYgKF9jb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgX2NvbXBsZXRp
b25IYW5kbGVyKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKIH0KIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGUuY3BwCmluZGV4IDFlODY0MDJmOTdkNzEzNzE2ZWM4MjNjN2YxYWUzNmU2
NGFlODBjZDIuLmM3OGI3YmNjOWFiYTgzNzYwMmM5NjgxNDllZGE4YmRjZjg5NDFjOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwCkBAIC0xNzcs
OCArMTc3LDkgQEAgdm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0
UGVybWlzc2lvbihTZWN1cml0eU9yaWdpbiogb3JpZ2luLAogICAgICAgICBub3RpZmljYXRpb25E
ZWxlZ2F0ZSgpLT5yZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihvcmcpOwogfQogCi12b2lk
IFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3Vy
aXR5T3JpZ2luKiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikKK3Zv
aWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2Vj
dXJpdHlPcmlnaW4qLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgY29tcGxldGlvbkhhbmRs
ZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwogfQogCiBOb3RpZmlj
YXRpb25DbGllbnQ6OlBlcm1pc3Npb24gV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6
Y2hlY2tQZXJtaXNzaW9uKGNvbnN0IFVSTCYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5v
dGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCmluZGV4IDM2YTYyYzA3ZTQ5OWMxMmJmM2FhMGI2NTlkMzEz
ZTAyOWNlZjI3NTYuLjk2NmMzNGY4YjBhOGE4NWY1YjNjNmJhMWVlMzJiMTQ0M2M0OTZlN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0
b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKQEAgLTUzLDcg
KzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0
cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uKiBvYmplY3QpOwogICAgIHZpcnR1YWwgdm9pZCBu
b3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgUmVmUHRyPFdlYkNvcmU6Ok5v
dGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CisgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmKTsKICAgICB2
aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1p
c3Npb24oY29uc3QgVVJMJik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODhkNzVhMzNjZDA5ODU5ZjQz
YjU2ODQ2ZDVhZDdiMDBmZGMzOWJjMi4uZDMzYzFmZmJjYTM4ZjZhZGE5ZDllZTU0MGQ2ODhkZDIz
NjhhMmY1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNh
dGlvbi1pbi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2Vs
aW5lIHRlc3Qgbm93IHRoYXQgd2UgbG9nIGFuIGVycm9yIG1lc3NhZ2UgaW4gdGhlIEpTIGNvbnNv
bGUgd2hlbiB0cnlpbmcgdG8gY2FsbAorICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1p
c3Npb24oKSBpbiBhIG5vbi1zZWN1cmUgY29udGV4dC4KKworICAgICAgICAqIGh0dHAvdGVzdHMv
bm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCiAyMDIxLTA1
LTEyICBBbWlyIE1hcmsgSnIgIDxhbWlyX21hcmtAYXBwbGUuY29tPgogCiAgICAgICAgIFtCaWdT
dXIgV2sxIFJlbGVhc2VdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy13
aWxsLWNoYW5nZS93aWxsLWNoYW5nZS1maXhwb3MtY2ItdHJhbnNmb3JtLTEuaHRtbCBpcyBhIGZs
YWt5IGltYWdlIGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDAzMWIw
ODQ0MmNkZjA0Nzc5YjgxNTRjOTMyYjJhZWNhNzUyYzYyZTcuLjBiMGZhZjAyZTZlNzYzYjVhOGVk
ODExYWQ5MzI3ZGZiMjVmZGE3OGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVy
biBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIERyb3AgbWFudWFsIHRlc3QgdGhhdCBzaG91bGQgbm90IGhhdmUgYmVlbiBpbXBvcnRlZCBm
cm9tIFdQVC4gVGhlIHRlc3QgaGFwcGVuZWQgdG8gYmUgdXNpbmcgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkKKyAgICAgICAgaW50ZXJuYWxseS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0
aGluLXN3LW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWw6IFJlbW92ZWQuCisKIDIwMjEtMDUtMTIgIFpp
cmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KIAogICAgICAgICBXcm9uZyBwb3NpdGlvbiBmb3Ig
b3J0aG9nb25hbCBwb3NpdGlvbmVkIGVsZW1lbnQgd2l0aCB3cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LXJsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90
aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29u
dGV4dC1leHBlY3RlZC50eHQKaW5kZXggN2IxODk1N2VhZTViY2RhMTE1NjQxYmRiYzNjMzhjZWJh
ZDUwMTc2OC4uMjI2Zjc1YWM3ZjM3YjhhZDUyN2ViYzNlNTg5ZjgwOGEwNDk4MjE3ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1p
bi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogVGhlIE5vdGlmaWNh
dGlvbiBwZXJtaXNzaW9uIG1heSBvbmx5IGJlIHJlcXVlc3RlZCBpbiBhIHNlY3VyZSBjb250ZXh0
LgorQ09OU09MRSBNRVNTQUdFOiBUaGUgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkg
YmUgcmVxdWVzdGVkIGluIGEgc2VjdXJlIGNvbnRleHQuCiAKIFBBU1MgTm90aWZpY2F0aW9uIHBl
cm1pc3Npb24gaW4gaW5zZWN1cmUgY29udGV4dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9t
aXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MWJiODcyMTA0MWIyZGRiOTUzYzg4YzJjZWM0
Mzc4YzE4NmE3MDIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
b3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE2IEBACitUaGlzIHRlc3RzIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uJ3MgcmV0dXJuZWQgUHJv
bWlzZQorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUmVxdWVzdGluZyBwZXJtaXNz
aW9uIHdpdGggZGVmYXVsdCBwZXJtaXNzaW9uCitQQVNTIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9u
IGlzICJkZWZhdWx0IgorUEFTUyBwZXJtaXNzaW9uIGlzIGdyYW50ZWQKK1BBU1MgTm90aWZpY2F0
aW9uLnBlcm1pc3Npb24gaXMgImdyYW50ZWQiCitSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBu
b24tZGVmYXVsdCBwZXJtaXNzaW9uCitQQVNTIHBlcm1pc3Npb24gaXMgZGVuaWVkCitQQVNTIE5v
dGlmaWNhdGlvbi5wZXJtaXNzaW9uIGlzICJkZW5pZWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYmY1MzE5ZjZjN2UzNWU3OGRlNjQzNmVkYzY0MTBkMDgwOWQxMzAyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVl
c3Qtd2l0aC1wcm9taXNlLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIE5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uJ3Mg
cmV0dXJuZWQgUHJvbWlzZSIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHN0
ZXAxKCkgeworICAgIGRlYnVnKCJSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBkZWZhdWx0IHBl
cm1pc3Npb24iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJt
aXNzaW9uIiwgImRlZmF1bHQiKTsKKyAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24o
KS50aGVuKChwZXJtaXNzaW9uKSA9PiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdncmFu
dGVkJykKKyAgICAgICAgICAgIHRlc3RQYXNzZWQoInBlcm1pc3Npb24gaXMgZ3JhbnRlZCIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJwZXJtaXNzaW9uIHNob3VsZCBi
ZSBncmFudGVkLCBidXQgaXMgIiArIHBlcm1pc3Npb24pOworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImdyYW50ZWQiKTsKKyAgICAgICAg
c2V0VGltZW91dChzdGVwMiwgMCk7CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHN0ZXAyKCkgewor
ICAgIGRlYnVnKCJSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBub24tZGVmYXVsdCBwZXJtaXNz
aW9uIik7CisgICAgdGVzdFJ1bm5lci5kZW55V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWxm
Lm9yaWdpbik7CisgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbigocGVy
bWlzc2lvbikgPT4geworICAgICAgICBpZiAocGVybWlzc2lvbiA9PSAnZGVuaWVkJykKKyAgICAg
ICAgICAgIHRlc3RQYXNzZWQoInBlcm1pc3Npb24gaXMgZGVuaWVkIik7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoInBlcm1pc3Npb24gc2hvdWxkIGJlIGRlbmllZCwgYnV0
IGlzICIgKyBwZXJtaXNzaW9uKTsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJOb3Rp
ZmljYXRpb24ucGVybWlzc2lvbiIsICJkZW5pZWQiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgfSk7Cit9CisKK3N0ZXAxKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRwcy1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0N2Q3ZDlmNDQ5MDVl
ODNlYjJiNTQzM2MyMjgxODc3Njg2ODRjODYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3
LW1hbnVhbC5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LQotRkFJTCBOb3RpZmljYXRpb24gcmVxdWVzdHMgaW50ZXJjZXB0ZWQgYm90aCBmcm9tIHdpbmRv
dyBhbmQgU1cgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ05vdGlmaWNh
dGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4nKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1YTJlOTViZDM5ZDQxMWEyNTc5ZGQ0ZTA2NjE3OTFj
ZGU2ZDE3NWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRwcy5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy90ZXN0LWhlbHBlcnMuc3ViLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4K
LWNvbnN0IHdvcmtlciA9ICdyZXNvdXJjZXMvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LXdvcmtlci5q
cyc7Ci0KLWZ1bmN0aW9uIHdhaXQobXMpIHsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gc2V0
VGltZW91dChyLCBtcykpOwotfQotCi1mdW5jdGlvbiByZXNldCgpIHsKLSAgZm9yIChjb25zdCBp
ZnJhbWUgb2YgWy4uLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50ZXN0LWlmcmFtZScpXSkg
ewotICAgIGlmcmFtZS5yZW1vdmUoKTsKLSAgfQotICByZXR1cm4gbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuZ2V0UmVnaXN0cmF0aW9ucygpLnRoZW4ocmVnaXN0cmF0aW9ucyA9PiB7Ci0gICAgcmV0
dXJuIFByb21pc2UuYWxsKHJlZ2lzdHJhdGlvbnMubWFwKHIgPT4gci51bnJlZ2lzdGVyKCkpKTsK
LSAgfSkudGhlbigoKSA9PiBjYWNoZXMua2V5cygpKS50aGVuKGNhY2hlS2V5cyA9PiB7Ci0gICAg
cmV0dXJuIFByb21pc2UuYWxsKGNhY2hlS2V5cy5tYXAoYyA9PiBjYWNoZXMuZGVsZXRlKGMpKSk7
Ci0gIH0pOwotfQotCi1hZGRfY29tcGxldGlvbl9jYWxsYmFjayhyZXNldCk7Ci0KLWZ1bmN0aW9u
IHJlZ1JlYWR5KHJlZykgewotICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkg
PT4gewotICAgIGlmIChyZWcuYWN0aXZlKSB7Ci0gICAgICByZXNvbHZlKCk7Ci0gICAgICByZXR1
cm47Ci0gICAgfQotICAgIGNvbnN0IG5leHRXb3JrZXIgPSByZWcud2FpdGluZyB8fCByZWcuaW5z
dGFsbGluZzsKLQotICAgIG5leHRXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2Un
LCAoKSA9PiB7Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9PSAncmVkdW5kYW50Jykgewot
ICAgICAgICByZWplY3QoRXJyb3IoYFNlcnZpY2Ugd29ya2VyIGZhaWxlZCB0byBpbnN0YWxsYCkp
OwotICAgICAgICByZXR1cm47Ci0gICAgICB9Ci0gICAgICBpZiAobmV4dFdvcmtlci5zdGF0ZSA9
PSAnYWN0aXZhdGVkJykgewotICAgICAgICByZXNvbHZlKCk7Ci0gICAgICB9Ci0gICAgfSk7Ci0g
IH0pOwotfQotCi1mdW5jdGlvbiBnZXRDb29raWVzKCkgewotICByZXR1cm4gbmV3IE1hcCgKLSAg
ICBkb2N1bWVudC5jb29raWUKLSAgICAgIC5zcGxpdCgvOy9nKQotICAgICAgLm1hcChjID0+IGMu
dHJpbSgpLnNwbGl0KCc9JykubWFwKHMgPT4gcy50cmltKCkpKQotICApOwotfQotCi1mdW5jdGlv
biByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCkgewotICByZXR1cm4gcmVzZXQoKS50aGVuKCgpID0+
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKHdvcmtlciwge3Njb3BlOiAncmVzb3Vy
Y2VzLyd9KSkKLSAgICAudGhlbihyZWcgPT4gcmVnUmVhZHkocmVnKSkKLSAgICAudGhlbigoKSA9
PiB3aXRoX2lmcmFtZSgncmVzb3VyY2VzL3NpbXBsZS5odG1sJykpOwotfQotCi1mdW5jdGlvbiBy
YWNlQnJvYWRjYXN0QW5kQ29va2llKGNoYW5uZWwsIGNvb2tpZSkgewotICBjb25zdCBpbml0aWFs
Q29va2llID0gZ2V0Q29va2llcygpLmdldChjb29raWUpOwotICBsZXQgZG9uZSA9IGZhbHNlOwot
Ci0gIHJldHVybiBQcm9taXNlLnJhY2UoWwotICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewot
ICAgICAgY29uc3QgYmMgPSBuZXcgQnJvYWRjYXN0Q2hhbm5lbChjaGFubmVsKTsKLSAgICAgIGJj
Lm9ubWVzc2FnZSA9ICgpID0+IHsKLSAgICAgICAgYmMuY2xvc2UoKTsKLSAgICAgICAgcmVzb2x2
ZSgnYnJvYWRjYXN0Jyk7Ci0gICAgICB9OwotICAgIH0pLAotICAgIChmdW5jdGlvbiBjaGVja0Nv
b2tpZSgpIHsKLSAgICAgIC8vIFN0b3AgcG9sbGluZyBpZiB0aGUgYnJvYWRjYXN0IGNoYW5uZWwg
d29uCi0gICAgICBpZiAoZG9uZSA9PSB0cnVlKSByZXR1cm47Ci0gICAgICBpZiAoZ2V0Q29va2ll
cygpLmdldChjb29raWUpICE9IGluaXRpYWxDb29raWUpIHJldHVybiAnY29va2llJzsKLQotICAg
ICAgcmV0dXJuIHdhaXQoMjAwKS50aGVuKGNoZWNrQ29va2llKTsKLSAgICB9KCkpCi0gIF0pLnRo
ZW4odmFsID0+IHsKLSAgICBkb25lID0gdHJ1ZTsKLSAgICByZXR1cm4gdmFsOwotICB9KTsKLX0K
LQotcHJvbWlzZV90ZXN0KCgpID0+IHsKLSAgcmV0dXJuIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVy
bWlzc2lvbigpLnRoZW4ocGVybWlzc2lvbiA9PiB7Ci0gICAgaWYgKHBlcm1pc3Npb24gIT0gImdy
YW50ZWQiKSB7Ci0gICAgICB0aHJvdyBFcnJvcignWW91IG11c3QgYWxsb3cgbm90aWZpY2F0aW9u
cyBmb3IgdGhpcyBvcmlnaW4gYmVmb3JlIHJ1bm5pbmcgdGhpcyB0ZXN0LicpOwotICAgIH0KLSAg
ICByZXR1cm4gcmVnaXN0ZXJTd0FuZE9wZW5GcmFtZSgpOwotICB9KS50aGVuKGlmcmFtZSA9PiB7
Ci0gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gewotICAgICAgLy8gSW4g
dGhpcyB0ZXN0LCB0aGUgc2VydmljZSB3b3JrZXIgd2lsbCBwaW5nIHRoZSAnaWNvbi1yZXF1ZXN0
JyBjaGFubmVsCi0gICAgICAvLyBpZiBpdCBpbnRlcmNlcHRzIGEgcmVxdWVzdCBmb3IgJ25vdGlm
aWNhdGlvbl9pY29uLnB5Jy4gSWYgdGhlIHJlcXVlc3QKLSAgICAgIC8vIHJlYWNoZXMgdGhlIHNl
cnZlciBpdCBzZXRzIHRoZSAnbm90aWZpY2F0aW9uJyBjb29raWUgdG8gdGhlIHZhbHVlIGdpdmVu
Ci0gICAgICAvLyBpbiB0aGUgVVJMLiAicmFjZUJyb2FkY2FzdEFuZENvb2tpZSIgbW9uaXRvcnMg
Ym90aCBhbmQgcmV0dXJucyB3aGljaAotICAgICAgLy8gaGFwcGVucyBmaXJzdC4KLSAgICAgIGNv
bnN0IHJhY2UgPSByYWNlQnJvYWRjYXN0QW5kQ29va2llKCdpY29uLXJlcXVlc3QnLCAnbm90aWZp
Y2F0aW9uJyk7Ci0gICAgICBjb25zdCBub3RpZmljYXRpb24gPSBuZXcgaWZyYW1lLmNvbnRlbnRX
aW5kb3cuTm90aWZpY2F0aW9uKCd0ZXN0JywgewotICAgICAgICBpY29uOiBgbm90aWZpY2F0aW9u
X2ljb24ucHk/c2V0LWNvb2tpZS1ub3RpZmljYXRpb249JHtNYXRoLnJhbmRvbSgpfWAKLSAgICAg
IH0pOwotICAgICAgbm90aWZpY2F0aW9uLmNsb3NlKCk7Ci0KLSAgICAgIHJldHVybiByYWNlLnRo
ZW4od2lubmVyID0+IHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh3aW5uZXIsICdicm9hZGNhc3Qn
LCAnVGhlIHNlcnZpY2Ugd29ya2VyIGludGVyY2VwdGVkIHRoZSBmcm9tLXdpbmRvdyBub3RpZmlj
YXRpb24gaWNvbiByZXF1ZXN0Jyk7Ci0gICAgICB9KTsKLSAgICB9KS50aGVuKCgpID0+IHsKLSAg
ICAgIC8vIFNpbWlsYXIgcmFjZSB0byBhYm92ZSwgYnV0IHRoaXMgdGltZSB0aGUgc2VydmljZSB3
b3JrZXIgcmVxdWVzdHMgdGhlCi0gICAgICAvLyBub3RpZmljYXRpb24uCi0gICAgICBjb25zdCBy
YWNlID0gcmFjZUJyb2FkY2FzdEFuZENvb2tpZSgnaWNvbi1yZXF1ZXN0JywgJ25vdGlmaWNhdGlv
bicpOwotICAgICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goYHNob3ctbm90aWZpY2F0aW9u
P3NldC1jb29raWUtbm90aWZpY2F0aW9uPSR7TWF0aC5yYW5kb20oKX1gKTsKLQotICAgICAgcmV0
dXJuIHJhY2UudGhlbih3aW5uZXIgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbm5lciwg
J2Jyb2FkY2FzdCcsICdUaGUgc2VydmljZSB3b3JrZXIgaW50ZXJjZXB0ZWQgdGhlIGZyb20tc2Vy
dmljZS13b3JrZXIgbm90aWZpY2F0aW9uIGljb24gcmVxdWVzdCcpOwotICAgICAgfSk7Ci0gICAg
fSkKLSAgfSk7Ci19LCBgTm90aWZpY2F0aW9uIHJlcXVlc3RzIGludGVyY2VwdGVkIGJvdGggZnJv
bSB3aW5kb3cgYW5kIFNXYCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428443</attachid>
            <date>2021-05-12 18:09:28 -0700</date>
            <delta_ts>2021-05-12 21:17:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225712-20210512180927.patch</filename>
            <type>text/plain</type>
            <size>33523</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkxZDgwNmQwMzQ3Yzlk
MGRlZTI2YTM3OWM1YTZiZjhlNzQzZDZhYi4uYWUyNjdmMGVkNDA1Y2I3ZGQ4ZjhlNTU1N2E3N2Vi
YjZlZTMwZGY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbjoK
KyAgICAgICAgLSBodHRwczovL25vdGlmaWNhdGlvbnMuc3BlYy53aGF0d2cub3JnLyNub3RpZmlj
YXRpb24KKworICAgICAgICBCb3RoIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IHN1cHBvcnQg
dGhpcy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13
aXRoLXByb21pc2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVlc3RQZXJt
aXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6
CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAg
ICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIx
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJU
SU9OIEZBSUxFRDogYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIg
aW4gdG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0ICosIFdlYkNvcmU6OkpTRE9N
R2xvYmFsT2JqZWN0ICosIFJlZjxXZWJDb3JlOjpBdWRpb05vZGU+ICYmKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBj
MjM5Yjc3YzA5ODIwYjM5YTRhNmE1MzA4ZDFmNjg5ODQ2ODA1ODFiLi41YzQ5YTU0MzY2NzllNzYy
MzQzNjY0N2MxNmFmZjlkZjM2YWI1YzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIx
LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZp
Y2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5v
dyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisg
ICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI6On5Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gTW9kZXJuaXpl
IE5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggY2ZkYzQxMDcyZmMxNTRlNmU1OTI2MDJmZDVmYzA2ZGQ0OTI1M2IwOC4u
NmM3NDY4YjBjMGFmZjc1NTA4OTk4NzlhZTRhZTczZjMxNjk1ZDcwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNz
aW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2Vz
IGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNh
dGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5tbToKKyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBpbml0V2l0aENv
bXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0
ZW5lciBhbGxvd10pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBk
ZW55XSk6CisKIDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBRdWV1ZSBub3RpZmljYXRpb24gcGVybWlzc2lvbiByZXF1ZXN0cyBmb3IgdGhlIHNh
bWUgb3JpZ2luIG9uIFdlYktpdCBzaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
ZWM5ZTg5ZmY0NDU4MzE3N2I1OTVlMmVkOTI3MDU3MTg1ODQ1NWQ4ZS4uM2FiYjI1NmU2NWQ2ZWI0
YjgwODg1ZTZmN2I1NTVhMTQ0Njk1NTNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJl
dHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhh
bmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
ay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGUuY3BwOgorICAgICAgICAoV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVx
dWVzdFBlcm1pc3Npb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGUuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFF1ZXVlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHJlcXVl
c3RzIGZvciB0aGUgc2FtZSBvcmlnaW4gb24gV2ViS2l0IHNpZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggNWEw
ZDk5MTM0YzQyOTUxNWNmZDUwMmEyNGRlZGU4MTRlMjY1YmI2OS4uYzcyNjUxZDY4NDE3NDRlNjNl
NmQxNDIxMmIxOGYzMjZlYTRmNzAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM4LDExICszOCwxMyBAQAog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVu
dE5hbWVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJO
b3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
V2luZG93RXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9y
LmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg0LDIyICsxODYs
MjYgQEAgYXV0byBOb3RpZmljYXRpb246OnBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50KSAt
PiBQZXJtaXNzaW9uCiAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20oZG9j
dW1lbnQucGFnZSgpKS0+Y2xpZW50KCkuY2hlY2tQZXJtaXNzaW9uKCZkb2N1bWVudCk7CiB9CiAK
LXZvaWQgTm90aWZpY2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQs
IFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lk
IE5vdGlmaWNhdGlvbjo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQ
dHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CisgICAgYXV0byByZXNvbHZlUHJvbWlzZUFuZENhbGxi
YWNrID0gW2RvY3VtZW50ID0gbWFrZVJlZihkb2N1bWVudCksIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayksIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJtaXNzaW9uIHBlcm1pc3Np
b24pIG11dGFibGUgeworICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRh
c2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayks
IHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCBwZXJtaXNzaW9uXSgpIG11dGFibGUgeworICAg
ICAgICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVF
dmVudChwZXJtaXNzaW9uKTsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMRW51bWVy
YXRpb248Tm90aWZpY2F0aW9uUGVybWlzc2lvbj4+KHBlcm1pc3Npb24pOworICAgICAgICB9KTsK
KyAgICB9OworCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKICAgICBpZiAoIXBh
Z2UpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlQW5kQ2Fs
bGJhY2soUGVybWlzc2lvbjo6RGVuaWVkKTsKIAogICAgIGlmICghZG9jdW1lbnQuaXNTZWN1cmVD
b250ZXh0KCkpIHsKLSAgICAgICAgaWYgKGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBkb2N1bWVu
dC5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBj
YWxsYmFjay0+aGFuZGxlRXZlbnQoUGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29s
ZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJU
aGUgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkgYmUgcmVxdWVzdGVkIGluIGEgc2Vj
dXJlIGNvbnRleHQuIl9zKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlQW5kQ2FsbGJh
Y2soUGVybWlzc2lvbjo6RGVuaWVkKTsKICAgICB9CiAKLSAgICBOb3RpZmljYXRpb25Db250cm9s
bGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKS5yZXF1ZXN0UGVybWlzc2lvbigmZG9jdW1lbnQsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2Up
LT5jbGllbnQoKS5yZXF1ZXN0UGVybWlzc2lvbigmZG9jdW1lbnQsIFdURk1vdmUocmVzb2x2ZVBy
b21pc2VBbmRDYWxsYmFjaykpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvbjo6ZXZlbnRMaXN0ZW5l
cnNEaWRDaGFuZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDQyOWNmZDQ4OGFmOWFlY2UzYTA3OTNjZTBmZWJkMjU1
NGE3Y2EwZGEuLjY1MzkxNTJlOThjNWFhYzg4ODc1MWU4YTJhYjE5NDdiYWI4MjIzMDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmgKQEAgLTQyLDYgKzQyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBEZWZl
cnJlZFByb21pc2U7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Np
b25DYWxsYmFjazsKIApAQCAtODIsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBmaW5hbGl6ZSgpOwogCiAgICAgc3RhdGljIFBlcm1pc3Npb24gcGVybWlzc2lvbihE
b2N1bWVudCYpOwotICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKERvY3VtZW50Jiwg
UmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJik7CisgICAgc3RhdGljIHZv
aWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPiYmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
aWRsCmluZGV4IGUzNWY4Nzg4ZWMxZTFhODc0MTNiMDI2ZGZjOWY1MjM4ZjU1ZWY0NTUuLmQwMzFi
YjczY2RhMDUwOTIxMDVkNjA0ZGM2MDhmODlmNmM4MzRlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsCkBAIC00MCw3
ICs0MCw3IEBACiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcihET01TdHJpbmcg
dGl0bGUsIG9wdGlvbmFsIE5vdGlmaWNhdGlvbk9wdGlvbnMgb3B0aW9ucyk7CiAKICAgICBbQ2Fs
bFdpdGg9RG9jdW1lbnRdIHN0YXRpYyByZWFkb25seSBhdHRyaWJ1dGUgTm90aWZpY2F0aW9uUGVy
bWlzc2lvbiBwZXJtaXNzaW9uOwotICAgIFtDYWxsV2l0aD1Eb2N1bWVudF0gc3RhdGljIHVuZGVm
aW5lZCByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2Fs
bGJhY2s/IGRlcHJlY2F0ZWRDYWxsYmFjayk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZXR1cm4g
YSBQcm9taXNlPE5vdGlmaWNhdGlvblBlcm1pc3Npb24+LgorICAgIFtDYWxsV2l0aD1Eb2N1bWVu
dF0gc3RhdGljIFByb21pc2U8Tm90aWZpY2F0aW9uUGVybWlzc2lvbj4gcmVxdWVzdFBlcm1pc3Np
b24ob3B0aW9uYWwgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPyBkZXByZWNhdGVkQ2Fs
bGJhY2spOwogCiAgICAgLy8gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25n
IG1heEFjdGlvbnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAppbmRleCBjZjc1Y2Q3ZjhkYTVmM2NiMDgy
MGY1NmEwYjRlYjE1NTdlZDcwMDg4Li4wNWYyNmZmNmUxNzY5MjFmZTliOTM1Nzk2N2MwYmNjNjRh
NTZmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKICAg
ICAvLyBSZXF1ZXN0cyB1c2VyIHBlcm1pc3Npb24gdG8gc2hvdyBkZXNrdG9wIG5vdGlmaWNhdGlv
bnMgZnJvbSBhIHBhcnRpY3VsYXIKICAgICAvLyBzY3JpcHQgY29udGV4dC4gVGhlIGNhbGxiYWNr
IHBhcmFtZXRlciBzaG91bGQgYmUgcnVuIHdoZW4gdGhlIHVzZXIgaGFzCiAgICAgLy8gbWFkZSBh
IGRlY2lzaW9uLgotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1p
c3Npb24pPiYmKSA9IDA7CiAKICAgICAvLyBDaGVja3MgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgcGVy
bWlzc2lvbi4KICAgICB2aXJ0dWFsIFBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyLmNwcAppbmRleCA0Yzk5ZjI5MzEwNTJmYTI0MGUzYmRjYmRk
ODc3MTBhYjcxZWU2NjgyLi4yNjRiNDI0NDc1OTNiNjk4ZGI4YzdhNTViODhmMWM4N2Q4NjY2YTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5jcHAKQEAgLTU5LDI5ICs1OSwzNSBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXI6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYQogfQog
I2VuZGlmCiAKK05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6fk5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpCit7CisjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCisgICAgYXV0byByZXF1ZXN0c1Blck9yaWdpbiA9IHN0ZDo6ZXhjaGFuZ2UobV9yZXF1ZXN0
c1Blck9yaWdpbiwgeyB9KTsKKyAgICBmb3IgKGF1dG8mIGNvbXBsZXRpb25IYW5kbGVycyA6IHJl
cXVlc3RzUGVyT3JpZ2luLnZhbHVlcygpKSB7CisgICAgICAgIGZvciAoYXV0byYgY29tcGxldGlv
bkhhbmRsZXIgOiBjb21wbGV0aW9uSGFuZGxlcnMpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CisgICAgfQorI2Vu
ZGlmCit9CisKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKLXZvaWQgTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyOjpzdGFydFJlcXVlc3QoY29uc3QgU2VjdXJpdHlPcmlnaW5E
YXRhJiBzZWN1cml0eU9yaWdpbiwgUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFj
az4mJiBjYWxsYmFjaykKK3ZvaWQgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
OjpzdGFydFJlcXVlc3QoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBzZWN1cml0eU9yaWdpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8gcGVybWlzc2lvbiA9IHBlcm1pc3Npb25M
ZXZlbChzZWN1cml0eU9yaWdpbik7Ci0gICAgaWYgKHBlcm1pc3Npb24gIT0gTm90aWZpY2F0aW9u
Q2xpZW50OjpQZXJtaXNzaW9uOjpEZWZhdWx0KSB7Ci0gICAgICAgIGlmIChjYWxsYmFjaykKLSAg
ICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChwZXJtaXNzaW9uKTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KKyAgICBpZiAocGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBl
cm1pc3Npb246OkRlZmF1bHQpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihwZXJt
aXNzaW9uKTsKIAotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZXF1ZXN0c1Blck9yaWdpbi5hZGQo
c2VjdXJpdHlPcmlnaW4sIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlz
c2lvbkNhbGxiYWNrPj4geyB9KTsKLSAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVu
ZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlcXVlc3RzUGVy
T3JpZ2luLmFkZChzZWN1cml0eU9yaWdpbiwgVmVjdG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4+IHsgfSk7CisgICAgYWRkUmVzdWx0Lml0
ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogICAgIGlm
ICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCkpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBz
ZWN1cml0eU9yaWdpbl0oYm9vbCBhbGxvd2VkKSBtdXRhYmxlIHsKKyAgICBtX3BhZ2UtPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Tm90aWZpY2F0aW9u
UGVybWlzc2lvbihzZWN1cml0eU9yaWdpbi50b1N0cmluZygpKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2VjdXJpdHlPcmlnaW5dKGJvb2wgYWxsb3dlZCkgbXV0YWJsZSB7CiAgICAg
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFu
YWdlcj4oKS0+ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24oc2VjdXJpdHlPcmlnaW4udG9T
dHJpbmcoKSwgYWxsb3dlZCk7CiAKLSAgICAgICAgYXV0byBjYWxsYmFja3MgPSBtX3JlcXVlc3Rz
UGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOwotICAgICAgICBmb3IgKGF1dG8mIGNhbGxi
YWNrIDogY2FsbGJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAg
ICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KGFsbG93ZWQgPyBOb3RpZmljYXRpb25DbGllbnQ6
OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRl
bmllZCk7Ci0gICAgICAgIH0KKyAgICAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlcnMgPSBtX3Jl
cXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOworICAgICAgICBmb3IgKGF1dG8m
IGNvbXBsZXRpb25IYW5kbGVyIDogY29tcGxldGlvbkhhbmRsZXJzKQorICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoYWxsb3dlZCA/IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6
R3JhbnRlZCA6IE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKICAgICB9
KTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaAppbmRleCAxMjA3MWIxYzQ1YWFmODg0YTY2NGQxNzc1MDRhNzg3MjEwYTg5
MDczLi4zNmZiYjVhODgxMmFmYzBhN2M4MDE2NzM2NzY0NGU5MjA4OGYwZThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaApAQCAtNDYs
OSArNDYsMTAgQEAgY2xhc3MgV2ViUGFnZTsKIGNsYXNzIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlciA6IHB1YmxpYyBSZWZDb3VudGVkPE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlcj4gewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyPiBjcmVhdGUoV2ViUGFnZSopOworICAgIH5Ob3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIoKTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05T
KQotICAgIHZvaWQgc3RhcnRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYsIFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOwor
ICAgIHZvaWQgc3RhcnRSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uKT4mJik7CiAjZW5kaWYKICAgICAKICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb24gcGVybWlzc2lvbkxldmVsKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSYpOwpAQCAtNjEsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcihXZWJQYWdlKik7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FU
SU9OUykKLSAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgVmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+Pj4gbV9yZXF1ZXN0
c1Blck9yaWdpbjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgVmVj
dG9yPENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQ
ZXJtaXNzaW9uKT4+PiBtX3JlcXVlc3RzUGVyT3JpZ2luOwogICAgIFdlYlBhZ2UqIG1fcGFnZTsK
ICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKaW5kZXggZTJmNjc4
ZjUxNDA4Y2RiOTkyOTljNzdhYzEzMmFhOTNmZGQzZDBjZC4uMGZmN2E4NjQ3YjVjYWM2OWM1YzU5
YzkyMGUzNjI1YTMxM2UxOWNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAK
QEAgLTcxLDE1ICs3MSwxMiBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0
aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNh
bGxiYWNrKQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTm90
aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBhdXRvKiBzZWN1cml0eU9yaWdpbiA9IGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAg
aWYgKCFzZWN1cml0eU9yaWdpbikgewotICAgICAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgICAg
ICBjYWxsYmFjay0+aGFuZGxlRXZlbnQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpE
ZW5pZWQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIG1fcGFnZS0+bm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCktPnN0YXJ0UmVxdWVzdChzZWN1cml0eU9yaWdpbi0+
ZGF0YSgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgaWYgKCFzZWN1cml0eU9yaWdpbikKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbjo6RGVuaWVkKTsKKyAgICBtX3BhZ2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcigpLT5zdGFydFJlcXVlc3Qoc2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24g
V2ViTm90aWZpY2F0aW9uQ2xpZW50OjpjaGVja1Blcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCA0MzkzYWVk
MjExMmIyM2VmOGMzYjA2OTMxMjU0YzMwNGNjODAxZGUyLi41NWU0YjE1M2JiYTNlYzI5Yzk0NmZk
NGZjYTI2YTIwYWU5MDAwYzU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNr
OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IApAQCAtNTEsNyArNTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25z
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKICAgICB2b2lkIG5v
dGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qKSBvdmVycmlk
ZTsKICAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbik+JiYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggNmE1ZGVhZmU5MDRkNTMzM2FiMDljZWU0NTEx
YWY4ZjRmNjlhODJkYi4uZjhlZmI0ZjFiY2ZkYmM4YTg4ZjFiNDE5M2U3Yjg0YzcxZjUwOGY2ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25Db250
cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNh
dGlvblBlcm1pc3Npb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVy
bWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24pPiYmKSBvdmVy
cmlkZTsKICAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQ
ZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyICopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50Lm1tCmluZGV4IGNkMjg3ZTdiNDUxNTI0NzU4NTkyNzNkMmQ2MGRiNjk2MjhmOGZjM2Iu
LmNjMGNhN2UzYzdjNmI4Y2UwMjhkYzVkYTk2Zjc2MWMxYjBjYjkyMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0KQEAgLTMzLDE4ICszMywxOCBAQAogI2ltcG9ydCAiV2ViU2VjdXJp
dHlPcmlnaW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVUlEZWxlZ2F0ZVByaXZhdGUuaCIKICNp
bXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgotI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb25Q
ZXJtaXNzaW9uQ2FsbGJhY2suaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KKyNpbXBvcnQgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50ZXJmYWNlIFdlYk5vdGlmaWNhdGlv
blBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPgog
ewotICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+IF9jYWxsYmFjazsK
KyAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bik+IF9jb21wbGV0aW9uSGFuZGxlcjsKIH0KLS0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6KFJlZlB0
cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpY2FsbGJhY2s7CistIChpZClpbml0
V2l0aENvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbik+JiYpY29tcGxldGlvbkhhbmRsZXI7CiBAZW5kCiAKIHN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZU5vdGlmaWNhdGlvbklEKCkKQEAgLTEzNSwxMCArMTM1LDEwIEBA
IHZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBXCiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBz
ZWxlY3Rvciwgd2ViT3JpZ2luLmdldCgpLCBsaXN0ZW5lcik7CiB9CiAKLXZvaWQgV2ViTm90aWZp
Y2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNr
KQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTm90aWZpY2F0
aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBhdXRvIGxpc3RlbmVyID0gYWRvcHROUyhbW1dl
Yk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOldURk1v
dmUoY2FsbGJhY2spXSk7CisgICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMoW1tXZWJOb3RpZmlj
YXRpb25Qb2xpY3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhDb21wbGV0aW9uSGFuZGxlcjpXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0pOwogICAgIHJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQs
IGxpc3RlbmVyLmdldCgpKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBAIC0x
NzAsMjUgKzE3MCwyNSBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNh
dGlvbklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qCiAKIEBpbXBsZW1lbnRhdGlv
biBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aENhbGxiYWNr
OihSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKWNhbGxiYWNrCistIChp
ZClpbml0V2l0aENvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE5vdGlm
aWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik+JiYpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBp
ZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9j
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOworICAgIF9jb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2b2lk
KWFsbG93CiB7Ci0gICAgaWYgKF9jYWxsYmFjaykKLSAgICAgICAgX2NhbGxiYWNrLT5oYW5kbGVF
dmVudChOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQpOworICAgIGlmIChf
Y29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIF9jb21wbGV0aW9uSGFuZGxlcihOb3RpZmljYXRp
b25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQpOwogfQogCiAtICh2b2lkKWRlbnkKIHsKLSAg
ICBpZiAoX2NhbGxiYWNrKQotICAgICAgICBfY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKKyAgICBpZiAoX2NvbXBsZXRpb25IYW5k
bGVyKQorICAgICAgICBfY29tcGxldGlvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJt
aXNzaW9uOjpEZW5pZWQpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGUuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKaW5kZXggMWU4NjQwMmY5
N2Q3MTM3MTZlYzgyM2M3ZjFhZTM2ZTY0YWU4MGNkMi4uYzc4YjdiY2M5YWJhODM3NjAyYzk2ODE0
OWVkYThiZGNmODk0MWM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlv
bnNEZWxlZ2F0ZS5jcHAKQEAgLTE3Nyw4ICsxNzcsOSBAQCB2b2lkIFdlYkRlc2t0b3BOb3RpZmlj
YXRpb25zRGVsZWdhdGU6OnJlcXVlc3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4s
CiAgICAgICAgIG5vdGlmaWNhdGlvbkRlbGVnYXRlKCktPnJlcXVlc3ROb3RpZmljYXRpb25QZXJt
aXNzaW9uKG9yZyk7CiB9CiAKLXZvaWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6
cmVxdWVzdFBlcm1pc3Npb24oU2VjdXJpdHlPcmlnaW4qLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVy
bWlzc2lvbkNhbGxiYWNrPiYmKQordm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRl
OjpyZXF1ZXN0UGVybWlzc2lvbihTZWN1cml0eU9yaWdpbiosIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246
OkRlbmllZCk7CiB9CiAKIE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBXZWJEZXNrdG9w
Tm90aWZpY2F0aW9uc0RlbGVnYXRlOjpjaGVja1Blcm1pc3Npb24oY29uc3QgVVJMJiB1cmwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNr
dG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKaW5kZXggMzZhNjJj
MDdlNDk5YzEyYmYzYWEwYjY1OWQzMTNlMDI5Y2VmMjc1Ni4uOTY2YzM0ZjhiMGE4YTg1ZjViM2M2
YmExZWUzMmIxNDQzYzQ5NmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRp
b25zRGVsZWdhdGUuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVjdCk7CiAgICAgdmlydHVhbCB2b2lk
IG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24qIG9iamVj
dCk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qLCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6
UGVybWlzc2lvbik+JiYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihjb25zdCBVUkwmKTsKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA4OGQ3NWEzM2NkMDk4NTlmNDNiNTY4NDZkNWFkN2IwMGZkYzM5YmMyLi5kMzNjMWZmYmNh
MzhmNmFkYTlkOWVlNTQwZDY4OGRkMjM2OGEyZjVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb3Rp
ZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgIFJlYmFzZWxpbmUgdGVzdCBub3cgdGhhdCB3ZSBsb2cgYW4gZXJyb3Ig
bWVzc2FnZSBpbiB0aGUgSlMgY29uc29sZSB3aGVuIHRyeWluZyB0byBjYWxsCisgICAgICAgIE5v
dGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpIGluIGEgbm9uLXNlY3VyZSBjb250ZXh0Lgor
CisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25z
L3JlcXVlc3Qtd2l0aC1wcm9taXNlLmh0bWw6IEFkZGVkLgorICAgICAgICBBZGQgbGF5b3V0IHRl
c3QgY292ZXJhZ2UuCisKIDIwMjEtMDUtMTIgIEFtaXIgTWFyayBKciAgPGFtaXJfbWFya0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW0JpZ1N1ciBXazEgUmVsZWFzZV0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXdpbGwtY2hhbmdlL3dpbGwtY2hhbmdlLWZpeHBvcy1jYi10
cmFuc2Zvcm0tMS5odG1sIGlzIGEgZmxha3kgaW1hZ2UgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggMDMxYjA4NDQyY2RmMDQ3NzliODE1NGM5MzJiMmFlY2E3NTJjNjJl
Ny4uMGIwZmFmMDJlNmU3NjNiNWE4ZWQ4MTFhZDkzMjdkZmIyNWZkYTc4ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBl
cm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCBtYW51YWwgdGVzdCB0aGF0IHNob3VsZCBu
b3QgaGF2ZSBiZWVuIGltcG9ydGVkIGZyb20gV1BULiBUaGUgdGVzdCBoYXBwZW5lZCB0byBiZSB1
c2luZyBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKQorICAgICAgICBpbnRlcm5hbGx5
LgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbDogUmVt
b3ZlZC4KKwogMjAyMS0wNS0xMiAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFdyb25nIHBvc2l0aW9uIGZvciBvcnRob2dvbmFsIHBvc2l0aW9uZWQgZWxlbWVudCB3aXRo
IHdyaXRpbmctbW9kZTogdmVydGljYWwtcmwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmlj
YXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA3YjE4OTU3ZWFl
NWJjZGExMTU2NDFiZGJjM2MzOGNlYmFkNTAxNzY4Li4yMjZmNzVhYzdmMzdiOGFkNTI3ZWJjM2U1
ODlmODA4YTA0OTgyMTdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlm
aWNhdGlvbnMvbm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1p
bi1ub24tc2VjdXJlLWNvbnRleHQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAorQ09OU09M
RSBNRVNTQUdFOiBUaGUgTm90aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkgYmUgcmVxdWVz
dGVkIGluIGEgc2VjdXJlIGNvbnRleHQuCitDT05TT0xFIE1FU1NBR0U6IFRoZSBOb3RpZmljYXRp
b24gcGVybWlzc2lvbiBtYXkgb25seSBiZSByZXF1ZXN0ZWQgaW4gYSBzZWN1cmUgY29udGV4dC4K
IAogUEFTUyBOb3RpZmljYXRpb24gcGVybWlzc2lvbiBpbiBpbnNlY3VyZSBjb250ZXh0CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdp
dGgtcHJvbWlzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNh
dGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxYmI4
NzIxMDQxYjJkZGI5NTNjODhjMmNlYzQzNzhjMTg2YTcwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgdGVzdHMgTm90aWZpY2F0aW9uLnBl
cm1pc3Npb24ncyByZXR1cm5lZCBQcm9taXNlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitSZXF1ZXN0aW5nIHBlcm1pc3Npb24gd2l0aCBkZWZhdWx0IHBlcm1pc3Npb24KK1BBU1Mg
Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImRlZmF1bHQiCitQQVNTIHBlcm1pc3Npb24gaXMg
Z3JhbnRlZAorUEFTUyBOb3RpZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZ3JhbnRlZCIKK1JlcXVl
c3RpbmcgcGVybWlzc2lvbiB3aXRoIG5vbi1kZWZhdWx0IHBlcm1pc3Npb24KK1BBU1MgcGVybWlz
c2lvbiBpcyBkZW5pZWQKK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImRlbmllZCIK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRo
LXByb21pc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1
ZXN0LXdpdGgtcHJvbWlzZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiZjUzMTlmNmM3ZTM1ZTc4ZGU2NDM2
ZWRjNjQxMGQwODA5ZDEzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UuaHRtbApAQCAtMCwwICsxLDM0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgTm90
aWZpY2F0aW9uLnBlcm1pc3Npb24ncyByZXR1cm5lZCBQcm9taXNlIik7Citqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKworZnVuY3Rpb24gc3RlcDEoKSB7CisgICAgZGVidWcoIlJlcXVlc3RpbmcgcGVy
bWlzc2lvbiB3aXRoIGRlZmF1bHQgcGVybWlzc2lvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZGVmYXVsdCIpOworICAgIE5vdGlmaWNh
dGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oKHBlcm1pc3Npb24pID0+IHsKKyAgICAgICAg
aWYgKHBlcm1pc3Npb24gPT0gJ2dyYW50ZWQnKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgicGVy
bWlzc2lvbiBpcyBncmFudGVkIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoInBlcm1pc3Npb24gc2hvdWxkIGJlIGdyYW50ZWQsIGJ1dCBpcyAiICsgcGVybWlzc2lvbik7
CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24i
LCAiZ3JhbnRlZCIpOworICAgICAgICBzZXRUaW1lb3V0KHN0ZXAyLCAwKTsKKyAgICB9KTsKK30K
KworZnVuY3Rpb24gc3RlcDIoKSB7CisgICAgZGVidWcoIlJlcXVlc3RpbmcgcGVybWlzc2lvbiB3
aXRoIG5vbi1kZWZhdWx0IHBlcm1pc3Npb24iKTsKKyAgICB0ZXN0UnVubmVyLmRlbnlXZWJOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uKHNlbGYub3JpZ2luKTsKKyAgICBOb3RpZmljYXRpb24ucmVxdWVz
dFBlcm1pc3Npb24oKS50aGVuKChwZXJtaXNzaW9uKSA9PiB7CisgICAgICAgIGlmIChwZXJtaXNz
aW9uID09ICdkZW5pZWQnKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgicGVybWlzc2lvbiBpcyBk
ZW5pZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgicGVybWlzc2lv
biBzaG91bGQgYmUgZGVuaWVkLCBidXQgaXMgIiArIHBlcm1pc3Npb24pOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIk5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImRlbmllZCIpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKK30KKworc3RlcDEoKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1h
bnVhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13
aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMjQ3ZDdkOWY0NDkwNWU4M2ViMmI1NDMzYzIyODE4Nzc2ODY4NGM4Ni4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotCi1GQUlMIE5vdGlmaWNhdGlvbiByZXF1ZXN0cyBpbnRl
cmNlcHRlZCBib3RoIGZyb20gd2luZG93IGFuZCBTVyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbicpCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51
YWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1t
YW51YWwuaHR0cHMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTVhMmU5NWJk
MzlkNDExYTI1NzlkZDRlMDY2MTc5MWNkZTZkMTc1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRo
aW4tc3ctbWFudWFsLmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2Ny
aXB0PgotPGJvZHk+Ci08c2NyaXB0PgotY29uc3Qgd29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC1l
dmVudC13aXRoaW4tc3ctd29ya2VyLmpzJzsKLQotZnVuY3Rpb24gd2FpdChtcykgewotICByZXR1
cm4gbmV3IFByb21pc2UociA9PiBzZXRUaW1lb3V0KHIsIG1zKSk7Ci19Ci0KLWZ1bmN0aW9uIHJl
c2V0KCkgewotICBmb3IgKGNvbnN0IGlmcmFtZSBvZiBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgnLnRlc3QtaWZyYW1lJyldKSB7Ci0gICAgaWZyYW1lLnJlbW92ZSgpOwotICB9Ci0gIHJl
dHVybiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihyZWdp
c3RyYXRpb25zID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVnaXN0cmF0aW9ucy5tYXAo
ciA9PiByLnVucmVnaXN0ZXIoKSkpOwotICB9KS50aGVuKCgpID0+IGNhY2hlcy5rZXlzKCkpLnRo
ZW4oY2FjaGVLZXlzID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5hbGwoY2FjaGVLZXlzLm1hcChj
ID0+IGNhY2hlcy5kZWxldGUoYykpKTsKLSAgfSk7Ci19Ci0KLWFkZF9jb21wbGV0aW9uX2NhbGxi
YWNrKHJlc2V0KTsKLQotZnVuY3Rpb24gcmVnUmVhZHkocmVnKSB7Ci0gIHJldHVybiBuZXcgUHJv
bWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Ci0gICAgaWYgKHJlZy5hY3RpdmUpIHsKLSAgICAg
IHJlc29sdmUoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY29uc3QgbmV4dFdvcmtlciA9
IHJlZy53YWl0aW5nIHx8IHJlZy5pbnN0YWxsaW5nOwotCi0gICAgbmV4dFdvcmtlci5hZGRFdmVu
dExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKLSAgICAgIGlmIChuZXh0V29ya2VyLnN0
YXRlID09ICdyZWR1bmRhbnQnKSB7Ci0gICAgICAgIHJlamVjdChFcnJvcihgU2VydmljZSB3b3Jr
ZXIgZmFpbGVkIHRvIGluc3RhbGxgKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAg
IGlmIChuZXh0V29ya2VyLnN0YXRlID09ICdhY3RpdmF0ZWQnKSB7Ci0gICAgICAgIHJlc29sdmUo
KTsKLSAgICAgIH0KLSAgICB9KTsKLSAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGdldENvb2tpZXMoKSB7
Ci0gIHJldHVybiBuZXcgTWFwKAotICAgIGRvY3VtZW50LmNvb2tpZQotICAgICAgLnNwbGl0KC87
L2cpCi0gICAgICAubWFwKGMgPT4gYy50cmltKCkuc3BsaXQoJz0nKS5tYXAocyA9PiBzLnRyaW0o
KSkpCi0gICk7Ci19Ci0KLWZ1bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUoKSB7Ci0gIHJl
dHVybiByZXNldCgpLnRoZW4oKCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
d29ya2VyLCB7c2NvcGU6ICdyZXNvdXJjZXMvJ30pKQotICAgIC50aGVuKHJlZyA9PiByZWdSZWFk
eShyZWcpKQotICAgIC50aGVuKCgpID0+IHdpdGhfaWZyYW1lKCdyZXNvdXJjZXMvc2ltcGxlLmh0
bWwnKSk7Ci19Ci0KLWZ1bmN0aW9uIHJhY2VCcm9hZGNhc3RBbmRDb29raWUoY2hhbm5lbCwgY29v
a2llKSB7Ci0gIGNvbnN0IGluaXRpYWxDb29raWUgPSBnZXRDb29raWVzKCkuZ2V0KGNvb2tpZSk7
Ci0gIGxldCBkb25lID0gZmFsc2U7Ci0KLSAgcmV0dXJuIFByb21pc2UucmFjZShbCi0gICAgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICBjb25zdCBiYyA9IG5ldyBCcm9hZGNhc3RDaGFu
bmVsKGNoYW5uZWwpOwotICAgICAgYmMub25tZXNzYWdlID0gKCkgPT4gewotICAgICAgICBiYy5j
bG9zZSgpOwotICAgICAgICByZXNvbHZlKCdicm9hZGNhc3QnKTsKLSAgICAgIH07Ci0gICAgfSks
Ci0gICAgKGZ1bmN0aW9uIGNoZWNrQ29va2llKCkgewotICAgICAgLy8gU3RvcCBwb2xsaW5nIGlm
IHRoZSBicm9hZGNhc3QgY2hhbm5lbCB3b24KLSAgICAgIGlmIChkb25lID09IHRydWUpIHJldHVy
bjsKLSAgICAgIGlmIChnZXRDb29raWVzKCkuZ2V0KGNvb2tpZSkgIT0gaW5pdGlhbENvb2tpZSkg
cmV0dXJuICdjb29raWUnOwotCi0gICAgICByZXR1cm4gd2FpdCgyMDApLnRoZW4oY2hlY2tDb29r
aWUpOwotICAgIH0oKSkKLSAgXSkudGhlbih2YWwgPT4gewotICAgIGRvbmUgPSB0cnVlOwotICAg
IHJldHVybiB2YWw7Ci0gIH0pOwotfQotCi1wcm9taXNlX3Rlc3QoKCkgPT4gewotICByZXR1cm4g
Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihwZXJtaXNzaW9uID0+IHsKLSAg
ICBpZiAocGVybWlzc2lvbiAhPSAiZ3JhbnRlZCIpIHsKLSAgICAgIHRocm93IEVycm9yKCdZb3Ug
bXVzdCBhbGxvdyBub3RpZmljYXRpb25zIGZvciB0aGlzIG9yaWdpbiBiZWZvcmUgcnVubmluZyB0
aGlzIHRlc3QuJyk7Ci0gICAgfQotICAgIHJldHVybiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCk7
Ci0gIH0pLnRoZW4oaWZyYW1lID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhl
bigoKSA9PiB7Ci0gICAgICAvLyBJbiB0aGlzIHRlc3QsIHRoZSBzZXJ2aWNlIHdvcmtlciB3aWxs
IHBpbmcgdGhlICdpY29uLXJlcXVlc3QnIGNoYW5uZWwKLSAgICAgIC8vIGlmIGl0IGludGVyY2Vw
dHMgYSByZXF1ZXN0IGZvciAnbm90aWZpY2F0aW9uX2ljb24ucHknLiBJZiB0aGUgcmVxdWVzdAot
ICAgICAgLy8gcmVhY2hlcyB0aGUgc2VydmVyIGl0IHNldHMgdGhlICdub3RpZmljYXRpb24nIGNv
b2tpZSB0byB0aGUgdmFsdWUgZ2l2ZW4KLSAgICAgIC8vIGluIHRoZSBVUkwuICJyYWNlQnJvYWRj
YXN0QW5kQ29va2llIiBtb25pdG9ycyBib3RoIGFuZCByZXR1cm5zIHdoaWNoCi0gICAgICAvLyBo
YXBwZW5zIGZpcnN0LgotICAgICAgY29uc3QgcmFjZSA9IHJhY2VCcm9hZGNhc3RBbmRDb29raWUo
J2ljb24tcmVxdWVzdCcsICdub3RpZmljYXRpb24nKTsKLSAgICAgIGNvbnN0IG5vdGlmaWNhdGlv
biA9IG5ldyBpZnJhbWUuY29udGVudFdpbmRvdy5Ob3RpZmljYXRpb24oJ3Rlc3QnLCB7Ci0gICAg
ICAgIGljb246IGBub3RpZmljYXRpb25faWNvbi5weT9zZXQtY29va2llLW5vdGlmaWNhdGlvbj0k
e01hdGgucmFuZG9tKCl9YAotICAgICAgfSk7Ci0gICAgICBub3RpZmljYXRpb24uY2xvc2UoKTsK
LQotICAgICAgcmV0dXJuIHJhY2UudGhlbih3aW5uZXIgPT4gewotICAgICAgICBhc3NlcnRfZXF1
YWxzKHdpbm5lciwgJ2Jyb2FkY2FzdCcsICdUaGUgc2VydmljZSB3b3JrZXIgaW50ZXJjZXB0ZWQg
dGhlIGZyb20td2luZG93IG5vdGlmaWNhdGlvbiBpY29uIHJlcXVlc3QnKTsKLSAgICAgIH0pOwot
ICAgIH0pLnRoZW4oKCkgPT4gewotICAgICAgLy8gU2ltaWxhciByYWNlIHRvIGFib3ZlLCBidXQg
dGhpcyB0aW1lIHRoZSBzZXJ2aWNlIHdvcmtlciByZXF1ZXN0cyB0aGUKLSAgICAgIC8vIG5vdGlm
aWNhdGlvbi4KLSAgICAgIGNvbnN0IHJhY2UgPSByYWNlQnJvYWRjYXN0QW5kQ29va2llKCdpY29u
LXJlcXVlc3QnLCAnbm90aWZpY2F0aW9uJyk7Ci0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5m
ZXRjaChgc2hvdy1ub3RpZmljYXRpb24/c2V0LWNvb2tpZS1ub3RpZmljYXRpb249JHtNYXRoLnJh
bmRvbSgpfWApOwotCi0gICAgICByZXR1cm4gcmFjZS50aGVuKHdpbm5lciA9PiB7Ci0gICAgICAg
IGFzc2VydF9lcXVhbHMod2lubmVyLCAnYnJvYWRjYXN0JywgJ1RoZSBzZXJ2aWNlIHdvcmtlciBp
bnRlcmNlcHRlZCB0aGUgZnJvbS1zZXJ2aWNlLXdvcmtlciBub3RpZmljYXRpb24gaWNvbiByZXF1
ZXN0Jyk7Ci0gICAgICB9KTsKLSAgICB9KQotICB9KTsKLX0sIGBOb3RpZmljYXRpb24gcmVxdWVz
dHMgaW50ZXJjZXB0ZWQgYm90aCBmcm9tIHdpbmRvdyBhbmQgU1dgKTsKLQotPC9zY3JpcHQ+Ci08
L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428456</attachid>
            <date>2021-05-12 21:17:44 -0700</date>
            <delta_ts>2021-05-12 22:02:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225712-20210512211743.patch</filename>
            <type>text/plain</type>
            <size>35557</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzkxZDgwNmQwMzQ3Yzlk
MGRlZTI2YTM3OWM1YTZiZjhlNzQzZDZhYi4uZmRiOGI2ZmU2YjBiZWU0ZGYxZGUxYmQwYTU1ZmY0
MGY2MzU4MDdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTA1LTEyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lv
bigpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlIGFzIHBlciB0aGUgc3BlY2lmaWNhdGlvbjoKKyAg
ICAgICAgLSBodHRwczovL25vdGlmaWNhdGlvbnMuc3BlYy53aGF0d2cub3JnLyNub3RpZmljYXRp
b24KKworICAgICAgICBCb3RoIEZpcmVmb3ggYW5kIENocm9tZSBhbHJlYWR5IHN1cHBvcnQgdGhp
cy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRo
LXByb21pc2UuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246OnJlcXVlc3RQZXJtaXNz
aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6Cisg
ICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGw6CisgICAgICAg
ICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAyMDIxLTA1
LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9O
IEZBSUxFRDogYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIgaW4g
dG9KU05ld2x5Q3JlYXRlZChKU0M6OkpTR2xvYmFsT2JqZWN0ICosIFdlYkNvcmU6OkpTRE9NR2xv
YmFsT2JqZWN0ICosIFJlZjxXZWJDb3JlOjpBdWRpb05vZGU+ICYmKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMjM5
Yjc3YzA5ODIwYjM5YTRhNmE1MzA4ZDFmNjg5ODQ2ODA1ODFiLi4zOWE0ZDJkZmZiNDI3NWVjYmIx
OTA2M2U3Nzk2ZjE4Njk2ZGJlOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA1
LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0
aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0
IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAg
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6On5O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OnN0YXJ0UmVxdWVzdCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uQ2xp
ZW50OjpyZXF1ZXN0UGVybWlzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IC8gTW9kZXJuaXplIE5vdGlm
aWNhdGlvbiBwZXJtaXNzaW9uIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggY2ZkYzQxMDcyZmMxNTRlNmU1OTI2MDJmZDVmYzA2ZGQ0OTI1M2IwOC4uM2I4YTM1
NGIwMWM1Y2FkZmMyNzc5YWQ5OTE4OGE4ZTUyMjY0ZTU0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkg
c2hvdWxkIHJldHVybiBhIFByb21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIFVwZGF0ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxl
dGlvbkhhbmRsZXIgaW5zdGVhZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjay4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbToK
KyAgICAgICAgKFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24pOgorICAg
ICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBpbml0V2l0aENvbXBsZXRpb25I
YW5kbGVyOl0pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBhbGxv
d10pOgorICAgICAgICAoLVtXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciBkZW55XSk6CisK
IDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBR
dWV1ZSBub3RpZmljYXRpb24gcGVybWlzc2lvbiByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgb3JpZ2lu
IG9uIFdlYktpdCBzaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggZWM5ZTg5ZmY0
NDU4MzE3N2I1OTVlMmVkOTI3MDU3MTg1ODQ1NWQ4ZS4uMzBlOGMxY2ZkNTQ2OTRlNTc0ZGRmZjFm
MGVlY2YxNmM2NDJhMzYwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIxLTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkgc2hvdWxkIHJldHVybiBhIFBy
b21pc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NTcxMgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFVwZGF0
ZSBjb2RlIG5vdyB0aGF0IFdlYkNvcmUgcGFzc2VzIGEgQ29tcGxldGlvbkhhbmRsZXIgaW5zdGVh
ZCBvZiBhCisgICAgICAgIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjay4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3BwOgor
ICAgICAgICAoV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Np
b24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVs
ZWdhdGUuaDoKKwogMjAyMS0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFF1ZXVlIG5vdGlmaWNhdGlvbiBwZXJtaXNzaW9uIHJlcXVlc3RzIGZvciB0aGUg
c2FtZSBvcmlnaW4gb24gV2ViS2l0IHNpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggNWEwZDk5MTM0YzQyOTUx
NWNmZDUwMmEyNGRlZGU4MTRlMjY1YmI2OS4uZWZjMmZkNDA0Zjg1MjA4Nzg5NTcwNmYxMjNiNWY1
YjI2YTM0ZTZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTM4LDExICszOCwxMyBAQAogI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisj
aW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25D
bGllbnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2luZG93RXZlbnRM
b29wLmgiCiAjaW5jbHVkZSAiV2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmgiCisjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTg0LDIyICsxODYsMjYgQEAgYXV0byBO
b3RpZmljYXRpb246OnBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50KSAtPiBQZXJtaXNzaW9u
CiAgICAgcmV0dXJuIE5vdGlmaWNhdGlvbkNvbnRyb2xsZXI6OmZyb20oZG9jdW1lbnQucGFnZSgp
KS0+Y2xpZW50KCkuY2hlY2tQZXJtaXNzaW9uKCZkb2N1bWVudCk7CiB9CiAKLXZvaWQgTm90aWZp
Y2F0aW9uOjpyZXF1ZXN0UGVybWlzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIFJlZlB0cjxOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIE5vdGlmaWNhdGlv
bjo6cmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8Tm90aWZpY2F0
aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCiB7CisgICAgYXV0byByZXNvbHZlUHJvbWlzZUFuZENhbGxiYWNrID0gW2RvY3Vt
ZW50ID0gbWFrZVJlZihkb2N1bWVudCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHBy
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShQZXJtaXNzaW9uIHBlcm1pc3Npb24pIG11dGFibGUg
eworICAgICAgICBkb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRP
TU1hbmlwdWxhdGlvbiwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpLCBwZXJtaXNzaW9uXSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYg
KGNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNhbGxiYWNrLT5oYW5kbGVFdmVudChwZXJtaXNz
aW9uKTsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMRW51bWVyYXRpb248Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbj4+KHBlcm1pc3Npb24pOworICAgICAgICB9KTsKKyAgICB9OworCiAg
ICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAg
IHJldHVybjsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlQW5kQ2FsbGJhY2soUGVybWlz
c2lvbjo6RGVuaWVkKTsKIAogICAgIGlmICghZG9jdW1lbnQuaXNTZWN1cmVDb250ZXh0KCkpIHsK
LSAgICAgICAgaWYgKGNhbGxiYWNrKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFjay0+aGFu
ZGxlRXZlbnQoUGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgZG9jdW1lbnQuYWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJUaGUgTm90aWZpY2F0
aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkgYmUgcmVxdWVzdGVkIGluIGEgc2VjdXJlIGNvbnRleHQu
Il9zKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlQW5kQ2FsbGJhY2soUGVybWlzc2lv
bjo6RGVuaWVkKTsKICAgICB9CiAKLSAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHBh
Z2UpLT5jbGllbnQoKS5yZXF1ZXN0UGVybWlzc2lvbigmZG9jdW1lbnQsIFdURk1vdmUoY2FsbGJh
Y2spKTsKKyAgICBOb3RpZmljYXRpb25Db250cm9sbGVyOjpmcm9tKHBhZ2UpLT5jbGllbnQoKS5y
ZXF1ZXN0UGVybWlzc2lvbihkb2N1bWVudCwgV1RGTW92ZShyZXNvbHZlUHJvbWlzZUFuZENhbGxi
YWNrKSk7CiB9CiAKIHZvaWQgTm90aWZpY2F0aW9uOjpldmVudExpc3RlbmVyc0RpZENoYW5nZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmgKaW5kZXggNDI5Y2ZkNDg4YWY5YWVjZTNhMDc5M2NlMGZlYmQyNTU0YTdjYTBkYS4uNjUz
OTE1MmU5OGM1YWFjODg4NzUxZThhMmFiMTk0N2JhYjgyMjMwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaApAQCAtNDIsNiAr
NDIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERlZmVycmVkUHJvbWlzZTsK
IGNsYXNzIERvY3VtZW50OwogY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrOwog
CkBAIC04Miw3ICs4Myw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpbmFs
aXplKCk7CiAKICAgICBzdGF0aWMgUGVybWlzc2lvbiBwZXJtaXNzaW9uKERvY3VtZW50Jik7Ci0g
ICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oRG9jdW1lbnQmLCBSZWZQdHI8Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKTsKKyAgICBzdGF0aWMgdm9pZCByZXF1ZXN0UGVy
bWlzc2lvbihEb2N1bWVudCYsIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+
JiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFjdGl2ZURP
TU9iamVjdDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaWRsIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKaW5kZXggZTM1
Zjg3ODhlYzFlMWE4NzQxM2IwMjZkZmM5ZjUyMzhmNTVlZjQ1NS4uZDAzMWJiNzNjZGEwNTA5MjEw
NWQ2MDRkYzYwOGY4OWY2YzgzNGU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5pZGwKQEAgLTQwLDcgKzQwLDcgQEAKICAg
ICBbQ2FsbFdpdGg9RG9jdW1lbnRdIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0aXRsZSwgb3B0aW9u
YWwgTm90aWZpY2F0aW9uT3B0aW9ucyBvcHRpb25zKTsKIAogICAgIFtDYWxsV2l0aD1Eb2N1bWVu
dF0gc3RhdGljIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb3RpZmljYXRpb25QZXJtaXNzaW9uIHBlcm1p
c3Npb247Ci0gICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgdW5kZWZpbmVkIHJlcXVlc3RQ
ZXJtaXNzaW9uKG9wdGlvbmFsIE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz8gZGVwcmVj
YXRlZENhbGxiYWNrKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiBhIFByb21pc2U8Tm90
aWZpY2F0aW9uUGVybWlzc2lvbj4uCisgICAgW0NhbGxXaXRoPURvY3VtZW50XSBzdGF0aWMgUHJv
bWlzZTxOb3RpZmljYXRpb25QZXJtaXNzaW9uPiByZXF1ZXN0UGVybWlzc2lvbihvcHRpb25hbCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s/IGRlcHJlY2F0ZWRDYWxsYmFjayk7CiAKICAg
ICAvLyBzdGF0aWMgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbWF4QWN0aW9uczsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGNmNzVjZDdmOGRhNWYzY2IwODIwZjU2YTBiNGViMTU1
N2VkNzAwODguLmI4MWRkNWI2NWRlMzhhZjM0ZGJiMDIxMWQxNTY4MjcwY2M1NTU3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25D
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uQ2xpZW50LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIGNsYXNzIE5vdGlmaWNhdGlvbkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdXNpbmcgUGVy
bWlzc2lvbiA9IE5vdGlmaWNhdGlvblBlcm1pc3Npb247CisgICAgdXNpbmcgUGVybWlzc2lvbkhh
bmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb24pPjsKIAogICAgIC8vIFJl
cXVlc3RzIHRoYXQgYSBub3RpZmljYXRpb24gYmUgc2hvd24uCiAgICAgdmlydHVhbCBib29sIHNo
b3coTm90aWZpY2F0aW9uKikgPSAwOwpAQCAtNjYsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgLy8g
UmVxdWVzdHMgdXNlciBwZXJtaXNzaW9uIHRvIHNob3cgZGVza3RvcCBub3RpZmljYXRpb25zIGZy
b20gYSBwYXJ0aWN1bGFyCiAgICAgLy8gc2NyaXB0IGNvbnRleHQuIFRoZSBjYWxsYmFjayBwYXJh
bWV0ZXIgc2hvdWxkIGJlIHJ1biB3aGVuIHRoZSB1c2VyIGhhcwogICAgIC8vIG1hZGUgYSBkZWNp
c2lvbi4KLSAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFBlcm1pc3Npb25IYW5kbGVyJiYpID0gMDsKIAogICAgIC8vIENoZWNrcyB0aGUgY3VycmVu
dCBsZXZlbCBvZiBwZXJtaXNzaW9uLgogICAgIHZpcnR1YWwgUGVybWlzc2lvbiBjaGVja1Blcm1p
c3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuY3BwCmluZGV4IDRjOTlmMjkzMTA1
MmZhMjQwZTNiZGNiZGQ4NzcxMGFiNzFlZTY2ODIuLmM2ZGJmNTI3MGFiYmQ0Njk3ZjJjYThjMjA2
YjM1OGY4NGI4NGJmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmNwcApAQCAtNTksNDMgKzU5LDUyIEBAIE5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyKFdlYlBhCiB9CiAjZW5kaWYKIAorTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyOjp+Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkKK3sKKyNpZiBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKKyAgICBhdXRvIHJlcXVlc3RzUGVyT3JpZ2luID0gc3RkOjpleGNo
YW5nZShtX3JlcXVlc3RzUGVyT3JpZ2luLCB7IH0pOworICAgIGZvciAoYXV0byYgcGVybWlzc2lv
bkhhbmRsZXJzIDogcmVxdWVzdHNQZXJPcmlnaW4udmFsdWVzKCkpCisgICAgICAgIGNhbGxQZXJt
aXNzaW9uSGFuZGxlcnNXaXRoKHBlcm1pc3Npb25IYW5kbGVycywgUGVybWlzc2lvbjo6RGVuaWVk
KTsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi12b2lkIE5vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4sIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlcjo6c3RhcnRSZXF1ZXN0KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlP
cmlnaW4sIFBlcm1pc3Npb25IYW5kbGVyJiYgcGVybWlzc2lvbkhhbmRsZXIpCiB7CiAgICAgYXV0
byBwZXJtaXNzaW9uID0gcGVybWlzc2lvbkxldmVsKHNlY3VyaXR5T3JpZ2luKTsKLSAgICBpZiAo
cGVybWlzc2lvbiAhPSBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlZmF1bHQpIHsK
LSAgICAgICAgaWYgKGNhbGxiYWNrKQotICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50
KHBlcm1pc3Npb24pOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmIChwZXJtaXNzaW9u
ICE9IFBlcm1pc3Npb246OkRlZmF1bHQpCisgICAgICAgIHJldHVybiBwZXJtaXNzaW9uSGFuZGxl
cihwZXJtaXNzaW9uKTsKIAotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZXF1ZXN0c1Blck9yaWdp
bi5hZGQoc2VjdXJpdHlPcmlnaW4sIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9u
UGVybWlzc2lvbkNhbGxiYWNrPj4geyB9KTsKLSAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVl
LmFwcGVuZChXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3JlcXVl
c3RzUGVyT3JpZ2luLmFkZChzZWN1cml0eU9yaWdpbiwgUGVybWlzc2lvbkhhbmRsZXJzIHsgfSk7
CisgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoV1RGTW92ZShwZXJtaXNzaW9u
SGFuZGxlcikpOwogICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHNlY3VyaXR5T3JpZ2luLnRvU3RyaW5n
KCkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spLCBzZWN1cml0eU9yaWdpbl0oYm9vbCBhbGxvd2VkKSBtdXRhYmxlIHsK
KyAgICBtX3BhZ2UtPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
ZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihzZWN1cml0eU9yaWdpbi50b1N0cmluZygpKSwg
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGVybWlzc2lvbkhhbmRsZXIg
PSBXVEZNb3ZlKHBlcm1pc3Npb25IYW5kbGVyKSwgc2VjdXJpdHlPcmlnaW5dKGJvb2wgYWxsb3dl
ZCkgbXV0YWJsZSB7CiAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8
V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+ZGlkVXBkYXRlTm90aWZpY2F0aW9uRGVjaXNpb24o
c2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSwgYWxsb3dlZCk7CiAKLSAgICAgICAgYXV0byBjYWxs
YmFja3MgPSBtX3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOwotICAgICAg
ICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzKSB7Ci0gICAgICAgICAgICBpZiAoY2Fs
bGJhY2spCi0gICAgICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KGFsbG93ZWQgPyBO
b3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkdyYW50ZWQgOiBOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb246OkRlbmllZCk7Ci0gICAgICAgIH0KKyAgICAgICAgYXV0byBwZXJtaXNz
aW9uSGFuZGxlcnMgPSBtX3JlcXVlc3RzUGVyT3JpZ2luLnRha2Uoc2VjdXJpdHlPcmlnaW4pOwor
ICAgICAgICBjYWxsUGVybWlzc2lvbkhhbmRsZXJzV2l0aChwZXJtaXNzaW9uSGFuZGxlcnMsIGFs
bG93ZWQgPyBQZXJtaXNzaW9uOjpHcmFudGVkIDogUGVybWlzc2lvbjo6RGVuaWVkKTsKICAgICB9
KTsKIH0KKwordm9pZCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI6OmNhbGxQ
ZXJtaXNzaW9uSGFuZGxlcnNXaXRoKFBlcm1pc3Npb25IYW5kbGVycyYgcGVybWlzc2lvbkhhbmRs
ZXJzLCBQZXJtaXNzaW9uIHBlcm1pc3Npb24pCit7CisgICAgZm9yIChhdXRvJiBwZXJtaXNzaW9u
SGFuZGxlciA6IHBlcm1pc3Npb25IYW5kbGVycykKKyAgICAgICAgcGVybWlzc2lvbkhhbmRsZXIo
cGVybWlzc2lvbik7Cit9CiAjZW5kaWYKIAotTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cGVybWlzc2lvbkxldmVsKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4pCithdXRvIE5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjo6cGVybWlzc2lvbkxldmVsKGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYgc2VjdXJpdHlPcmlnaW4pIC0+IFBlcm1pc3Npb24KIHsKICNpZiBFTkFCTEUo
Tk9USUZJQ0FUSU9OUykKICAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5u
b3RpZmljYXRpb25zRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uOjpEZW5pZWQ7CisgICAgICAgIHJldHVybiBQZXJtaXNzaW9uOjpEZW5pZWQ7
CiAgICAgCiAgICAgcmV0dXJuIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1cHBsZW1lbnQ8V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+cG9saWN5Rm9yT3JpZ2luKHNlY3VyaXR5T3JpZ2luLnRv
U3RyaW5nKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2VjdXJpdHlPcmlnaW4pOwotICAg
IHJldHVybiBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246OkRlbmllZDsKKyAgICByZXR1
cm4gUGVybWlzc2lvbjo6RGVuaWVkOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKaW5kZXggMTIwNzFiMWM0NWFhZjg4
NGE2NjRkMTc3NTA0YTc4NzIxMGE4OTA3My4uOGUxNjkxMDQxNjY0MTJkMWFmN2U0ZTIzOTNlNWJh
NGFhZmU4MzYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmgKQEAgLTQ2LDEyICs0NiwxNiBAQCBjbGFzcyBXZWJQYWdlOwogY2xhc3Mg
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyIDogcHVibGljIFJlZkNvdW50ZWQ8
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyPiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFJlZjxOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI+IGNyZWF0ZShXZWJQ
YWdlKik7CisgICAgfk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOworCisg
ICAgdXNpbmcgUGVybWlzc2lvbiA9IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlz
c2lvbjsKKyAgICB1c2luZyBQZXJtaXNzaW9uSGFuZGxlciA9IFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudDo6UGVybWlzc2lvbkhhbmRsZXI7CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykK
LSAgICB2b2lkIHN0YXJ0UmVxdWVzdChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
LCBSZWZQdHI8V2ViQ29yZTo6Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKTsKKyAg
ICB2b2lkIHN0YXJ0UmVxdWVzdChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmLCBQ
ZXJtaXNzaW9uSGFuZGxlciYmKTsKICNlbmRpZgogICAgIAotICAgIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkNsaWVudDo6UGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJik7CisgICAgUGVybWlzc2lvbiBwZXJtaXNzaW9uTGV2ZWwoY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJik7CiAKICAgICAvLyBGb3IgdGVzdGluZyBwdXJw
b3NlcyBvbmx5LgogICAgIHZvaWQgc2V0UGVybWlzc2lvbkxldmVsRm9yVGVzdGluZyhjb25zdCBT
dHJpbmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKTsKQEAgLTYxLDcgKzY1LDEwIEBAIHBy
aXZhdGU6CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKFdlYlBhZ2Uq
KTsKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotICAgIEhhc2hNYXA8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjaz4+PiBtX3JlcXVlc3RzUGVyT3JpZ2luOworICAgIHVzaW5nIFBlcm1pc3Np
b25IYW5kbGVycyA9IFZlY3RvcjxQZXJtaXNzaW9uSGFuZGxlcj47CisgICAgc3RhdGljIHZvaWQg
Y2FsbFBlcm1pc3Npb25IYW5kbGVyc1dpdGgoUGVybWlzc2lvbkhhbmRsZXJzJiwgUGVybWlzc2lv
bik7CisKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSwgUGVybWlzc2lv
bkhhbmRsZXJzPiBtX3JlcXVlc3RzUGVyT3JpZ2luOwogICAgIFdlYlBhZ2UqIG1fcGFnZTsKICNl
bmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKaW5kZXggZTJmNjc4ZjUx
NDA4Y2RiOTkyOTljNzdhYzEzMmFhOTNmZGQzZDBjZC4uY2FlNTA5NWQzOTZlZjIxNzNhMjNhYzU2
NWU1YzU3YmQxNWU0M2RlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAKQEAg
LTcxLDE1ICs3MSwxMiBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6bm90aWZpY2F0aW9u
Q29udHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgV2ViTm90
aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmIGNhbGxi
YWNrKQordm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBlcm1pc3Npb25IYW5kbGVyJiYgcGVybWlzc2lv
bkhhbmRsZXIpCiB7Ci0gICAgYXV0byogc2VjdXJpdHlPcmlnaW4gPSBjb250ZXh0LT5zZWN1cml0
eU9yaWdpbigpOwotICAgIGlmICghc2VjdXJpdHlPcmlnaW4pIHsKLSAgICAgICAgaWYgKGNhbGxi
YWNrKQotICAgICAgICAgICAgY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5vdGlmaWNhdGlvbkNsaWVu
dDo6UGVybWlzc2lvbjo6RGVuaWVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBtX3Bh
Z2UtPm5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpLT5zdGFydFJlcXVlc3Qo
c2VjdXJpdHlPcmlnaW4tPmRhdGEoKSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIGF1dG8qIHNl
Y3VyaXR5T3JpZ2luID0gY29udGV4dC5zZWN1cml0eU9yaWdpbigpOworICAgIGlmICghc2VjdXJp
dHlPcmlnaW4pCisgICAgICAgIHJldHVybiBwZXJtaXNzaW9uSGFuZGxlcihOb3RpZmljYXRpb25D
bGllbnQ6OlBlcm1pc3Npb246OkRlbmllZCk7CisgICAgbV9wYWdlLT5ub3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIoKS0+c3RhcnRSZXF1ZXN0KHNlY3VyaXR5T3JpZ2luLT5kYXRh
KCksIFdURk1vdmUocGVybWlzc2lvbkhhbmRsZXIpKTsKIH0KIAogTm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6Y2hlY2tQZXJtaXNzaW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgK
aW5kZXggNDM5M2FlZDIxMTJiMjNlZjhjM2IwNjkzMTI1NGMzMDRjYzgwMWRlMi4uYTMxNDA5MDkw
ZDY0NTk1ZDE1ZmIwYTRmZTMxNzZlMzBhYWVjNTMxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25D
bGllbnQuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTm90aWZpY2F0aW9u
Q2xpZW50Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE5vdGlmaWNhdGlvblBlcm1p
c3Npb25DYWxsYmFjazsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKQEAgLTUxLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVk
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiwgUmVmUHRyPFdlYkNvcmU6Ok5vdGlmaWNhdGlvblBlcm1pc3Npb25D
YWxsYmFjaz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUGVybWlzc2lvbkhhbmRsZXImJikgb3ZlcnJpZGU7
CiAgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgV2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCA2YTVk
ZWFmZTkwNGQ1MzMzYWIwOWNlZTQ1MTFhZjhmNGY2OWE4MmRiLi4wMmYxZGIwNDNkODg3ZDI1ZGFm
NjIyOTFhZDJkN2ZkZWRiZTRhZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAt
NTAsMTAgKzUwLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogICAgIHZvaWQgbm90aWZp
Y2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiopIG92ZXJyaWRlOwog
ICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAg
IHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFJlZlB0cjxXZWJDb3JlOjpOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIFBlcm1pc3Npb25IYW5kbGVyJiYpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgV2ViTm90aWZpY2F0aW9uUG9s
aWN5TGlzdGVuZXIgKik7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgV2ViTm90aWZpY2F0aW9uUG9saWN5TGlzdGVuZXIgKik7CiAK
ICAgICBXZWJWaWV3ICptX3dlYlZpZXc7CiAgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6Tm90
aWZpY2F0aW9uPiwgUmV0YWluUHRyPFdlYk5vdGlmaWNhdGlvbj4+IG1fbm90aWZpY2F0aW9uTWFw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmluZGV4IGNkMjg3ZTdiNDUxNTI0NzU4NTky
NzNkMmQ2MGRiNjk2MjhmOGZjM2IuLmJiMTAwNzZkZjQ4MWFhNGE5NjU3MGRkY2NiMWJjOTcxZjBl
ZmQ3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQubW0KQEAgLTMzLDE4ICszMywxOCBA
QAogI2ltcG9ydCAiV2ViU2VjdXJpdHlPcmlnaW5JbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViVUlE
ZWxlZ2F0ZVByaXZhdGUuaCIKICNpbXBvcnQgIldlYlZpZXdJbnRlcm5hbC5oIgotI2ltcG9ydCA8
V2ViQ29yZS9Ob3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2suaD4KICNpbXBvcnQgPFdlYkNv
cmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2Vw
dGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2ltcG9ydCA8d3Rm
L2NvY29hL1ZlY3RvckNvY29hLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBAaW50
ZXJmYWNlIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIDogTlNPYmplY3QgPFdlYkFsbG93
RGVueVBvbGljeUxpc3RlbmVyPgogewotICAgIFJlZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9u
Q2FsbGJhY2s+IF9jYWxsYmFjazsKKyAgICBOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25I
YW5kbGVyIF9wZXJtaXNzaW9uSGFuZGxlcjsKIH0KLS0gKGlkKWluaXRXaXRoQ2FsbGJhY2s6KFJl
ZlB0cjxOb3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpY2FsbGJhY2s7CistIChpZClp
bml0V2l0aFBlcm1pc3Npb25IYW5kbGVyOihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25I
YW5kbGVyJiYpcGVybWlzc2lvbkhhbmRsZXI7CiBAZW5kCiAKIHN0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZU5vdGlmaWNhdGlvbklEKCkKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFdlYk5vdGlmaWNh
dGlvbkNsaWVudDo6bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpCiAgICAgZGVsZXRl
IHRoaXM7CiB9CiAKLXZvaWQgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpyZXF1ZXN0UGVybWlzc2lv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJOb3RpZmljYXRpb25Qb2xpY3lM
aXN0ZW5lciAqbGlzdGVuZXIpCit2b2lkIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6cmVxdWVzdFBl
cm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV2ViTm90aWZpY2F0aW9u
UG9saWN5TGlzdGVuZXIgKmxpc3RlbmVyKQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rv
cih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblJlcXVlc3RGcm9tT3JpZ2luOmxp
c3RlbmVyOik7CiAgICAgaWYgKCFbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2Vs
ZWN0b3I6c2VsZWN0b3JdKQpAQCAtMTMwLDE1ICsxMzAsMTUgQEAgdm9pZCBXZWJOb3RpZmljYXRp
b25DbGllbnQ6OnJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIFcKIAogICAgIG1fZXZlclJlcXVlc3RlZFBlcm1pc3Npb24gPSB0cnVlOwogCi0gICAgYXV0
byB3ZWJPcmlnaW4gPSBhZG9wdE5TKFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0
aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpXSk7CisgICAg
YXV0byB3ZWJPcmlnaW4gPSBhZG9wdE5TKFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0
V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpjb250ZXh0LnNlY3VyaXR5T3JpZ2luKCldKTsKICAg
ICAKICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCB3ZWJPcmlnaW4uZ2V0
KCksIGxpc3RlbmVyKTsKIH0KIAotdm9pZCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnJlcXVlc3RQ
ZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFJlZlB0cjxOb3RpZmlj
YXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2spCit2b2lkIFdlYk5vdGlmaWNhdGlv
bkNsaWVudDo6cmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgUGVybWlzc2lvbkhhbmRsZXImJiBwZXJtaXNzaW9uSGFuZGxlcikKIHsKICAgICBCRUdJTl9C
TE9DS19PQkpDX0VYQ0VQVElPTlMKLSAgICBhdXRvIGxpc3RlbmVyID0gYWRvcHROUyhbW1dlYk5v
dGlmaWNhdGlvblBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOldURk1vdmUo
Y2FsbGJhY2spXSk7CisgICAgYXV0byBsaXN0ZW5lciA9IGFkb3B0TlMoW1tXZWJOb3RpZmljYXRp
b25Qb2xpY3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhQZXJtaXNzaW9uSGFuZGxlcjpXVEZNb3Zl
KHBlcm1pc3Npb25IYW5kbGVyKV0pOwogICAgIHJlcXVlc3RQZXJtaXNzaW9uKGNvbnRleHQsIGxp
c3RlbmVyLmdldCgpKTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiB9CkBAIC0xNzAs
MjUgKzE3MCwyNSBAQCB1aW50NjRfdCBXZWJOb3RpZmljYXRpb25DbGllbnQ6Om5vdGlmaWNhdGlv
bklERm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qCiAKIEBpbXBsZW1lbnRhdGlvbiBX
ZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lcgogCi0tIChpZClpbml0V2l0aENhbGxiYWNrOihS
ZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKWNhbGxiYWNrCistIChpZClp
bml0V2l0aFBlcm1pc3Npb25IYW5kbGVyOihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb25I
YW5kbGVyJiYpcGVybWlzc2lvbkhhbmRsZXIKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGlu
aXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF9jYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spOworICAgIF9wZXJtaXNzaW9uSGFuZGxlciA9IFdURk1vdmUocGVybWlzc2lvbkhhbmRs
ZXIpOwogICAgIHJldHVybiBzZWxmOwogfQogCiAtICh2b2lkKWFsbG93CiB7Ci0gICAgaWYgKF9j
YWxsYmFjaykKLSAgICAgICAgX2NhbGxiYWNrLT5oYW5kbGVFdmVudChOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb246OkdyYW50ZWQpOworICAgIGlmIChfcGVybWlzc2lvbkhhbmRsZXIpCisg
ICAgICAgIF9wZXJtaXNzaW9uSGFuZGxlcihOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb246
OkdyYW50ZWQpOwogfQogCiAtICh2b2lkKWRlbnkKIHsKLSAgICBpZiAoX2NhbGxiYWNrKQotICAg
ICAgICBfY2FsbGJhY2stPmhhbmRsZUV2ZW50KE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bjo6RGVuaWVkKTsKKyAgICBpZiAoX3Blcm1pc3Npb25IYW5kbGVyKQorICAgICAgICBfcGVybWlz
c2lvbkhhbmRsZXIoTm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uOjpEZW5pZWQpOwogfQog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGUuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlm
aWNhdGlvbnNEZWxlZ2F0ZS5jcHAKaW5kZXggMWU4NjQwMmY5N2Q3MTM3MTZlYzgyM2M3ZjFhZTM2
ZTY0YWU4MGNkMi4uYjc0MTgxZmE0YTA3MWIzMzIyZjUwMjI3NzgxZDgyNzliY2M0OTNkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRGVza3Rv
cE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5jcHAKQEAgLTE3
Nyw4ICsxNzcsOSBAQCB2b2lkIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6OnJlcXVl
c3RQZXJtaXNzaW9uKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAgICAgICAgIG5vdGlmaWNhdGlv
bkRlbGVnYXRlKCktPnJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKG9yZyk7CiB9CiAKLXZv
aWQgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTo6cmVxdWVzdFBlcm1pc3Npb24oU2Vj
dXJpdHlPcmlnaW4qLCBSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiYmKQor
dm9pZCBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOjpyZXF1ZXN0UGVybWlzc2lvbihT
ZWN1cml0eU9yaWdpbiYsIFBlcm1pc3Npb25IYW5kbGVyJiYgcGVybWlzc2lvbkhhbmRsZXIpCiB7
CisgICAgcGVybWlzc2lvbkhhbmRsZXIoUGVybWlzc2lvbjo6RGVuaWVkKTsKIH0KIAogTm90aWZp
Y2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU6
OmNoZWNrUGVybWlzc2lvbihjb25zdCBVUkwmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkRlc2t0b3BO
b3RpZmljYXRpb25zRGVsZWdhdGUuaAppbmRleCAzNmE2MmMwN2U0OTljMTJiZjNhYTBiNjU5ZDMx
M2UwMjljZWYyNzU2Li44ODI2Yzk0MmYyMzQ4OTc3ZDA3MDM2NGNiMjY5ZDY3N2NmODRmYTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJEZXNr
dG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5oCkBAIC01Myw3
ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbiogb2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVz
dHJveWVkKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiogb2JqZWN0KTsKICAgICB2aXJ0dWFsIHZvaWQg
bm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3llZCgpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIFJlZlB0cjxXZWJDb3JlOjpO
b3RpZmljYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2s+JiYpOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIFBlcm1pc3Npb25IYW5kbGVy
JiYpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
IGNoZWNrUGVybWlzc2lvbihjb25zdCBVUkwmKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OGQ3NWEz
M2NkMDk4NTlmNDNiNTY4NDZkNWFkN2IwMGZkYzM5YmMyLi4zZDIwZTM4ZjU0OGQyMjA3Njg5ODA0
MzUxM2IwM2UzMjE5ZDA4N2UwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMTIgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVx
dWVzdFBlcm1pc3Npb24oKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMv
bm90aWZpY2F0aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQ6CisgICAgICAg
IFJlYmFzZWxpbmUgdGVzdCBub3cgdGhhdCB3ZSBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpbiB0aGUg
SlMgY29uc29sZSB3aGVuIHRyeWluZyB0byBjYWxsCisgICAgICAgIE5vdGlmaWNhdGlvbi5yZXF1
ZXN0UGVybWlzc2lvbigpIGluIGEgbm9uLXNlY3VyZSBjb250ZXh0LgorCisgICAgICAgICogaHR0
cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1wcm9taXNlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL3JlcXVlc3Qtd2l0aC1w
cm9taXNlLmh0bWw6IEFkZGVkLgorICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisK
IDIwMjEtMDUtMTIgIEFtaXIgTWFyayBKciAgPGFtaXJfbWFya0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW0JpZ1N1ciBXazEgUmVsZWFzZV0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXdpbGwtY2hhbmdlL3dpbGwtY2hhbmdlLWZpeHBvcy1jYi10cmFuc2Zvcm0tMS5odG1s
IGlzIGEgZmxha3kgaW1hZ2UgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5k
ZXggMDMxYjA4NDQyY2RmMDQ3NzliODE1NGM5MzJiMmFlY2E3NTJjNjJlNy4uNjkxZmYzNjdiNTQx
ZmY4MjUzNDBmNTI5NGU4YjI3ODE3ZDFhYTI5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91
bGQgcmV0dXJuIGEgUHJvbWlzZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1NzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgRHJvcCBtYW51YWwgdGVzdCB0aGF0IHNob3VsZCBub3QgaGF2ZSBiZWVuIGltcG9y
dGVkIGZyb20gV1BULiBUaGUgdGVzdCBoYXBwZW5lZCB0byBiZSB1c2luZyBOb3RpZmljYXRpb24u
cmVxdWVzdFBlcm1pc3Npb24oKQorICAgICAgICBpbnRlcm5hbGx5LgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVu
dC13aXRoaW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2ZldGNo
LWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbDogUmVtb3ZlZC4KKwogMjAyMS0wNS0x
MiAgWmlyYW4gU3VuICA8enN1bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFdyb25nIHBvc2l0aW9u
IGZvciBvcnRob2dvbmFsIHBvc2l0aW9uZWQgZWxlbWVudCB3aXRoIHdyaXRpbmctbW9kZTogdmVy
dGljYWwtcmwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9u
cy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3VyZS1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb24taW4tbm9uLXNlY3Vy
ZS1jb250ZXh0LWV4cGVjdGVkLnR4dAppbmRleCA3YjE4OTU3ZWFlNWJjZGExMTU2NDFiZGJjM2Mz
OGNlYmFkNTAxNzY4Li4yMjZmNzVhYzdmMzdiOGFkNTI3ZWJjM2U1ODlmODA4YTA0OTgyMTdmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvbm90aWZpY2F0
aW9uLWluLW5vbi1zZWN1cmUtY29udGV4dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbi1pbi1ub24tc2VjdXJlLWNvbnRl
eHQtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNSBAQAorQ09OU09MRSBNRVNTQUdFOiBUaGUgTm90
aWZpY2F0aW9uIHBlcm1pc3Npb24gbWF5IG9ubHkgYmUgcmVxdWVzdGVkIGluIGEgc2VjdXJlIGNv
bnRleHQuCitDT05TT0xFIE1FU1NBR0U6IFRoZSBOb3RpZmljYXRpb24gcGVybWlzc2lvbiBtYXkg
b25seSBiZSByZXF1ZXN0ZWQgaW4gYSBzZWN1cmUgY29udGV4dC4KIAogUEFTUyBOb3RpZmljYXRp
b24gcGVybWlzc2lvbiBpbiBpbnNlY3VyZSBjb250ZXh0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRo
LXByb21pc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxYmI4NzIxMDQxYjJkZGI5NTNjODhj
MmNlYzQzNzhjMTg2YTcwMjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTYgQEAKK1RoaXMgdGVzdHMgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24ncyByZXR1cm5l
ZCBQcm9taXNlCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitSZXF1ZXN0aW5nIHBl
cm1pc3Npb24gd2l0aCBkZWZhdWx0IHBlcm1pc3Npb24KK1BBU1MgTm90aWZpY2F0aW9uLnBlcm1p
c3Npb24gaXMgImRlZmF1bHQiCitQQVNTIHBlcm1pc3Npb24gaXMgZ3JhbnRlZAorUEFTUyBOb3Rp
ZmljYXRpb24ucGVybWlzc2lvbiBpcyAiZ3JhbnRlZCIKK1JlcXVlc3RpbmcgcGVybWlzc2lvbiB3
aXRoIG5vbi1kZWZhdWx0IHBlcm1pc3Npb24KK1BBU1MgcGVybWlzc2lvbiBpcyBkZW5pZWQKK1BB
U1MgTm90aWZpY2F0aW9uLnBlcm1pc3Npb24gaXMgImRlbmllZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMvcmVxdWVzdC13aXRoLXByb21pc2UuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbm90aWZpY2F0aW9ucy9yZXF1ZXN0LXdpdGgtcHJvbWlzZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiZjUzMTlmNmM3ZTM1ZTc4ZGU2NDM2ZWRjNjQxMGQwODA5ZDEzMDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25vdGlmaWNhdGlvbnMv
cmVxdWVzdC13aXRoLXByb21pc2UuaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgTm90aWZpY2F0aW9uLnBlcm1pc3Np
b24ncyByZXR1cm5lZCBQcm9taXNlIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rp
b24gc3RlcDEoKSB7CisgICAgZGVidWcoIlJlcXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIGRlZmF1
bHQgcGVybWlzc2lvbiIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9u
LnBlcm1pc3Npb24iLCAiZGVmYXVsdCIpOworICAgIE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlz
c2lvbigpLnRoZW4oKHBlcm1pc3Npb24pID0+IHsKKyAgICAgICAgaWYgKHBlcm1pc3Npb24gPT0g
J2dyYW50ZWQnKQorICAgICAgICAgICAgdGVzdFBhc3NlZCgicGVybWlzc2lvbiBpcyBncmFudGVk
Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoInBlcm1pc3Npb24gc2hv
dWxkIGJlIGdyYW50ZWQsIGJ1dCBpcyAiICsgcGVybWlzc2lvbik7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiTm90aWZpY2F0aW9uLnBlcm1pc3Npb24iLCAiZ3JhbnRlZCIpOworICAg
ICAgICBzZXRUaW1lb3V0KHN0ZXAyLCAwKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gc3RlcDIo
KSB7CisgICAgZGVidWcoIlJlcXVlc3RpbmcgcGVybWlzc2lvbiB3aXRoIG5vbi1kZWZhdWx0IHBl
cm1pc3Npb24iKTsKKyAgICB0ZXN0UnVubmVyLmRlbnlXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9u
KHNlbGYub3JpZ2luKTsKKyAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVu
KChwZXJtaXNzaW9uKSA9PiB7CisgICAgICAgIGlmIChwZXJtaXNzaW9uID09ICdkZW5pZWQnKQor
ICAgICAgICAgICAgdGVzdFBhc3NlZCgicGVybWlzc2lvbiBpcyBkZW5pZWQiKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgdGVzdEZhaWxlZCgicGVybWlzc2lvbiBzaG91bGQgYmUgZGVuaWVk
LCBidXQgaXMgIiArIHBlcm1pc3Npb24pOworICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
Ik5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uIiwgImRlbmllZCIpOworICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICB9KTsKK30KKworc3RlcDEoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvZmV0Y2gtZXZlbnQtd2l0aGluLXN3LW1hbnVhbC5odHRwcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0
dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ3ZDdkOWY0
NDkwNWU4M2ViMmI1NDMzYzIyODE4Nzc2ODY4NGM4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRo
aW4tc3ctbWFudWFsLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAs
MCBAQAotCi1GQUlMIE5vdGlmaWNhdGlvbiByZXF1ZXN0cyBpbnRlcmNlcHRlZCBib3RoIGZyb20g
d2luZG93IGFuZCBTVyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnTm90
aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbicpCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL2ZldGNoLWV2ZW50LXdpdGhpbi1zdy1tYW51YWwuaHR0cHMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTVhMmU5NWJkMzlkNDExYTI1NzlkZDRlMDY2
MTc5MWNkZTZkMTc1Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9mZXRjaC1ldmVudC13aXRoaW4tc3ctbWFudWFsLmh0dHBz
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3Rlc3QtaGVscGVycy5zdWIuanMiPjwvc2NyaXB0PgotPGJvZHk+Ci08c2Ny
aXB0PgotY29uc3Qgd29ya2VyID0gJ3Jlc291cmNlcy9mZXRjaC1ldmVudC13aXRoaW4tc3ctd29y
a2VyLmpzJzsKLQotZnVuY3Rpb24gd2FpdChtcykgewotICByZXR1cm4gbmV3IFByb21pc2UociA9
PiBzZXRUaW1lb3V0KHIsIG1zKSk7Ci19Ci0KLWZ1bmN0aW9uIHJlc2V0KCkgewotICBmb3IgKGNv
bnN0IGlmcmFtZSBvZiBbLi4uZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRlc3QtaWZyYW1l
JyldKSB7Ci0gICAgaWZyYW1lLnJlbW92ZSgpOwotICB9Ci0gIHJldHVybiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkudGhlbihyZWdpc3RyYXRpb25zID0+IHsKLSAg
ICByZXR1cm4gUHJvbWlzZS5hbGwocmVnaXN0cmF0aW9ucy5tYXAociA9PiByLnVucmVnaXN0ZXIo
KSkpOwotICB9KS50aGVuKCgpID0+IGNhY2hlcy5rZXlzKCkpLnRoZW4oY2FjaGVLZXlzID0+IHsK
LSAgICByZXR1cm4gUHJvbWlzZS5hbGwoY2FjaGVLZXlzLm1hcChjID0+IGNhY2hlcy5kZWxldGUo
YykpKTsKLSAgfSk7Ci19Ci0KLWFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKHJlc2V0KTsKLQotZnVu
Y3Rpb24gcmVnUmVhZHkocmVnKSB7Ci0gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVq
ZWN0KSA9PiB7Ci0gICAgaWYgKHJlZy5hY3RpdmUpIHsKLSAgICAgIHJlc29sdmUoKTsKLSAgICAg
IHJldHVybjsKLSAgICB9Ci0gICAgY29uc3QgbmV4dFdvcmtlciA9IHJlZy53YWl0aW5nIHx8IHJl
Zy5pbnN0YWxsaW5nOwotCi0gICAgbmV4dFdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNo
YW5nZScsICgpID0+IHsKLSAgICAgIGlmIChuZXh0V29ya2VyLnN0YXRlID09ICdyZWR1bmRhbnQn
KSB7Ci0gICAgICAgIHJlamVjdChFcnJvcihgU2VydmljZSB3b3JrZXIgZmFpbGVkIHRvIGluc3Rh
bGxgKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICAgIH0KLSAgICAgIGlmIChuZXh0V29ya2VyLnN0
YXRlID09ICdhY3RpdmF0ZWQnKSB7Ci0gICAgICAgIHJlc29sdmUoKTsKLSAgICAgIH0KLSAgICB9
KTsKLSAgfSk7Ci19Ci0KLWZ1bmN0aW9uIGdldENvb2tpZXMoKSB7Ci0gIHJldHVybiBuZXcgTWFw
KAotICAgIGRvY3VtZW50LmNvb2tpZQotICAgICAgLnNwbGl0KC87L2cpCi0gICAgICAubWFwKGMg
PT4gYy50cmltKCkuc3BsaXQoJz0nKS5tYXAocyA9PiBzLnRyaW0oKSkpCi0gICk7Ci19Ci0KLWZ1
bmN0aW9uIHJlZ2lzdGVyU3dBbmRPcGVuRnJhbWUoKSB7Ci0gIHJldHVybiByZXNldCgpLnRoZW4o
KCkgPT4gbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIod29ya2VyLCB7c2NvcGU6ICdy
ZXNvdXJjZXMvJ30pKQotICAgIC50aGVuKHJlZyA9PiByZWdSZWFkeShyZWcpKQotICAgIC50aGVu
KCgpID0+IHdpdGhfaWZyYW1lKCdyZXNvdXJjZXMvc2ltcGxlLmh0bWwnKSk7Ci19Ci0KLWZ1bmN0
aW9uIHJhY2VCcm9hZGNhc3RBbmRDb29raWUoY2hhbm5lbCwgY29va2llKSB7Ci0gIGNvbnN0IGlu
aXRpYWxDb29raWUgPSBnZXRDb29raWVzKCkuZ2V0KGNvb2tpZSk7Ci0gIGxldCBkb25lID0gZmFs
c2U7Ci0KLSAgcmV0dXJuIFByb21pc2UucmFjZShbCi0gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9
PiB7Ci0gICAgICBjb25zdCBiYyA9IG5ldyBCcm9hZGNhc3RDaGFubmVsKGNoYW5uZWwpOwotICAg
ICAgYmMub25tZXNzYWdlID0gKCkgPT4gewotICAgICAgICBiYy5jbG9zZSgpOwotICAgICAgICBy
ZXNvbHZlKCdicm9hZGNhc3QnKTsKLSAgICAgIH07Ci0gICAgfSksCi0gICAgKGZ1bmN0aW9uIGNo
ZWNrQ29va2llKCkgewotICAgICAgLy8gU3RvcCBwb2xsaW5nIGlmIHRoZSBicm9hZGNhc3QgY2hh
bm5lbCB3b24KLSAgICAgIGlmIChkb25lID09IHRydWUpIHJldHVybjsKLSAgICAgIGlmIChnZXRD
b29raWVzKCkuZ2V0KGNvb2tpZSkgIT0gaW5pdGlhbENvb2tpZSkgcmV0dXJuICdjb29raWUnOwot
Ci0gICAgICByZXR1cm4gd2FpdCgyMDApLnRoZW4oY2hlY2tDb29raWUpOwotICAgIH0oKSkKLSAg
XSkudGhlbih2YWwgPT4gewotICAgIGRvbmUgPSB0cnVlOwotICAgIHJldHVybiB2YWw7Ci0gIH0p
OwotfQotCi1wcm9taXNlX3Rlc3QoKCkgPT4gewotICByZXR1cm4gTm90aWZpY2F0aW9uLnJlcXVl
c3RQZXJtaXNzaW9uKCkudGhlbihwZXJtaXNzaW9uID0+IHsKLSAgICBpZiAocGVybWlzc2lvbiAh
PSAiZ3JhbnRlZCIpIHsKLSAgICAgIHRocm93IEVycm9yKCdZb3UgbXVzdCBhbGxvdyBub3RpZmlj
YXRpb25zIGZvciB0aGlzIG9yaWdpbiBiZWZvcmUgcnVubmluZyB0aGlzIHRlc3QuJyk7Ci0gICAg
fQotICAgIHJldHVybiByZWdpc3RlclN3QW5kT3BlbkZyYW1lKCk7Ci0gIH0pLnRoZW4oaWZyYW1l
ID0+IHsKLSAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7Ci0gICAgICAv
LyBJbiB0aGlzIHRlc3QsIHRoZSBzZXJ2aWNlIHdvcmtlciB3aWxsIHBpbmcgdGhlICdpY29uLXJl
cXVlc3QnIGNoYW5uZWwKLSAgICAgIC8vIGlmIGl0IGludGVyY2VwdHMgYSByZXF1ZXN0IGZvciAn
bm90aWZpY2F0aW9uX2ljb24ucHknLiBJZiB0aGUgcmVxdWVzdAotICAgICAgLy8gcmVhY2hlcyB0
aGUgc2VydmVyIGl0IHNldHMgdGhlICdub3RpZmljYXRpb24nIGNvb2tpZSB0byB0aGUgdmFsdWUg
Z2l2ZW4KLSAgICAgIC8vIGluIHRoZSBVUkwuICJyYWNlQnJvYWRjYXN0QW5kQ29va2llIiBtb25p
dG9ycyBib3RoIGFuZCByZXR1cm5zIHdoaWNoCi0gICAgICAvLyBoYXBwZW5zIGZpcnN0LgotICAg
ICAgY29uc3QgcmFjZSA9IHJhY2VCcm9hZGNhc3RBbmRDb29raWUoJ2ljb24tcmVxdWVzdCcsICdu
b3RpZmljYXRpb24nKTsKLSAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IG5ldyBpZnJhbWUuY29u
dGVudFdpbmRvdy5Ob3RpZmljYXRpb24oJ3Rlc3QnLCB7Ci0gICAgICAgIGljb246IGBub3RpZmlj
YXRpb25faWNvbi5weT9zZXQtY29va2llLW5vdGlmaWNhdGlvbj0ke01hdGgucmFuZG9tKCl9YAot
ICAgICAgfSk7Ci0gICAgICBub3RpZmljYXRpb24uY2xvc2UoKTsKLQotICAgICAgcmV0dXJuIHJh
Y2UudGhlbih3aW5uZXIgPT4gewotICAgICAgICBhc3NlcnRfZXF1YWxzKHdpbm5lciwgJ2Jyb2Fk
Y2FzdCcsICdUaGUgc2VydmljZSB3b3JrZXIgaW50ZXJjZXB0ZWQgdGhlIGZyb20td2luZG93IG5v
dGlmaWNhdGlvbiBpY29uIHJlcXVlc3QnKTsKLSAgICAgIH0pOwotICAgIH0pLnRoZW4oKCkgPT4g
ewotICAgICAgLy8gU2ltaWxhciByYWNlIHRvIGFib3ZlLCBidXQgdGhpcyB0aW1lIHRoZSBzZXJ2
aWNlIHdvcmtlciByZXF1ZXN0cyB0aGUKLSAgICAgIC8vIG5vdGlmaWNhdGlvbi4KLSAgICAgIGNv
bnN0IHJhY2UgPSByYWNlQnJvYWRjYXN0QW5kQ29va2llKCdpY29uLXJlcXVlc3QnLCAnbm90aWZp
Y2F0aW9uJyk7Ci0gICAgICBpZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaChgc2hvdy1ub3RpZmlj
YXRpb24/c2V0LWNvb2tpZS1ub3RpZmljYXRpb249JHtNYXRoLnJhbmRvbSgpfWApOwotCi0gICAg
ICByZXR1cm4gcmFjZS50aGVuKHdpbm5lciA9PiB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMod2lu
bmVyLCAnYnJvYWRjYXN0JywgJ1RoZSBzZXJ2aWNlIHdvcmtlciBpbnRlcmNlcHRlZCB0aGUgZnJv
bS1zZXJ2aWNlLXdvcmtlciBub3RpZmljYXRpb24gaWNvbiByZXF1ZXN0Jyk7Ci0gICAgICB9KTsK
LSAgICB9KQotICB9KTsKLX0sIGBOb3RpZmljYXRpb24gcmVxdWVzdHMgaW50ZXJjZXB0ZWQgYm90
aCBmcm9tIHdpbmRvdyBhbmQgU1dgKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>