<?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>226386</bug_id>
          
          <creation_ts>2021-05-28 11:44:39 -0700</creation_ts>
          <short_desc>Same-site lax cookies not sent by fetch event handler after page reload</short_desc>
          <delta_ts>2022-02-04 12:20:44 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>Safari 14</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=219650</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steffen Weber">steffen.weber</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>erik.witt</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>martiminchev</cc>
    
    <cc>pvollan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764860</commentid>
    <comment_count>0</comment_count>
    <who name="Steffen Weber">steffen.weber</who>
    <bug_when>2021-05-28 11:44:39 -0700</bug_when>
    <thetext>Requests sent by Safari lack SameSite=Lax cookies when a service worker with a fetch event handler is involved.

How to reproduce:

1. Fetch a SameSite=Lax demo cookie by visiting https://www.computerbase.de/api/samesite-demo-cookie (*)
2. Search Google for &quot;computerbase&quot;
3. Open the &quot;Network&quot; tab of the developer tools
4. Click on the search result that leads to our homepage (may not the first one depending on your location)
5. In the &quot;Network&quot; tab, find the &quot;document&quot; request and have a look at the cookies sent by Safari. For now, the &quot;samesite-demo-cookie&quot; is there.
6. Now reload our homepage. (Maybe this causes our Service Worker to fully initialize / activate?)
7. Repeat steps 2-4. Now the cookie doesn&apos;t get sent anymore.

(*) I&apos;ve created this script because other cookies set by ComputerBase don&apos;t use SameSite=Lax in Safari anymore because of this bug.

The fetch event handler of our service worker doesn&apos;t handle all requests, for some requests it just returns &quot;null&quot; to let the browser handle the request (as if the service worker didn&apos;t exist). For example, the fetch event handler of our service worker returns &quot;null&quot; for all forum URLs (all URLs starting with &quot;https://www.computerbase.de/forum/&quot;). It turns out that forum URLs have no problem with same-site cookies: When I click on the search results entry for our forum (should be displayed when searching for &quot;computerbase&quot;, if not then search for &quot;computerbase forum&quot;) then the same-site demo cookie is always there as expected. If I then go back to the SERP and click on our homepage link again, the cookie is missing. Go back to the SERP and click on our forum link again, the cookie is there again. And so on...

So we have the following: 1) Same-site cookie is sent to our homepage on first try, bot not anymore after one or two reloads (probably after the service-worker has been initialized and our fetch event handler is used). 2) Same-site cookie is always sent to our forum pages who are ignored by the fetch event handler.

I think the combination of these two observations indicates that there is an issue with same-site cookies for requests sent by the fetch event handler.

Split from Bug #219650 as suggested by John Wilander.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764870</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-05-28 11:55:20 -0700</bug_when>
    <thetext>Thanks, Steffen! Cc’ing Youenn who knows most about Fetch and ServiceWorkers. Youenn, I can assist on the SameSite cookie part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766094</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-02 12:15:14 -0700</bug_when>
    <thetext>Hi Steffen, did you notice the lack of cookies from service worker by using web inspector or by noticing issues with the document being received or through server logs?
If it is web inspector only, I am wondering whether we do not have an issue retrieving  request/response cookie information when requests/responses go through the service worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766095</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-02 12:15:50 -0700</bug_when>
    <thetext>Sadly, debugging service worker in STP seems broken, I do not see service workers be listed in the debug menu even though they are serving content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766096</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-02 12:17:04 -0700</bug_when>
    <thetext>Per Arne, I know there was a regression that we fixed some time ago where sandbox hardening broke service worker debugging. Maybe the issue came back.
Bisecting might be feasible here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766475</commentid>
    <comment_count>5</comment_count>
    <who name="Steffen Weber">steffen.weber</who>
    <bug_when>2021-06-03 12:26:28 -0700</bug_when>
    <thetext>Initially, I only looked at the Safari Developer Tools to check the sent cookies but I&apos;ve now verified that they are indeed not sent (by temporarily modifying our homepage to dump all cookies for requests originating at a specific BrowserStack IP address).

Btw, I&apos;m able to reproduce the issue by simply repeating step 6: The same-site cookie is gone after the second reload. Step 7 is not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766858</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-04 11:45:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/78878853&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767384</commentid>
    <comment_count>7</comment_count>
      <attachid>430733</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-07 03:04:57 -0700</bug_when>
    <thetext>Created attachment 430733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767385</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-07 03:07:09 -0700</bug_when>
    <thetext>Steffen, I wrote the following test that is using same site cookie and everything seems to work as expected from this test.
I used &apos;secure; HttpOnly; SameSite=Lax&apos; as seems to be the case in your website.

Let me know if you can spot a difference with your setup.

As can be seen, the cookies are not provided in web inspector when doing a fetch through service worker. This should probably be fixed in a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767712</commentid>
    <comment_count>9</comment_count>
      <attachid>430733</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-08 02:30:47 -0700</bug_when>
    <thetext>Comment on attachment 430733
Patch

Might be nice to have a test landed so adding r?
Steffen, please let me know if there is any difference with your setup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768899</commentid>
    <comment_count>10</comment_count>
    <who name="Steffen Weber">steffen.weber</who>
    <bug_when>2021-06-11 02:51:27 -0700</bug_when>
    <thetext>I&apos;m on vacation. I&apos;ll have another look at the end of June. Sorry!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772250</commentid>
    <comment_count>11</comment_count>
    <who name="Steffen Weber">steffen.weber</who>
    <bug_when>2021-06-24 04:58:54 -0700</bug_when>
    <thetext>I&apos;m not familiar with Web Platform Tests but does the test actually simulate the process of navigating away from the site and back to the site via an external link? This is the crucial step that triggers the issue.

It definitely isn&apos;t just a cosmetic Developer Tools issue because the problem was reported to us by actual Safari users (who were logged-out after clicking on Google result links).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821014</commentid>
    <comment_count>12</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-07 06:19:15 -0800</bug_when>
    <thetext>*** Bug 232440 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821016</commentid>
    <comment_count>13</comment_count>
    <who name="">erik.witt</who>
    <bug_when>2021-12-07 06:31:20 -0800</bug_when>
    <thetext>Hey Youenn, thanks for linking to this issue. Is there any chances this gets fixed? I was concerced about the progress on my ticket: https://bugs.webkit.org/show_bug.cgi?id=232440 but seeing this one is open since May, I am getting a bit anxious.

This is a huge issue on effected sites as I outlined in the ticket above. Happy to help if you need any more details</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821017</commentid>
    <comment_count>14</comment_count>
      <attachid>446168</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-07 06:34:00 -0800</bug_when>
    <thetext>Created attachment 446168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821018</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-07 06:34:27 -0800</bug_when>
    <thetext>(In reply to erik.witt from comment #13)
&gt; Hey Youenn, thanks for linking to this issue. Is there any chances this gets
&gt; fixed? I was concerced about the progress on my ticket:
&gt; https://bugs.webkit.org/show_bug.cgi?id=232440 but seeing this one is open
&gt; since May, I am getting a bit anxious.
&gt; 
&gt; This is a huge issue on effected sites as I outlined in the ticket above.
&gt; Happy to help if you need any more details

I think I have a fix. You repro steps helped a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821463</commentid>
    <comment_count>16</comment_count>
      <attachid>446330</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-08 00:46:40 -0800</bug_when>
    <thetext>Created attachment 446330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821470</commentid>
    <comment_count>17</comment_count>
      <attachid>446332</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-08 01:28:58 -0800</bug_when>
    <thetext>Created attachment 446332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821541</commentid>
    <comment_count>18</comment_count>
      <attachid>446332</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-08 07:19:54 -0800</bug_when>
    <thetext>Comment on attachment 446332
Patch

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

&gt; Source/WebCore/loader/FrameLoader.h:320
&gt; +    enum class IsServiceWorkerNavigationLoad { No, Yes };

: bool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821552</commentid>
    <comment_count>19</comment_count>
      <attachid>446364</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-08 07:40:33 -0800</bug_when>
    <thetext>Created attachment 446364
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821566</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-08 08:28:21 -0800</bug_when>
    <thetext>Committed r286656 (244969@main): &lt;https://commits.webkit.org/244969@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446364.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837551</commentid>
    <comment_count>21</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-02-04 12:20:44 -0800</bug_when>
    <thetext>This change should be present in STP 139, iOS 15.4 Beta, and macOS 12.3 Beta.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430733</attachid>
            <date>2021-06-07 03:04:57 -0700</date>
            <delta_ts>2021-12-07 06:33:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226386-20210607120456.patch</filename>
            <type>text/plain</type>
            <size>5786</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NDUzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDk3OWI3ZDE3NjAxZGI4ZmU2ZmJk
Mjc0OGNlNmNiNDU0MmZjODBjZC4uMDJjYjI3NzExOGViMWZlNzJhNzllN2Q0MzJmMTljMWNlZDRh
ZTcyYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA2LTA3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYW1lLXNpdGUgbGF4IGNvb2tpZXMgbm90IHNl
bnQgYnkgZmV0Y2ggZXZlbnQgaGFuZGxlciBhZnRlciBwYWdlIHJlbG9hZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83ODg3ODg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRvIGNvdmVyIHNhbWVzaXRlIGxheCBjb29raWVzLgor
CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtY29va2ll
Mi5weTogQWRkZWQuCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcmVzb3VyY2VzL3NldC1jb29raWUyLnB5OiBBZGRlZC4KKyAgICAgICAgKG1haW4p
OgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgtd29y
a2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jIGRvVGVzdCk6CisgICAgICAgIChkb0ZldGNo
KToKKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0
dHBzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA2LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgbGlid2VicnRjIHRvIE05MgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtY29va2ll
LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQt
Y29va2llLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNzMzZTc4Y2YwZGJlZjA2MzY5NWY2Nzc3YTZjNDgzNDc0
MDgwZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvcmVzb3VyY2VzL2dldC1jb29raWUucHkKQEAgLTAsMCArMSw2IEBACitkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LVR5
cGUiLCAidGV4dC9hc2NpaSIpLAorICAgIF0KKyAgICBib2R5ID0gcmVxdWVzdC5oZWFkZXJzLmdl
dCgiQ29va2llIiwgIiIpCisgICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1s
YXgucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Nl
dC1jb29raWUtbGF4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBkNzhkNTZmYWRjNjQzNDlhMGY5YWQ0NDI5NzA2
Y2VmMDg3MzFjMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3NldC1jb29raWUtbGF4LnB5CkBAIC0wLDAgKzEsMTIgQEAK
K2ltcG9ydCBzeXMKK2ltcG9ydCB1cmxwYXJzZQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3Bv
bnNlKToKKyAgICBwYXJhbXMgPSB1cmxwYXJzZS5wYXJzZV9xcyhyZXF1ZXN0LnVybF9wYXJ0cy5x
dWVyeSkKKyAgICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNh
dGlvbi9qc29uIiksCisgICAgICAgICgiU2V0LUNvb2tpZSIsICJ7bmFtZVswXX09MTsgcGF0aD0v
OyBzZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXgiLmZvcm1hdCgqKnBhcmFtcykpCisgICAg
XQorICAgIGJvZHkgPSAie30iCisgICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgtd29y
a2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2ll
LWxheC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRjN2FiNDZhMjk2MmY1ZmM4YzI1OTFhNGUyYzky
YTExMmExN2UxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzCkBAIC0wLDAgKzEsMjMgQEAKK2Fz
eW5jIGZ1bmN0aW9uIGRvVGVzdChldmVudCkKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAoIWV2
ZW50LmRhdGEuc3RhcnRzV2l0aCgidGVzdC1jb29raWUiKSkgeworICAgICAgICAgICAgZXZlbnQu
c291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2UgZnJv
bSBjbGllbnQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNv
bnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInJlc291cmNlcy9nZXQtY29va2llLnB5Iik7Cisg
ICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShhd2FpdCByZXNwb25zZS50ZXh0KCkpOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKGUpOwor
ICAgIH0KK30KKworZnVuY3Rpb24gZG9GZXRjaChldmVudCkKK3sKKyAgICBpZiAoZXZlbnQucmVx
dWVzdC51cmwuaW5jbHVkZXMoImZldGNoVGVzdCIpKQorICAgICAgICBldmVudC5yZXNwb25kV2l0
aChmZXRjaChldmVudC5yZXF1ZXN0KSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIGRvVGVzdCk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgZG9GZXRjaCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1j
b29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJkMWM0ZjQ4ZThjZDU0YzdiZmYxN2YyMWM3ODQwNjA2MjE5YzcxODUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBTZXR1cCB3b3JrZXIK
K1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBzYW1lc2l0ZSBsYXggY29va2llIC0gc2VydmljZSB3
b3JrZXIgaW50ZXJuYWwgZmV0Y2gKK1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBzYW1lc2l0ZSBs
YXggY29va2llIC0gZmV0Y2ggc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29v
a2llLWxheC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZTZhY2JiMmYxZTMwMjExMjQwMjVhNGE4
YWYwYzZmOWQ0ZmIzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBzY29wZSA9ICIiOwor
dmFyIGFjdGl2ZVdvcmtlcjsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
dmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVy
KCJzYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIGFj
dGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgaWYgKGFjdGl2ZVdvcmtlcikK
KyAgICAgICAgcmV0dXJuOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nOworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZl
V29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAg
ICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAg
ICAgcmVzb2x2ZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsK
KworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgY29va2llVmFsdWUg
PSAic2FtZXNpdGUtY29va2llLXRlc3QiOworICAgIGF3YWl0IGZldGNoKCJyZXNvdXJjZXMvc2V0
LWNvb2tpZS1sYXgucHk/bmFtZT0iICsgY29va2llVmFsdWUpOworCisgICAgdmFyIHByb21pc2Ug
PSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOworCisg
ICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJ0ZXN0LWNvb2tpZSIpOworICAgIGNvbnN0IHJl
c3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgYXNzZXJ0X3RydWUocmVzdWx0LmluY2x1ZGVzKGNv
b2tpZVZhbHVlICsgIj0xIikpOworfSwgIlRlc3Qgc2VydmljZSB3b3JrZXIgc2FtZXNpdGUgbGF4
IGNvb2tpZSAtIHNlcnZpY2Ugd29ya2VyIGludGVybmFsIGZldGNoIik7CisKK3Byb21pc2VfdGVz
dChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInNhbWVzaXRlLWNv
b2tpZS10ZXN0LWZldGNoIjsKKyAgICBhd2FpdCBmZXRjaCgicmVzb3VyY2VzL3NldC1jb29raWUt
bGF4LnB5P25hbWU9IiArIGNvb2tpZVZhbHVlKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgZmV0Y2goInJlc291cmNlcy9nZXQtY29va2llLnB5P2ZldGNoVGVzdCIpOworICAgIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKKyAgICBhc3NlcnRfdHJ1ZShyZXN1bHQu
aW5jbHVkZXMoY29va2llVmFsdWUgKyAiPTEiKSk7Cit9LCAiVGVzdCBzZXJ2aWNlIHdvcmtlciBz
YW1lc2l0ZSBsYXggY29va2llIC0gZmV0Y2ggc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIiKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446168</attachid>
            <date>2021-12-07 06:34:00 -0800</date>
            <delta_ts>2021-12-08 00:46:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226386-20211207153358.patch</filename>
            <type>text/plain</type>
            <size>12800</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU1ZjVlYzJmZDhiMDE3
ZTE5YjFlYzc2Mzc1YWNjZWU3MGUxMWUzNy4uYmU2OWYxYzNjNDg2MTZjYThlN2I1YTBmYzk1MDk4
MWE4MmM0MDRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYW1lLXNpdGUgbGF4IGNv
b2tpZXMgbm90IHNlbnQgYnkgZmV0Y2ggZXZlbnQgaGFuZGxlciBhZnRlciBwYWdlIHJlbG9hZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODg3ODg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEbyBub3Qgb3ZlcndyaXRlIHJlcXVlc3QgZmllbGRz
IGluIGNhc2UgdGhlIGRlc3RpbmF0aW9uIG9mIHRoZSByZXF1ZXN0IGlzIERvY3VtZW50IG9yIElG
cmFtZSBldmVuIGlmIHRoaXMgaXMgbm90IGEgbWFpbiByZXNvdXJjZSBsb2FkLgorICAgICAgICBU
aGlzIGNhc2UgaGFwcGVucyB3aGVuIGEgc2VydmljZSB3b3JrZXIgZmV0Y2hlcyBhIG5hdmlnYXRp
b24gcmVxdWVzdCBleHBvc2VkIGZyb20gdGhlIGZldGNoIGV2ZW50LgorCisgICAgICAgIFRlc3Rz
OiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLXNhbWUtY29v
a2llLWxheC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLmh0bWwKKworICAgICAgICAqIGxvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHA6CisKIDIwMjEtMTItMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCBmNWM4MDk1NzAwNTVkNGE2NTU0OThiMjcyNjM0ODAxNGUzM2FiZDA1Li40OTBjYzQzNGI2
OGQ1OWEyNGMyZDkxNjIwNzk1YTZlN2UzNjgxMmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBA
CisyMDIxLTEyLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBTYW1lLXNpdGUgbGF4IGNvb2tpZXMgbm90IHNlbnQgYnkgZmV0Y2ggZXZlbnQgaGFuZGxlciBh
ZnRlciBwYWdlIHJlbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjI2Mzg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODg3ODg1Mz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yYWdlQmxvY2tp
bmdQb2xpY3kgaGFuZGxpbmcgaXMgbm90IGNvdmVyZWQgYnkgZ2VuZXJhdGVkIGNvZGUgc28gZXhw
bGljaXQgdXBkYXQgU3RvcmFnZUJsb2NraW5nUG9saWN5IHNldHRpbmcgZnJvbSBwcmVmZXJlbmNl
IHN0b3JlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcDoKKwogMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCAzYWU4YmI2
OGQyNWNkZGQxODAyMDkyMmY1ZWRiMjRkNGI5MTIwMDAyLi40Njg3YWMyMGQyZWQ2OWUzOTcyZmFl
Mzg3MDlmZmE0MzYxYWFkMzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5jcHAKQEAgLTI0MSw3ICsyNDEsNyBAQCB2b2lkIENhY2hlZFJlc291cmNl
Ojpsb2FkKENhY2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKIAogICAg
IC8vIE5hdmlnYXRpb24gYWxnb3JpdGhtIGlzIHNldHRpbmcgdXAgdGhlIHJlcXVlc3QgYmVmb3Jl
IHNlbmRpbmcgaXQgdG8gQ2FjaGVkUmVzb3VyY2VMb2FkZXI/Q2FjaGVkUmVzb3VyY2UuCiAgICAg
Ly8gU28gbm8gbmVlZCBmb3IgZXh0cmEgZmllbGRzIGZvciBNYWluUmVzb3VyY2UuCi0gICAgaWYg
KHR5cGUoKSAhPSBUeXBlOjpNYWluUmVzb3VyY2UpCisgICAgaWYgKHR5cGUoKSAhPSBUeXBlOjpN
YWluUmVzb3VyY2UgJiYgbV9vcHRpb25zLmRlc3RpbmF0aW9uICE9IEZldGNoT3B0aW9uczo6RGVz
dGluYXRpb246OkRvY3VtZW50ICYmIG1fb3B0aW9ucy5kZXN0aW5hdGlvbiAhPSBGZXRjaE9wdGlv
bnM6OkRlc3RpbmF0aW9uOjpJZnJhbWUpCiAgICAgICAgIGZyYW1lTG9hZGVyLnVwZGF0ZVJlcXVl
c3RBbmRBZGRFeHRyYUZpZWxkcyhtX3Jlc291cmNlUmVxdWVzdCwgSXNNYWluUmVzb3VyY2U6Ok5v
KTsKIAogICAgIC8vIEZJWE1FOiBJdCdzIHVuZm9ydHVuYXRlIHRoYXQgdGhlIGNhY2hlIGxheWVy
IGFuZCBiZWxvdyBnZXQgdG8ga25vdyBhbnl0aGluZyBhYm91dCBmcmFnbWVudCBpZGVudGlmaWVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA4MzIwODIwNmM2NGE2
NjJhMjc5ODczZjljNjZkOTQyMmM2YWQ2NWUzLi4wM2VlYjhiMmQ4MTMxMGY5ZTk2NzdmZjNiMGMw
ZTk0YzM0NGY2ZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0x
NjcsOCArMTY3LDEwIEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Omluc3Rh
bGxTZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0CiAgICAgCiAgICAgYXV0byBs
YXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCA9IGNvbnRleHREYXRhLmxhc3ROYXZpZ2F0aW9u
V2FzQXBwSW5pdGlhdGVkOwogICAgIGF1dG8gcGFnZSA9IG1ha2VVbmlxdWVSZWY8UGFnZT4oV1RG
TW92ZShwYWdlQ29uZmlndXJhdGlvbikpOwotICAgIGlmIChtX3ByZWZlcmVuY2VzU3RvcmUpCisg
ICAgaWYgKG1fcHJlZmVyZW5jZXNTdG9yZSkgewogICAgICAgICBXZWJQYWdlOjp1cGRhdGVTZXR0
aW5nc0dlbmVyYXRlZCgqbV9wcmVmZXJlbmNlc1N0b3JlLCBwYWdlLT5zZXR0aW5ncygpKTsKKyAg
ICAgICAgcGFnZS0+c2V0dGluZ3MoKS5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RhdGljX2Nh
c3Q8U3RvcmFnZUJsb2NraW5nUG9saWN5PihtX3ByZWZlcmVuY2VzU3RvcmUtPmdldFVJbnQzMlZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkp
KTsKKyAgICB9CiAgICAgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzZXR1cFBhZ2VGb3JTZXJ2
aWNlV29ya2VyKHBhZ2UuZ2V0KCksIGNvbnRleHREYXRhKTsKICAgICBhdXRvIHNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eSA9IFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y3JlYXRlKFdURk1vdmUo
cGFnZSksIFdURk1vdmUoY29udGV4dERhdGEpLCBXVEZNb3ZlKHdvcmtlckRhdGEpLCBXVEZNb3Zl
KGVmZmVjdGl2ZVVzZXJBZ2VudCksIHdvcmtlclRocmVhZE1vZGUsIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLmNhY2hlU3RvcmFnZVByb3ZpZGVyKCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOThhYWFjNzczNGE5NWM0
NGYxMDJlMmZmZGEyZTJkZTA4ZDQzOWI4ZS4uZDBiN2RiMTk5Y2EyMWNjYzZkOGQ0NDkzOTU1YjM3
MTE2ZGMzMjhlNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTEyLTA3ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYW1lLXNpdGUgbGF4IGNvb2tpZXMg
bm90IHNlbnQgYnkgZmV0Y2ggZXZlbnQgaGFuZGxlciBhZnRlciBwYWdlIHJlbG9hZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83ODg3ODg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRl
LW5hdmlnYXRpb24tc2FtZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1z
YW1lLWNvb2tpZS1sYXguaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtY29va2llLnB5OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1kb2N1bWVudC1jb29raWUucHk6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2V0
LWNvb2tpZS1sYXgucHk6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9zYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC5odHRw
cy5odG1sOiBBZGRlZC4KKwogMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0
aW9uLXNhbWUtY29va2llLWxheC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLXNhbWUtY29va2llLWxh
eC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVmMDExNmI2NWNiM2I1MTAwOGY1ZmJl
OTI0NDg1ZmUxN2YzN2VmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRlLW5hdmlnYXRpb24tc2FtZS1jb29raWUtbGF4Lmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitiJ1BBU1M6IGdvdCBzYW1lc2l0ZS1jb29r
aWUtdGVzdD0xJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRlLW5hdmlnYXRpb24t
c2FtZS1jb29raWUtbGF4Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNThiOWRlNDMzYTM2ZGIwMzll
NThiYTY5YWFhMmJhYjc1NmU5MDhlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRlLW5hdmlnYXRpb24tc2FtZS1jb29raWUt
bGF4Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisK
K3ZhciBzY29wZSA9ICIiOworCithc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQoreworICAgIGlmICh3
aW5kb3cub3JpZ2luID09ICJodHRwczovLzEyNy4wLjAuMTo5NDQzIikgeworICAgICAgICB3aW5k
b3cubG9jYXRpb24gPSAiaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0My9XZWJLaXQvc2VydmljZS13b3Jr
ZXJzL3Jlc291cmNlcy9nZXQtZG9jdW1lbnQtY29va2llLnB5P2ZldGNoVGVzdCI7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBjb25zdCByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigic2FtZS1jb29raWUtbGF4LXdvcmtlci5qcyIsIHsg
c2NvcGUgOiBzY29wZSB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5hY3RpdmUpIHsKKyAgICAg
ICAgY29uc3Qgd29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgd29ya2VyLmFkZEV2ZW50TGlz
dGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgICAgIGlmICh3b3JrZXIu
c3RhdGUgPT09ICJhY3RpdmF0ZWQiKQorICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIGNvbnN0IGNvb2tpZVZhbHVl
ID0gIlBBU1M6IGdvdCBzYW1lc2l0ZS1jb29raWUtdGVzdCI7CisgICAgYXdhaXQgZmV0Y2goInJl
c291cmNlcy9zZXQtY29va2llLWxheC5weT9uYW1lPSIgKyBjb29raWVWYWx1ZSk7CisKKyAgICB3
aW5kb3cubG9jYXRpb24gPSAiaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9XZWJLaXQvc2VydmljZS13
b3JrZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMuaHRtbD9m
ZXRjaFRlc3QiOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMv
Z2V0LWNvb2tpZS5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvZ2V0LWNvb2tpZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzczM2U3OGNmMGRiZWYwNjM2OTVmNjc3
N2E2YzQ4MzQ3NDA4MGYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtY29va2llLnB5CkBAIC0wLDAgKzEsNiBAQAor
ZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGhlYWRlcnMgPSBbCisgICAgICAgICgi
Q29udGVudC1UeXBlIiwgInRleHQvYXNjaWkiKSwKKyAgICBdCisgICAgYm9keSA9IHJlcXVlc3Qu
aGVhZGVycy5nZXQoIkNvb2tpZSIsICIiKQorICAgIHJldHVybiBoZWFkZXJzLCBib2R5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dl
dC1kb2N1bWVudC1jb29raWUucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL2dldC1kb2N1bWVudC1jb29raWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA5MWMyYzM3
Y2Q4ZDViM2VjYTI5ZmUxODc3M2FhMTgwZDkyM2QwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZ2V0LWRvY3VtZW50LWNv
b2tpZS5weQpAQCAtMCwwICsxLDYgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAg
ICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2h0bWwiKSwKKyAg
ICBdCisgICAgY29va2llID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiQ29va2llIiwgIm5vIGNvb2tp
ZSIpCisgICAgcmV0dXJuIGhlYWRlcnMsICI8aHRtbD48Ym9keT48ZGl2PiVzPC9kaXY+PHNjcmlw
dD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOzwvc2NyaXB0
PjwvYm9keT48L2h0bWw+IiAlIGNvb2tpZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9zZXQtY29va2llLWxheC5weSBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1sYXgucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNmE1MDdiNzQ3ZmJiODhhZGMwMTY1ZWY4Njg4OWMyYTAzNzc4NjdhNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvc2V0LWNvb2tpZS1sYXgucHkKQEAgLTAsMCArMSwxMiBAQAoraW1wb3J0IHN5cworZnJv
bSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlLCBwYXJzZV9xcworCisKK2RlZiBtYWluKHJl
cXVlc3QsIHJlc3BvbnNlKToKKyAgICBwYXJhbXMgPSBwYXJzZV9xcyhyZXF1ZXN0LnVybF9wYXJ0
cy5xdWVyeSkKKyAgICBoZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtVHlwZSIsICJhcHBs
aWNhdGlvbi9qc29uIiksCisgICAgICAgICgiU2V0LUNvb2tpZSIsICJ7bmFtZVswXX09MTsgcGF0
aD0vOyBzZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXgiLmZvcm1hdCgqKnBhcmFtcykpCisg
ICAgXQorICAgIGJvZHkgPSAie30iCisgICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgt
d29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29v
a2llLWxheC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRjN2FiNDZhMjk2MmY1ZmM4YzI1OTFhNGUy
YzkyYTExMmExN2UxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzCkBAIC0wLDAgKzEsMjMgQEAK
K2FzeW5jIGZ1bmN0aW9uIGRvVGVzdChldmVudCkKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAo
IWV2ZW50LmRhdGEuc3RhcnRzV2l0aCgidGVzdC1jb29raWUiKSkgeworICAgICAgICAgICAgZXZl
bnQuc291cmNlLnBvc3RNZXNzYWdlKCJGQUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2Ug
ZnJvbSBjbGllbnQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInJlc291cmNlcy9nZXQtY29va2llLnB5Iik7
CisgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShhd2FpdCByZXNwb25zZS50ZXh0KCkp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKGUp
OworICAgIH0KK30KKworZnVuY3Rpb24gZG9GZXRjaChldmVudCkKK3sKKyAgICBpZiAoZXZlbnQu
cmVxdWVzdC51cmwuaW5jbHVkZXMoImZldGNoVGVzdCIpKQorICAgICAgICBldmVudC5yZXNwb25k
V2l0aChmZXRjaChldmVudC5yZXF1ZXN0KSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGRvVGVzdCk7CitzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgZG9GZXRj
aCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2Ft
ZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkMWM0ZjQ4ZThjZDU0YzdiZmYxN2YyMWM3ODQwNjA2MjE5YzcxODUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUt
bGF4Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBTZXR1cCB3b3Jr
ZXIKK1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBzYW1lc2l0ZSBsYXggY29va2llIC0gc2Vydmlj
ZSB3b3JrZXIgaW50ZXJuYWwgZmV0Y2gKK1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBzYW1lc2l0
ZSBsYXggY29va2llIC0gZmV0Y2ggc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxh
eC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUt
Y29va2llLWxheC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZTZhY2JiMmYxZTMwMjExMjQwMjVh
NGE4YWYwYzZmOWQ0ZmIzNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1
MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK3ZhciBzY29wZSA9ICIi
OwordmFyIGFjdGl2ZVdvcmtlcjsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7Cisg
ICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKCJzYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAg
IGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5hY3RpdmU7CisgICAgaWYgKGFjdGl2ZVdvcmtl
cikKKyAgICAgICAgcmV0dXJuOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOworICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0
aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAg
ICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAg
ICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIi
KTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgY29va2llVmFs
dWUgPSAic2FtZXNpdGUtY29va2llLXRlc3QiOworICAgIGF3YWl0IGZldGNoKCJyZXNvdXJjZXMv
c2V0LWNvb2tpZS1sYXgucHk/bmFtZT0iICsgY29va2llVmFsdWUpOworCisgICAgdmFyIHByb21p
c2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgIHJlc29sdmUoZXZlbnQuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJ0ZXN0LWNvb2tpZSIpOworICAgIGNvbnN0
IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7CisgICAgYXNzZXJ0X3RydWUocmVzdWx0LmluY2x1ZGVz
KGNvb2tpZVZhbHVlICsgIj0xIikpOworfSwgIlRlc3Qgc2VydmljZSB3b3JrZXIgc2FtZXNpdGUg
bGF4IGNvb2tpZSAtIHNlcnZpY2Ugd29ya2VyIGludGVybmFsIGZldGNoIik7CisKK3Byb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInNhbWVzaXRl
LWNvb2tpZS10ZXN0LWZldGNoIjsKKyAgICBhd2FpdCBmZXRjaCgicmVzb3VyY2VzL3NldC1jb29r
aWUtbGF4LnB5P25hbWU9IiArIGNvb2tpZVZhbHVlKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0g
YXdhaXQgZmV0Y2goInJlc291cmNlcy9nZXQtY29va2llLnB5P2ZldGNoVGVzdCIpOworICAgIGNv
bnN0IHJlc3VsdCA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKTsKKyAgICBhc3NlcnRfdHJ1ZShyZXN1
bHQuaW5jbHVkZXMoY29va2llVmFsdWUgKyAiPTEiKSk7Cit9LCAiVGVzdCBzZXJ2aWNlIHdvcmtl
ciBzYW1lc2l0ZSBsYXggY29va2llIC0gZmV0Y2ggc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIi
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446330</attachid>
            <date>2021-12-08 00:46:40 -0800</date>
            <delta_ts>2021-12-08 01:43:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226386-20211208094638.patch</filename>
            <type>text/plain</type>
            <size>98737</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2QxMmRkN2Y2ZDgyZDYy
NTA5ODg0M2ZkNjY4MzU5MTFlODA2ZGI4OC4uMTU1ZjVlYzJmZDhiMDE3ZTE5YjFlYzc2Mzc1YWNj
ZWU3MGUxMWUzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGaXggU2VydmljZVdvcmtl
ciBkb3dubG9hZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMjE0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTU3MjE5MzQ+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0byBhc2sgdGhl
IGZldGNoIHRhc2sgdG8gYmVjb21lIGEgZG93bmxvYWQuCisKKyAgICAgICAgVGVzdHM6IGh0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13
b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRo
cm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0
cHMuaHRtbAorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
ckZldGNoLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtl
clRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKwogMjAyMS0xMi0wMyAgU2VyZ2lvIFZpbGxhciBTZW5p
biAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhib3hdIEFjY291bnQg
Zm9yIGNhcHRpb25zIHdoZW4gZmxleGluZyB0YWJsZXMgd2l0aCBzcGVjaWZpZWQgc2l6ZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggZTlhMjQxMTkxZWMyYmQwOGU4OTkxMTRiMzYyMjUxMTJjNWIyZTYwMC4uZjVjODA5
NTcwMDU1ZDRhNjU1NDk4YjI3MjYzNDgwMTRlMzNhYmQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3
MiBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIGNsYXNzIGFzIGEgTmV0d29ya0RhdGFU
YXNrIHdob3NlIHB1cnBvc2UgaXMgdG8gZG93bmxvYWQgdGhlIGNvbnRlbnQgb2YgYSByZXNwb25z
ZSBnaXZlbiBmcm9tIHNlcnZpY2Ugd29ya2VyLgorICAgICAgICBBZGQgYSB3YXkgdG8gY29udmVy
dCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIGludG8gZG93bmxvYWRzOgorICAgICAgICAtIElmIGEg
cHJlbG9hZCBpcyBvbmdvaW5nIGFuZCBjYW4gYmUgdXNlZCBmb3IgbmF2aWdhdGlvbiwgdXNlIHRo
aXMgcHJlbG9hZCBhcyB0aGUgZG93bmxvYWQgTmV0d29ya0xvYWQuCisgICAgICAgIC0gSWYgYSBw
cmVsb2FkIGRvZXMgbm90IGV4aXN0LCBjcmVhdGUgYSBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
IGFuZCBhIGNvcnJlc3BvbmRpbmcgTmV0d29ya0xvYWQgdG8gc3RhcnQgZG93bmxvYWRpbmcgdGhl
IHNlcnZpY2Ugd29ya2VyIHJlc3BvbnNlIGRhdGEuCisgICAgICAgIFdoZW4gY3JlYXRpbmcgYSBT
ZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLCB0aGUgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudCB3aWxsIGJlIG5vdGlmaWVkIHRvIHN0YXJ0IHNlbmRpbmcgcmVzcG9uc2UgZGF0YSB1c2lu
ZyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrCisgICAgICAgIGluc3RlYWQgb2YgU2VydmljZVdv
cmtlckZldGNoVGFzayBtZXNzYWdlcy4gVGhpcyBhbGxvd3MgY2FuY2VsbGluZyB0aGUgU2Vydmlj
ZVdvcmtlckZldGNoVGFzayB3aXRob3V0IGFueSBpc3N1ZS4KKworICAgICAgICBOb3RlIHRoYXQg
dGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lIGlzIG5vdCBhdWdtZW50ZWQ6IGlmIHRoZSBzZXJ2
aWNlIHdvcmtlciBleGl0cyBkdWUgdG8gYWxsIGl0cyBjbGllbnRzIGJlaW5nIGNsb3NlZCwgdGhl
IGRvd25sb2FkIHdpbGwgZmFpbC4KKworICAgICAgICBJbmNyZWFzZSB1bmlmaWVkIGJ1aWxkIGZp
bGVzIHRvIDExMi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDogQWRkZWQu
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93
bmxvYWRUYXNrLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkZXIuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5jcHA6CisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJj
ZXMuc2g6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhDVlBpeGVsQnVmZmVyOjpkaWRSZWNlaXZl
TWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3Nh
Z2VNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aElmTWVzc2Fn
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoSW1hZ2VEYXRhTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVz
dFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC90ZXN0cy9UZXN0V2l0aExlZ2FjeVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRo
TGVnYWN5UmVjZWl2ZXJNZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9U
ZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRl
c3RXaXRoU2VtYXBob3JlOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1CdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpUZXN0V2l0aFN0cmVhbUJ1ZmZlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGVzdFdpdGhTdHJlYW06OmRpZFJlY2VpdmVTdHJl
YW1NZXNzYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aG91dEF0
dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2l0aG91
dEF0dHJpYnV0ZXM6OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWNlaXZlZFBv
bGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAgICogU291
cmNlcy50eHQ6CisgICAgICAgICogVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50Lmg6CisKIDIwMjEtMTItMDYgIFBlciBBcm5l
ICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUmVtb3ZlIG1hY2ggc2Vydmlj
ZSBleHRlbnNpb25zIGZvciB0aGUgV2ViQ29udGVudCBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCmluZGV4IGViMjY2YjZjMDdlNjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMuLmRlOWUy
MzBmOWJkYjk5YTVlODM4N2RmZDk2MDNhZWM1Y2FhM2YwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5oCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFu
ZGxlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWwoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBj
b252ZXJ0RmV0Y2hUb0Rvd25sb2FkKCkgPSAwOwogfTsKIAogdm9pZCBkaXNwYXRjaEZldGNoRXZl
bnQoUmVmPENsaWVudD4mJiwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYmLCBT
dHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5jcHAKaW5kZXggYjNjZjJjNzNiMjIzOTI1OTM4NDUzYmY5ZjA4YjU0
MDI2NWNjMjZkYi4uZGI2YzkzYjhiZTkxYjliOTIyNzEwOTQ3OTlkMGRkYzNmNjQ4MmRmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC0yNDIsNiArMjQyLDIwIEBA
IHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIGNvbm5lY3RpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CiB9CiAKKwordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OmNvbnZlcnRGZXRj
aFRvRG93bmxvYWQoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3sKKyAgICBSRUxFQVNFX0xP
RyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpjb252ZXJ0RmV0Y2hU
b0Rvd25sb2FkICVsbHUiLCBmZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSk7CisKKyAgICBhdXRv
IGNsaWVudCA9IG1fb25nb2luZ0ZldGNoVGFza3MudGFrZShzdGQ6Om1ha2VfcGFpcihjb25uZWN0
aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKSk7CisgICAgaWYgKCFjbGllbnQpCisgICAg
ICAgIHJldHVybjsKKworICAgIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoW2NsaWVudCA9IFJlZiB7ICpjbGllbnQgfV0gKGF1dG8mKSB7CisgICAgICAgIGNsaWVu
dC0+Y29udmVydEZldGNoVG9Eb3dubG9hZCgpOworICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1
bHRNb2RlKCkpOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogewogICAg
IGF1dG8gY2xpZW50ID0gbV9vbmdvaW5nRmV0Y2hUYXNrcy5nZXQoc3RkOjptYWtlX3BhaXIoY29u
bmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuaAppbmRleCAwYTMzNzkyNDQ4MGViZjgyNjc1M2VmNTQxYTNmMWNkNGM2OTI1
ZjRhLi4wMWIzYWQwNDkxNWQ0YmUyN2IwMWJjZmZkYzZiMGNmYjIwOGZjMDdlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYs
IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291
cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNhbmNlbEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2Fk
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZW1vdmVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElk
ZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0IGIv
U291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCBlOGVhZDYwMjczYjc1MTg5NDAxNjYy
ZDRkZmEwYjMxNzNiMjJjOGI0Li4yYTUyNjU2YTM2Zjc2NzJiYWE1YTg1ODEwODM2Yjk4MzM4OTk5
YmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE5Nyw2ICsxOTcsNyBAQCBzZXQoV2ViS2l0X01F
U1NBR0VTX0lOX0ZJTEVTCiAgICAgTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwK
ICAgICBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0U3RyZWFtCiAKKyAgICBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sKICAgICBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2sKICAgICBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbgogICAgIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggODU5MmQ5
OWQyZTM2YWZjOWVmODVkY2MxYzNmNTc0ZWMxOTVlZWY1NS4uOTMzZDI4MmNjYzdmMjIzOTYzZjA3
MTBkMGY2OTgzN2I0YjkzY2U3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdApAQCAtODcsNiArODcsNyBAQCAkKFBST0pFQ1RfRElSKS9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElS
KS9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5tZXNzYWdlcy5pbgogJChQUk9K
RUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbgor
JChQUk9KRUNUX0RJUikvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2subWVzc2FnZXMuaW4KICQoUFJPSkVD
VF9ESVIpL05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggNTIwMzVhYjBhMjQ1
M2I2M2Y4MjkyNzZlOTg0MGVkZDEzODI2MGRiNS4uOWFlMjZlNzY3NDUyZWNjMTgwYzU2MjI4ZmUy
ZjBiMzMzYmU1NTVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CkBAIC0zOTcsNiArMzk3LDkgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC9TYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJNZXNzYWdlc1JlcGwK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Q
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VzUmVwbGll
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlUmVjZWl2ZXIuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNzYWdl
cy5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1NlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2tNZXNzYWdlc1JlcGxpZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZVJlY2Vp
dmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdC9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrTWVzc2FnZXNSZXBsaWVzLmgK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxOTMzODg0OTYxYjRiYzMwNGYwODliMGI1
NGUxNDg5MWI1YzM0OGY0Li40MmZlMGVhYjFkNDBiYTZmYWEwZWIyMzcyM2JhZjQ0MmVjN2Q1MGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMzIsNiArMTMyLDcgQEAgTUVTU0FH
RV9SRUNFSVZFUlMgPSBcCiAJTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL0xlZ2FjeUN1
c3RvbVByb3RvY29sTWFuYWdlciBcCiAJTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
IFwKKwlOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2sgXAogCU5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ayBcCiAJTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24gXAogCU5ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRTdHJlYW0gXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCAyOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFk
NzNlNjc0MTcwLi5iODgwYjc2YjczMGVlNDU5YzNmMTlkYzI1ZmVmYTIxYTEwM2U2NjQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNjk1LDggKzY5NSw3IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3dubG9h
ZChzdGQ6Om9wdGlvCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
Ci0gICAgLy8gSW4gY2FzZSBhIHJlc3BvbnNlIGlzIHNlcnZlZCBmcm9tIHNlcnZpY2Ugd29ya2Vy
LCB3ZSBkbyBub3QgaGF2ZSB5ZXQgdGhlIGFiaWxpdHkgdG8gY29udmVydCB0aGUgbG9hZC4KLSAg
ICBpZiAoIW1haW5SZXNvdXJjZUxvYWRJZGVudGlmaWVyIHx8IHJlc3BvbnNlLnNvdXJjZSgpID09
IFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6U2VydmljZVdvcmtlcikgeworICAgIGlmICghbWFp
blJlc291cmNlTG9hZElkZW50aWZpZXIpIHsKICAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+ZG93
bmxvYWRNYW5hZ2VyKCkuc3RhcnREb3dubG9hZChtX3Nlc3Npb25JRCwgZG93bmxvYWRJRCwgcmVx
dWVzdCwgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4
IGJhYzAyMmFiNDU0MzBmNjUxYjE4OWFjMDEyMDdhMDYwNjA4YzE2NzEuLjZkZjE0MTA3MzZhYmEy
ZjJkOWExOTYxNTZjMGIxYmFmYThlNzA0NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC01Niw2ICs1NiwxMyBAQCBOZXR3b3JrTG9hZDo6TmV0
d29ya0xvYWQoTmV0d29ya0xvYWRDbGllbnQmIGNsaWVudCwgQmxvYlJlZ2lzdHJ5SW1wbCogYmxv
YlJlZ2lzdAogICAgICAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShuZXR3b3Jr
U2Vzc2lvbiwgKnRoaXMsIG1fcGFyYW1ldGVycyk7CiB9CiAKK05ldHdvcmtMb2FkOjpOZXR3b3Jr
TG9hZChOZXR3b3JrTG9hZENsaWVudCYgY2xpZW50LCBOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nl
c3Npb24sIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+KE5ldHdvcmtEYXRh
VGFza0NsaWVudCYpPiYgY3JlYXRlVGFzaykKKyAgICA6IG1fY2xpZW50KGNsaWVudCkKKyAgICAs
IG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Nlc3Npb24ubmV0d29ya1Byb2Nlc3MoKSkKKyAgICAs
IG1fdGFzayhjcmVhdGVUYXNrKCp0aGlzKSkKK3sKK30KKwogdm9pZCBOZXR3b3JrTG9hZDo6c3Rh
cnQoKQogewogICAgIGlmICghbV90YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZC5oCmluZGV4IGMzNzczYzk4Nzg1NTNjZTUzNGQwNTRhYmZmZGRlYmIyOWVlMDg0
ZDIuLmI5MmY5YzYxZTEzNTkwYzQxY2JjMWQ4YjM4MjhkM2FjY2I3NTFiMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgY2xh
c3MgTmV0d29ya0xvYWQgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgTmV0d29ya0xvYWQoTmV0
d29ya0xvYWRDbGllbnQmLCBXZWJDb3JlOjpCbG9iUmVnaXN0cnlJbXBsKiwgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzJiYsIE5ldHdvcmtTZXNzaW9uJik7CisgICAgTmV0d29ya0xvYWQoTmV0d29ya0xv
YWRDbGllbnQmLCBOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IEZ1bmN0aW9uPFJlZlB0cjxOZXR3b3Jr
RGF0YVRhc2s+KE5ldHdvcmtEYXRhVGFza0NsaWVudCYpPiYpOwogICAgIH5OZXR3b3JrTG9hZCgp
OwogCiAgICAgdm9pZCBzdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU1MGNmNGFiYmU1NjRlNGNh
M2ZiNzI2Y2FhOWQ1NjljNTRiMDlkNzIuLmI4N2FkNGQzYzFjYTAzMTBkYjIzYTc5MjA4OWU1ZDE4
N2FjOGY5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQ4NCw2ICs0ODQsMTEgQEAgdm9pZCBOZXR3b3Jr
UmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwg
Y29uc3QgUmVzb3UKIHsKICAgICBMT0FERVJfUkVMRUFTRV9MT0coImNvbnZlcnRUb0Rvd25sb2Fk
OiAoZG93bmxvYWRJRD0lIiBQUkl1NjQgIiwgaGFzTmV0d29ya0xvYWQ9JWQsIGhhc1Jlc3BvbnNl
Q29tcGxldGlvbkhhbmRsZXI9JWQpIiwgZG93bmxvYWRJRC50b1VJbnQ2NCgpLCAhIW1fbmV0d29y
a0xvYWQsICEhbV9yZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyKTsKIAorI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKKyAgICBpZiAobV9zZXJ2aWNlV29ya2VyRmV0Y2hUYXNrICYmIG1fc2Vydmlj
ZVdvcmtlckZldGNoVGFzay0+Y29udmVydFRvRG93bmxvYWQobV9jb25uZWN0aW9uLT5uZXR3b3Jr
UHJvY2VzcygpLmRvd25sb2FkTWFuYWdlcigpLCBkb3dubG9hZElELCByZXF1ZXN0LCByZXNwb25z
ZSkpCisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGlm
IHRoZSByZXNvdXJjZSBjYW1lIGZyb20gdGhlIGRpc2sgY2FjaGUuCiAgICAgaWYgKCFtX25ldHdv
cmtMb2FkKSB7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0d29ya1Byb2Nlc3MoKS5kb3dubG9h
ZE1hbmFnZXIoKS5zdGFydERvd25sb2FkKHNlc3Npb25JRCgpLCBkb3dubG9hZElELCByZXF1ZXN0
LCBtX3BhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckRvd25sb2FkVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmU5MWMzNjIz
ODNiN2E0NTA1NzUwZWM2MDUwYmNlMDgxNjU4MzZiZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrLmNwcApAQCAtMCwwICsxLDI0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmgiCisKKyNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKKyNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIKKyNpbmNsdWRlICJX
ZWJFcnJvcnMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6U2VydmljZVdvcmtlckRvd25sb2FkVGFzayhOZXR3b3JrU2Vzc2lv
biYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbiYgc2VydmljZVdvcmtlckNvbm5lY3Rpb24sIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIERvd25s
b2FkSUQgZG93bmxvYWRJRCkKKyAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQs
IHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZSwgZmFsc2UsIGZhbHNl
KQorICAgICwgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihzZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bikKKyAgICAsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpCisgICAgLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKQorICAgICwgbV9mZXRjaElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKQorICAg
ICwgbV9kb3dubG9hZElEKGRvd25sb2FkSUQpCisgICAgLCBtX25ldHdvcmtQcm9jZXNzKHNlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkpCisgICAgLCBtX3dyaXRlUXVldWUo
V29ya1F1ZXVlOjpjcmVhdGUoIlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2siKSkKK3sKKyAgICBz
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKworU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6flNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2soKQorewor
fQorCit2b2lkIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmNsb3NlKCkKK3sKKyAgICBpZiAo
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbi0+dW5yZWdpc3RlckRvd25sb2FkKCp0aGlzKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUg
TWVzc2FnZT4gYm9vbCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpzZW5kVG9TZXJ2aWNlV29y
a2VyKE1lc3NhZ2UmJiBtZXNzYWdlKQoreworICAgIHJldHVybiBtX3NlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uID8gbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+aXBjQ29ubmVjdGlvbigpLnNlbmQo
c3RkOjpmb3J3YXJkPE1lc3NhZ2U+KG1lc3NhZ2UpLCAwKSA6IGZhbHNlOworfQorCit2b2lkIFNl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OmRpc3BhdGNoVG9UaHJlYWQoRnVuY3Rpb248dm9pZCgp
PiYmIGZ1bmN0aW9uKQoreworICAgIG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBmdW5jdGlvbiA9IFdURk1vdmUoZnVuY3Rpb24pXSgpIG11dGFi
bGUgeworICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2s6OmNhbmNlbCgpCit7CisgICAgbV93cml0ZVF1ZXVlLT5kaXNwYXRjaChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIHsKKyAgICAgICAgaWYgKG1fZG93
bmxvYWRGaWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKKyAg
ICAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAg
ICAgICBtX2Rvd25sb2FkRmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGU7CisgICAgICAgIH0KKyAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdE
b3dubG9hZExvY2F0aW9uKTsKKyAgICB9KTsKKworICAgIGlmIChtX3NhbmRib3hFeHRlbnNpb24p
IHsKKyAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgbV9zYW5k
Ym94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBzZW5kVG9TZXJ2aWNlV29ya2Vy
KE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q2FuY2VsRmV0Y2ggeyBt
X3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBt
X2ZldGNoSWRlbnRpZmllciB9KTsKKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29tcGxldGVkOwor
ICAgIGNsb3NlKCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6cmVzdW1l
KCkKK3sKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7Cit9CisKK3ZvaWQgU2VydmljZVdv
cmtlckRvd25sb2FkVGFzazo6aW52YWxpZGF0ZUFuZENhbmNlbCgpCit7CisgICAgY2FuY2VsKCk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6c2V0UGVuZGluZ0Rvd25sb2Fk
TG9jYXRpb24oY29uc3QgV1RGOjpTdHJpbmcmIGZpbGVuYW1lLCBTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUmJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBib29sIGFsbG93T3ZlcndyaXRlKQorewor
ICAgIGlmICghbmV0d29ya1Nlc3Npb24oKSkgeworICAgICAgICBtX3dyaXRlUXVldWUtPmRpc3Bh
dGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIGRpZEZhaWxEb3dubG9hZCgpOworICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIE5ldHdvcmtEYXRhVGFzazo6c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRp
b24oZmlsZW5hbWUsIHsgfSwgYWxsb3dPdmVyd3JpdGUpOworCisgICAgQVNTRVJUKCFtX3NhbmRi
b3hFeHRlbnNpb24pOworICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZShXVEZNb3ZlKHNhbmRib3hFeHRlbnNpb25IYW5kbGUpKTsKKyAgICBpZiAobV9zYW5k
Ym94RXh0ZW5zaW9uKQorICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24tPmNvbnN1bWUoKTsKKwor
ICAgIG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9LCBhbGxvd092ZXJ3cml0ZSAsIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRDb3B5
KCldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChhbGxvd092ZXJ3cml0ZSAmJiBGaWxlU3lzdGVt
OjpmaWxlRXhpc3RzKGZpbGVuYW1lKSkKKyAgICAgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUZp
bGUoZmlsZW5hbWUpOworCisgICAgICAgIG1fZG93bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6b3Bl
bkZpbGUobV9wZW5kaW5nRG93bmxvYWRMb2NhdGlvbiwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2Rl
OjpXcml0ZSk7CisgICAgICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9PSBGaWxlU3lzdGVtOjppbnZh
bGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6c3RhcnQoKQorewor
ICAgIEFTU0VSVChtX3N0YXRlICE9IFN0YXRlOjpDb21wbGV0ZWQpOworCisgICAgaWYgKCFzZW5k
VG9TZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
Q29udmVydEZldGNoVG9Eb3dubG9hZCB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1f
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pKSB7CisgICAgICAg
IG1fd3JpdGVRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XSgpIG11dGFibGUgeworICAgICAgICAgICAgZGlkRmFpbERvd25sb2FkKCk7CisgICAgICAg
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5u
aW5nOworCisgICAgYXV0byYgbWFuYWdlciA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFu
YWdlcigpOworICAgIGF1dG8gZG93bmxvYWQgPSBtYWtlVW5pcXVlPERvd25sb2FkPihtYW5hZ2Vy
LCBtX2Rvd25sb2FkSUQsICp0aGlzLCAqbmV0d29ya1Nlc3Npb24oKSk7CisgICAgYXV0byogZG93
bmxvYWRQdHIgPSBkb3dubG9hZC5nZXQoKTsKKyAgICBtYW5hZ2VyLmRhdGFUYXNrQmVjYW1lRG93
bmxvYWRUYXNrKG1fZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOworICAgIGRvd25sb2Fk
UHRyLT5kaWRDcmVhdGVEZXN0aW5hdGlvbihtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsKK30K
Kwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRGF0YShjb25zdCBJ
UEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCit7Cisg
ICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworICAgIGlmIChtX2Rvd25sb2FkRmlsZSA9PSBG
aWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKQorICAgICAgICByZXR1cm47CisK
KyAgICBzaXplX3QgYnl0ZXNXcml0dGVuID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9kb3du
bG9hZEZpbGUsIGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSk7CisKKyAgICBpZiAoYnl0ZXNXcml0
dGVuICE9IGRhdGEuc2l6ZSgpKSB7CisgICAgICAgIGRpZEZhaWxEb3dubG9hZCgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBieXRlc1dyaXR0ZW5dIHsKKyAgICAgICAgbV9kb3dubG9h
ZEJ5dGVzV3JpdHRlbiArPSBieXRlc1dyaXR0ZW47CisgICAgICAgIGlmIChhdXRvKiBkb3dubG9h
ZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2FkKG1fcGVuZGlu
Z0Rvd25sb2FkSUQpKQorICAgICAgICAgICAgZG93bmxvYWQtPmRpZFJlY2VpdmVEYXRhKGJ5dGVz
V3JpdHRlbiwgbV9kb3dubG9hZEJ5dGVzV3JpdHRlbiwgMCk7CisgICAgfSk7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkUmVjZWl2ZUZvcm1EYXRhKGNvbnN0IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRhKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9v
cCgpKTsKKworICAgIC8vIEZJWE1FOiBTdXBwb3J0IHdyaXRpbmcgZm9ybURhdGEgaW4gZG93bmxv
YWRzLgorICAgIFJFTEVBU0VfTE9HX0VSUk9SKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2Vy
RG93bmxvYWRUYXNrOjpkaWRSZWNlaXZlRm9ybURhdGEgbm90IGltcGxlbWVudGVkIik7CisgICAg
ZGlkRmFpbERvd25sb2FkKCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6
ZGlkRmluaXNoKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblJ1bkxvb3AoKSk7CisKKyAgICBGaWxl
U3lzdGVtOjpjbG9zZUZpbGUobV9kb3dubG9hZEZpbGUpOworICAgIG1fZG93bmxvYWRGaWxlID0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKworICAgIGNhbGxPbk1haW5S
dW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0geworICAgICAgICBt
X3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICAgICAgY2xvc2UoKTsKKworICAgICAgICBp
ZiAobV9zYW5kYm94RXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBtX3NhbmRib3hFeHRlbnNpb24t
PnJldm9rZSgpOworICAgICAgICAgICAgbV9zYW5kYm94RXh0ZW5zaW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChhdXRvIGRvd25sb2FkID0gbV9uZXR3b3JrUHJvY2Vzcy0+
ZG93bmxvYWRNYW5hZ2VyKCkuZG93bmxvYWQobV9wZW5kaW5nRG93bmxvYWRJRCkpCisgICAgICAg
ICAgICBkb3dubG9hZC0+ZGlkRmluaXNoKCk7CisKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlV2l0aEVycm9yKHsgfSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgU2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6ZGlkRmFpbChSZXNvdXJjZUVycm9y
JiYgZXJyb3IpCit7CisgICAgQVNTRVJUKCFpc01haW5SdW5Mb29wKCkpOworCisgICAgZGlkRmFp
bERvd25sb2FkKFdURk1vdmUoZXJyb3IpKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyRG93bmxv
YWRUYXNrOjpkaWRGYWlsRG93bmxvYWQoc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiYmIGVy
cm9yKQoreworICAgIEFTU0VSVCghaXNNYWluUnVuTG9vcCgpKTsKKworICAgIGlmIChtX2Rvd25s
b2FkRmlsZSAhPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlKSB7CisgICAg
ICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2Rvd25sb2FkRmlsZSk7CisgICAgICAgIG1fZG93
bmxvYWRGaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKKyAgICB9
CisgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShtX3BlbmRpbmdEb3dubG9hZExvY2F0aW9uKTsK
KworICAgIGNhbGxPbk1haW5SdW5Mb29wKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfSwgZXJyb3IgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShlcnJvcikpXSB7CisgICAgICAg
IGlmIChtX3N0YXRlID09IFN0YXRlOjpDb21wbGV0ZWQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgICAgIGNsb3NlKCk7CisK
KyAgICAgICAgaWYgKG1fc2FuZGJveEV4dGVuc2lvbikgeworICAgICAgICAgICAgbV9zYW5kYm94
RXh0ZW5zaW9uLT5yZXZva2UoKTsKKyAgICAgICAgICAgIG1fc2FuZGJveEV4dGVuc2lvbiA9IG51
bGxwdHI7CisgICAgICAgIH0KKworICAgICAgICBhdXRvIHJlc291cmNlRXJyb3IgPSBlcnJvci52
YWx1ZV9vcihjYW5jZWxsZWRFcnJvcihmaXJzdFJlcXVlc3QoKSkpOworICAgICAgICBpZiAoYXV0
byBkb3dubG9hZCA9IG1fbmV0d29ya1Byb2Nlc3MtPmRvd25sb2FkTWFuYWdlcigpLmRvd25sb2Fk
KG1fcGVuZGluZ0Rvd25sb2FkSUQpKQorICAgICAgICAgICAgZG93bmxvYWQtPmRpZEZhaWwocmVz
b3VyY2VFcnJvciwgSVBDOjpEYXRhUmVmZXJlbmNlKCkpOworCisgICAgICAgIGlmIChtX2NsaWVu
dCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVdpdGhFcnJvcihyZXNvdXJjZUVy
cm9yKTsKKyAgICB9KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9h
ZFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hYzg5NzZiYWI4NTE1OTZhNzBlNzcwZjk1ZGVhMmZiNzcwYWEz
MTNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaApAQCAtMCwwICsxLDEwNyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQor
CisjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNp
bmNsdWRlICJEb3dubG9hZC5oIgorI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgiCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
ZXRjaElkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUg
PHd0Zi9Xb3JrUXVldWUuaD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBGb3JtRGF0YVJlZmVy
ZW5jZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5ldHdvcmtMb2FkOworY2xh
c3MgTmV0d29ya1Byb2Nlc3M7CitjbGFzcyBTYW5kYm94RXh0ZW5zaW9uOworY2xhc3MgV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOworCitjbGFzcyBTZXJ2aWNlV29ya2VyRG93bmxvYWRU
YXNrIDogcHVibGljIE5ldHdvcmtEYXRhVGFzaywgcHVibGljIElQQzo6Q29ubmVjdGlvbjo6VGhy
ZWFkTWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+IGNyZWF0ZShOZXR3
b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgRG93bmxvYWRJRCBkb3dubG9hZElEKSB7IHJldHVybiBhZG9wdFJl
ZigqIG5ldyBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrKHNlc3Npb24sIGNsaWVudCwgY29ubmVj
dGlvbiwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIGRvd25sb2FkSUQpKTsgfQorICAgIH5TZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrKCk7CisKKyAgICBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0
Y2hJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9mZXRjaElkZW50aWZpZXI7IH0KKyAgICB2
b2lkIGNvbnRleHRDbG9zZWQoKSB7IGNhbmNlbCgpOyB9CisgICAgdm9pZCBzdGFydCgpOworICAg
IHZvaWQgc3RvcCgpIHsgY2FuY2VsKCk7IH0KKworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6
cmVmOworICAgIHVzaW5nIE5ldHdvcmtEYXRhVGFzazo6ZGVyZWY7CisgICAgdXNpbmcgTmV0d29y
a0RhdGFUYXNrOjp3ZWFrUHRyRmFjdG9yeTsKKyAgICB1c2luZyBOZXR3b3JrRGF0YVRhc2s6Oldl
YWtWYWx1ZVR5cGU7CisKK3ByaXZhdGU6CisgICAgU2VydmljZVdvcmtlckRvd25sb2FkVGFzayhO
ZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIERvd25sb2FkSUQpOworCisgICAgLy8g
SVBDIE1lc3NhZ2UKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZv
cm1EYXRhKGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlz
aCgpOworICAgIHZvaWQgZGlkRmFpbChXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworCisgICAg
Ly8gTmV0d29ya0RhdGFUYXNrCisgICAgdm9pZCBjYW5jZWwoKSBmaW5hbDsKKyAgICB2b2lkIHJl
c3VtZSgpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUFuZENhbmNlbCgpIGZpbmFsOworICAg
IFN0YXRlIHN0YXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zdGF0ZTsgfQorICAgIHZvaWQg
c2V0UGVuZGluZ0Rvd25sb2FkTG9jYXRpb24oY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgU2FuZGJv
eEV4dGVuc2lvbjo6SGFuZGxlJiYsIGJvb2wgLyphbGxvd092ZXJ3cml0ZSovKSBmaW5hbDsKKwor
ICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6VGhyZWFkTWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBk
aXNwYXRjaFRvVGhyZWFkKEZ1bmN0aW9uPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKKyAg
ICB2b2lkIHJlZk1lc3NhZ2VSZWNlaXZlcigpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRl
cmVmTWVzc2FnZVJlY2VpdmVyKCkgZmluYWwgeyBkZXJlZigpOyB9CisKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNZXNzYWdlPiBib29sIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZSYmKTsKKyAg
ICB2b2lkIGRpZEZhaWxEb3dubG9hZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlJlc291cmNlRXJy
b3I+JiYgPSB7IH0pOworICAgIHZvaWQgY2xvc2UoKTsKKworICAgIFdlYWtQdHI8V2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uPiBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uOworICAgIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXI7
CisgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBtX3NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkZldGNoSWRlbnRpZmllciBtX2ZldGNoSWRl
bnRpZmllcjsKKyAgICBEb3dubG9hZElEIG1fZG93bmxvYWRJRDsKKyAgICBSZWY8TmV0d29ya1By
b2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7CisgICAgUmVmUHRyPFNhbmRib3hFeHRlbnNpb24+IG1f
c2FuZGJveEV4dGVuc2lvbjsKKyAgICBSZWY8V29ya1F1ZXVlPiBtX3dyaXRlUXVldWU7CisgICAg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIG1fZG93bmxvYWRGaWxlIHsgRmlsZVN5c3Rl
bTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSB9OworICAgIGludDY0X3QgbV9kb3dubG9hZEJ5
dGVzV3JpdHRlbiB7IDAgfTsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlN1c3BlbmRlZCB9
OworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZDNiZmI3Y2MzMTA5Nzk5Y2M4MDAxYmJhNzFkODljMGY2ZjJkOTJmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJEb3dubG9hZFRhc2subWVzc2FnZXMuaW4KQEAgLTAsMCArMSwzMiBAQAorIyBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorCittZXNzYWdlcyAtPiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrIE5vdFJlZkNv
dW50ZWQgeworICAgIERpZEZhaWwoV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBE
aWRSZWNlaXZlRGF0YShJUEM6OlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNlaXZlRm9ybURhdGEoSVBDOjpGb3JtRGF0
YVJlZmVyZW5jZSBkYXRhKQorICAgIERpZEZpbmlzaCgpCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAK
aW5kZXggZDc4N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YS4uNDc3ZTg4MjUx
YmM5MDkxZGExNGJhMmEyYzMzYjM3NDNhOWUzMjUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rp
b24uaCIKICNpbmNsdWRlICJGb3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKQEAgLTMwMiw3ICszMDMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpjYW5ub3RIYW5kbGUoKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbmNlbEZy
b21DbGllbnQoKQogewotICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImNhbmNlbEZyb21DbGllbnQ6
Iik7CisgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY2FuY2VsRnJvbUNsaWVudDogaXNEb25lPSVk
IiwgbV9pc0RvbmUpOworICAgIGlmIChtX2lzRG9uZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
c2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OkNhbmNlbEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIgfSk7CiB9CiAKQEAgLTQxNiw2ICs0
MjAsMzYgQEAgTmV0d29ya1Nlc3Npb24qIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNlc3Npb24o
KQogICAgIHJldHVybiBtX3N3U2VydmVyQ29ubmVjdGlvbiA/IG1fc3dTZXJ2ZXJDb25uZWN0aW9u
LT5zZXNzaW9uKCkgOiBudWxscHRyOwogfQogCitib29sIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYgbWFuYWdlciwgRG93bmxvYWRJRCBk
b3dubG9hZElELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlmIChtX3ByZWxvYWRlciAgJiYgIW1fcHJlbG9h
ZGVyLT5pc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuIG1fcHJlbG9hZGVyLT5jb252ZXJ0VG9Eb3dubG9hZChtYW5hZ2VyLCBkb3dubG9hZElE
LCByZXF1ZXN0LCByZXNwb25zZSk7CisKKyAgICBhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vzc2lv
bigpOworICAgIGlmICghc2Vzc2lvbiB8fCAhbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9pc0RvbmUgPSB0cnVlOworCisgICAgLy8gRklY
TUU6IFdlIG1pZ2h0IHdhbnQgdG8ga2VlcCB0aGUgc2VydmljZSB3b3JrZXIgYWxpdmUgdW50aWwg
dGhlIGRvd25sb2FkIGVuZHMuCisgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s+
IHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s7CisgICAgYXV0byBzZXJ2aWNlV29ya2VyRG93bmxv
YWRMb2FkID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4obV9sb2FkZXIsICpzZXNzaW9uLCBbJl0o
YXV0byYgY2xpZW50KSB7CisgICAgICAgIHNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2sgPSAgU2Vy
dmljZVdvcmtlckRvd25sb2FkVGFzazo6Y3JlYXRlKCpzZXNzaW9uLCBjbGllbnQsICptX3NlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX3NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgZG93bmxvYWRJ
RCk7CisgICAgICAgIHJldHVybiBzZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmNvcHlSZWYoKTsK
KyAgICB9KTsKKworICAgIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRs
ZXIgPSBbc2VydmljZVdvcmtlckRvd25sb2FkVGFzayA9IFdURk1vdmUoc2VydmljZVdvcmtlckRv
d25sb2FkVGFzayldKGF1dG8gcG9saWN5KSB7CisgICAgICAgIGlmIChwb2xpY3kgIT0gUG9saWN5
QWN0aW9uOjpEb3dubG9hZCkgeworICAgICAgICAgICAgc2VydmljZVdvcmtlckRvd25sb2FkVGFz
ay0+c3RvcCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHNlcnZp
Y2VXb3JrZXJEb3dubG9hZFRhc2stPnN0YXJ0KCk7CisgICAgfTsKKworICAgIG1hbmFnZXIuY29u
dmVydE5ldHdvcmtMb2FkVG9Eb3dubG9hZChkb3dubG9hZElELCBXVEZNb3ZlKHNlcnZpY2VXb3Jr
ZXJEb3dubG9hZExvYWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgeyB9LCByZXF1ZXN0
LCByZXNwb25zZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCiAjdW5kZWYgU1dGRVRDSF9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgKaW5kZXggYWJhOTA1NzJmMDUxZWVkOTBmMmY3YTlkNTM1MDVlMWE0ZjRlOThj
Mi4uYzM0NTgwMjY3ZmIzMjY5ZTZkY2JkY2VmYzM0ZDA2ODJjNmEwODg2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgorI2luY2x1ZGUg
IkRvd25sb2FkSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZldGNoSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgpAQCAtNTQsNiArNTUsNyBAQCBjbGFzcyBO
ZXR3b3JrTG9hZE1ldHJpY3M7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgRG93bmxv
YWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZGVyOwogY2xhc3MgTmV0d29ya1Nl
c3Npb247CiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjsKQEAgLTg1LDYg
Kzg3LDggQEAgcHVibGljOgogICAgIHZvaWQgY2Fubm90SGFuZGxlKCk7CiAgICAgdm9pZCBjb250
ZXh0Q2xvc2VkKCk7CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdl
ciYsIERvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIFNo
b3VsZFNldFNvdXJjZSA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVk
aXJlY3RSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKaW5kZXggNzFl
MGNmNmM2ZGM3YmVhNTIyYzkwNjAwNTU1ZjU3MjE2MWMzYzJmNC4uMDFjMWUyNTY0YTg2MTIyZWI2
NzFlMGY2YTg2OWZhOTg3YmUyNmQyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEb3dubG9hZE1hbmFnZXIuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAi
TmV0d29ya0xvYWQuaCIKQEAgLTI0Miw2ICsyNDMsMTUgQEAgdm9pZCBTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvckJvZHkoQm9keUNhbGxiYWNrJiYgY2FsbGJhY2spCiAg
ICAgbV9ib2R5Q2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKIH0KIAorYm9vbCBTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6Y29udmVydFRvRG93bmxvYWQoRG93bmxvYWRNYW5h
Z2VyJiBtYW5hZ2VyLCBEb3dubG9hZElEIGRvd25sb2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCit7CisgICAgaWYgKCFtX25ldHdvcmtMb2FkKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBtYW5hZ2VyLmNvbnZlcnROZXR3b3JrTG9hZFRvRG93bmxvYWQoZG93bmxvYWRJRCwg
c3RkOjpleGNoYW5nZShtX25ldHdvcmtMb2FkLCBudWxscHRyKSwgV1RGTW92ZShtX3Jlc3BvbnNl
Q29tcGxldGlvbkhhbmRsZXIpLCB7IH0sIHJlcXVlc3QsIHJlc3BvbnNlKTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5oCmluZGV4IDFlNzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5ZGM1MGU2Y2I4ZjFl
YjQuLjhhNGYzY2RjNGE0MTYwZTlhYjc1Yjc2NTYxZjQyMWVkM2M3ZTVmNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICAiRG93
bmxvYWRJRC5oIgogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0
d29ya0xvYWRDbGllbnQuaCIKICNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKQEAg
LTM5LDYgKzQwLDcgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorY2xhc3MgRG93bmxvYWRNYW5hZ2VyOwogY2xhc3MgTmV0d29ya0xvYWQ7CiBjbGFz
cyBOZXR3b3JrU2Vzc2lvbjsKIApAQCAtNjAsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSBjb25zdCB7
IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZS5lbmFibGVk
OyB9CiAKKyAgICBib29sIGNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkTWFuYWdlciYsIERvd25s
b2FkSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmKTsKKwogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENsaWVudC4K
ICAgICB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVkIGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2ln
bmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNlbnQpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAppbmRleCA4YjIxMzg1
MmQwZjExN2RlZjgxOWQ0NTJkYjdiOGZjZjQ5ZTM3NTZiLi5mMGE4OTY3NWNjMTQ0MzcwOGEwYjY4
YWM5MzFjZTc3ZmQyNWM0MDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoVGFza01lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC01OSw2ICs2MCwxMCBAQCBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246On5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24oKQogICAgIGZvciAoYXV0byYgZmV0Y2ggOiBmZXRjaGVzLnZhbHVlcygpKQogICAgICAg
ICBmZXRjaC0+Y29udGV4dENsb3NlZCgpOwogCisgICAgYXV0byBkb3dubG9hZHMgPSBXVEZNb3Zl
KG1fb25nb2luZ0Rvd25sb2Fkcyk7CisgICAgZm9yIChhdXRvJiBkb3dubG9hZCA6IGRvd25sb2Fk
cy52YWx1ZXMoKSkKKyAgICAgICAgZG93bmxvYWQtPmNvbnRleHRDbG9zZWQoKTsKKwogICAgIGlm
IChtX3NlcnZlciAmJiBtX3NlcnZlci0+Y29udGV4dENvbm5lY3Rpb25Gb3JSZWdpc3RyYWJsZURv
bWFpbihyZWdpc3RyYWJsZURvbWFpbigpKSA9PSB0aGlzKQogICAgICAgICBtX3NlcnZlci0+cmVt
b3ZlQ29udGV4dENvbm5lY3Rpb24oKnRoaXMpOwogfQpAQCAtMTk3LDYgKzIwMiwxOSBAQCB2b2lk
IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckZldGNoKFNlcnZpY2VX
b3JrZXJGZXRjaFRhc2smIHRhcwogICAgIG1fb25nb2luZ0ZldGNoZXMucmVtb3ZlKHRhc2suZmV0
Y2hJZGVudGlmaWVyKCkpOwogfQogCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6cmVnaXN0ZXJEb3dubG9hZChTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrJiB0YXNrKQorewor
ICAgIEFTU0VSVCghbV9vbmdvaW5nRG93bmxvYWRzLmNvbnRhaW5zKHRhc2suZmV0Y2hJZGVudGlm
aWVyKCkpKTsKKyAgICBtX29uZ29pbmdEb3dubG9hZHMuYWRkKHRhc2suZmV0Y2hJZGVudGlmaWVy
KCksIHRhc2spOworICAgIG1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuYWRkVGhyZWFkTWVzc2Fn
ZVJlY2VpdmVyKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksICZ0YXNrLCB0YXNrLmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkpOwor
fQorCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6dW5yZWdpc3RlckRvd25s
b2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smIHRhc2spCit7CisgICAgbV9vbmdvaW5nRG93
bmxvYWRzLnJlbW92ZSh0YXNrLmZldGNoSWRlbnRpZmllcigpKTsKKyAgICBtX2Nvbm5lY3Rpb24u
Y29ubmVjdGlvbigpLnJlbW92ZVRocmVhZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U2Vydmlj
ZVdvcmtlckRvd25sb2FkVGFzazo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB0YXNrLmZldGNoSWRl
bnRpZmllcigpLnRvVUludDY0KCkpOworfQorCiBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OndlYlByb2Nlc3NJZGVudGlmaWVyKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9jb25uZWN0aW9uLndlYlByb2Nlc3NJZGVudGlmaWVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXgg
NGEwYjE1MzcxZmY5NjcxNTlkZmU2NjEyNThlNDU1NzZlNzUyMTEwZC4uMzM2NThjNTRjMTRmYTRh
NDQ0Yjc0MzZkZDkwYjA4NTlhMjQyYmI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg+CkBAIC03NCw4ICs3NSwxMSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHJlZ2lzdGVyRmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFz
ayYpOwogICAgIHZvaWQgdW5yZWdpc3RlckZldGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smKTsK
KyAgICB2b2lkIHJlZ2lzdGVyRG93bmxvYWQoU2VydmljZVdvcmtlckRvd25sb2FkVGFzayYpOwor
ICAgIHZvaWQgdW5yZWdpc3RlckRvd25sb2FkKFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2smKTsK
IAogICAgIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkg
Y29uc3Q7CisgICAgTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzKCkgeyByZXR1cm4gbV9j
b25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCk7IH0KIAogcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1l
c3NhZ2VTZW5kZXIKQEAgLTEwMyw2ICsxMDcsNyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAgICAgV2Vha1B0cjxXZWJDb3JlOjpT
V1NlcnZlcj4gbV9zZXJ2ZXI7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIs
IFdlYWtQdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4+IG1fb25nb2luZ0ZldGNoZXM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYWtQdHI8U2VydmljZVdvcmtlckRv
d25sb2FkVGFzaz4+IG1fb25nb2luZ0Rvd25sb2FkczsKICAgICBib29sIG1faXNUaHJvdHRsZWFi
bGUgeyB0cnVlIH07CiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlE
OwogICAgIHNpemVfdCBtX3Byb2Nlc3NpbmdQdXNoRXZlbnRzQ291bnQgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoIGIv
U291cmNlL1dlYktpdC9TY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaAppbmRleCBi
NmQ0MGFkOWU5NTQ3YmQ0MGRlODVjOWM4NWEzNWMxZTI1Y2RmMTkxLi4yYTNkNmI1ZWViMjQxNDAx
YzgwZWEzYmVkODIzODJkMDM1NjUyMzY0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoCisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy9nZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2gKQEAgLTE0LDcgKzE0LDcgQEAgaWYgWyAteiAi
JHtCVUlMRF9TQ1JJUFRTX0RJUn0iIF07IHRoZW4KICAgICBmaQogZmkKIAotVW5pZmllZFNvdXJj
ZUNwcEZpbGVDb3VudD0xMTEKK1VuaWZpZWRTb3VyY2VDcHBGaWxlQ291bnQ9MTE1CiBVbmlmaWVk
U291cmNlTW1GaWxlQ291bnQ9ODAKIAogaWYgWyAkIyAtZXEgMCBdOyB0aGVuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAwOTMwY2Y5MTdiYTc5MGU1NzVkODRi
OTY5ZWFjMDU4MWY1MmY1MTZlLi44YTQ3NDljZDQ0YmRkNDllOGM2ZTkyNjQwYWE0N2NjMTcxN2Jl
NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTExMjUs
NyArMTEyNSw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIpOgogICAg
ICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5p
Z25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSlcbicpCiAgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgICAgIHJldHVybjtcbicpCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcj
ZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5HX0FQSSlcbicpCi0gICAgICAgICAgICByZXN1bHQu
YXBwZW5kKCcgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIHN0
cmVhbSBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdl
TmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpO1xuJykKKyAgICAgICAgICAgIHJlc3Vs
dC5hcHBlbmQoJyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQg
c3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTtcbicpCiAgICAgICAgIHJl
c3VsdC5hcHBlbmQoJ31cbicpCiAgICAgZWxpZiBhc3luY19tZXNzYWdlcyBvciByZWNlaXZlci5o
YXNfYXR0cmlidXRlKFdBTlRTX0RJU1BBVENIX01FU1NBR0VfQVRUUklCVVRFKSBvciByZWNlaXZl
ci5oYXNfYXR0cmlidXRlKFdBTlRTX0FTWU5DX0RJU1BBVENIX01FU1NBR0VfQVRUUklCVVRFKToK
ICAgICAgICAgcmVjZWl2ZV92YXJpYW50ID0gcmVjZWl2ZXIubmFtZSBpZiByZWNlaXZlci5oYXNf
YXR0cmlidXRlKExFR0FDWV9SRUNFSVZFUl9BVFRSSUJVVEUpIGVsc2UgJycKQEAgLTExNDgsNyAr
MTE0OCw3IEBAIGRlZiBnZW5lcmF0ZV9tZXNzYWdlX2hhbmRsZXIocmVjZWl2ZXIpOgogICAgICAg
ICAgICAgcmVzdWx0LmFwcGVuZCgnICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNz
YWdlRm9yVGVzdGluZygpKVxuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICAgICAg
cmV0dXJuO1xuJykKICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyNlbmRpZiAvLyBFTkFCTEUo
SVBDX1RFU1RJTkdfQVBJKVxuJykKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJyAgICBBU1NF
UlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQ
Ukl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTtcbicpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0
LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGlu
YXRpb25JRCgpKTtcbicpCiAgICAgICAgIHJlc3VsdC5hcHBlbmQoJ31cbicpCiAKICAgICBpZiBu
b3QgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShTVFJFQU1fQVRUUklCVVRFKSBhbmQgKHN5bmNfbWVz
c2FnZXMgb3IgcmVjZWl2ZXIuaGFzX2F0dHJpYnV0ZShXQU5UU19ESVNQQVRDSF9NRVNTQUdFX0FU
VFJJQlVURSkpOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0
cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aENWUGl4ZWxCdWZmZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwCmluZGV4IDU2NDk2ZGRiYTVlYTQ0MjRkNDJlMWZjZjVjMjU2MzM4ZWQyODRlMmYuLjM4
NDFmYWYzMTc1NjFjYzJjYjNhNDI4NWFmMzY1M2ZmNGMyMjdjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhDVlBpeGVsQnVmZmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rl
c3RXaXRoQ1ZQaXhlbEJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAg
dm9pZCBUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYgY29ubmVjdGlvbiwgSVBDOjoKICAgICBpZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlk
TWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5o
YW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3Nh
Z2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6
OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aENWUGl4ZWxCdWZmZXI6OmRpZFJlY2VpdmVTeW5jTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
VW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJZk1lc3NhZ2VNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aElm
TWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggY2FiNTU5ZjZlNTdjODU3YjkzNDM3NWVh
YmU1OWE3YmI0OWFlYWI0NC4uYWFjNmJiMzVjOGUxOGI5NzZiYTE2ODg1MWFmNGZmNTIzOWNhNTk2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0
aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC90ZXN0cy9UZXN0V2l0aElmTWVzc2FnZU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTU0
LDcgKzU0LDcgQEAgdm9pZCBUZXN0V2l0aElmTWVzc2FnZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY28KICAgICBpZiAoY29ubmVjdGlvbi5p
Z25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAgcmV0dXJuOwogI2VuZGlm
IC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhf
TUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBkZXNjcmlwdGlvbihk
ZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIg
UFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoSW1hZ2VEYXRhTWVz
c2FnZVJlY2VpdmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVz
dFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4IGE5YjA3ODljNTlhYTlhNGU1
YmJiMjE1OWE1ZDFlYzAzZTU4NjcyNWMuLjI0NTRiM2RhZTY4ZDBkNDRlMDc1MzdmYTNlYjgyNTMw
NmU3YTQ4NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMv
VGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhJbWFnZURhdGFNZXNzYWdlUmVjZWl2ZXIuY3Bw
CkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgVGVzdFdpdGhJbWFnZURhdGE6OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvCiAgICAgaWYgKGNvbm5l
Y3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsK
ICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3Jp
cHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVz
IHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBk
ZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVzdFdpdGhJbWFnZURhdGE6OmRp
ZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdh
Y3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L3Rlc3RzL1Rlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCmluZGV4
IGQxYWM2MmI3YTY1MmNmNWNjM2FiMTk4ZGY2ODA4YjdkOGY0ZjcyMmQuLmM4OWY0Nzc4OTE2YTk0
NTliN2U4ZWE3ZDEzODUwMWQwYzg1ZTk2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhMZWdhY3lSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aExlZ2Fj
eVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgVGVz
dFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVRlc3RXaXRoTGVnYWN5UmVjZWl2ZXJNZXNz
YWdlKElQQzo6Q29ubmVjCiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VG
b3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJ
TkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBt
ZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgp
KSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRI
X01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlw
dGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9
CiAKIGJvb2wgVGVzdFdpdGhMZWdhY3lSZWNlaXZlcjo6ZGlkUmVjZWl2ZVN5bmNUZXN0V2l0aExl
Z2FjeVJlY2VpdmVyTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVj
b2RlciYgZGVjb2RlciwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5RW5jb2RlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTZW1h
cGhvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90
ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggMTk5ZjNjMzFm
NWMwNGRjOWI4ZjdhNzhjMjM1MjU1MTExNGM4MzQ0MS4uNTM2MzgyMzhjM2EzNmM0NDRjNDlmOTJl
YmNkYzFhMDY5YzM5ZjYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFNlbWFwaG9yZU1lc3NhZ2VSZWNl
aXZlci5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdm9pZCBUZXN0V2l0aFNlbWFwaG9yZTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY28KICAgICBp
ZiAoY29ubmVjdGlvbi5pZ25vcmVJbnZhbGlkTWVzc2FnZUZvclRlc3RpbmcoKSkKICAgICAgICAg
cmV0dXJuOwogI2VuZGlmIC8vIEVOQUJMRShJUENfVEVTVElOR19BUEkpCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1lc3NhZ2UgJXMgdG8gJSIgUFJJdTY0
LCBkZXNjcmlwdGlvbihkZWNvZGVyLm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9u
SUQoKSk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEX1dJVEhfTUVTU0FHRSgiVW5oYW5kbGVkIG1l
c3NhZ2UgJXMgdG8gJSIgUFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5h
bWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKIH0KIAogYm9vbCBUZXN0V2l0aFNlbWFw
aG9yZTo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBVbmlxdWVSZWY8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0
V2l0aFN0cmVhbUJ1ZmZlck1lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApp
bmRleCBjZGMxZWYxNjEwZGZjZmRhM2JlMjc4N2VjODMzMzk4MzY4NThhMzBjLi4xOGFkZDhhNmZi
NjA3Yjc2OGEzNzAzOTg2MzMwNTA0YzI3ODYyZmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3RyZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRoU3Ry
ZWFtQnVmZmVyTWVzc2FnZVJlY2VpdmVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCB2b2lkIFRlc3RX
aXRoU3RyZWFtQnVmZmVyOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIElQQzo6RAogICAgIGlmIChjb25uZWN0aW9uLmlnbm9yZUludmFsaWRNZXNzYWdlRm9y
VGVzdGluZygpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYgLy8gRU5BQkxFKElQQ19URVNUSU5H
X0FQSSkKLSAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgbWVz
c2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSks
IGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9N
RVNTQUdFKCJVbmhhbmRsZWQgbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIElQQzo6ZGVzY3JpcHRp
b24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5jcHAKaW5kZXggZGQyYjYxYmMzNDExOGNjNmJiMDVjNjg3NGFiMDI4MjFiOGYxYjllMS4uNjc4
NTRmODA5ZmU2ZjJjMjU0MjJjODIyMDU0M2ExOGMwZmUwYjY0NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0cmVhbU1lc3NhZ2VSZWNlaXZl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC90ZXN0cy9UZXN0V2l0aFN0
cmVhbU1lc3NhZ2VSZWNlaXZlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBUZXN0V2l0aFN0
cmVhbTo6ZGlkUmVjZWl2ZVN0cmVhbU1lc3NhZ2UoSVBDOjpTdHJlYW1TZXJ2ZXJDb25uZWN0aW9u
QmFzZSYgY28KICAgICBpZiAoY29ubmVjdGlvbi5jb25uZWN0aW9uKCkuaWdub3JlSW52YWxpZE1l
c3NhZ2VGb3JUZXN0aW5nKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBD
X1RFU1RJTkdfQVBJKQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFu
ZGxlZCBzdHJlYW0gbWVzc2FnZSAlcyB0byAlIiBQUkl1NjQsIGRlc2NyaXB0aW9uKGRlY29kZXIu
bWVzc2FnZU5hbWUoKSksIGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRURfV0lUSF9NRVNTQUdFKCJVbmhhbmRsZWQgc3RyZWFtIG1lc3NhZ2UgJXMgdG8gJSIg
UFJJdTY0LCBJUEM6OmRlc2NyaXB0aW9uKGRlY29kZXIubWVzc2FnZU5hbWUoKSksIGRlY29kZXIu
ZGVzdGluYXRpb25JRCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3RzL1Rlc3RXaXRob3V0QXR0cmlidXRl
c01lc3NhZ2VSZWNlaXZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L3Rlc3Rz
L1Rlc3RXaXRob3V0QXR0cmlidXRlc01lc3NhZ2VSZWNlaXZlci5jcHAKaW5kZXggYzI4ZTVlOGU4
OGM3MGQyMDk1YTEzYzE4MjUwYzVjM2FjODQxNzk2Mi4uMTlhZTliMGMyZDRhMjgzYTI0YjVjYWU4
M2ZkMjg4MDExMTA5MDYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC90ZXN0cy9UZXN0V2l0aG91dEF0dHJpYnV0ZXNNZXNzYWdlUmVjZWl2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvdGVzdHMvVGVzdFdpdGhvdXRBdHRyaWJ1dGVzTWVz
c2FnZVJlY2VpdmVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIHZvaWQgVGVzdFdpdGhvdXRBdHRy
aWJ1dGVzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6CiAgICAgaWYgKGNvbm5lY3Rpb24uaWdub3JlSW52YWxpZE1lc3NhZ2VGb3JUZXN0aW5nKCkp
CiAgICAgICAgIHJldHVybjsKICNlbmRpZiAvLyBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQotICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVuaGFuZGxlZCBtZXNzYWdlICVzIHRv
ICUiIFBSSXU2NCwgZGVzY3JpcHRpb24oZGVjb2Rlci5tZXNzYWdlTmFtZSgpKSwgZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIlVu
aGFuZGxlZCBtZXNzYWdlICVzIHRvICUiIFBSSXU2NCwgSVBDOjpkZXNjcmlwdGlvbihkZWNvZGVy
Lm1lc3NhZ2VOYW1lKCkpLCBkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSk7CiB9CiAKIGJvb2wgVGVz
dFdpdGhvdXRBdHRyaWJ1dGVzOjpkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlY29kZXIsIFVuaXF1ZVJlZjxJUEM6OkVuY29k
ZXI+JiByZXBseUVuY29kZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0
IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCAwNWE4NWIwMTk2MDQyMDE2YWI2ODVm
MjBkNGJlZjczYzQ2MjY1NjA3Li43ZWYxMmJiYmNmNzU4NzUyNTk0ZTM1MzAwMTNjYjgwZjc5ZDI5
Yzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTEzMyw3ICsxMzMsOCBAQCBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvbm5lY3Rpb24uY3Bw
CiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudERhZW1vbkNsaWVudC5jcHAKIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlclByb3h5LmNwcAogCi1OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIEBuby11bmlm
eQorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNr
LmNwcAorTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
LmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
clNvZnRVcGRhdGVMb2FkZXIuY3BwCiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
T3JpZ2luU3RvcmUuY3BwIEBuby11bmlmeQpAQCAtODc0LDUgKzg3NSw2IEBAIFJlbW90ZVNoYWRl
ck1vZHVsZU1lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVRleHR1cmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwCiBSZW1vdGVUZXh0dXJlVmlld01lc3NhZ2VSZWNlaXZlci5jcHAKIFJlbW90ZVdlYkxvY2tS
ZWdpc3RyeU1lc3NhZ2VSZWNlaXZlci5jcHAKK1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2tNZXNz
YWdlUmVjZWl2ZXIuY3BwCiBXZWJCcm9hZGNhc3RDaGFubmVsUmVnaXN0cnlNZXNzYWdlUmVjZWl2
ZXIuY3BwCiBXZWJMb2NrUmVnaXN0cnlQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViS2l0L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDUwODk4ZTQ2
MzAxNzMxOTRhZTRlZjdjY2U0M2FlOGViNDY3M2E4NmIuLjFiOWQ5N2MzOGM0MTJhN2NjOGQzZmZj
NGE1MmNhNWNlNjU2NzU1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVW5pZmllZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9VbmlmaWVkU291cmNlcy1v
dXRwdXQueGNmaWxlbGlzdApAQCAtMTcsNiArMTcsMTAgQEAgJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExLW1t
Lm0KICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1z
b3VyY2VzL1VuaWZpZWRTb3VyY2UxMS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMTAuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTExLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAKKyQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRT
b3VyY2UxMTMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE0LmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEx
NS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmll
ZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMi1tbS5tbQogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJj
ZXMvVW5pZmllZFNvdXJjZTEzLW1tLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkZGExNzQ5MjliMDk0NWMxNmI3NGQwODhhZjkwYzcz
NGEzYWQxN2Q5Li5jMjliMWY2MjA2M2ViZTgzMDUxOTdkYzM1YzE4ZjQ4NjllN2M3YTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5
NSw2ICszOTUsMTAgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3Rv
clVJUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclVJUHJveHlN
ZXNzYWdlcy5oICovOyB9OwogCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTEwOS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi87IH07
CiAJCTFDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDQUVDQjVFMjc0NjVB
RTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLzsgfTsKKwkJMkNBRUNCNjYyNzQ2
NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVu
aWZpZWRTb3VyY2UxMTIuY3BwICovOyB9OworCQkzQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5j
cHAgKi87IH07CisJCTRDQUVDQjY2Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRDQUVD
QjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLzsgfTsKKwkJNUNB
RUNCNjYyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNBRUNCNUUyNzQ2NUFFMzAwQUI3
OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTUuY3BwICovOyB9OwogCQkxQ0FFQ0I2NzI3NDY1QUU0MDBB
Qjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTEwOC5jcHAgKi87IH07CiAJCTFDQUVDQjY4Mjc0NjVBRTQwMEFCNzhEMCAvKiBVbmlmaWVk
U291cmNlMTEwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQUVDQjYwMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEwLmNwcCAqLzsg
fTsKIAkJMUNBRUNCNjkyNzQ2NUFFNDAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUNBRUNCNjEyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMDQuY3BwICovOyB9OwpAQCAtODgxLDcgKzg4
NSw2IEBACiAJCTQxREM0NTk2MUUzRDZFMjIwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREM0NTk0
MUUzRDZFMUUwMEIxMUY1MSAvKiBOZXR3b3JrUlRDUHJvdmlkZXIuaCAqLzsgfTsKIAkJNDFEQzQ1
OUMxRTNEQkIyODAwQjExRjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEQzQ1OUExRTNEQkIyNDAwQjEx
RjUxIC8qIExpYldlYlJUQ1NvY2tldENsaWVudC5oICovOyB9OwogCQk0MURENzJBQjI2ODIxNjcz
MDBBOTBDNzEgLyogTldTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxREQ3MkFBMjY4MjE2NzMwMEE5MEM3MSAvKiBOV1NQSS5oICovOyB9OwotCQk0
MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUxODUzNjIyMjcw
NEY2MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgKi87IH07CiAJCTQxRTBB
N0NCMjNCNjQ1Q0QwMDU2MTA2MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNzkxNUFDMjI1NkJCNzQwMEQ2Rjk3
RSAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLzsgfTsKIAkJNDFFMjQyRTAyNkUwQzkwODAwOUE4
QzY0IC8qIE5ldHdvcmtSVENVdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTI0MkRGMjZFMEM5MDQwMDlBOEM2NCAvKiBOZXR3
b3JrUlRDVXRpbGl0aWVzQ29jb2EubW0gKi87IH07CiAJCTQxRjA2MEUxMTY1NDMxODUwMEYzMjgx
QyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRjA2MEREMTY1NDMxNzUwMEYzMjgxQyAv
KiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKQEAgLTMxODUsNiAr
MzE4OCwxMCBAQAogCQkxQ0E4Qjk0NDEyN0M4ODJBMDA1NzZDMkIgLyogV2ViSW5zcGVjdG9yVUlQ
cm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkluc3Bl
Y3RvclVJUHJveHlNZXNzYWdlcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0L1dlYklu
c3BlY3RvclVJUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElS
OyB9OwogCQkxQ0FFQ0I1RDI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA5LmNwcDsgcGF0aCA9ICJEZXJpdmVk
U291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDkuY3BwIjsgc291
cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNUUyNzQ2NUFFMzAwQUI3
OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNv
dXJjZTExMS5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNl
cy9VbmlmaWVkU291cmNlMTExLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7
IH07CisJCTJDQUVDQjVFMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTEyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMTIuY3BwOyBwYXRoID0gIkRlcml2ZWRT
b3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTExMi5jcHAiOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkzQ0FFQ0I1RTI3NDY1QUUzMDBBQjc4
RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291
cmNlMTEzLmNwcDsgcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2Vz
L1VuaWZpZWRTb3VyY2UxMTMuY3BwIjsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKKwkJNENBRUNCNUUyNzQ2NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJjZTExNC5jcHA7IHBhdGggPSAiRGVyaXZlZFNv
dXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMTE0LmNwcCI7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CisJCTVDQUVDQjVFMjc0NjVBRTMwMEFCNzhE
MCAvKiBVbmlmaWVkU291cmNlMTE1LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3Vy
Y2UxMTUuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMv
VW5pZmllZFNvdXJjZTExNS5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxQ0FFQ0I1RjI3NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMTA4LmNwcDsgcGF0aCA9ICJEZXJpdmVkU291
cmNlcy9XZWJLaXQvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UxMDguY3BwIjsgc291cmNl
VHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUNBRUNCNjAyNzQ2NUFFMzAwQUI3OEQw
IC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVW5pZmllZFNvdXJj
ZTExMC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViS2l0L3VuaWZpZWQtc291cmNlcy9V
bmlmaWVkU291cmNlMTEwLmNwcCI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTFDQUVDQjYxMjc0NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTA0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UxMDQuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3Vy
Y2VzL1dlYktpdC91bmlmaWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTEwNC5jcHAiOyBzb3VyY2VU
cmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNDE1Nyw2ICs0MTY0LDkgQEAKIAkJNDFG
Q0Q2QkQyM0NFMDQzRjAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUmVtb3RlU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyTWFuYWdlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFGQ0Q2QkUyM0NFMDQ0MDAwQzYyNTY3IC8qIFJlbW90ZVNhbXBsZUJ1ZmZlckRp
c3BsYXlMYXllck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRkNENkJGMjNDRTA0NDAwMEM2MjU2NyAvKiBSZW1vdGVTYW1w
bGVCdWZmZXJEaXNwbGF5TGF5ZXJNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFGRkQyREEyNzVBNTYwQjAwNTAxQkJGIC8qIFNlcnZpY2VX
b3JrZXJEb3dubG9hZFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtlckRv
d25sb2FkVGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRkZEMkRCMjc1
QTU2MEMwMDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFGRkQyREMyNzVBNkE5NDAwNTAxQkJGIC8qIFNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2subWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ1MEFFQkYxREMzRkFFNTAwOTk0M0Yy
IC8qIFNoYXJlZE1lbW9yeUNvY29hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFNoYXJlZE1lbW9yeUNvY29hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDQ1OTk4NDEyMjgzM0U2MDAwRTYxMzczIC8qIFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQ2REM2NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXli
YWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04MTk5LDYgKzgyMDksMTAgQEAKIAkJCQkxQ0FFQ0I1RDI3NDY1QUUz
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgKi8sCiAJCQkJMUNBRUNCNjAyNzQ2NUFF
MzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTAuY3BwICovLAogCQkJCTFDQUVDQjVFMjc0NjVB
RTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTExLmNwcCAqLywKKwkJCQkyQ0FFQ0I1RTI3NDY1
QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgKi8sCisJCQkJM0NBRUNCNUUyNzQ2
NUFFMzAwQUI3OEQwIC8qIFVuaWZpZWRTb3VyY2UxMTMuY3BwICovLAorCQkJCTRDQUVDQjVFMjc0
NjVBRTMwMEFCNzhEMCAvKiBVbmlmaWVkU291cmNlMTE0LmNwcCAqLywKKwkJCQk1Q0FFQ0I1RTI3
NDY1QUUzMDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNS5jcHAgKi8sCiAJCQkpOwogCQkJbmFt
ZSA9ICJ1bmlmaWVkLXNvdXJjZXMiOwogCQkJcGF0aCA9ICJEZXJpdmVkU291cmNlcy9XZWJLaXQv
dW5pZmllZC1zb3VyY2VzIjsKQEAgLTEwMzUwLDYgKzEwMzY0LDkgQEAKIAkJOTNCQTA0RDkyMTUx
QURDRDAwN0Y0NTVGIC8qIFNlcnZpY2VXb3JrZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTQxRkZEMkRBMjc1QTU2MEIwMDUwMUJCRiAvKiBTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrLmNwcCAqLywKKwkJCQk0MUZGRDJEQjI3NUE1NjBDMDA1MDFCQkYg
LyogU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5oICovLAorCQkJCTQxRkZEMkRDMjc1QTZBOTQw
MDUwMUJCRiAvKiBTZXJ2aWNlV29ya2VyRG93bmxvYWRUYXNrLm1lc3NhZ2VzLmluICovLAogCQkJ
CTQxNTE4NTM2MjIyNzA0RjYwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcCAq
LywKIAkJCQk0MTUxODUzNTIyMjcwNEY1MDA1NDMwQzYgLyogU2VydmljZVdvcmtlckZldGNoVGFz
ay5oICovLAogCQkJCTQxNTE4NTM4MjIyNzBGNTMwMDU0MzBDNiAvKiBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLm1lc3NhZ2VzLmluICovLApAQCAtMTUyMzIsNyArMTUyNDksNiBAQAogCQkJCUE1NUJB
ODI2MUJBMjVDRkQwMDdDRDMzRCAvKiBSZW1vdGVXZWJJbnNwZWN0b3JVSVByb3h5TWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdCQ0Y3MERFMjYxNUQwNkUwMEU0RkI3MCAv
KiBTY29wZWRSZW5kZXJpbmdSZXNvdXJjZXNSZXF1ZXN0Q29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQlFMThFNjkxNzE2OUI2NjdCMDA5QjY2NzAgLyogU2VjSXRlbVNoaW1Qcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk0MURFN0M2QzIyMjc4RjFFMDA1MzJCNjUg
LyogU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDkyQTc4
NzIxMkI2QUIxMDBGNDkzRkQgLyogU2hhcmVhYmxlQml0bWFwLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEQzE4RkVCRjMzN0I5NjcxQzg4RTNDRCAvKiBTaGFyZWRCdWZmZXJDb3B5LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTJEQzE4MTI0NUI1NDkzNDNCQzk4MTY0QyAvKiBTaGFyZWRCdWZmZXJE
YXRhUmVmZXJlbmNlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0NDgsNiArMTU0NjQsMTAgQEAK
IAkJCQkxQ0FFQ0I2NTI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTEwOS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2ODI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJj
ZTExMC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQ0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyog
VW5pZmllZFNvdXJjZTExMS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyQ0FFQ0I2NjI3NDY1QUU0
MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzQ0FF
Q0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExMy5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk0Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNvdXJjZTExNC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1Q0FFQ0I2NjI3NDY1QUU0MDBBQjc4RDAgLyogVW5pZmllZFNv
dXJjZTExNS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYg
LyogVXNlckludGVyZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTcz
MkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDBiODRiYmQzNjhmZWM5ZDRk
YTk2N2JmZTMxNDA2MGM4MDIzYmI0ZGQuLjgzMjA4MjA2YzY0YTY2MmEyNzk4NzNmOWM2NmQ5NDIy
YzZhZDY1ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTM5MSw2
ICszOTEsMTIgQEAgYm9vbCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6aXNUaHJvdHRs
ZWFibGUoKSBjb25zdAogICAgIHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOwogfQogCit2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkgPSBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKQorICAgICAgICBzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHktPmNvbnZlcnRGZXRjaFRvRG93bmxvYWQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGZldGNoSWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OmRpZEZhaWxIZWFydEJlYXRDaGVjayhTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OkRpZEZhaWxI
ZWFydEJlYXRDaGVjayB7IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIH0sIDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggZTdkZjdkOTQxYWNlOTA2NDE0ZWNmZmY1MGM0YmE0
NzlkMTQ2NGRkNS4uMDU4MGQ5ODMyMjhhNzJiYjhjOTk0OWNhMmIxYjRjNzExOGZhYzYxMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0xMDYsNiArMTA2LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpOwogICAgIHZvaWQg
Y2xvc2UoKTsKICAgICB2b2lkIHNldFRocm90dGxlU3RhdGUoYm9vbCBpc1Rocm90dGxlYWJsZSk7
CisgICAgdm9pZCBjb252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpGZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgY2FuY2VsRmV0Y2hEb3dubG9hZChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKIAog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3M7CiAg
ICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbV9yZWdpc3RyYWJsZURvbWFpbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNTI4YmVj
YTRlYTRjYjU3NTg2YzVmODY4MWZkYWFhYjJlMzcxMWQyYy4uZDU0MWI4MDMxOTJiOGQ1NGQxODIx
N2ZiMTEyNTZkZjAwNjk1MzAyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTQzLDYgKzQzLDggQEAgbWVzc2FnZXMgLT4gV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgVXBkYXRlUHJlZmVyZW5j
ZXNTdG9yZShzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlKQogICAgIENs
b3NlKCkKICAgICBTZXRUaHJvdHRsZVN0YXRlKGJvb2wgaXNUaHJvdHRsZWFibGUpCisKKyAgICBD
b252ZXJ0RmV0Y2hUb0Rvd25sb2FkKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIg
aWRlbnRpZmllcikKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwCmluZGV4IGZlZThmZWE3YmNjOGQ1OWMwN2UzYzViYTRkNjA5NTUyYTRkNjI4YmYuLmM3
ZGU0MTY2OTE3M2M0NTg3ZTM5MWIyMjY3NWRiY2NhYmZlYWEyOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VX
b3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJG
b3JtRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRG93bmxvYWRUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
LmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC04NCw3ICs4NSwxMCBA
QCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJl
ZjxTaGFyZWRCdWZmZXI+JiYgYnVmZmVyKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5z
aXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAg
ICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRh
c2s6OkRpZFJlY2VpdmVEYXRhIHsgYnVmZmVyLmdldCgpLCBzdGF0aWNfY2FzdDxpbnQ2NF90Pihi
dWZmZXItPnNpemUoKSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgIGVsc2UKKyAgICAgICAg
bV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpEaWRS
ZWNlaXZlRGF0YSB7IGJ1ZmZlci5nZXQoKSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oYnVmZmVyLT5z
aXplKCkpIH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpkaWRSZWNlaXZlRm9ybURhdGFBbmRGaW5pc2goUmVmPEZvcm1EYXRh
PiYmIGZvcm1EYXRhKQpAQCAtMTA3LDcgKzExMSwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVGb3JtRGF0YUFuZEZpbmlzaChSZWY8Rm9ybURhdGE+
JgogICAgIC8vIEZvciBub3cgYW5kIGZvciB0aGUgY2FzZSBvZiBibG9icywgd2UgcmVhZCBpdCB0
aGVyZSBhbmQgc2VuZCB0aGUgZGF0YSB0aHJvdWdoIElQQy4KICAgICBVUkwgYmxvYlVSTCA9IGZv
cm1EYXRhLT5hc0Jsb2JVUkwoKTsKICAgICBpZiAoYmxvYlVSTC5pc051bGwoKSkgewotICAgICAg
ICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRp
ZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBXVEZNb3ZlKGZvcm1E
YXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKG1faXNEb3dubG9hZCkK
KyAgICAgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2VydmljZVdvcmtlckRv
d25sb2FkVGFzazo6RGlkUmVjZWl2ZUZvcm1EYXRhIHsgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7
IFdURk1vdmUoZm9ybURhdGEpIH0gfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OkRpZFJlY2VpdmVGb3JtRGF0YSB7IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBX
VEZNb3ZlKGZvcm1EYXRhKSB9IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTM1LDcgKzE0MiwxMCBAQCB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQ6OmRpZFJlY2VpdmVCbG9iQ2h1bmsoY29uc3QgdWludDhfdCogZGF0YSwgcwog
ICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OkRpZFJlY2VpdmVEYXRh
IHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKKyAgICBpZiAobV9pc0Rvd25sb2FkKQorICAgICAgICBtX2Nvbm5lY3Rpb24t
PnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2s6OkRpZFJlY2VpdmVEYXRh
IHsgeyBkYXRhLCBzaXplIH0sIHN0YXRpY19jYXN0PGludDY0X3Q+KHNpemUpIH0sIG1fZmV0Y2hJ
ZGVudGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdl
czo6U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkUmVjZWl2ZURhdGEgeyB7IGRhdGEsIHNpemUg
fSwgc3RhdGljX2Nhc3Q8aW50NjRfdD4oc2l6ZSkgfSwgbV9mZXRjaElkZW50aWZpZXIpOwogfQog
CiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmRpZEZpbmlzaEJsb2JMb2Fk
aW5nKCkKQEAgLTE1Nyw3ICsxNjcsMTAgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrOjpEaWRGYWlsIHsgZXJyb3IgfSwgbV9mZXRjaElkZW50aWZpZXIpOworICAg
IGlmIChtX2lzRG93bmxvYWQpCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckRvd25sb2FkVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVu
dGlmaWVyKTsKKyAgICBlbHNlCisgICAgICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6
U2VydmljZVdvcmtlckZldGNoVGFzazo6RGlkRmFpbCB7IGVycm9yIH0sIG1fZmV0Y2hJZGVudGlm
aWVyKTsKIAogICAgIGNsZWFudXAoKTsKIH0KQEAgLTE3NCw3ICsxODcsMTAgQEAgdm9pZCBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpkaWRGaW5pc2goKQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7CisgICAgaWYgKG1f
aXNEb3dubG9hZCkKKyAgICAgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTZXJ2aWNl
V29ya2VyRG93bmxvYWRUYXNrOjpEaWRGaW5pc2ggeyB9LCBtX2ZldGNoSWRlbnRpZmllcik7Cisg
ICAgZWxzZQorICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2s6OkRpZEZpbmlzaCB7IH0sIG1fZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIGNs
ZWFudXAoKTsKIH0KQEAgLTE5NCw2ICsyMTAsMTIgQEAgdm9pZCBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50OjpjYW5jZWwoKQogICAgIG1fY29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAK
K3ZvaWQgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y29udmVydEZldGNoVG9Eb3du
bG9hZCgpCit7CisgICAgbV9pc0Rvd25sb2FkID0gdHJ1ZTsKKyAgICBjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSgpOworfQorCiB2b2lkIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6
OmNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNl
V29ya2VyLCAiU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Ojpjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZSwgaGFzIGNvbm5lY3Rpb24gJWQsIGRpZEZpbmlzaCAlZCwgcmVzcG9uc2UgdHlw
ZSAlbGQiLCAhIW1fY29ubmVjdGlvbiwgbV9kaWRGaW5pc2gsIHN0YXRpY19jYXN0PGxvbmc+KG1f
cmVzcG9uc2VEYXRhLmluZGV4KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQu
aAppbmRleCBiMzQ3Y2FkMmFiNWY1NzFiMWEwZTIwNzIwODA0MzY3ZDc3MDE4NjAwLi4wMWY2MTBi
ZDQzM2EyZTlhZmM5YTFmZGQ1NGIwODQzMGI5ODM3ZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oCkBAIC01Niw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRO
b3RIYW5kbGUoKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbCgpIGZpbmFsOwogICAgIHZvaWQgY29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSBmaW5hbDsKKyAgICB2b2lkIGNvbnZlcnRGZXRjaFRv
RG93bmxvYWQoKSBmaW5hbDsKIAogICAgIHZvaWQgY2xlYW51cCgpOwogICAgIApAQCAtODQsNiAr
ODUsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZl
UmVzcG9uc2VNZXNzYWdlIHsgZmFsc2UgfTsKICAgICBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRy
X3QsIFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+LCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+LCBV
bmlxdWVSZWY8V2ViQ29yZTo6UmVzb3VyY2VFcnJvcj4+IG1fcmVzcG9uc2VEYXRhOwogICAgIGJv
b2wgbV9kaWRGaW5pc2ggeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0Rvd25sb2FkIHsgZmFsc2Ug
fTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGVjNzE1YjkyMWU4YTE3NzUxODE4YmE2NDg5Mjlm
YjcyMWViZTc4MTUuLjU5N2FjMDlkN2NmNWRlYTBjNjAxMjVmOGFhNDhiYjcyZThiMWRjOGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAyMS0xMi0wNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgRml4IFNlcnZpY2VXb3JrZXIgZG93bmxvYWRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDIxNDIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzU1NzIxOTM0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCB0ZXN0IHJ1bm5lciBBUEkgdG8gbG9nIHRoZSB0b3RhbCBkb3dubG9hZCBzaXpl
LgorICAgICAgICBUaGlzIGhlbHBzIGVuc3VyaW5nIHRoYXQgc2VydmljZSB3b3JrZXIgbG9hZHMg
YXJlIGNvcnJlY3RseSBkb3dubG9hZGVkIGFuZCBkbyBub3QgcmVseSBvbiBuZXR3b3JraW5nLgor
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0
UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKwogMjAyMS0xMi0wNiAg
Sm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdGVzdHMgZm9yIGR1cGxpY2F0ZSBzdWIgZG9tYWlucwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggN2NlYTA2NzZkMjdiNzI3MDE1MDI5NTlkMTdlMGNi
NWM3Y2UwZWM2Yi4uNWY4NTI5OTIwNjM3MzFlMGMyMTI4YjIwYmJlZjZmYjc3MGRlY2I5NSAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zOSw2ICszOSw3IEBAIGludGVyZmFjZSBUZXN0
UnVubmVyIHsKICAgICAvLyBEb3dubG9hZHMuCiAgICAgdW5kZWZpbmVkIHdhaXRVbnRpbERvd25s
b2FkRmluaXNoZWQoKTsKICAgICB1bmRlZmluZWQgc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxsYmFj
a3MoYm9vbGVhbiB2YWx1ZSk7CisgICAgdW5kZWZpbmVkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6
ZShib29sZWFuIHZhbHVlKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFTkRFUl9UUkVF
X1NIT1dfQUxMX0xBWUVSUyAgICAgICAgICAgID0gMTsKICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCBSRU5ERVJfVFJFRV9TSE9XX0xBWUVSX05FU1RJTkcgICAgICAgICA9IDI7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRl
eCBlMWZjZTJjYTUxZjFiMDJkOWM0MzdiMDk5ZWY3MTgzNjYxNTkwY2MyLi5hMzI4MGRmMTZjZDQ0
ZjZkMDk4MDA4ZTYxOTJhNGMxMTMwNGFlMjJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTEwMDgsNiArMTAwOCwx
MSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKGJvb2wg
dmFsdWUpCiAgICAgcG9zdFBhZ2VNZXNzYWdlKCJTZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNr
cyIsIHZhbHVlKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG91bGRMb2dEb3dubG9hZFNp
emUoYm9vbCB2YWx1ZSkKK3sKKyAgICBwb3N0UGFnZU1lc3NhZ2UoIlNldFNob3VsZExvZ0Rvd25s
b2FkU2l6ZSIsIHZhbHVlKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRBdXRoZW50aWNhdGlv
blVzZXJuYW1lKEpTU3RyaW5nUmVmIHVzZXJuYW1lKQogewogICAgIHBvc3RQYWdlTWVzc2FnZSgi
U2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSIsIHRvV0sodXNlcm5hbWUpKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5kZXggMzFm
MTA2Zjk5M2I4YjY3NTdhOTY5MjJkNmIwY2Q0YzRjNDQ2ODFhZC4uNWM2YTk2Y2FlMDFmNTkyNTU0
NWI4ZjA2MGVhZmRmMmQ2YmUxYmYyNSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTIxNSw2ICsyMTUsNyBAQCBwdWJsaWM6
CiAgICAgLy8gRG93bmxvYWRzCiAgICAgYm9vbCBzaG91bGRGaW5pc2hBZnRlckRvd25sb2FkKCkg
Y29uc3QgeyByZXR1cm4gbV9zaG91bGRGaW5pc2hBZnRlckRvd25sb2FkOyB9CiAgICAgdm9pZCBz
ZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyhib29sKTsKKyAgICB2b2lkIHNldFNob3VsZExv
Z0Rvd25sb2FkU2l6ZShib29sKTsKIAogICAgIGJvb2wgc2hvdWxkQWxsb3dFZGl0aW5nKCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCBlZDI4MDJmYjFlNzY2ZGM1ZGU2N2M0NGQxNTc2
NjE2MzJjMzkzMWEzLi42YjhhY2JmZGZiYzRlNjFhNDYxNzg3ZWM3OTdkNjcxMzk2Y2MyY2RmIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ2LDcgKzE0
Niw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6Om5hdmlnYXRpb25EaWRCZWNvbWVEb3dubG9hZFNo
YXJlZChXS0Rvd25sb2FkUmVmIGRvd25sb2FkLCBjCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpk
b3dubG9hZERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdFRvVVJMLAogICAgICAgICBUZXN0Q29udHJv
bGxlcjo6ZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UsCiAgICAgICAg
IFRlc3RDb250cm9sbGVyOjpkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRGaWxlbmFtZSwK
LSAgICAgICAgbnVsbHB0ciwgLy8gZGlkV3JpdGVEYXRhCisgICAgICAgIFRlc3RDb250cm9sbGVy
Ojpkb3dubG9hZERpZFdyaXRlRGF0YSwKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OmRvd25sb2Fk
RGlkRmluaXNoLAogICAgICAgICBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsCiAgICAg
fTsKQEAgLTExMDgsNiArMTEwOCw4IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVU
b0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMsIFJlCiAgICAgICAg
IGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3MoKTsKICAgICB9CiAKKyAgICBt
X2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB7IH07CisKICAgICByZXR1cm4gbV9kb25lUmVz
ZXR0aW5nOwogfQogCkBAIC0yMjM3LDYgKzIyMzksOCBAQCBXS1N0cmluZ1JlZiBUZXN0Q29udHJv
bGxlcjo6ZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tEb3dubG9hZFJl
ZgogCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZpbmlzaChXS0Rvd25sb2FkUmVm
KQogeworICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSkKKyAgICAgICAgbV9jdXJyZW50
SW52b2NhdGlvbi0+b3V0cHV0VGV4dChtYWtlU3RyaW5nKCJEb3dubG9hZCBzaXplOiAiLCBtX2Rv
d25sb2FkVG90YWxCeXRlc1dyaXR0ZW4udmFsdWVfb3IoMCksICIuXG4iKSk7CiAgICAgaWYgKG1f
c2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCiAgICAgICAgIG1fY3VycmVudEludm9jYXRpb24t
Pm91dHB1dFRleHQoIkRvd25sb2FkIGNvbXBsZXRlZC5cbiIpOwogICAgIG1fY3VycmVudEludm9j
YXRpb24tPm5vdGlmeURvd25sb2FkRG9uZSgpOwpAQCAtMjI2OSw2ICsyMjczLDE4IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFdLRG93bmxvYWRSZWYsIFdLCiAgICAgc3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25z
dF9jYXN0PHZvaWQqPihjbGllbnRJbmZvKSktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShudWxscHRyLCBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk7CiB9CiAKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OmRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcgbG9uZyB0b3RhbEJ5dGVzV3JpdHRl
bikKK3sKKyAgICBpZiAoIW1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MpCisgICAgICAgIHJl
dHVybjsKKyAgICBtX2Rvd25sb2FkVG90YWxCeXRlc1dyaXR0ZW4gPSB0b3RhbEJ5dGVzV3JpdHRl
bjsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRXcml0ZURhdGEoV0tEb3du
bG9hZFJlZiBkb3dubG9hZCwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRvdGFs
Qnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwgY29uc3Qg
dm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNv
bnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZG93bmxvYWREaWRXcml0ZURhdGEodG90YWxC
eXRlc1dyaXR0ZW4pOworfQorCiB2b2lkIFRlc3RDb250cm9sbGVyOjp3ZWJQcm9jZXNzRGlkVGVy
bWluYXRlKFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uIHJlYXNvbikKIHsKICAgICAvLyBUaGlz
IGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgd2hlbiBjcmFzaCBsb2dzIGFy
ZSBiZWluZyBzYXZlZCBvbiBXaW5kb3dzLCBzbwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oCmluZGV4IDVjZDQ5ZmFmMzBkZTc4Y2NlYWNkNWFkMDNjODQ4NmRjNWZjOTFjMTAu
LjQwM2VkYzIzZTg1MGExNDg0YzYxMmQ1OWQ0ZGJkYjA5OTFhMmMxN2IgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTE5MCw2ICsxOTAsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRTaG91bGRMb2dIaXN0b3J5Q2xpZW50Q2FsbGJhY2tzKGJvb2wgc2hvdWxkTG9n
KSB7IG1fc2hvdWxkTG9nSGlzdG9yeUNsaWVudENhbGxiYWNrcyA9IHNob3VsZExvZzsgfQogICAg
IHZvaWQgc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShi
b29sIHNob3VsZExvZykgeyBtX3Nob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UgPSBzaG91bGRMb2c7IH0KICAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkQ2Fs
bGJhY2tzKGJvb2wgc2hvdWxkTG9nKSB7IG1fc2hvdWxkTG9nRG93bmxvYWRDYWxsYmFja3MgPSBz
aG91bGRMb2c7IH0KKyAgICB2b2lkIHNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZShib29sIHNob3Vs
ZExvZykgeyBtX3Nob3VsZExvZ0Rvd25sb2FkU2l6ZSA9IHNob3VsZExvZzsgfQogCiAgICAgYm9v
bCBpc0N1cnJlbnRJbnZvY2F0aW9uKFRlc3RJbnZvY2F0aW9uKiBpbnZvY2F0aW9uKSBjb25zdCB7
IHJldHVybiBpbnZvY2F0aW9uID09IG1fY3VycmVudEludm9jYXRpb24uZ2V0KCk7IH0KIApAQCAt
NDczLDcgKzQ3NCwxMCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGRvd25sb2FkRGlkUmVj
ZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tEb3dubG9hZFJlZiwgV0tVUkxSZXNwb25zZVJlZiwg
V0tVUkxSZXF1ZXN0UmVmLCBjb25zdCB2b2lkKik7CiAgICAgYm9vbCBkb3dubG9hZERpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdFRvVVJMKFdLRG93bmxvYWRSZWYsIFdLVVJMUmVxdWVzdFJlZik7CiAg
ICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
V0tEb3dubG9hZFJlZiwgV0tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVJlZiwgY29uc3Qgdm9pZCAq
Y2xpZW50SW5mbyk7Ci0gICAgCisKKyAgICB2b2lkIGRvd25sb2FkRGlkV3JpdGVEYXRhKGxvbmcg
bG9uZyB0b3RhbEJ5dGVzV3JpdHRlbik7CisgICAgc3RhdGljIHZvaWQgZG93bmxvYWREaWRXcml0
ZURhdGEoV0tEb3dubG9hZFJlZiwgbG9uZyBsb25nIGJ5dGVzV3JpdHRlbiwgbG9uZyBsb25nIHRv
dGFsQnl0ZXNXcml0dGVuLCBsb25nIGxvbmcgdG90YWxCeXRlc0V4cGVjdGVkVG9Xcml0ZSwgY29u
c3Qgdm9pZCogY2xpZW50SW5mbyk7CisKICAgICBzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzRGlkVGVy
bWluYXRlKFdLUGFnZVJlZiwgIFdLUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKTsKICAgICB2b2lkIHdlYlByb2Nlc3NEaWRUZXJtaW5hdGUoV0tQcm9jZXNz
VGVybWluYXRpb25SZWFzb24pOwogCkBAIC02NjMsNiArNjY3LDkgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faXNTcGVlY2hSZWNvZ25pdGlvblBlcm1pc3Npb25HcmFudGVkIHsgZmFsc2UgfTsKIAog
ICAgIGJvb2wgbV9pc01lZGlhS2V5U3lzdGVtUGVybWlzc2lvbkdyYW50ZWQgeyB0cnVlIH07CisK
KyAgICBzdGQ6Om9wdGlvbmFsPGxvbmcgbG9uZz4gbV9kb3dubG9hZFRvdGFsQnl0ZXNXcml0dGVu
OworICAgIGJvb2wgbV9zaG91bGRMb2dEb3dubG9hZFNpemUgeyBmYWxzZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJ
bnZvY2F0aW9uLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
CmluZGV4IDNkZmFjNWZjMDA5ZTQ5NjU0NDRlNmI0MDkxZGJlZWIyZTIyMWQyYmIuLjcyZmE4MmJi
YzAxMDI5NmYwNGQxMzBlYzliYzZhNDM1N2NiZDBlOTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdEludm9jYXRpb24uY3BwCkBAIC01MzcsNiArNTM3LDExIEBAIHZvaWQgVGVzdEludm9j
YXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1l
c3NhZ2VOYW1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSIp
KSB7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTaG91bGRMb2dEb3du
bG9hZFNpemUoYm9vbGVhblZhbHVlKG1lc3NhZ2VCb2R5KSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwg
IlNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUiKSkgewogICAgICAgICBXS1N0cmluZ1JlZiB1c2Vy
bmFtZSA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUodG9XVEZTdHJpbmcodXNlcm5h
bWUpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA2MjEwZjVhMzMxNjczNDQ0Y2UxMzUyM2FiYzIwMzIwM2MyY2I1NDlmLi45
ZTA3NzQ2NzFiMDA0MDA2ZmQwMTkzZTBiMTE3NjVkMWM4MDE2MzUyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMjEtMTItMDcgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisg
ICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25sb2FkcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMTQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NTcyMTkzND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtl
ci1kb3dubG9hZC13b3JrZXIuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRv
d25sb2FkLWJvZHkuaHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGly
ZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10
aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMuaHRtbDog
QWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtd29ya2VyLmpzOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2
aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxvYWQuaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0xMi0wMyAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLWZsZXhib3hdIEFjY291bnQgZm9y
IGNhcHRpb25zIHdoZW4gZmxleGluZyB0YWJsZXMgd2l0aCBzcGVjaWZpZWQgc2l6ZXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9z
ZXJ2aWNlLXdvcmtlci1kb3dubG9hZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItZG93bmxvYWQtd29ya2Vy
LmpzCmluZGV4IGQ1YzY2MzBiYjUxMWY1ZjdhYjI4ZWRkMjFiNDBhYThmYzMzNDZlZjcuLjYwMDI5
MjM5ZDM3ZTBjMmVmZWEyMWMyNTVkZWYyZmFmZjdiZmI4M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1k
b3dubG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcwpAQCAtMSwz
ICsxLDIxIEBACiBzZWxmLmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgKGV2ZW50KSA9PiB7Cisg
ICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluY2x1ZGVzKCJkb3dubG9hZC1ib2R5IikpIHsKKyAg
ICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoImEgZG93bmxvYWQgYm9keSIsIHsi
aGVhZGVycyIgOiBbWyJDb250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vYmluYXJ5Il1dfSk7Cisg
ICAgICAgIGV2ZW50LnJlc3BvbmRXaXRoKHJlc3BvbnNlKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVkZXMoImRvd25sb2FkLXN0cmVhbSIp
KSB7CisgICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJsZVN0cmVhbSh7CisgICAgICAg
ICAgICBzdGFydDogKGNvbnRyb2xsZXIpID0+IHsKKyAgICAgICAgICAgICAgICBjb25zdCBlbmNv
ZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7CisgICAgICAgICAgICAgICAgY29udHJvbGxlci5lbnF1
ZXVlKGVuY29kZXIuZW5jb2RlKCJhIGZpcnN0IGNodW5rLCAiKSk7CisgICAgICAgICAgICAgICAg
c2V0VGltZW91dCgoKSA9PiB7IGNvbnRyb2xsZXIuZW5xdWV1ZShlbmNvZGVyLmVuY29kZSgidGhl
biBhIHNlY29uZCBjaHVuayIpKTsgfSwgMTAwKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0
KCgpID0+IHsgY29udHJvbGxlci5jbG9zZSgpOyB9LCAyMDApOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKKyAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2Uoc3RyZWFtLCB7
ImhlYWRlcnMiIDogW1siQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2JpbmFyeSJdXX0pOwor
ICAgICAgICBldmVudC5yZXNwb25kV2l0aChyZXNwb25zZSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CiAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZlbnQucmVxdWVzdC51cmwpKTsKIH0p
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1ib2R5
Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MmViYzJiODZlNjZiYjM5YzliYzA5ZDNk
YTkzZjQwMzI0MzFiY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9keS5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFydGVkLgorRG93bmxvYWRpbmcg
VVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJkb3dubG9hZC1ib2R5IgorRG93bmxvYWQgc2l6
ZTogMTUuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLWJvZHkuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Ut
d29ya2VyLWRvd25sb2FkLWJvZHkuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWQyZDQ4MGE5MWRh
YWMxYzZkNGQwZWVjODllY2MyODdmNGJhOWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtYm9k
eS5odHRwcy5odG1sCkBAIC0wLDAgKzEsMjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3N3LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0cnVlKTsK
KyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CisgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZERv
d25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKK30KKworYXN5bmMgZnVuY3Rpb24g
ZG9UZXN0KCkKK3sKKyAgICBhd2FpdCBpbnRlcmNlcHRlZEZyYW1lKCJyZXNvdXJjZXMvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQtd29ya2VyLmpzIiwgIi93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2Vz
LyIpOworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICIvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9k
b3dubG9hZC1ib2R5IjsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNlLXdvcmtlci1kb3dubG9hZC1zdHJlYW0uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3Ry
ZWFtLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOWExOWViZTM3YTMxNGIzZjU4NjI0
OGE3NjY3ZmE1MGMwZjM5ZmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQtc3RyZWFtLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0Rvd25sb2FkIHN0YXJ0ZWQuCitEb3dubG9h
ZGluZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25sb2FkLXN0cmVhbSIKK0Rvd25s
b2FkIHNpemU6IDM0LgorRG93bmxvYWQgY29tcGxldGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC1z
dHJlYW0uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXN0cmVhbS5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1
NzczZmU0Njk2NDA2NDMzMDNiZTAzZmE3NDBkYzhjMWNiYTgwOGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1k
b3dubG9hZC1zdHJlYW0uaHR0cHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zdy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRDYWxs
YmFja3ModHJ1ZSk7CisgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nRG93bmxvYWRTaXplKHRydWUp
OworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvd25sb2FkRmluaXNoZWQoKTsKKyAgdGVzdFJ1bm5l
ci5zZXRTaG91bGREb3dubG9hZFVuZGlzcGxheWFibGVNSU1FVHlwZXModHJ1ZSk7Cit9CisKK2Fz
eW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7CisgICAgYXdhaXQgaW50ZXJjZXB0ZWRGcmFtZSgicmVz
b3VyY2VzL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLXdvcmtlci5qcyIsICIvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy8iKTsKKyAgICB3aW5kb3cubG9jYXRpb24gPSAiL3dvcmtlcnMvc2Vydmlj
ZS9yZXNvdXJjZXMvZG93bmxvYWQtc3RyZWFtIjsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3dubG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1kb3du
bG9hZC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggZDA4ZWY4NDZkMzJmNmVjOTFkOTQyNzNjOWMy
NGUwZjBmMmNhNjIwMi4uOWUzMzNkNTY5MWU5OWJiZTVkZTMzMmI1Y2FmYjFlNGZkZWNhMzcyMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZS13b3JrZXItZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSw0ICsxLDUgQEAKIERvd25sb2FkIHN0YXJ0ZWQuCiBEb3dubG9hZGlu
ZyBVUkwgd2l0aCBzdWdnZXN0ZWQgZmlsZW5hbWUgImRvd25sb2FkLWJpbmFyeS5weSIKK0Rvd25s
b2FkIHNpemU6IDkuCiBEb3dubG9hZCBjb21wbGV0ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2Utd29ya2VyLWRvd25sb2FkLmh0
dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
LXdvcmtlci1kb3dubG9hZC5odHRwcy5odG1sCmluZGV4IDhjOWFkYTNmYzgxMmMzNjA5N2IzZDAz
OTQxNjQwOTM1Y2IyMmU3NDYuLjRhNWFhODdiNGVjMGQzZDczYzk3MTYxZTA2MmZjN2RjNjhhMTdi
MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2Utd29ya2VyLWRvd25sb2FkLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZS13b3JrZXItZG93bmxvYWQuaHR0cHMuaHRtbApA
QCAtNyw2ICs3LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKICAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZENhbGxiYWNrcyh0
cnVlKTsKKyAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dEb3dubG9hZFNpemUodHJ1ZSk7CiAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG93bmxvYWRGaW5pc2hlZCgpOwogICB0ZXN0UnVubmVyLnNldFNo
b3VsZERvd25sb2FkVW5kaXNwbGF5YWJsZU1JTUVUeXBlcyh0cnVlKTsKIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtl
ci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Ut
d29ya2VyLXByZWxvYWQtZG93bmxvYWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYzZmMzQzYzUxZDU5YTE5N2IwMmNmNWRmMzE5NzM3MTNiNjNk
N2FiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0
LXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3Rh
cnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2Vy
dmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkudmNmIgorRG93bmxvYWQgc2l6ZTogMTEuCitE
b3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91
Z2gtZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gt
ZGlyZWN0LXByZWxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmE4YzdiZTRlYTY5ODA1MDhh
ZmZlNzEwNWNkNGYwZTI5Y2JlNDM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxvYWQtZG93bmxv
YWQtdGhyb3VnaC1kaXJlY3QtcHJlbG9hZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rv
d25sb2FkQ2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2Fk
U2l6ZSh0cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7Cisg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUp
OworfQorCit2YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9
ICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXIt
cHJlbG9hZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVzJm5vLWZldGNoLWV2ZW50LWhhbmRsaW5nPXll
cyZ0b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2Fn
ZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0aXZhdGluZygpCit7CisgICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVz
c2FnZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhY3Rp
dmF0aW5nIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3JrZXIu
cG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpIHsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VT
ZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgi
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgbGV0IHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3Nl
cnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcyIsIHsg
c2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAg
ICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICByZWdpc3RyYXRpb24gPSBh
d2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDog
dXJsIH0pOworICAgIH0KKworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxs
aW5nOworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9ydDEg
fSwgW2NoYW5uZWwucG9ydDFdKTsKKworICAgIGF3YWl0IHdhaXRVbnRpbEFjdGl2YXRpbmcoKTsK
KworICAgIGZldGNoKHVybCArICImdmFsdWU9dXNlLXByZWxvYWQiLCB7IG1ldGhvZDogJ1BPU1Qn
IH0pOworCisgICAgLy8gTG9hZCBpZnJhbWUsIHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNvIHBy
ZWxvYWQgd2lsbCBzdGFydCBhbmQgd2lsbCBiZSB0aGUgb25lIHRvIGJlIGRvd25sb2FkZWQsIGRp
cmVjdGx5IHRocm91Z2ggcHJlbG9hZCBzaW5jZSBzZXJ2aWNlIHdvcmtlciBkaWQgbm90IGhhbmRs
ZSB0aGUgZXZlbnQuCisgICAgLy8gRG93bmxvYWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNl
LXByZWxvYWQiLgorICAgIGNvbnN0IHByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0
cmlnZ2VyQWN0aXZhdGlvbigpOworfQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9m
ZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtl
ci1wcmVsb2FkLWRvd25sb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmYzNDNj
NTFkNTlhMTk3YjAyY2Y1ZGYzMTk3MzcxM2I2M2Q3YWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXBy
ZWxvYWQtZG93bmxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxv
YWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0
Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkudmNmIgorRG93bmxvYWQgc2l6ZTog
MTEuCitEb3dubG9hZCBjb21wbGV0ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gt
c2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1
ZmZkZmVjNDJiYzMyMTIwNzAzMmM5MWY4NDQ4N2IyMDRiZTUxNmYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3Jr
ZXItcHJlbG9hZC1kb3dubG9hZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2Fk
Q2FsbGJhY2tzKHRydWUpOworICB0ZXN0UnVubmVyLnNldFNob3VsZExvZ0Rvd25sb2FkU2l6ZSh0
cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb3dubG9hZEZpbmlzaGVkKCk7CisgIHRlc3RS
dW5uZXIuc2V0U2hvdWxkRG93bmxvYWRVbmRpc3BsYXlhYmxlTUlNRVR5cGVzKHRydWUpOworfQor
Cit2YXIgYWN0aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2Vi
S2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9h
ZC1zY3JpcHQucHk/ZG93bmxvYWQ9eWVzJnRva2VuPSIgKyB1dWlkOwordmFyIGZyYW1lOworY29u
c3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxB
Y3RpdmF0aW5nKCkKK3sKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAg
ICAgIGNoYW5uZWwucG9ydDIub25tZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gImFjdGl2YXRpbmciKQorICAgICAgICAgICAgICAgIHJlc29sdmUo
KTsKKyAgICAgICAgfTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24o
KQoreworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiYWN0aXZhdGUiKTsKK30KKworYXN5
bmMgZnVuY3Rpb24gZG9UZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLnNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3ModHJ1ZSk7
CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAg
ICB9CisKKyAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2Vy
LXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJh
dGlvbi5pbnN0YWxsaW5nKSB7CisgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7Cisg
ICAgICAgIHJlZ2lzdHJhdGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lz
dGVyKCIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2Fk
LXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgfQorCisgICAgYWN0aXZlV29ya2Vy
ID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdl
KHsgcG9ydDogY2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0pOworCisgICAgYXdhaXQg
d2FpdFVudGlsQWN0aXZhdGluZygpOworCisgICAgZmV0Y2godXJsICsgIiZ2YWx1ZT11c2UtcHJl
bG9hZCIsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisKKyAgICAvLyBMb2FkIGlmcmFtZSwgd2l0aCBh
Y3RpdmF0aW5nIHdvcmtlciwgc28gcHJlbG9hZCB3aWxsIHN0YXJ0IGFuZCB3aWxsIGJlIHRoZSBv
bmUgdG8gYmUgZG93bmxvYWRlZCwgdGhyb3VnaCB0aGUgc2VydmljZSB3b3JrZXIuCisgICAgLy8g
RG93bmxvYWQgc2l6ZSBzaG91bGQgYmUgc2l6ZSBvZiAidXNlLXByZWxvYWQiLgorICAgIGNvbnN0
IHByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICB0cmlnZ2VyQWN0aXZhdGlvbigpOwor
fQorZG9UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1w
cmVsb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9m
ZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXdvcmtlci5qcwppbmRleCBkMDRhNDlhNzhjZDg5
MjlhNGZkMGRiNGFiMGNlYjgwMWEwMTk1MGU4Li42ODUwZTAxZGE5ZjFiNjZmY2NkZjNhOGYxNzg5
NjExNzQzYjgxYmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC13b3JrZXIuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2ZldGNoLXNlcnZpY2Utd29ya2VyLXByZWxv
YWQtd29ya2VyLmpzCkBAIC0yMyw1ICsyMyw3IEBAIG9uYWN0aXZhdGUgPSAoZXZlbnQpID0+IHsK
IH0KIAogc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAgIGlm
IChldmVudC5yZXF1ZXN0LnVybC5pbmNsdWRlcygibm8tZmV0Y2gtZXZlbnQtaGFuZGxpbmciKSkK
KyAgICAgICAgcmV0dXJuOwogICAgIGV2ZW50LnJlc3BvbmRXaXRoKGZldGNoKGV2ZW50LnJlcXVl
c3QpKTsKIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3Jlc291cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkKaW5kZXggMjA2NzgzNmY1NDE3MDNkZTg0ZjA4Yjhl
YjNlNmNjOGMzMzgxMzlmZS4uMTIwNjJiOGM1ZTEzNGY5YzUwN2QyMDlhNDQ0OTNhYjI3ODIxODUy
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291
cmNlcy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weQorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZldGNoLXNlcnZpY2Utd29y
a2VyLXByZWxvYWQtc2NyaXB0LnB5CkBAIC0zMSw1ICszMSwxMCBAQCBkZWYgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSk6CiAgICAgaWYgbm90IHZhbHVlOgogICAgICAgICB2YWx1ZSA9IGIibm90aGlu
ZyIKICAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hl
IikKKworICAgIGlmIGIiZG93bmxvYWQiIGluIHJlcXVlc3QuR0VUOgorICAgICAgICByZXNwb25z
ZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC92Y2FyZCIpCisgICAgICAgIHJl
dHVybiB2YWx1ZS5kZWNvZGUoKQorCiAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250ZW50
LVR5cGUiLCBiInRleHQvaHRtbCIpCiAgICAgcmV0dXJuICI8aHRtbD48Ym9keT48c2NyaXB0Pndp
bmRvdy52YWx1ZSA9ICclcyc7PC9zY3JpcHQ+PC9ib2R5PjwvaHRtbD4iICUgdmFsdWUuZGVjb2Rl
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC10aHJvdWdoLWRp
cmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1k
b3dubG9hZC10aHJvdWdoLWRpcmVjdC1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iNzhmOGFlNWRiZDNhYTFiZWNmNmUwZDM2ZmExYjFiMmU1MGQ5MTljCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2FkLXRocm91Z2gtZGlyZWN0LXBy
ZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorRG93bmxvYWQgc3RhcnRl
ZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAiZmV0Y2gtc2Vydmlj
ZS13b3JrZXItcHJlbG9hZC1zY3JpcHQucHkiCitEb3dubG9hZCBzaXplOiAxMS4KK0Rvd25sb2Fk
IGNvbXBsZXRlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mZXRjaC1zZXJ2aWNlLXdvcmtlci1wcmVsb2FkLWRvd25sb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3dubG9hZC5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjc4ZjhhZTVkYmQzYWExYmVjZjZlMGQzNmZhMWIx
YjJlNTBkOTE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZmV0Y2gtc2VydmljZS13b3JrZXItcHJlbG9hZC1kb3du
bG9hZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitEb3dubG9hZCBzdGFydGVk
LgorRG93bmxvYWRpbmcgVVJMIHdpdGggc3VnZ2VzdGVkIGZpbGVuYW1lICJmZXRjaC1zZXJ2aWNl
LXdvcmtlci1wcmVsb2FkLXNjcmlwdC5weSIKK0Rvd25sb2FkIHNpemU6IDExLgorRG93bmxvYWQg
Y29tcGxldGVkLgorCg==
</data>
<flag name="commit-queue"
          id="471710"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446332</attachid>
            <date>2021-12-08 01:28:58 -0800</date>
            <delta_ts>2021-12-08 07:40:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226386-20211208102856.patch</filename>
            <type>text/plain</type>
            <size>16467</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU1ZjVlYzJmZDhiMDE3
ZTE5YjFlYzc2Mzc1YWNjZWU3MGUxMWUzNy4uMDgwOTdhZWI1NjY5NGZiZTRmMzRhNDI4NTY3N2Fj
NjQyOWUwNjliZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYW1lLXNpdGUgbGF4IGNv
b2tpZXMgbm90IHNlbnQgYnkgZmV0Y2ggZXZlbnQgaGFuZGxlciBhZnRlciBwYWdlIHJlbG9hZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODg3ODg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgc2VydmljZSB3b3JrZXIgZmV0Y2hlcyBh
IG5hdmlnYXRpb24gcmVxdWVzdCBleHBvc2VkIGZyb20gdGhlIGZldGNoIGV2ZW50LCB3ZSBuZWVk
IHRvIGtlZXAgaXNUb3BTaXRlIGludGFjdCBhcworICAgICAgICB0aGUgc2VydmljZSB3b3JrZXIg
ZG9lcyBub3QgcmVhbGx5IGhhdmUgdGhlIGluZm9ybWF0aW9uIG9mIHdoaWNoIGZyYW1lIGlzIGFj
dHVhbGx5IGxvYWRlZCBhbmQgd2hldGhlciBpdCBpcyBhIG1haW4gZnJhbWUgb3Igbm90LgorCisg
ICAgICAgIFRlc3RzOiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0
aW9uLXNhbWUtY29va2llLWxheC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLmh0bWwKKworICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisKIDIwMjEtMTItMDcgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBTZXJ2aWNlV29ya2VyIGRvd25s
b2FkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBmNWM4MDk1NzAwNTVkNGE2NTU0OThiMjcyNjM0ODAxNGUzM2FiZDA1
Li5jMTQ2MDE3ZGUwOGEyNzEzZGQxNTEyZTQ4NjllMWYxMTFhNzBhMjUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDIxLTEyLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBTYW1lLXNpdGUgbGF4IGNvb2tpZXMgbm90IHNlbnQgYnkgZmV0Y2ggZXZl
bnQgaGFuZGxlciBhZnRlciBwYWdlIHJlbG9hZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODg3
ODg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
dG9yYWdlQmxvY2tpbmdQb2xpY3kgaGFuZGxpbmcgaXMgbm90IGNvdmVyZWQgYnkgZ2VuZXJhdGVk
IGNvZGUgc28gZXhwbGljaXQgdXBkYXRlIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBzZXR0aW5nIGZy
b20gcHJlZmVyZW5jZSBzdG9yZS4KKyAgICAgICAgVGhpcyBpbXBhY3RzIHRoZSBjb21wdXRhdGlv
biBvZiBjb29raWUvY2FjaGUgcGFydGl0aW9uaW5nLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKwogMjAyMS0xMi0wNyAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IFNlcnZpY2VX
b3JrZXIgZG93bmxvYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1
NjYxMDgzODA1NjY0ZTAxMTlmMTFmZmMzMmVhN2UxOTI3ZmM2NTdiLi42YzVlZTNhOWIzMWFlOGI4
NGRiOTIwYjY2ZWJmMjE0ZjI2ZWM5YWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTI4OTksOCArMjg5OSwxMCBAQCBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeSBG
cmFtZUxvYWRlcjo6ZGVmYXVsdFJlcXVlc3RDYWNoaW5nUG9saWN5KGNvbnN0IFJlc291cgogICAg
IHJldHVybiBSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6VXNlUHJvdG9jb2xDYWNoZVBvbGlj
eTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6dXBkYXRlUmVxdWVzdEFuZEFkZEV4dHJhRmllbGRz
KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgSXNNYWluUmVzb3VyY2UgbWFpblJlc291cmNlLCBG
cmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZSBzaG91
bGRVcGRhdGUpCit2b2lkIEZyYW1lTG9hZGVyOjp1cGRhdGVSZXF1ZXN0QW5kQWRkRXh0cmFGaWVs
ZHMoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBJc01haW5SZXNvdXJjZSBtYWluUmVzb3VyY2Us
IEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUsIFNob3VsZFVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlIHNo
b3VsZFVwZGF0ZSwgSXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvbkxvYWQgaXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvbkxvYWQpCiB7CisgICAgQVNTRVJUKGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25M
b2FkID09IElzU2VydmljZVdvcmtlck5hdmlnYXRpb25Mb2FkOjpObyB8fCBtYWluUmVzb3VyY2Ug
IT0gSXNNYWluUmVzb3VyY2U6Olllcyk7CisKICAgICAvLyBJZiB0aGUgcmVxdWVzdCBjYW1lIGZy
b20gYSBwcmV2aW91cyBwcm9jZXNzIGR1ZSB0byBwcm9jZXNzLXN3YXAtb24tbmF2aWdhdGlvbiB0
aGVuIHdlIHNob3VsZCBub3QgbW9kaWZ5IHRoZSByZXF1ZXN0LgogICAgIGlmIChtX2N1cnJlbnRM
b2FkQ29udGludWluZ1N0YXRlID09IExvYWRDb250aW51aW5nU3RhdGU6OkNvbnRpbnVpbmdXaXRo
UmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjkyOCw3ICsyOTMwLDEwIEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnVwZGF0ZVJlcXVlc3RBbmRBZGRFeHRyYUZpZWxkcyhSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIElzTWFpCiAgICAgICAgIH0KICAgICAgICAgYWRkU2FtZVNpdGVJbmZvVG9SZXF1
ZXN0SWZOZWVkZWQocmVxdWVzdCwgaW5pdGlhdG9yKTsKICAgICB9Ci0gICAgcmVxdWVzdC5zZXRJ
c1RvcFNpdGUoaXNNYWluRnJhbWVNYWluUmVzb3VyY2UpOworCisgICAgLy8gSW4gY2FzZSBvZiBz
ZXJ2aWNlIHdvcmtlciBuYXZpZ2F0aW9uIGxvYWQsIHdlIGluaGVyaXQgaXNUb3BTaXRlIGZyb20g
dGhlIEZldGNoRXZlbnQgcmVxdWVzdCBkaXJlY3RseS4KKyAgICBpZiAoaXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvbkxvYWQgPT0gSXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvbkxvYWQ6Ok5vKQorICAg
ICAgICByZXF1ZXN0LnNldElzVG9wU2l0ZShpc01haW5GcmFtZU1haW5SZXNvdXJjZSk7CiAKICAg
ICBQYWdlKiBwYWdlID0gZnJhbWUoKS5wYWdlKCk7CiAgICAgYm9vbCBoYXNTcGVjaWZpY0NhY2hl
UG9saWN5ID0gcmVxdWVzdC5jYWNoZVBvbGljeSgpICE9IFJlc291cmNlUmVxdWVzdENhY2hlUG9s
aWN5OjpVc2VQcm90b2NvbENhY2hlUG9saWN5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAppbmRleCBlMTNlMjg2ZTE0ZjRmZThmZDdkZjkwYTBlMTUxZjA5MzQxOGRkZGIxLi5kMWZmNmZl
NzhhMDBiNmVhYjkzNTlkMzNlMjc5M2MyZWZiY2RmMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaApAQCAtMzE3LDggKzMxNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEFsd2F5
c0FsbG93TG9jYWxXZWJhcmNoaXZlKGJvb2wgYWx3YXlzQWxsb3dMb2NhbFdlYmFyY2hpdmUpIHsg
bV9hbHdheXNBbGxvd0xvY2FsV2ViYXJjaGl2ZSA9IGFsd2F5c0FsbG93TG9jYWxXZWJhcmNoaXZl
OyB9CiAgICAgYm9vbCBhbHdheXNBbGxvd0xvY2FsV2ViYXJjaGl2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYWx3YXlzQWxsb3dMb2NhbFdlYmFyY2hpdmU7IH0KIAorICAgIGVudW0gY2xhc3MgSXNTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvbkxvYWQgeyBObywgWWVzIH07CiAgICAgLy8gRm9yIHN1YnJlc291
cmNlIHJlcXVlc3RzIHRoZSBGcmFtZUxvYWRUeXBlIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IGFu
ZCBjYW4gYmUgc2tpcHBlZC4KLSAgICB2b2lkIHVwZGF0ZVJlcXVlc3RBbmRBZGRFeHRyYUZpZWxk
cyhSZXNvdXJjZVJlcXVlc3QmLCBJc01haW5SZXNvdXJjZSwgRnJhbWVMb2FkVHlwZSA9IEZyYW1l
TG9hZFR5cGU6OlN0YW5kYXJkLCBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZSA9IFNob3Vs
ZFVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlOjpZZXMpOworICAgIHZvaWQgdXBkYXRlUmVxdWVzdEFu
ZEFkZEV4dHJhRmllbGRzKFJlc291cmNlUmVxdWVzdCYsIElzTWFpblJlc291cmNlLCBGcmFtZUxv
YWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsIFNob3VsZFVwZGF0ZUFwcEluaXRpYXRl
ZFZhbHVlID0gU2hvdWxkVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWU6OlllcywgSXNTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvbkxvYWQgPSBJc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZDo6Tm8pOwog
CiAgICAgdm9pZCBzY2hlZHVsZVJlZnJlc2hJZk5lZWRlZChEb2N1bWVudCYsIGNvbnN0IFN0cmlu
ZyYgY29udGVudCwgSXNNZXRhUmVmcmVzaCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDNhZThiYjY4ZDI1Y2RkZDE4MDIwOTIyZjVl
ZGIyNGQ0YjkxMjAwMDIuLjNlNDQ2ZmI5MTc0ZmY2ODIwMDAxMTRhNzJhM2UyYTAxMGU3ODEwODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApA
QCAtMjQxLDggKzI0MSwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENhY2hlZFJlc291
cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKIAogICAgIC8vIE5hdmlnYXRpb24gYWxn
b3JpdGhtIGlzIHNldHRpbmcgdXAgdGhlIHJlcXVlc3QgYmVmb3JlIHNlbmRpbmcgaXQgdG8gQ2Fj
aGVkUmVzb3VyY2VMb2FkZXI/Q2FjaGVkUmVzb3VyY2UuCiAgICAgLy8gU28gbm8gbmVlZCBmb3Ig
ZXh0cmEgZmllbGRzIGZvciBNYWluUmVzb3VyY2UuCi0gICAgaWYgKHR5cGUoKSAhPSBUeXBlOjpN
YWluUmVzb3VyY2UpCi0gICAgICAgIGZyYW1lTG9hZGVyLnVwZGF0ZVJlcXVlc3RBbmRBZGRFeHRy
YUZpZWxkcyhtX3Jlc291cmNlUmVxdWVzdCwgSXNNYWluUmVzb3VyY2U6Ok5vKTsKKyAgICBpZiAo
dHlwZSgpICE9IFR5cGU6Ok1haW5SZXNvdXJjZSkgeworICAgICAgICBib29sIGlzU2VydmljZVdv
cmtlck5hdmlnYXRpb25Mb2FkID0gdHlwZSgpICE9IFR5cGU6OlNWR0RvY3VtZW50UmVzb3VyY2Ug
JiYgbV9vcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSA9PSBTZXJ2aWNlV29ya2Vyc01vZGU6Ok5v
bmUgJiYgKG1fb3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9u
OjpEb2N1bWVudCB8fCBtX29wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRpb25zOjpEZXN0
aW5hdGlvbjo6SWZyYW1lKTsKKyAgICAgICAgZnJhbWVMb2FkZXIudXBkYXRlUmVxdWVzdEFuZEFk
ZEV4dHJhRmllbGRzKG1fcmVzb3VyY2VSZXF1ZXN0LCBJc01haW5SZXNvdXJjZTo6Tm8sIEZyYW1l
TG9hZFR5cGU6OlN0YW5kYXJkLCBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZTo6WWVzLCBp
c1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZCA/IEZyYW1lTG9hZGVyOjpJc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uTG9hZDo6WWVzIDogRnJhbWVMb2FkZXI6OklzU2VydmljZVdvcmtlck5hdmln
YXRpb25Mb2FkOjpObyk7CisgICAgfQogCiAgICAgLy8gRklYTUU6IEl0J3MgdW5mb3J0dW5hdGUg
dGhhdCB0aGUgY2FjaGUgbGF5ZXIgYW5kIGJlbG93IGdldCB0byBrbm93IGFueXRoaW5nIGFib3V0
IGZyYWdtZW50IGlkZW50aWZpZXJzLgogICAgIC8vIFdlIHNob3VsZCBsb29rIGludG8gcmVtb3Zp
bmcgdGhlIGV4cGVjdGF0aW9uIG9mIHRoYXQga25vd2xlZGdlIGZyb20gdGhlIHBsYXRmb3JtIG5l
dHdvcmsgc3RhY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmluZGV4IDgz
MjA4MjA2YzY0YTY2MmEyNzk4NzNmOWM2NmQ5NDIyYzZhZDY1ZTMuLjAzZWViOGIyZDgxMzEwZjll
OTY3N2ZmM2IwYzBlOTRjMzQ0ZjZmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5jcHAKQEAgLTE2Nyw4ICsxNjcsMTAgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlckNvbnRleHREYXQKICAgICAK
ICAgICBhdXRvIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkID0gY29udGV4dERhdGEubGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7CiAgICAgYXV0byBwYWdlID0gbWFrZVVuaXF1ZVJl
ZjxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7Ci0gICAgaWYgKG1fcHJlZmVyZW5j
ZXNTdG9yZSkKKyAgICBpZiAobV9wcmVmZXJlbmNlc1N0b3JlKSB7CiAgICAgICAgIFdlYlBhZ2U6
OnVwZGF0ZVNldHRpbmdzR2VuZXJhdGVkKCptX3ByZWZlcmVuY2VzU3RvcmUsIHBhZ2UtPnNldHRp
bmdzKCkpOworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShzdGF0aWNfY2FzdDxTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KG1fcHJlZmVyZW5jZXNTdG9yZS0+
Z2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1Bv
bGljeUtleSgpKSkpOworICAgIH0KICAgICBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnNldHVw
UGFnZUZvclNlcnZpY2VXb3JrZXIocGFnZS5nZXQoKSwgY29udGV4dERhdGEpOwogICAgIGF1dG8g
c2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpjcmVh
dGUoV1RGTW92ZShwYWdlKSwgV1RGTW92ZShjb250ZXh0RGF0YSksIFdURk1vdmUod29ya2VyRGF0
YSksIFdURk1vdmUoZWZmZWN0aXZlVXNlckFnZW50KSwgd29ya2VyVGhyZWFkTW9kZSwgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSk7CiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZTA3
NzQ2NzFiMDA0MDA2ZmQwMTkzZTBiMTE3NjVkMWM4MDE2MzUyLi5kNGNjNDkyYmQzMmFjNGYxOTli
NjUwNjZmMTFiODc5N2ViYzMzM2EyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMTItMDcg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNhbWUtc2l0ZSBs
YXggY29va2llcyBub3Qgc2VudCBieSBmZXRjaCBldmVudCBoYW5kbGVyIGFmdGVyIHBhZ2UgcmVs
b2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYz
ODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4ODc4ODUzPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1u
YXZpZ2F0aW9uLXNhbWUtY29va2llLWxheC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1jb29raWUucHk6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZ2V0LWRvY3VtZW50
LWNvb2tpZS5weTogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jl
c291cmNlcy9zZXQtY29va2llLWxheC5weTogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29r
aWUtbGF4Lmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEyLTA3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggU2VydmljZVdvcmtlciBkb3dubG9hZHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1z
aXRlLW5hdmlnYXRpb24tc2FtZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRlLW5hdmlnYXRpb24tc2Ft
ZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTE0ZTc0NTJkZTU2
NTEzMmZjYzJjMjkxYmJhYWYyZDQxZDJiMDIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1lLWNv
b2tpZS1sYXguaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1M6IGdvdCBzYW1l
c2l0ZS1jb29raWUtdGVzdD0xCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLXNhbWUtY29va2llLWxheC5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Nyb3NzLXNpdGUtbmF2
aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OGI5ZGU0MzNh
MzZkYjAzOWU1OGJhNjlhYWEyYmFiNzU2ZTkwOGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1l
LWNvb2tpZS1sYXguaHR0cHMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKK30KKwordmFyIHNjb3BlID0gIiI7CisKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCit7Cisg
ICAgaWYgKHdpbmRvdy5vcmlnaW4gPT0gImh0dHBzOi8vMTI3LjAuMC4xOjk0NDMiKSB7CisgICAg
ICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwczovL2xvY2FsaG9zdDo5NDQzL1dlYktpdC9zZXJ2
aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1kb2N1bWVudC1jb29raWUucHk/ZmV0Y2hUZXN0IjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IHJlZ2lzdHJhdGlvbiA9IGF3YWl0
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzYW1lLWNvb2tpZS1sYXgtd29ya2Vy
LmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIGlmICghcmVnaXN0cmF0aW9uLmFjdGl2ZSkg
eworICAgICAgICBjb25zdCB3b3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICAg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB3b3JrZXIuYWRk
RXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAgICAgICAgICAgaWYg
KHdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAgICAgIHJlc29s
dmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9CisgICAgY29uc3QgY29v
a2llVmFsdWUgPSAiUEFTUzogZ290IHNhbWVzaXRlLWNvb2tpZS10ZXN0IjsKKyAgICBhd2FpdCBm
ZXRjaCgicmVzb3VyY2VzL3NldC1jb29raWUtbGF4LnB5P25hbWU9IiArIGNvb2tpZVZhbHVlKTsK
KworICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJodHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC9z
ZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLXNhbWUtY29va2llLWxheC5odHRw
cy5odG1sP2ZldGNoVGVzdCI7Cit9Citkb1Rlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jl
c291cmNlcy9nZXQtY29va2llLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3Jlc291cmNlcy9nZXQtY29va2llLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNzMzZTc4Y2YwZGJlZjA2
MzY5NWY2Nzc3YTZjNDgzNDc0MDgwZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1jb29raWUucHkKQEAgLTAsMCAr
MSw2IEBACitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsKKyAg
ICAgICAgKCJDb250ZW50LVR5cGUiLCAidGV4dC9hc2NpaSIpLAorICAgIF0KKyAgICBib2R5ID0g
cmVxdWVzdC5oZWFkZXJzLmdldCgiQ29va2llIiwgIiIpCisgICAgcmV0dXJuIGhlYWRlcnMsIGJv
ZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNv
dXJjZXMvZ2V0LWRvY3VtZW50LWNvb2tpZS5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvZ2V0LWRvY3VtZW50LWNvb2tpZS5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YTA2ODc0YWU3M2UwZTRkOWFkZmIzNTdjYjVjNjc2ZGZhZDhiZTY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtZG9j
dW1lbnQtY29va2llLnB5CkBAIC0wLDAgKzEsNyBAQAorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2UpOgorICAgIGhlYWRlcnMgPSBbCisgICAgICAgICgiQ29udGVudC1UeXBlIiwgInRleHQvaHRt
bCIpLAorICAgIF0KKyAgICBjb29raWUgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb29raWUiLCAi
bm8gY29va2llIikKKworICAgIHJldHVybiBoZWFkZXJzLCAiPGh0bWw+PGJvZHk+PGRpdj4lczwv
ZGl2PjxzY3JpcHQ+aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTs8L3NjcmlwdD48L2JvZHk+PC9odG1sPiIgJSBjb29raWUuZGVjb2RlKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2V0LWNvb2tp
ZS1sYXgucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2Vz
L3NldC1jb29raWUtbGF4LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhNTA3Yjc0N2ZiYjg4YWRjMDE2NWVmODY4
ODljMmEwMzc3ODY3YTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9z
ZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3NldC1jb29raWUtbGF4LnB5CkBAIC0wLDAgKzEsMTIg
QEAKK2ltcG9ydCBzeXMKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZSwgcGFyc2Vf
cXMKKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgcGFyYW1zID0gcGFyc2Vf
cXMocmVxdWVzdC51cmxfcGFydHMucXVlcnkpCisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJD
b250ZW50LVR5cGUiLCAiYXBwbGljYXRpb24vanNvbiIpLAorICAgICAgICAoIlNldC1Db29raWUi
LCAie25hbWVbMF19PTE7IHBhdGg9Lzsgc2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4Ii5m
b3JtYXQoKipwYXJhbXMpKQorICAgIF0KKyAgICBib2R5ID0gInt9IgorICAgIHJldHVybiBoZWFk
ZXJzLCBib2R5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvc2FtZS1jb29raWUtbGF4LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0YzdhYjQ2
YTI5NjJmNWZjOGMyNTkxYTRlMmM5MmExMTJhMTdlMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4LXdvcmtlci5q
cwpAQCAtMCwwICsxLDIzIEBACithc3luYyBmdW5jdGlvbiBkb1Rlc3QoZXZlbnQpCit7CisgICAg
dHJ5IHsKKyAgICAgICAgaWYgKCFldmVudC5kYXRhLnN0YXJ0c1dpdGgoInRlc3QtY29va2llIikp
IHsKKyAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQg
dW5leHBlY3RlZCBtZXNzYWdlIGZyb20gY2xpZW50Iik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJyZXNvdXJj
ZXMvZ2V0LWNvb2tpZS5weSIpOworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoYXdh
aXQgcmVzcG9uc2UudGV4dCgpKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGV2ZW50LnNv
dXJjZS5wb3N0TWVzc2FnZShlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRvRmV0Y2goZXZlbnQp
Cit7CisgICAgaWYgKGV2ZW50LnJlcXVlc3QudXJsLmluY2x1ZGVzKCJmZXRjaFRlc3QiKSkKKyAg
ICAgICAgZXZlbnQucmVzcG9uZFdpdGgoZmV0Y2goZXZlbnQucmVxdWVzdCkpOworfQorCitzZWxm
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBkb1Rlc3QpOworc2VsZi5hZGRFdmVudExpc3Rl
bmVyKCJmZXRjaCIsIGRvRmV0Y2gpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDFjNGY0OGU4Y2Q1NGM3YmZmMTdmMjFjNzg0MDYwNjIx
OWM3MTg1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL3NhbWUtY29va2llLWxheC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBA
CisKK1BBU1MgU2V0dXAgd29ya2VyCitQQVNTIFRlc3Qgc2VydmljZSB3b3JrZXIgc2FtZXNpdGUg
bGF4IGNvb2tpZSAtIHNlcnZpY2Ugd29ya2VyIGludGVybmFsIGZldGNoCitQQVNTIFRlc3Qgc2Vy
dmljZSB3b3JrZXIgc2FtZXNpdGUgbGF4IGNvb2tpZSAtIGZldGNoIHNlcnZlZCBmcm9tIHNlcnZp
Y2Ugd29ya2VyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9zYW1lLWNvb2tpZS1sYXguaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXguaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMWU2
YWNiYjJmMWUzMDIxMTI0MDI1YTRhOGFmMGM2ZjlkNGZiMzVlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC5odHRw
cy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+Cit2YXIgc2NvcGUgPSAiIjsKK3ZhciBhY3RpdmVXb3JrZXI7CisKK3Byb21pc2VfdGVzdChh
c3luYyAodGVzdCkgPT4geworICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iu
c2VydmljZVdvcmtlci5yZWdpc3Rlcigic2FtZS1jb29raWUtbGF4LXdvcmtlci5qcyIsIHsgc2Nv
cGUgOiBzY29wZSB9KTsKKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uYWN0aXZlOwor
ICAgIGlmIChhY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybjsKKyAgICBhY3RpdmVXb3JrZXIg
PSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2
ZSA9PiB7CisgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5n
ZScsICgpID0+IHsKKyAgICAgICAgICAgIGlmIChhY3RpdmVXb3JrZXIuc3RhdGUgPT09ICJhY3Rp
dmF0ZWQiKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfSk7CisgICAgfSk7
Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInNhbWVzaXRlLWNvb2tpZS10ZXN0IjsKKyAgICBhd2Fp
dCBmZXRjaCgicmVzb3VyY2VzL3NldC1jb29raWUtbGF4LnB5P25hbWU9IiArIGNvb2tpZVZhbHVl
KTsKKworICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKGV2ZW50LmRhdGEpOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgidGVzdC1j
b29raWUiKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwcm9taXNlOworICAgIGFzc2VydF90
cnVlKHJlc3VsdC5pbmNsdWRlcyhjb29raWVWYWx1ZSArICI9MSIpKTsKK30sICJUZXN0IHNlcnZp
Y2Ugd29ya2VyIHNhbWVzaXRlIGxheCBjb29raWUgLSBzZXJ2aWNlIHdvcmtlciBpbnRlcm5hbCBm
ZXRjaCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBjb29r
aWVWYWx1ZSA9ICJzYW1lc2l0ZS1jb29raWUtdGVzdC1mZXRjaCI7CisgICAgYXdhaXQgZmV0Y2go
InJlc291cmNlcy9zZXQtY29va2llLWxheC5weT9uYW1lPSIgKyBjb29raWVWYWx1ZSk7CisKKyAg
ICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKCJyZXNvdXJjZXMvZ2V0LWNvb2tpZS5weT9m
ZXRjaFRlc3QiKTsKKyAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7Cisg
ICAgYXNzZXJ0X3RydWUocmVzdWx0LmluY2x1ZGVzKGNvb2tpZVZhbHVlICsgIj0xIikpOworfSwg
IlRlc3Qgc2VydmljZSB3b3JrZXIgc2FtZXNpdGUgbGF4IGNvb2tpZSAtIGZldGNoIHNlcnZlZCBm
cm9tIHNlcnZpY2Ugd29ya2VyIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446364</attachid>
            <date>2021-12-08 07:40:33 -0800</date>
            <delta_ts>2021-12-08 08:28:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-226386-20211208164031.patch</filename>
            <type>text/plain</type>
            <size>16481</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVmOTI0MTNkNGQzYjM4
MmU0OTM5YTg4YWZjYTllN2M4ZjFmZDFkMy4uOTkzMWQyMTk3OGM3YThjMmRkZDU4MDg3YWNjZmI1
YmU5YmYyZDM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEyLTA4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTYW1lLXNpdGUgbGF4IGNv
b2tpZXMgbm90IHNlbnQgYnkgZmV0Y2ggZXZlbnQgaGFuZGxlciBhZnRlciBwYWdlIHJlbG9hZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2Mzg2Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODg3ODg1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBD
aHJpcyBEdW1lei4KKworICAgICAgICBXaGVuIGEgc2VydmljZSB3b3JrZXIgZmV0Y2hlcyBhIG5h
dmlnYXRpb24gcmVxdWVzdCBleHBvc2VkIGZyb20gdGhlIGZldGNoIGV2ZW50LCB3ZSBuZWVkIHRv
IGtlZXAgaXNUb3BTaXRlIGludGFjdCBhcworICAgICAgICB0aGUgc2VydmljZSB3b3JrZXIgZG9l
cyBub3QgcmVhbGx5IGhhdmUgdGhlIGluZm9ybWF0aW9uIG9mIHdoaWNoIGZyYW1lIGlzIGFjdHVh
bGx5IGxvYWRlZCBhbmQgd2hldGhlciBpdCBpcyBhIG1haW4gZnJhbWUgb3Igbm90LgorCisgICAg
ICAgIFRlc3RzOiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9u
LXNhbWUtY29va2llLWxheC5odHRwcy5odG1sCisgICAgICAgICAgICAgICBodHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLmh0bWwKKworICAgICAgICAqIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisKIDIwMjEtMTItMDggIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNhZmFyaSBCdWcgIm5vLWNhY2hlIiBuZXR3
b3JrIGVycm9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYyNjRhZWQyZDE3Y2U1ZTQzNzFkMjFjODU5MTQ2MzNiYTE2
NTI5ZTUuLjAyNmVmMzY5YjFkMTZjODM0OTc1MzgyYTg4MmU3NTJiZjhjODg1OWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIFNhbWUtc2l0ZSBsYXggY29va2llcyBub3Qgc2VudCBieSBmZXRj
aCBldmVudCBoYW5kbGVyIGFmdGVyIHBhZ2UgcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYzODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc4ODc4ODUzPgorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
IFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBoYW5kbGluZyBpcyBub3QgY292ZXJlZCBieSBnZW5lcmF0
ZWQgY29kZSBzbyBleHBsaWNpdCB1cGRhdGUgU3RvcmFnZUJsb2NraW5nUG9saWN5IHNldHRpbmcg
ZnJvbSBwcmVmZXJlbmNlIHN0b3JlLgorICAgICAgICBUaGlzIGltcGFjdHMgdGhlIGNvbXB1dGF0
aW9uIG9mIGNvb2tpZS9jYWNoZSBwYXJ0aXRpb25pbmcuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorCiAyMDIxLTEyLTA3
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggU2Vydmlj
ZVdvcmtlciBkb3dubG9hZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4
IDU2NjEwODM4MDU2NjRlMDExOWYxMWZmYzMyZWE3ZTE5MjdmYzY1N2IuLjZjNWVlM2E5YjMxYWU4
Yjg0ZGI5MjBiNjZlYmYyMTRmMjZlYzlhZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcApAQCAtMjg5OSw4ICsyODk5LDEwIEBAIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5
IEZyYW1lTG9hZGVyOjpkZWZhdWx0UmVxdWVzdENhY2hpbmdQb2xpY3koY29uc3QgUmVzb3VyCiAg
ICAgcmV0dXJuIFJlc291cmNlUmVxdWVzdENhY2hlUG9saWN5OjpVc2VQcm90b2NvbENhY2hlUG9s
aWN5OwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjp1cGRhdGVSZXF1ZXN0QW5kQWRkRXh0cmFGaWVs
ZHMoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBJc01haW5SZXNvdXJjZSBtYWluUmVzb3VyY2Us
IEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUsIFNob3VsZFVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlIHNo
b3VsZFVwZGF0ZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OnVwZGF0ZVJlcXVlc3RBbmRBZGRFeHRyYUZp
ZWxkcyhSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIElzTWFpblJlc291cmNlIG1haW5SZXNvdXJj
ZSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgU2hvdWxkVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUg
c2hvdWxkVXBkYXRlLCBJc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZCBpc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uTG9hZCkKIHsKKyAgICBBU1NFUlQoaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
bkxvYWQgPT0gSXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvbkxvYWQ6Ok5vIHx8IG1haW5SZXNvdXJj
ZSAhPSBJc01haW5SZXNvdXJjZTo6WWVzKTsKKwogICAgIC8vIElmIHRoZSByZXF1ZXN0IGNhbWUg
ZnJvbSBhIHByZXZpb3VzIHByb2Nlc3MgZHVlIHRvIHByb2Nlc3Mtc3dhcC1vbi1uYXZpZ2F0aW9u
IHRoZW4gd2Ugc2hvdWxkIG5vdCBtb2RpZnkgdGhlIHJlcXVlc3QuCiAgICAgaWYgKG1fY3VycmVu
dExvYWRDb250aW51aW5nU3RhdGUgPT0gTG9hZENvbnRpbnVpbmdTdGF0ZTo6Q29udGludWluZ1dp
dGhSZXF1ZXN0KQogICAgICAgICByZXR1cm47CkBAIC0yOTI4LDcgKzI5MzAsMTAgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6dXBkYXRlUmVxdWVzdEFuZEFkZEV4dHJhRmllbGRzKFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgSXNNYWkKICAgICAgICAgfQogICAgICAgICBhZGRTYW1lU2l0ZUluZm9Ub1Jl
cXVlc3RJZk5lZWRlZChyZXF1ZXN0LCBpbml0aWF0b3IpOwogICAgIH0KLSAgICByZXF1ZXN0LnNl
dElzVG9wU2l0ZShpc01haW5GcmFtZU1haW5SZXNvdXJjZSk7CisKKyAgICAvLyBJbiBjYXNlIG9m
IHNlcnZpY2Ugd29ya2VyIG5hdmlnYXRpb24gbG9hZCwgd2UgaW5oZXJpdCBpc1RvcFNpdGUgZnJv
bSB0aGUgRmV0Y2hFdmVudCByZXF1ZXN0IGRpcmVjdGx5LgorICAgIGlmIChpc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uTG9hZCA9PSBJc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZDo6Tm8pCisg
ICAgICAgIHJlcXVlc3Quc2V0SXNUb3BTaXRlKGlzTWFpbkZyYW1lTWFpblJlc291cmNlKTsKIAog
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKICAgICBib29sIGhhc1NwZWNpZmljQ2Fj
aGVQb2xpY3kgPSByZXF1ZXN0LmNhY2hlUG9saWN5KCkgIT0gUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQ
b2xpY3k6OlVzZVByb3RvY29sQ2FjaGVQb2xpY3k7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5oCmluZGV4IGUxM2UyODZlMTRmNGZlOGZkN2RmOTBhMGUxNTFmMDkzNDE4ZGRkYjEuLmVkZWNl
MTJjZDdhOTZmZWI5MzVjMzM0NjZjNDZjYWUwMjBlMmYzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oCkBAIC0zMTcsOCArMzE3LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWx3
YXlzQWxsb3dMb2NhbFdlYmFyY2hpdmUoYm9vbCBhbHdheXNBbGxvd0xvY2FsV2ViYXJjaGl2ZSkg
eyBtX2Fsd2F5c0FsbG93TG9jYWxXZWJhcmNoaXZlID0gYWx3YXlzQWxsb3dMb2NhbFdlYmFyY2hp
dmU7IH0KICAgICBib29sIGFsd2F5c0FsbG93TG9jYWxXZWJhcmNoaXZlKCkgY29uc3QgeyByZXR1
cm4gbV9hbHdheXNBbGxvd0xvY2FsV2ViYXJjaGl2ZTsgfQogCisgICAgZW51bSBjbGFzcyBJc1Nl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZCA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgLy8gRm9y
IHN1YnJlc291cmNlIHJlcXVlc3RzIHRoZSBGcmFtZUxvYWRUeXBlIHBhcmFtZXRlciBoYXMgbm8g
ZWZmZWN0IGFuZCBjYW4gYmUgc2tpcHBlZC4KLSAgICB2b2lkIHVwZGF0ZVJlcXVlc3RBbmRBZGRF
eHRyYUZpZWxkcyhSZXNvdXJjZVJlcXVlc3QmLCBJc01haW5SZXNvdXJjZSwgRnJhbWVMb2FkVHlw
ZSA9IEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLCBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1
ZSA9IFNob3VsZFVwZGF0ZUFwcEluaXRpYXRlZFZhbHVlOjpZZXMpOworICAgIHZvaWQgdXBkYXRl
UmVxdWVzdEFuZEFkZEV4dHJhRmllbGRzKFJlc291cmNlUmVxdWVzdCYsIElzTWFpblJlc291cmNl
LCBGcmFtZUxvYWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3RhbmRhcmQsIFNob3VsZFVwZGF0ZUFw
cEluaXRpYXRlZFZhbHVlID0gU2hvdWxkVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWU6OlllcywgSXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvbkxvYWQgPSBJc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9h
ZDo6Tm8pOwogCiAgICAgdm9pZCBzY2hlZHVsZVJlZnJlc2hJZk5lZWRlZChEb2N1bWVudCYsIGNv
bnN0IFN0cmluZyYgY29udGVudCwgSXNNZXRhUmVmcmVzaCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IDNhZThiYjY4ZDI1Y2RkZDE4
MDIwOTIyZjVlZGIyNGQ0YjkxMjAwMDIuLjNlNDQ2ZmI5MTc0ZmY2ODIwMDAxMTRhNzJhM2UyYTAx
MGU3ODEwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcApAQCAtMjQxLDggKzI0MSwxMCBAQCB2b2lkIENhY2hlZFJlc291cmNlOjpsb2FkKENh
Y2hlZFJlc291cmNlTG9hZGVyJiBjYWNoZWRSZXNvdXJjZUxvYWRlcikKIAogICAgIC8vIE5hdmln
YXRpb24gYWxnb3JpdGhtIGlzIHNldHRpbmcgdXAgdGhlIHJlcXVlc3QgYmVmb3JlIHNlbmRpbmcg
aXQgdG8gQ2FjaGVkUmVzb3VyY2VMb2FkZXI/Q2FjaGVkUmVzb3VyY2UuCiAgICAgLy8gU28gbm8g
bmVlZCBmb3IgZXh0cmEgZmllbGRzIGZvciBNYWluUmVzb3VyY2UuCi0gICAgaWYgKHR5cGUoKSAh
PSBUeXBlOjpNYWluUmVzb3VyY2UpCi0gICAgICAgIGZyYW1lTG9hZGVyLnVwZGF0ZVJlcXVlc3RB
bmRBZGRFeHRyYUZpZWxkcyhtX3Jlc291cmNlUmVxdWVzdCwgSXNNYWluUmVzb3VyY2U6Ok5vKTsK
KyAgICBpZiAodHlwZSgpICE9IFR5cGU6Ok1haW5SZXNvdXJjZSkgeworICAgICAgICBib29sIGlz
U2VydmljZVdvcmtlck5hdmlnYXRpb25Mb2FkID0gdHlwZSgpICE9IFR5cGU6OlNWR0RvY3VtZW50
UmVzb3VyY2UgJiYgbV9vcHRpb25zLnNlcnZpY2VXb3JrZXJzTW9kZSA9PSBTZXJ2aWNlV29ya2Vy
c01vZGU6Ok5vbmUgJiYgKG1fb3B0aW9ucy5kZXN0aW5hdGlvbiA9PSBGZXRjaE9wdGlvbnM6OkRl
c3RpbmF0aW9uOjpEb2N1bWVudCB8fCBtX29wdGlvbnMuZGVzdGluYXRpb24gPT0gRmV0Y2hPcHRp
b25zOjpEZXN0aW5hdGlvbjo6SWZyYW1lKTsKKyAgICAgICAgZnJhbWVMb2FkZXIudXBkYXRlUmVx
dWVzdEFuZEFkZEV4dHJhRmllbGRzKG1fcmVzb3VyY2VSZXF1ZXN0LCBJc01haW5SZXNvdXJjZTo6
Tm8sIEZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLCBTaG91bGRVcGRhdGVBcHBJbml0aWF0ZWRWYWx1
ZTo6WWVzLCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZCA/IEZyYW1lTG9hZGVyOjpJc1Nl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uTG9hZDo6WWVzIDogRnJhbWVMb2FkZXI6OklzU2VydmljZVdv
cmtlck5hdmlnYXRpb25Mb2FkOjpObyk7CisgICAgfQogCiAgICAgLy8gRklYTUU6IEl0J3MgdW5m
b3J0dW5hdGUgdGhhdCB0aGUgY2FjaGUgbGF5ZXIgYW5kIGJlbG93IGdldCB0byBrbm93IGFueXRo
aW5nIGFib3V0IGZyYWdtZW50IGlkZW50aWZpZXJzLgogICAgIC8vIFdlIHNob3VsZCBsb29rIGlu
dG8gcmVtb3ZpbmcgdGhlIGV4cGVjdGF0aW9uIG9mIHRoYXQga25vd2xlZGdlIGZyb20gdGhlIHBs
YXRmb3JtIG5ldHdvcmsgc3RhY2tzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IDgzMjA4MjA2YzY0YTY2MmEyNzk4NzNmOWM2NmQ5NDIyYzZhZDY1ZTMuLjAzZWViOGIy
ZDgxMzEwZjllOTY3N2ZmM2IwYzBlOTRjMzQ0ZjZmZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKQEAgLTE2Nyw4ICsxNjcsMTAgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6aW5zdGFsbFNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlckNvbnRleHRE
YXQKICAgICAKICAgICBhdXRvIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkID0gY29udGV4
dERhdGEubGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7CiAgICAgYXV0byBwYWdlID0gbWFr
ZVVuaXF1ZVJlZjxQYWdlPihXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7Ci0gICAgaWYgKG1f
cHJlZmVyZW5jZXNTdG9yZSkKKyAgICBpZiAobV9wcmVmZXJlbmNlc1N0b3JlKSB7CiAgICAgICAg
IFdlYlBhZ2U6OnVwZGF0ZVNldHRpbmdzR2VuZXJhdGVkKCptX3ByZWZlcmVuY2VzU3RvcmUsIHBh
Z2UtPnNldHRpbmdzKCkpOworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLnNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeShzdGF0aWNfY2FzdDxTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KG1fcHJlZmVyZW5j
ZXNTdG9yZS0+Z2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VC
bG9ja2luZ1BvbGljeUtleSgpKSkpOworICAgIH0KICAgICBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OnNldHVwUGFnZUZvclNlcnZpY2VXb3JrZXIocGFnZS5nZXQoKSwgY29udGV4dERhdGEpOwog
ICAgIGF1dG8gc2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU2VydmljZVdvcmtlclRocmVhZFBy
b3h5OjpjcmVhdGUoV1RGTW92ZShwYWdlKSwgV1RGTW92ZShjb250ZXh0RGF0YSksIFdURk1vdmUo
d29ya2VyRGF0YSksIFdURk1vdmUoZWZmZWN0aXZlVXNlckFnZW50KSwgd29ya2VyVGhyZWFkTW9k
ZSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2FjaGVTdG9yYWdlUHJvdmlkZXIoKSk7CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBlYjJhMzlmMGY3MDkyNjEyY2MwZWRhMTBlZmVjOTU4ZGM0ZTU3YzkzLi5kZmIxMTY4MjNm
OTljMzFkMjE4ODEyYmU5YTFjMzAxZmQwZGRhMTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MjEtMTItMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFNh
bWUtc2l0ZSBsYXggY29va2llcyBub3Qgc2VudCBieSBmZXRjaCBldmVudCBoYW5kbGVyIGFmdGVy
IHBhZ2UgcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjYzODYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4ODc4ODUzPgorCisgICAgICAg
IFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mt
c2l0ZS1uYXZpZ2F0aW9uLXNhbWUtY29va2llLWxheC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1jb29raWUucHk6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZ2V0LWRv
Y3VtZW50LWNvb2tpZS5weTogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3Jlc291cmNlcy9zZXQtY29va2llLWxheC5weTogQWRkZWQuCisgICAgICAgICogaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC13b3JrZXIuanM6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2Ft
ZS1jb29raWUtbGF4Lmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEyLTA4ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBTYWZhcmkgQnVnICJuby1jYWNoZSIg
bmV0d29yayBlcnJvcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13
b3JrZXJzL2Nyb3NzLXNpdGUtbmF2aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Nyb3NzLXNpdGUt
bmF2aWdhdGlvbi1zYW1lLWNvb2tpZS1sYXguaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjYxMTRlNzQ1MmRlNTY1MTMyZmNjMmMyOTFiYmFhZjJkNDFkMmIwMjIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1uYXZp
Z2F0aW9uLXNhbWUtY29va2llLWxheC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAor
UEFTUzogZ290IHNhbWVzaXRlLWNvb2tpZS10ZXN0PTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRlLW5hdmlnYXRpb24tc2FtZS1jb29r
aWUtbGF4Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
Y3Jvc3Mtc2l0ZS1uYXZpZ2F0aW9uLXNhbWUtY29va2llLWxheC5odHRwcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU4YjlkZTQzM2EzNmRiMDM5ZTU4YmE2OWFhYTJiYWI3NTZlOTA4ZTMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvY3Jvc3Mtc2l0ZS1u
YXZpZ2F0aW9uLXNhbWUtY29va2llLWxheC5odHRwcy5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworfQorCit2YXIgc2NvcGUgPSAiIjsKKworYXN5bmMgZnVuY3Rpb24g
ZG9UZXN0KCkKK3sKKyAgICBpZiAod2luZG93Lm9yaWdpbiA9PSAiaHR0cHM6Ly8xMjcuMC4wLjE6
OTQ0MyIpIHsKKyAgICAgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHBzOi8vbG9jYWxob3N0Ojk0
NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZ2V0LWRvY3VtZW50LWNvb2tpZS5w
eT9mZXRjaFRlc3QiOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgcmVnaXN0
cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInNhbWUtY29v
a2llLWxheC13b3JrZXIuanMiLCB7IHNjb3BlIDogc2NvcGUgfSk7CisgICAgaWYgKCFyZWdpc3Ry
YXRpb24uYWN0aXZlKSB7CisgICAgICAgIGNvbnN0IHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOworICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAg
ICAgIHdvcmtlci5hZGRFdmVudExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAg
ICAgICAgICAgICBpZiAod29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikKKyAgICAgICAgICAg
ICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
KyAgICBjb25zdCBjb29raWVWYWx1ZSA9ICJQQVNTOiBnb3Qgc2FtZXNpdGUtY29va2llLXRlc3Qi
OworICAgIGF3YWl0IGZldGNoKCJyZXNvdXJjZXMvc2V0LWNvb2tpZS1sYXgucHk/bmFtZT0iICsg
Y29va2llVmFsdWUpOworCisgICAgd2luZG93LmxvY2F0aW9uID0gImh0dHBzOi8vMTI3LjAuMC4x
Ojk0NDMvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9jcm9zcy1zaXRlLW5hdmlnYXRpb24tc2FtZS1j
b29raWUtbGF4Lmh0dHBzLmh0bWw/ZmV0Y2hUZXN0IjsKK30KK2RvVGVzdCgpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1jb29raWUucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2dldC1jb29raWUucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM3
MzNlNzhjZjBkYmVmMDYzNjk1ZjY3NzdhNmM0ODM0NzQwODBmMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvZ2V0LWNvb2tp
ZS5weQpAQCAtMCwwICsxLDYgQEAKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBo
ZWFkZXJzID0gWworICAgICAgICAoIkNvbnRlbnQtVHlwZSIsICJ0ZXh0L2FzY2lpIiksCisgICAg
XQorICAgIGJvZHkgPSByZXF1ZXN0LmhlYWRlcnMuZ2V0KCJDb29raWUiLCAiIikKKyAgICByZXR1
cm4gaGVhZGVycywgYm9keQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtZG9jdW1lbnQtY29va2llLnB5IGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9nZXQtZG9jdW1lbnQtY29va2llLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjFhMDY4NzRhZTczZTBlNGQ5YWRmYjM1N2NiNWM2NzZkZmFkOGJlNjQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL2dldC1kb2N1bWVudC1jb29raWUucHkKQEAgLTAsMCArMSw3IEBACitkZWYgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSk6CisgICAgaGVhZGVycyA9IFsKKyAgICAgICAgKCJDb250ZW50LVR5
cGUiLCAidGV4dC9odG1sIiksCisgICAgXQorICAgIGNvb2tpZSA9IHJlcXVlc3QuaGVhZGVycy5n
ZXQoIkNvb2tpZSIsICJubyBjb29raWUiKQorCisgICAgcmV0dXJuIGhlYWRlcnMsICI8aHRtbD48
Ym9keT48ZGl2PiVzPC9kaXY+PHNjcmlwdD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+IiAlIGNvb2tpZS5kZWNvZGUo
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291
cmNlcy9zZXQtY29va2llLWxheC5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1sYXgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE1MDdiNzQ3ZmJi
ODhhZGMwMTY1ZWY4Njg4OWMyYTAzNzc4NjdhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1sYXgucHkK
QEAgLTAsMCArMSwxMiBAQAoraW1wb3J0IHN5cworZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVy
bHBhcnNlLCBwYXJzZV9xcworCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBw
YXJhbXMgPSBwYXJzZV9xcyhyZXF1ZXN0LnVybF9wYXJ0cy5xdWVyeSkKKyAgICBoZWFkZXJzID0g
WworICAgICAgICAoIkNvbnRlbnQtVHlwZSIsICJhcHBsaWNhdGlvbi9qc29uIiksCisgICAgICAg
ICgiU2V0LUNvb2tpZSIsICJ7bmFtZVswXX09MTsgcGF0aD0vOyBzZWN1cmU7IEh0dHBPbmx5OyBT
YW1lU2l0ZT1MYXgiLmZvcm1hdCgqKnBhcmFtcykpCisgICAgXQorICAgIGJvZHkgPSAie30iCisg
ICAgcmV0dXJuIGhlYWRlcnMsIGJvZHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tpZS1sYXgtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC13b3JrZXIuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNTRjN2FiNDZhMjk2MmY1ZmM4YzI1OTFhNGUyYzkyYTExMmExN2UxNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tp
ZS1sYXgtd29ya2VyLmpzCkBAIC0wLDAgKzEsMjMgQEAKK2FzeW5jIGZ1bmN0aW9uIGRvVGVzdChl
dmVudCkKK3sKKyAgICB0cnkgeworICAgICAgICBpZiAoIWV2ZW50LmRhdGEuc3RhcnRzV2l0aCgi
dGVzdC1jb29raWUiKSkgeworICAgICAgICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKCJG
QUlMOiByZWNlaXZlZCB1bmV4cGVjdGVkIG1lc3NhZ2UgZnJvbSBjbGllbnQiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQg
ZmV0Y2goInJlc291cmNlcy9nZXQtY29va2llLnB5Iik7CisgICAgICAgIGV2ZW50LnNvdXJjZS5w
b3N0TWVzc2FnZShhd2FpdCByZXNwb25zZS50ZXh0KCkpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKGUpOworICAgIH0KK30KKworZnVuY3Rpb24g
ZG9GZXRjaChldmVudCkKK3sKKyAgICBpZiAoZXZlbnQucmVxdWVzdC51cmwuaW5jbHVkZXMoImZl
dGNoVGVzdCIpKQorICAgICAgICBldmVudC5yZXNwb25kV2l0aChmZXRjaChldmVudC5yZXF1ZXN0
KSk7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGRvVGVzdCk7CitzZWxm
LmFkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgZG9GZXRjaCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zYW1lLWNvb2tp
ZS1sYXguaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMWM0ZjQ4ZThjZDU0YzdiZmYx
N2YyMWM3ODQwNjA2MjE5YzcxODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1jb29raWUtbGF4Lmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDUgQEAKKworUEFTUyBTZXR1cCB3b3JrZXIKK1BBU1MgVGVzdCBzZXJ2aWNlIHdv
cmtlciBzYW1lc2l0ZSBsYXggY29va2llIC0gc2VydmljZSB3b3JrZXIgaW50ZXJuYWwgZmV0Y2gK
K1BBU1MgVGVzdCBzZXJ2aWNlIHdvcmtlciBzYW1lc2l0ZSBsYXggY29va2llIC0gZmV0Y2ggc2Vy
dmVkIGZyb20gc2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NhbWUtY29va2llLWxheC5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMxZTZhY2JiMmYxZTMwMjExMjQwMjVhNGE4YWYwYzZmOWQ0ZmIzNWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2FtZS1j
b29raWUtbGF4Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHNjcmlwdD4KK3ZhciBzY29wZSA9ICIiOwordmFyIGFjdGl2ZVdvcmtlcjsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgdmFyIHJlZ2lzdHJhdGlvbiA9IGF3
YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJzYW1lLWNvb2tpZS1sYXgtd29y
a2VyLmpzIiwgeyBzY29wZSA6IHNjb3BlIH0pOworICAgIGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJh
dGlvbi5hY3RpdmU7CisgICAgaWYgKGFjdGl2ZVdvcmtlcikKKyAgICAgICAgcmV0dXJuOworICAg
IGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgIHJldHVybiBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgYWN0aXZlV29ya2VyLmFkZEV2ZW50TGlzdGVu
ZXIoJ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5z
dGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30sICJTZXR1cCB3b3JrZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
ICh0ZXN0KSA9PiB7CisgICAgY29uc3QgY29va2llVmFsdWUgPSAic2FtZXNpdGUtY29va2llLXRl
c3QiOworICAgIGF3YWl0IGZldGNoKCJyZXNvdXJjZXMvc2V0LWNvb2tpZS1sYXgucHk/bmFtZT0i
ICsgY29va2llVmFsdWUpOworCisgICAgdmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50
TGlzdGVuZXIoIm1lc3NhZ2UiLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUoZXZl
bnQuZGF0YSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgYWN0aXZlV29ya2VyLnBvc3RN
ZXNzYWdlKCJ0ZXN0LWNvb2tpZSIpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHByb21pc2U7
CisgICAgYXNzZXJ0X3RydWUocmVzdWx0LmluY2x1ZGVzKGNvb2tpZVZhbHVlICsgIj0xIikpOwor
fSwgIlRlc3Qgc2VydmljZSB3b3JrZXIgc2FtZXNpdGUgbGF4IGNvb2tpZSAtIHNlcnZpY2Ugd29y
a2VyIGludGVybmFsIGZldGNoIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGNvbnN0IGNvb2tpZVZhbHVlID0gInNhbWVzaXRlLWNvb2tpZS10ZXN0LWZldGNoIjsKKyAg
ICBhd2FpdCBmZXRjaCgicmVzb3VyY2VzL3NldC1jb29raWUtbGF4LnB5P25hbWU9IiArIGNvb2tp
ZVZhbHVlKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goInJlc291cmNlcy9n
ZXQtY29va2llLnB5P2ZldGNoVGVzdCIpOworICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlc3Bv
bnNlLnRleHQoKTsKKyAgICBhc3NlcnRfdHJ1ZShyZXN1bHQuaW5jbHVkZXMoY29va2llVmFsdWUg
KyAiPTEiKSk7Cit9LCAiVGVzdCBzZXJ2aWNlIHdvcmtlciBzYW1lc2l0ZSBsYXggY29va2llIC0g
ZmV0Y2ggc2VydmVkIGZyb20gc2VydmljZSB3b3JrZXIiKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>