<?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>234809</bug_id>
          
          <creation_ts>2022-01-03 02:42:12 -0800</creation_ts>
          <short_desc>Make sure secure websocket connections in service workers can trigger authentication challenge callbacks</short_desc>
          <delta_ts>2022-01-05 08:16:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jenner</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1827665</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-03 02:42:12 -0800</bug_when>
    <thetext>Make sure secure websocket connections in service workers can trigger authentication challenge callbacks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827666</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-03 02:42:27 -0800</bug_when>
    <thetext>&lt;rdar://85888177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827667</commentid>
    <comment_count>2</comment_count>
      <attachid>448217</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-03 02:51:36 -0800</bug_when>
    <thetext>Created attachment 448217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827760</commentid>
    <comment_count>3</comment_count>
      <attachid>448245</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-03 08:44:02 -0800</bug_when>
    <thetext>Created attachment 448245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827796</commentid>
    <comment_count>4</comment_count>
      <attachid>448250</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-03 11:12:51 -0800</bug_when>
    <thetext>Created attachment 448250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827879</commentid>
    <comment_count>5</comment_count>
      <attachid>448272</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-04 01:01:32 -0800</bug_when>
    <thetext>Created attachment 448272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827897</commentid>
    <comment_count>6</comment_count>
      <attachid>448281</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-04 04:18:17 -0800</bug_when>
    <thetext>Created attachment 448281
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827966</commentid>
    <comment_count>7</comment_count>
      <attachid>448250</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-01-04 09:21:13 -0800</bug_when>
    <thetext>Comment on attachment 448250
Patch

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

r=me

&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h:73
&gt; +    const std::optional&lt;WebCore::SecurityOriginData&gt;&amp; topOrigin() const { return m_topOrigin; }

SecurityOriginData has an &quot;empty&quot; state so we could use a SecurityOriginData as data members (instead of a std::optional&lt;&gt;) and have the call sites check SecurityOriginData::isEmpty().

&gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:51
&gt; +    if (clientOrigin.topOrigin == clientOrigin.clientOrigin)

This could use a comment to explain why we only initialize m_topOrigin if topOrigin is the same as clientOrigin.

&gt; Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:121
&gt; +    MessageSender::send(Messages::NetworkConnectionToWebProcess::CreateSocketChannel { *request, protocol, m_identifier, m_webPageProxyID, ClientOrigin { m_document-&gt;topOrigin().data(), m_document-&gt;securityOrigin().data() } });

I bet we have this logic in several places and it may be worth having a getter on Document that returns a ClientOrigin at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827985</commentid>
    <comment_count>8</comment_count>
      <attachid>448250</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-04 09:58:45 -0800</bug_when>
    <thetext>Comment on attachment 448250
Patch

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

&gt; LayoutTests/platform/mac-bigsur-wk2/http/tests/workers/service/serviceworker-websocket.https-expected.txt:3
&gt; +PASS Open a WebSocket in service worker

These files are identical to the platform independent version and unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827997</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-04 10:16:19 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #8)
&gt; Comment on attachment 448250 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448250&amp;action=review
&gt; 
&gt; &gt; LayoutTests/platform/mac-bigsur-wk2/http/tests/workers/service/serviceworker-websocket.https-expected.txt:3
&gt; &gt; +PASS Open a WebSocket in service worker
&gt; 
&gt; These files are identical to the platform independent version and
&gt; unnecessary.

Not really, they are missing the canAuthenticateAgainstProtectionSpace line.
I guess we could reverse the files but in the future, all cocoa ports will probably be aligned with the updated test expectation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1827998</commentid>
    <comment_count>10</comment_count>
      <attachid>448250</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-04 10:17:16 -0800</bug_when>
    <thetext>Comment on attachment 448250
Patch

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

&gt;&gt;&gt; LayoutTests/platform/mac-bigsur-wk2/http/tests/workers/service/serviceworker-websocket.https-expected.txt:3
&gt;&gt;&gt; +PASS Open a WebSocket in service worker
&gt;&gt; 
&gt;&gt; These files are identical to the platform independent version and unnecessary.
&gt; 
&gt; Not really, they are missing the canAuthenticateAgainstProtectionSpace line.
&gt; I guess we could reverse the files but in the future, all cocoa ports will probably be aligned with the updated test expectation.

oh, of course.  I was looking at it wrong.  This is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828208</commentid>
    <comment_count>11</comment_count>
      <attachid>448365</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-05 01:06:43 -0800</bug_when>
    <thetext>Created attachment 448365
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828229</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-05 02:36:56 -0800</bug_when>
    <thetext>Committed r287611 (245738@main): &lt;https://commits.webkit.org/245738@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448365.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828237</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-05 02:58:44 -0800</bug_when>
    <thetext>Took it all.

(In reply to Chris Dumez from comment #7)
&gt; Comment on attachment 448250 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448250&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.h:73
&gt; &gt; +    const std::optional&lt;WebCore::SecurityOriginData&gt;&amp; topOrigin() const { return m_topOrigin; }
&gt; 
&gt; SecurityOriginData has an &quot;empty&quot; state so we could use a SecurityOriginData
&gt; as data members (instead of a std::optional&lt;&gt;) and have the call sites check
&gt; SecurityOriginData::isEmpty().
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/cocoa/WebSocketTaskCocoa.mm:51
&gt; &gt; +    if (clientOrigin.topOrigin == clientOrigin.clientOrigin)
&gt; 
&gt; This could use a comment to explain why we only initialize m_topOrigin if
&gt; topOrigin is the same as clientOrigin.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/Network/WebSocketChannel.cpp:121
&gt; &gt; +    MessageSender::send(Messages::NetworkConnectionToWebProcess::CreateSocketChannel { *request, protocol, m_identifier, m_webPageProxyID, ClientOrigin { m_document-&gt;topOrigin().data(), m_document-&gt;securityOrigin().data() } });
&gt; 
&gt; I bet we have this logic in several places and it may be worth having a
&gt; getter on Document that returns a ClientOrigin at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828285</commentid>
    <comment_count>14</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-05 08:16:35 -0800</bug_when>
    <thetext>*** Bug 233665 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448217</attachid>
            <date>2022-01-03 02:51:36 -0800</date>
            <delta_ts>2022-01-03 08:43:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234809-20220103115135.patch</filename>
            <type>text/plain</type>
            <size>22489</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNWFmM2RhYmEzYWEyMTcw
NTcxMGEzZDM0NDMwNGI5MWFhZTkwN2IuLmRjMDQ1YmZhYjk1MWZkYjM1MTg3NzMwODkxNTQwMTcw
MGFmMjhiYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjItMDEtMDMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBzZWN1cmUgd2Vi
c29ja2V0IGNvbm5lY3Rpb25zIGluIHNlcnZpY2Ugd29ya2VycyBjYW4gdHJpZ2dlciBhdXRoZW50
aWNhdGlvbiBjaGFsbGVuZ2UgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4MDkKKyAgICAgICAgPHJkYXI6Ly84NTg4ODE3Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjYXNlIHdl
IGFyZSBub3QgdXNpbmcgZmFzdCBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiwgd2UgYXJlIGdvaW5n
IHRvIHRoZSBVSVByb2Nlc3MgdG8gY2hlY2sgY2VydGlmaWNhdGVzLgorICAgICAgICBUaGlzIGlz
IGFuIGlzc3VlIGZvciB3ZWIgc29ja2V0IGxvYWRzIHRyaWdnZXJlZCBmb3Igc2VydmljZSB3b3Jr
ZXJzIHRoYXQgaGF2ZSBhbiBpbnZhbGlkIGNlcnRpZmljYXRlLgorICAgICAgICBCZWZvcmUgdGhl
IHBhdGNoLCB0aGUgY2hhbGxlbmdlIHdhcyBub3QgcHJvdmlkZWQgYSB0b3Agb3JpZ2luLCBzbyB0
aGUgZGVmYXVsdCBhY3Rpb24gd291bGQgYmUgdHJpZ2dlcmVkIGJ5IFVJUHJvY2Vzcy4KKyAgICAg
ICAgVG8gbWFrZSBzdXJlIHRoaXMgaXMgd29ya2luZyBhcyBleHBlY3RlZCwgd2Ugbm93IGFsd2F5
cyBwYXNzIHRoZSBvcmlnaW4gaWYgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIHRvcCBvcmlnaW4gZm9y
IHdlYiBzb2NrZXQgY2hhbGxlbmdlcy4KKyAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHdlIGdldCBh
IHBhZ2Ugd2l0aCB0aGUgc2FtZSB0b3Agb3JpZ2luIGFuZCB0aGUgY2hhbGxlbmdlIGNhbGxiYWNr
IGlzIGNhbGxlZCBvbiB0aGUgcGFnZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVz
dHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW06CisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOgorCiAyMDIyLTAxLTAyICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJLaXQyXSBDYW1lcmEg
Y29udGludWl0eSBpcyBkaXNhYmxlZCBpbiByaWNobHkgZWRpdGFibGUgY29udGVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5YzZkZDhjZTRkOGYwNmEyMDNiNjQwYWEyMmEwMjVl
OTk3ZjMxMDM2Li43YjY0ZWFjMGU2YTNhOTAxMTRmYjgxOTg1MzRiNWRkOTJjYjlkYTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDI5LDEwICs0MjksMTAgQEAgdm9pZCBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0U3RyZWFtKFVSTCYmIHVybCwg
U3RyaW5nIGNhY2hlUGEKICAgICBtX25ldHdvcmtTb2NrZXRTdHJlYW1zLmFkZChpZGVudGlmaWVy
LCBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUobV9uZXR3b3JrUHJvY2Vzcy5nZXQoKSwgV1RG
TW92ZSh1cmwpLCBtX3Nlc3Npb25JRCwgY2FjaGVQYXJ0aXRpb24sIGlkZW50aWZpZXIsIG1fY29u
bmVjdGlvbiwgV1RGTW92ZSh0b2tlbikpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0Q2hhbm5lbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpCit2b2lkIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRDaGFubmVsKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRl
bnRpZmllciBpZGVudGlmaWVyLCAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFtX25l
dHdvcmtTb2NrZXRDaGFubmVscy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgaWYgKGF1dG8g
Y2hhbm5lbCA9IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoKnRoaXMsIG1fc2Vzc2lvbklE
LCByZXF1ZXN0LCBwcm90b2NvbCwgaWRlbnRpZmllciwgd2ViUGFnZVByb3h5SUQpKQorICAgIGlm
IChhdXRvIGNoYW5uZWwgPSBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKCp0aGlzLCBtX3Nl
c3Npb25JRCwgcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZpZXIsIHdlYlBhZ2VQcm94eUlELCBj
bGllbnRPcmlnaW4pKQogICAgICAgICBtX25ldHdvcmtTb2NrZXRDaGFubmVscy5hZGQoaWRlbnRp
ZmllciwgV1RGTW92ZShjaGFubmVsKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRl
eCBiODViZDY1ZmNjMDExMTI3YzRmYzJkZjU5MGQyMTg4Mjg2NDZiNTMxLi43Yjc5YzY0YjM4YzI1
YzIwMzI3OTg1YjM1ODZmZTdmNmRmZjVjMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBA
IC0yNDYsNyArMjQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU29ja2V0U3RyZWFt
KFVSTCYmLCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZp
ZXIpOwogCi0gICAgdm9pZCBjcmVhdGVTb2NrZXRDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElk
ZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlU29ja2V0
Q2hhbm5lbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHBy
b3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKICAgICB2b2lkIHVwZGF0ZVF1b3Rh
QmFzZWRPblNwYWNlVXNhZ2VGb3JUZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYp
OwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZTI4NDdmYzBhNGM0NGQyZWYyMzg0ZmU4NTYxYzRiYTM0
ZGM1ZGRjOS4uMjQyODM1MDUwYjI0OTcwYzVlYWMxZTI2YmY4NmI1YjAyNWE4MGU1MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC02Miw3ICs2Miw3IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICAgICBTZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wgZW5h
YmxlZCkKIAogICAgIENyZWF0ZVNvY2tldFN0cmVhbShVUkwgdXJsLCBTdHJpbmcgY2FjaGVQYXJ0
aXRpb24sIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBDcmVh
dGVTb2NrZXRDaGFubmVsKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcg
cHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0
OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQorICAgIENyZWF0ZVNvY2tl
dENoYW5uZWwoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBwcm90b2Nv
bCwgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4gY2xpZW50T3JpZ2luKQogCiAgICAgQ2xlYXJQYWdlU3BlY2lmaWNEYXRhKFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggODc5MWU3MjkyN2VkM2UxZDg1Y2M2YWI5Yzk4
NzE0YzRjODQ1NDQ2NS4uNjRhZGU0ODc1NDQ5NDVkMzg2MmM4NDU1NDRkYmI3YWZmZjg0ZmQ4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAK
QEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZW1vdmVMb2FkZXJXYWl0
aW5nV2ViUHJvY2Vzc1RyYW5zZmVyKE5ldHdvcmtSZXNvdXJjZUxvYWRJZAogICAgICAgICBjYWNo
ZWRSZXNvdXJjZUxvYWRlci0+dGFrZUxvYWRlcigpLT5hYm9ydCgpOwogfQogCi1zdGQ6OnVuaXF1
ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZVdlYlNvY2tldFRhc2so
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQorc3RkOjp1bmlx
dWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uOjpjcmVhdGVXZWJTb2NrZXRUYXNr
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBjMmRlMWRjNTM1
NjJjOTAyNmU4OGIxZWM4ZTJjOTljNWZkZDRkZmVkLi5iZWQwNzA5NDU3Y2E2ZTYyYzA1OTM1YzZi
NzJhZDdhNjUwMjQ5NWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFz
cyBTV1NlcnZlcjsKIGVudW0gY2xhc3MgSW5jbHVkZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBl
bnVtIGNsYXNzIFNob3VsZFNhbXBsZSA6IGJvb2w7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3Ry
dWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIH0KIApAQCAtMTc2LDcgKzE3Nyw3IEBAIHB1YmxpYzoK
ICAgICBQcmVmZXRjaENhY2hlJiBwcmVmZXRjaENhY2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENh
Y2hlOyB9CiAgICAgdm9pZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5j
bGVhcigpOyB9CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBj
cmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRD
aGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBw
cm90b2NvbCk7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gY3Jl
YXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hh
bm5lbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVXZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vi
U29ja2V0VGFzayYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IGU4NzE1MjQwMzNkODZjYTY5YWFhYTYw
Y2Q3M2EyNGIxMzZiY2YwNjYuLmVjNjcwNzgyODY1MGMzZDQxYTUxYTYzOTRhYzVjYWFlMTY0MDM3
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tl
dENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nv
Y2tldENoYW5uZWwuY3BwCkBAIC0zNiw5ICszNiw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENo
YW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5
SUQpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRD
aGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24s
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNvbnN0IFdlYkNvcmU6OkNs
aWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKQogewotICAgIGF1dG8gcmVzdWx0ID0gbWFrZVVuaXF1
ZTxOZXR3b3JrU29ja2V0Q2hhbm5lbD4oY29ubmVjdGlvbiwgY29ubmVjdGlvbi5uZXR3b3JrUHJv
Y2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCksIHJlcXVlc3QsIHByb3RvY29sLCBpZGVu
dGlmaWVyLCB3ZWJQYWdlUHJveHlJRCk7CisgICAgYXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPE5l
dHdvcmtTb2NrZXRDaGFubmVsPihjb25uZWN0aW9uLCBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNz
KCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSwgcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZp
ZXIsIHdlYlBhZ2VQcm94eUlELCBjbGllbnRPcmlnaW4pOwogICAgIGlmICghcmVzdWx0LT5tX3Nv
Y2tldCkgewogICAgICAgICByZXN1bHQtPmRpZENsb3NlKDAsICJDYW5ub3QgY3JlYXRlIGEgd2Vi
IHNvY2tldCB0YXNrIl9zKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00Niw3ICs0Niw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENo
YW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTmV0
d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2Nr
ZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVBy
b3h5SUQpCitOZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIE5ldHdvcmtTZXNzaW9uKiBzZXNz
aW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9j
b2wsIFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmll
ciB3ZWJQYWdlUHJveHlJRCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmln
aW4pCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zZXNzaW9uKHNlc3Npb24pCkBAIC01Niw3
ICs1Niw3IEBAIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjCiAgICAgaWYgKCFtX3Nlc3Npb24pCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fc29ja2V0ID0gbV9zZXNzaW9uLT5jcmVhdGVXZWJTb2Nr
ZXRUYXNrKHdlYlBhZ2VQcm94eUlELCAqdGhpcywgcmVxdWVzdCwgcHJvdG9jb2wpOworICAgIG1f
c29ja2V0ID0gbV9zZXNzaW9uLT5jcmVhdGVXZWJTb2NrZXRUYXNrKHdlYlBhZ2VQcm94eUlELCAq
dGhpcywgcmVxdWVzdCwgcHJvdG9jb2wsIGNsaWVudE9yaWdpbik7CiAgICAgaWYgKG1fc29ja2V0
KSB7CiAgICAgICAgIG1fc2Vzc2lvbi0+YWRkV2ViU29ja2V0VGFzayh3ZWJQYWdlUHJveHlJRCwg
Km1fc29ja2V0KTsKICAgICAgICAgbV9zb2NrZXQtPnJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmluZGV4IDFlN2Iy
Y2UxOTJlM2E4MzBhOTdjZjk5NWYxYTQ4MWFlYmJiMjM4ZDAuLmFmN2E5NTkyMTQ3ZTQ3ZTIwNzcw
NjM2NjEwOWJiYzFjYTBkNmEzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQ2xpZW50T3Jp
Z2luOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIH0K
QEAgLTU1LDkgKzU2LDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBOZXR3b3JrU29j
a2V0Q2hhbm5lbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNv
Y2tldElkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBzdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlm
aWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
KTsKIAotICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQ
YWdlUHJveHlJZGVudGlmaWVyKTsKKyAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uKiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViQ29yZTo6V2ViU29ja2V0
SWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJik7CiAgICAgfk5ldHdvcmtTb2NrZXRDaGFubmVsKCk7CiAKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29j
b2EuaAppbmRleCBiMDkyMmIwM2RjOTc1ZmZlODE3YzUxNjdhN2FjZGIwYTEzZmU0NWU0Li4zYzQ2
ZTZiMGQ3Y2UzNWMwNmU5NjM4ZmFiYTdjOTI4ZTE3NWM1MTBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApA
QCAtMTU3LDcgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckFsdGVybmF0aXZlU2Vy
dmljZXMoV2FsbFRpbWUpIG92ZXJyaWRlOwogCiAjaWYgSEFWRShOU1VSTFNFU1NJT05fV0VCU09D
S0VUKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRU
YXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkgZmluYWw7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2so
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKICAgICB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2Vi
UGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogICAgIHZvaWQgcmVt
b3ZlV2ViU29ja2V0VGFzayhTZXNzaW9uU2V0JiwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggNmE1M2I1ZDcwYTA1NDRiOGIwMmIzNDlhZmYxYjRi
YzYwZWFkZTIwOC4uYjNjZDg2NTViZmI1M2I4ZGJiMDJjOTQyZTRlZWI1NmYyMTFmYTIzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQpAQCAtMTY2NSw4ICsxNjY1LDggQEAgdm9pZCBOZXR3b3JrU2Vzc2lv
bkNvY29hOjpjb250aW51ZURpZFJlY2VpdmVDaGFsbGVuZ2UoU2Vzc2lvbldyYXBwZXImIHNlc3Np
b25XcmEKICNpZiBIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCiAgICAgICAgIGlmIChhdXRv
KiB3ZWJTb2NrZXRUYXNrID0gc2Vzc2lvbldyYXBwZXIud2ViU29ja2V0RGF0YVRhc2tNYXAuZ2V0
KHRhc2tJZGVudGlmaWVyKSkgewogICAgICAgICAgICAgYXV0byBjaGFsbGVuZ2VDb21wbGV0aW9u
SGFuZGxlciA9IGNyZWF0ZUNoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyKG5ldHdvcmtQcm9jZXNz
KCksIHNlc3Npb25JRCgpLCBjaGFsbGVuZ2UsIHdlYlNvY2tldFRhc2stPnBhcnRpdGlvbigpLCAw
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgICAgICBuZXR3b3JrUHJvY2Vz
cygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShzZXNzaW9uSUQoKSwgd2ViU29ja2V0VGFzay0+cGFnZUlEKCksIG51bGxwdHIsIGNoYWxs
ZW5nZSwgbmVnb3RpYXRlZExlZ2FjeVRMUywgV1RGTW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlcikpOwotCisgICAgICAgICAgICBhdXRvJiBvcmlnaW4gPSB3ZWJTb2NrZXRUYXNrLT50b3BP
cmlnaW4oKTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5h
Z2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNlc3Npb25JRCgpLCB3ZWJT
b2NrZXRUYXNrLT5wYWdlSUQoKSwgb3JpZ2luID8gJm9yaWdpbi52YWx1ZSgpIDogbnVsbHB0ciwg
Y2hhbGxlbmdlLCBuZWdvdGlhdGVkTGVnYWN5VExTLCBXVEZNb3ZlKGNoYWxsZW5nZUNvbXBsZXRp
b25IYW5kbGVyKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICNlbmRpZgpAQCAt
MTcwNyw3ICsxNzA3LDcgQEAgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgKk5ldHdvcmtTZXNzaW9u
Q29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkKIH0KIAogI2lmIEhBVkUoTlNV
UkxTRVNTSU9OX1dFQlNPQ0tFVCkKLXN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3
b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIgd2ViUGFnZVByb3h5SUQsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wp
CitzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3Jl
YXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBO
ZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKICAgICBBU1NFUlQoIXJlcXVlc3QuaGFzSFRUUEhl
YWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCkp
OwogICAgIGF1dG8gbnNSZXF1ZXN0ID0gcmV0YWluUHRyKHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdl
YkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KSk7CkBAIC0x
NzM1LDcgKzE3MzUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nl
c3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUAogICAgIC8vIEFsdGhvdWdo
IHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgYWxsb3dzIGZ1bGwgNjQtYml0IGxlbmd0aHMsIENocm9t
ZSBhbmQgRmlyZWZveCBsaW1pdCB0aGUgbGVuZ3RoIHRvIDJeNjMgLSAxCiAgICAgdGFzay5nZXQo
KS5tYXhpbXVtTWVzc2FnZVNpemUgPSAweDdGRkZGRkZGRkZGRkZGRkZ1bGw7CiAKLSAgICByZXR1
cm4gbWFrZVVuaXF1ZTxXZWJTb2NrZXRUYXNrPihjaGFubmVsLCB3ZWJQYWdlUHJveHlJRCwgc2Vz
c2lvblNldCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNrKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8
V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFnZVByb3h5SUQsIHNlc3Npb25TZXQsIHJlcXVl
c3QsIGNsaWVudE9yaWdpbiwgV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Np
b25Db2NvYTo6YWRkV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQ
cm94eUlELCBXZWJTb2NrZXRUYXNrJiB0YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgKaW5kZXggOTMwN2NlZDk5
ZDVhYzg3MDc1MWQyZGFiNTZkZDQ2YTAzYWQ0MzNlOC4uZTRmMThlNDE2YzdlN2Q3NDgyYTdmMzBk
YTk2OTU5OTBjYzE0NGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNp
bmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmll
ci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTM2LDYgKzM3
LDcgQEAgT0JKQ19DTEFTUyBOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ3LDcgKzQ5LDcgQEAgc3RydWN0IFNlc3Npb25T
ZXQ7CiBjbGFzcyBXZWJTb2NrZXRUYXNrIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlNvY2tl
dFRhc2s+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXZWJT
b2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2Vha1B0cjxTZXNzaW9uU2V0PiYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBS
ZXRhaW5QdHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzaz4mJik7CisgICAgV2ViU29ja2V0VGFz
ayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYWtQdHI8
U2Vzc2lvblNldD4mJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+
JiYpOwogICAgIH5XZWJTb2NrZXRUYXNrKCk7CiAKICAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTY4
LDYgKzcwLDcgQEAgcHVibGljOgogCiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQo
KSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQogICAgIFN0cmluZyBwYXJ0aXRpb24oKSBjb25z
dCB7IHJldHVybiBtX3BhcnRpdGlvbjsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgdG9wT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BP
cmlnaW47IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIHJlYWROZXh0TWVzc2FnZSgpOwpAQCAtNzks
NiArODIsNyBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSUQ7
CiAgICAgV2Vha1B0cjxTZXNzaW9uU2V0PiBtX3Nlc3Npb25TZXQ7CiAgICAgU3RyaW5nIG1fcGFy
dGl0aW9uOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBt
X3RvcE9yaWdpbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpp
bmRleCBlNjQ5YzM1ZmY1MDMwODAxZWE3YmQ2MzM1ODI4YjcxYTQ3MzBmMzIxLi4zMzEyM2MzYTM0
MDViZTAyZTYyYjJhNzk4MWNiNmYwYzFhZjI5MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpAQCAtMzEs
NiArMzEsNyBAQAogI2ltcG9ydCAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgogI2ltcG9ydCAiTmV0
d29ya1NvY2tldENoYW5uZWwuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxTZXNzaW9uLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsLmg+CkBAIC00MCwxMyArNDEsMTYgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJTb2NrZXRU
YXNrOjpXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgV2Vha1B0cjxTZXNzaW9uU2V0PiYmIHNlc3Npb25TZXQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmV0YWluUHRyPE5TVVJM
U2Vzc2lvbldlYlNvY2tldFRhc2s+JiYgdGFzaykKK1dlYlNvY2tldFRhc2s6OldlYlNvY2tldFRh
c2soTmV0d29ya1NvY2tldENoYW5uZWwmIGNoYW5uZWwsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
cGFnZUlELCBXZWFrUHRyPFNlc3Npb25TZXQ+JiYgc2Vzc2lvblNldCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNs
aWVudE9yaWdpbiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYgdGFzaykK
ICAgICA6IG1fY2hhbm5lbChjaGFubmVsKQogICAgICwgbV90YXNrKFdURk1vdmUodGFzaykpCiAg
ICAgLCBtX3BhZ2VJRChwYWdlSUQpCiAgICAgLCBtX3Nlc3Npb25TZXQoV1RGTW92ZShzZXNzaW9u
U2V0KSkKICAgICAsIG1fcGFydGl0aW9uKHJlcXVlc3QuY2FjaGVQYXJ0aXRpb24oKSkKIHsKKyAg
ICBpZiAoY2xpZW50T3JpZ2luLnRvcE9yaWdpbiA9PSBjbGllbnRPcmlnaW4uY2xpZW50T3JpZ2lu
KQorICAgICAgICBtX3RvcE9yaWdpbiA9IGNsaWVudE9yaWdpbi50b3BPcmlnaW47CisKICAgICBy
ZWFkTmV4dE1lc3NhZ2UoKTsKICAgICBtX2NoYW5uZWwuZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3Qo
UmVzb3VyY2VSZXF1ZXN0IHsgW21fdGFzayBjdXJyZW50UmVxdWVzdF0gfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IDkxMGIyY2NkODQxYmExMzAxOTRiMWY0YjI2MTJkYjkzNmIzZTY0MDUuLjcxNmFlNWMx
NTAwNWU1NTMxYjljODkwOTAyZjllNzNjZDA4Zjc4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQmxvYi5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Q2xpZW50T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRXhjZXB0aW9uQ29kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAt
MTE3LDcgKzExOCw3IEBAIFdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RTdGF0dXMgV2ViU29ja2V0
Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QKIAogICAgIG1faW5zcGVjdG9y
LmRpZENyZWF0ZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpLCB1cmwpOwogICAgIG1fdXJsID0g
cmVxdWVzdC0+dXJsKCk7Ci0gICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNvY2tldENoYW5uZWwgeyAqcmVxdWVzdCwg
cHJvdG9jb2wsIG1faWRlbnRpZmllciwgbV93ZWJQYWdlUHJveHlJRCB9KTsKKyAgICBNZXNzYWdl
U2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3Jl
YXRlU29ja2V0Q2hhbm5lbCB7ICpyZXF1ZXN0LCBwcm90b2NvbCwgbV9pZGVudGlmaWVyLCBtX3dl
YlBhZ2VQcm94eUlELCBDbGllbnRPcmlnaW4geyBtX2RvY3VtZW50LT50b3BPcmlnaW4oKS5kYXRh
KCksIG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuZGF0YSgpIH0gfSk7CiAgICAgcmV0dXJu
IENvbm5lY3RTdGF0dXM6Ok9LOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjE2ZDBjOTU4YmM0NWY4NTQ4YThkOTEz
YmVjNzE3MDJmNWZhZGMwMi4uYmQ0MGU3MjQzNjUwNDhhNDk2MGJkMDk4ZTdkODA3MTE3MjIzY2Uz
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTAzICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgc2VjdXJlIHdlYnNvY2tldCBjb25u
ZWN0aW9ucyBpbiBzZXJ2aWNlIHdvcmtlcnMgY2FuIHRyaWdnZXIgYXV0aGVudGljYXRpb24gY2hh
bGxlbmdlIGNhbGxiYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0ODA5CisgICAgICAgIDxyZGFyOi8vODU4ODgxNzc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQu
aHR0cHMuaHRtbDoKKwogMjAyMi0wMS0wMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcsIHVwZGF0
ZSBiYXNlbGluZSBmb3IgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2luZnJh
c3RydWN0dXJlL3NhZmUtcGFzc2luZy1vZi1zdHJ1Y3R1cmVkLWRhdGEvdHJhbnNmZXItZXJyb3Jz
LndpbmRvdy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tl
dC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNjc0OThhNWU0MmI0MjcxYTk4MGQ2YzUxZTZjNTc2
NGJiZTEwNmExNy4uNmU5ZWVkYTg2YjliOWVlZjI2MTllZTAxOTE2ZDk2Njc2Y2ZkMGE1YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdv
cmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDQgQEAKK2NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9u
U3BhY2UKIAogUEFTUyBTZXR1cCB3b3JrZXIKIFBBU1MgT3BlbiBhIFdlYlNvY2tldCBpbiBzZXJ2
aWNlIHdvcmtlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLmh0
bWwKaW5kZXggZjJiOTliMzY3MmI0NWEyMGRkN2M4ZmM0NjhlNDk1NzE3ODNlNDhmOC4uMmYxYmU4
MTczN2Q1ZTE5ODQyYTI1YzgzN2M5ZTZjOTEzMzM0NWIwZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0
cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy5odG1sCkBAIC0zMCw2ICszMCw5IEBAIHByb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4gewogfSwgIlNldHVwIHdvcmtlciIpOwogCiBwcm9taXNlX3Rl
c3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25T
cGFjZSh0cnVlKTsKKwogICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJl
amVjdCkgPT4gewogICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3Rl
bmVyKCJtZXNzYWdlIiwgdGVzdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICBp
ZiAoZXZlbnQuZGF0YSA9PT0gIlBBU1MiKSB7CkBAIC00Miw2ICs0NSw5IEBAIHByb21pc2VfdGVz
dChhc3luYyAodGVzdCkgPT4gewogCiAgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJXRUJT
T0NLRVQtMSIpOwogICAgIGF3YWl0IHByb21pc2U7CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5z
dFByb3RlY3Rpb25TcGFjZShmYWxzZSk7CiB9LCAiT3BlbiBhIFdlYlNvY2tldCBpbiBzZXJ2aWNl
IHdvcmtlciIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448245</attachid>
            <date>2022-01-03 08:44:02 -0800</date>
            <delta_ts>2022-01-03 11:12:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234809-20220103174401.patch</filename>
            <type>text/plain</type>
            <size>27166</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRjMDQ1YmZhYjk1MWZkYjM1
MTg3NzMwODkxNTQwMTcwMGFmMjhiYTQuLmFlZDFjNjY2MjJlZWFkZDY3N2QwOTU4MGM2YjZkODkw
ZWQzYmI3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDEtMDMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBzZWN1cmUgd2Vi
c29ja2V0IGNvbm5lY3Rpb25zIGluIHNlcnZpY2Ugd29ya2VycyBjYW4gdHJpZ2dlciBhdXRoZW50
aWNhdGlvbiBjaGFsbGVuZ2UgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4MDkKKyAgICAgICAgPHJkYXI6Ly84NTg4ODE3Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjYXNlIHdl
IGFyZSBub3QgdXNpbmcgZmFzdCBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiwgd2UgYXJlIGdvaW5n
IHRvIHRoZSBVSVByb2Nlc3MgdG8gY2hlY2sgY2VydGlmaWNhdGVzLgorICAgICAgICBUaGlzIGlz
IGFuIGlzc3VlIGZvciB3ZWIgc29ja2V0IGxvYWRzIHRyaWdnZXJlZCBmb3Igc2VydmljZSB3b3Jr
ZXJzIHRoYXQgaGF2ZSBhbiBpbnZhbGlkIGNlcnRpZmljYXRlLgorICAgICAgICBCZWZvcmUgdGhl
IHBhdGNoLCB0aGUgY2hhbGxlbmdlIHdhcyBub3QgcHJvdmlkZWQgYSB0b3Agb3JpZ2luLCBzbyB0
aGUgZGVmYXVsdCBhY3Rpb24gd291bGQgYmUgdHJpZ2dlcmVkIGJ5IFVJUHJvY2Vzcy4KKyAgICAg
ICAgVG8gbWFrZSBzdXJlIHRoaXMgaXMgd29ya2luZyBhcyBleHBlY3RlZCwgd2Ugbm93IGFsd2F5
cyBwYXNzIHRoZSBvcmlnaW4gaWYgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIHRvcCBvcmlnaW4gZm9y
IHdlYiBzb2NrZXQgY2hhbGxlbmdlcy4KKyAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHdlIGdldCBh
IHBhZ2Ugd2l0aCB0aGUgc2FtZSB0b3Agb3JpZ2luIGFuZCB0aGUgY2hhbGxlbmdlIGNhbGxiYWNr
IGlzIGNhbGxlZCBvbiB0aGUgcGFnZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVz
dHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW06CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOgorCiAyMDIyLTAxLTAzICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgc2VjdXJlIHdlYnNvY2tldCBj
b25uZWN0aW9ucyBpbiBzZXJ2aWNlIHdvcmtlcnMgY2FuIHRyaWdnZXIgYXV0aGVudGljYXRpb24g
Y2hhbGxlbmdlIGNhbGxiYWNrcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5YzZk
ZDhjZTRkOGYwNmEyMDNiNjQwYWEyMmEwMjVlOTk3ZjMxMDM2Li43YjY0ZWFjMGU2YTNhOTAxMTRm
YjgxOTg1MzRiNWRkOTJjYjlkYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAt
NDI5LDEwICs0MjksMTAgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3Jl
YXRlU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgU3RyaW5nIGNhY2hlUGEKICAgICBtX25ldHdvcmtT
b2NrZXRTdHJlYW1zLmFkZChpZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUo
bV9uZXR3b3JrUHJvY2Vzcy5nZXQoKSwgV1RGTW92ZSh1cmwpLCBtX3Nlc3Npb25JRCwgY2FjaGVQ
YXJ0aXRpb24sIGlkZW50aWZpZXIsIG1fY29ubmVjdGlvbiwgV1RGTW92ZSh0b2tlbikpKTsKIH0K
IAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0Q2hhbm5l
bChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2ws
IFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIg
d2ViUGFnZVByb3h5SUQpCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVh
dGVTb2NrZXRDaGFubmVsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCAgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRP
cmlnaW4pCiB7CiAgICAgQVNTRVJUKCFtX25ldHdvcmtTb2NrZXRDaGFubmVscy5jb250YWlucyhp
ZGVudGlmaWVyKSk7Ci0gICAgaWYgKGF1dG8gY2hhbm5lbCA9IE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpjcmVhdGUoKnRoaXMsIG1fc2Vzc2lvbklELCByZXF1ZXN0LCBwcm90b2NvbCwgaWRlbnRpZmll
ciwgd2ViUGFnZVByb3h5SUQpKQorICAgIGlmIChhdXRvIGNoYW5uZWwgPSBOZXR3b3JrU29ja2V0
Q2hhbm5lbDo6Y3JlYXRlKCp0aGlzLCBtX3Nlc3Npb25JRCwgcmVxdWVzdCwgcHJvdG9jb2wsIGlk
ZW50aWZpZXIsIHdlYlBhZ2VQcm94eUlELCBjbGllbnRPcmlnaW4pKQogICAgICAgICBtX25ldHdv
cmtTb2NrZXRDaGFubmVscy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShjaGFubmVsKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBiODViZDY1ZmNjMDExMTI3YzRmYzJkZjU5MGQy
MTg4Mjg2NDZiNTMxLi43Yjc5YzY0YjM4YzI1YzIwMzI3OTg1YjM1ODZmZTdmNmRmZjVjMjk4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yNDYsNyArMjQ2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgY3JlYXRlU29ja2V0U3RyZWFtKFVSTCYmLCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24s
IFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIpOwogCi0gICAgdm9pZCBjcmVhdGVTb2NrZXRD
aGFubmVsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIpOworICAgIHZvaWQgY3JlYXRlU29ja2V0Q2hhbm5lbChjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVu
dGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mKTsKICAgICB2b2lkIHVwZGF0ZVF1b3RhQmFzZWRPblNwYWNlVXNhZ2VGb3JUZXN0aW5nKGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZTI4NDdm
YzBhNGM0NGQyZWYyMzg0ZmU4NTYxYzRiYTM0ZGM1ZGRjOS4uMjQyODM1MDUwYjI0OTcwYzVlYWMx
ZTI2YmY4NmI1YjAyNWE4MGU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC02Miw3ICs2Miw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBTZXRDYXB0dXJlRXh0cmFOZXR3b3Jr
TG9hZE1ldHJpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkKIAogICAgIENyZWF0ZVNvY2tldFN0cmVh
bShVUkwgdXJsLCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIFdlYkNvcmU6OldlYlNvY2tldElkZW50
aWZpZXIgaWRlbnRpZmllcikKLSAgICBDcmVhdGVTb2NrZXRDaGFubmVsKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlEKQorICAgIENyZWF0ZVNvY2tldENoYW5uZWwoV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QsIFN0cmluZyBwcm90b2NvbCwgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5
SUQsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gY2xpZW50T3JpZ2luKQogCiAgICAgQ2xl
YXJQYWdlU3BlY2lmaWNEYXRhKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXgg
ODc5MWU3MjkyN2VkM2UxZDg1Y2M2YWI5Yzk4NzE0YzRjODQ1NDQ2NS4uNjRhZGU0ODc1NDQ5NDVk
Mzg2MmM4NDU1NDRkYmI3YWZmZjg0ZmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uOjpyZW1vdmVMb2FkZXJXYWl0aW5nV2ViUHJvY2Vzc1RyYW5zZmVyKE5ldHdvcmtS
ZXNvdXJjZUxvYWRJZAogICAgICAgICBjYWNoZWRSZXNvdXJjZUxvYWRlci0+dGFrZUxvYWRlcigp
LT5hYm9ydCgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nl
c3Npb246OmNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29y
a1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIHByb3RvY29sKQorc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtT
ZXNzaW9uOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdv
cmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikKIHsKICAgICBy
ZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAppbmRleCBjMmRlMWRjNTM1NjJjOTAyNmU4OGIxZWM4ZTJjOTljNWZkZDRkZmVk
Li5iZWQwNzA5NDU3Y2E2ZTYyYzA1OTM1YzZiNzJhZDdhNjUwMjQ5NWJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCkBAIC01OCw2ICs1OCw3IEBA
IGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTV1NlcnZlcjsKIGVudW0gY2xhc3MgSW5jbHVk
ZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNsYXNzIFNob3VsZFNhbXBsZSA6IGJvb2w7
CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIH0KIApA
QCAtMTc2LDcgKzE3Nyw3IEBAIHB1YmxpYzoKICAgICBQcmVmZXRjaENhY2hlJiBwcmVmZXRjaENh
Y2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENhY2hlOyB9CiAgICAgdm9pZCBjbGVhclByZWZldGNo
Q2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigpOyB9CiAKLSAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7CisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gY3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVXZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQm
LCBXZWJTb2NrZXRUYXNrJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFkZFdlYlNvY2tldFRhc2so
V2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIHsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCmlu
ZGV4IGU4NzE1MjQwMzNkODZjYTY5YWFhYTYwY2Q3M2EyNGIxMzZiY2YwNjYuLmVjNjcwNzgyODY1
MGMzZDQxYTUxYTYzOTRhYzVjYWFlMTY0MDM3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwCkBAIC0zNiw5ICszNiw5
IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6
OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpj
cmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBT
dHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpCitzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1Nv
Y2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJT
b2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luKQogewot
ICAgIGF1dG8gcmVzdWx0ID0gbWFrZVVuaXF1ZTxOZXR3b3JrU29ja2V0Q2hhbm5lbD4oY29ubmVj
dGlvbiwgY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCksIHJlcXVlc3QsIHByb3RvY29sLCBpZGVudGlmaWVyLCB3ZWJQYWdlUHJveHlJRCk7CisgICAg
YXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPE5ldHdvcmtTb2NrZXRDaGFubmVsPihjb25uZWN0aW9u
LCBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSwg
cmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZpZXIsIHdlYlBhZ2VQcm94eUlELCBjbGllbnRPcmln
aW4pOwogICAgIGlmICghcmVzdWx0LT5tX3NvY2tldCkgewogICAgICAgICByZXN1bHQtPmRpZENs
b3NlKDAsICJDYW5ub3QgY3JlYXRlIGEgd2ViIHNvY2tldCB0YXNrIl9zKTsKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CkBAIC00Niw3ICs0Niw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29j
a2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2Nr
ZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBOZXR3
b3JrU2Vzc2lvbiogc2Vzc2lvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpCitOZXR3b3JrU29ja2V0Q2hhbm5lbDo6
TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5l
Y3Rpb24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29uc3QgV2ViQ29y
ZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MoY29ubmVjdGlvbikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwg
bV9zZXNzaW9uKHNlc3Npb24pCkBAIC01Niw3ICs1Niw3IEBAIE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjCiAgICAgaWYgKCFtX3Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc29ja2V0
ID0gbV9zZXNzaW9uLT5jcmVhdGVXZWJTb2NrZXRUYXNrKHdlYlBhZ2VQcm94eUlELCAqdGhpcywg
cmVxdWVzdCwgcHJvdG9jb2wpOworICAgIG1fc29ja2V0ID0gbV9zZXNzaW9uLT5jcmVhdGVXZWJT
b2NrZXRUYXNrKHdlYlBhZ2VQcm94eUlELCAqdGhpcywgcmVxdWVzdCwgcHJvdG9jb2wsIGNsaWVu
dE9yaWdpbik7CiAgICAgaWYgKG1fc29ja2V0KSB7CiAgICAgICAgIG1fc2Vzc2lvbi0+YWRkV2Vi
U29ja2V0VGFzayh3ZWJQYWdlUHJveHlJRCwgKm1fc29ja2V0KTsKICAgICAgICAgbV9zb2NrZXQt
PnJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U29ja2V0Q2hhbm5lbC5oCmluZGV4IDFlN2IyY2UxOTJlM2E4MzBhOTdjZjk5NWYxYTQ4MWFlYmJi
MjM4ZDAuLmFmN2E5NTkyMTQ3ZTQ3ZTIwNzcwNjM2NjEwOWJiYzFjYTBkNmEzMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owog
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIH0KQEAgLTU1LDkgKzU2LDkgQEAgY2xhc3MgTmV0d29y
a1Nlc3Npb247CiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbCA6IHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
U29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5u
ZWw+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29s
LCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIAotICAgIE5ldHdvcmtTb2NrZXRDaGFubmVs
KE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJDb3Jl
OjpXZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyKTsKKyAgICBOZXR3
b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYsIE5ldHdvcmtT
ZXNzaW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBw
cm90b2NvbCwgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAgICAgfk5ldHdvcmtTb2NrZXRD
aGFubmVsKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYs
IElQQzo6RGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAppbmRleCBiMDkyMmIwM2RjOTc1ZmZlODE3
YzUxNjdhN2FjZGIwYTEzZmU0NWU0Li4zYzQ2ZTZiMGQ3Y2UzNWMwNmU5NjM4ZmFiYTdjOTI4ZTE3
NWM1MTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtMTU3LDcgKzE1Nyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjbGVhckFsdGVybmF0aXZlU2VydmljZXMoV2FsbFRpbWUpIG92ZXJyaWRlOwogCiAj
aWYgSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJT
b2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5l
dHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgU3RyaW5nJiBwcm90b2NvbCkgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tl
dFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29y
a1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIHByb3RvY29sLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKSBmaW5hbDsKICAg
ICB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0
VGFzayYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2ViU29ja2V0VGFzayhTZXNzaW9uU2V0Jiwg
V2ViU29ja2V0VGFzayYpIGZpbmFsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KaW5kZXggNmE1
M2I1ZDcwYTA1NDRiOGIwMmIzNDlhZmYxYjRiYzYwZWFkZTIwOC4uYjNjZDg2NTViZmI1M2I4ZGJi
MDJjOTQyZTRlZWI1NmYyMTFmYTIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtMTY2NSw4ICsx
NjY1LDggQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjb250aW51ZURpZFJlY2VpdmVDaGFs
bGVuZ2UoU2Vzc2lvbldyYXBwZXImIHNlc3Npb25XcmEKICNpZiBIQVZFKE5TVVJMU0VTU0lPTl9X
RUJTT0NLRVQpCiAgICAgICAgIGlmIChhdXRvKiB3ZWJTb2NrZXRUYXNrID0gc2Vzc2lvbldyYXBw
ZXIud2ViU29ja2V0RGF0YVRhc2tNYXAuZ2V0KHRhc2tJZGVudGlmaWVyKSkgewogICAgICAgICAg
ICAgYXV0byBjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciA9IGNyZWF0ZUNoYWxsZW5nZUNvbXBs
ZXRpb25IYW5kbGVyKG5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCgpLCBjaGFsbGVuZ2UsIHdl
YlNvY2tldFRhc2stPnBhcnRpdGlvbigpLCAwLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShzZXNzaW9uSUQoKSwgd2ViU29ja2V0VGFz
ay0+cGFnZUlEKCksIG51bGxwdHIsIGNoYWxsZW5nZSwgbmVnb3RpYXRlZExlZ2FjeVRMUywgV1RG
TW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcikpOwotCisgICAgICAgICAgICBhdXRvJiBv
cmlnaW4gPSB3ZWJTb2NrZXRUYXNrLT50b3BPcmlnaW4oKTsKKyAgICAgICAgICAgIG5ldHdvcmtQ
cm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKHNlc3Npb25JRCgpLCB3ZWJTb2NrZXRUYXNrLT5wYWdlSUQoKSwgb3JpZ2luID8g
Jm9yaWdpbi52YWx1ZSgpIDogbnVsbHB0ciwgY2hhbGxlbmdlLCBuZWdvdGlhdGVkTGVnYWN5VExT
LCBXVEZNb3ZlKGNoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTcwNyw3ICsxNzA3LDcgQEAgRE1GV2Vic2l0ZVBv
bGljeU1vbml0b3IgKk5ldHdvcmtTZXNzaW9uQ29jb2E6OmRldmljZU1hbmFnZW1lbnRQb2xpY3lN
b25pdG9yKCkKIH0KIAogI2lmIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkKLXN0ZDo6dW5p
cXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbkNvY29hOjpjcmVhdGVXZWJTb2Nr
ZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIE5ldHdvcmtTb2Nr
ZXRDaGFubmVsJiBjaGFubmVsLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCitzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFz
az4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHBy
b3RvY29sLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKICAg
ICBBU1NFUlQoIXJlcXVlc3QuaGFzSFRUUEhlYWRlckZpZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJO
YW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCkpOwogICAgIGF1dG8gbnNSZXF1ZXN0ID0gcmV0YWlu
UHRyKHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpE
b05vdFVwZGF0ZUhUVFBCb2R5KSk7CkBAIC0xNzM1LDcgKzE3MzUsNyBAQCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFz
ayhXZWJQYWdlUAogICAgIC8vIEFsdGhvdWdoIHRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgYWxsb3dz
IGZ1bGwgNjQtYml0IGxlbmd0aHMsIENocm9tZSBhbmQgRmlyZWZveCBsaW1pdCB0aGUgbGVuZ3Ro
IHRvIDJeNjMgLSAxCiAgICAgdGFzay5nZXQoKS5tYXhpbXVtTWVzc2FnZVNpemUgPSAweDdGRkZG
RkZGRkZGRkZGRkZ1bGw7CiAKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxXZWJTb2NrZXRUYXNrPihj
aGFubmVsLCB3ZWJQYWdlUHJveHlJRCwgc2Vzc2lvblNldCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNr
KSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFn
ZVByb3h5SUQsIHNlc3Npb25TZXQsIHJlcXVlc3QsIGNsaWVudE9yaWdpbiwgV1RGTW92ZSh0YXNr
KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Db2NvYTo6YWRkV2ViU29ja2V0VGFzayhXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJTb2NrZXRUYXNrJiB0YXNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRU
YXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0
VGFza0NvY29hLmgKaW5kZXggOTMwN2NlZDk5ZDVhYzg3MDc1MWQyZGFiNTZkZDQ2YTAzYWQ0MzNl
OC4uZTRmMThlNDE2YzdlN2Q3NDgyYTdmMzBkYTk2OTU5OTBjYzE0NGRiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2Nv
YS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJp
dHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrUHRyLmg+CiAKQEAgLTM2LDYgKzM3LDcgQEAgT0JKQ19DTEFTUyBOU1VSTFNlc3Npb25X
ZWJTb2NrZXRUYXNrOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ3
LDcgKzQ5LDcgQEAgc3RydWN0IFNlc3Npb25TZXQ7CiBjbGFzcyBXZWJTb2NrZXRUYXNrIDogcHVi
bGljIENhbk1ha2VXZWFrUHRyPFdlYlNvY2tldFRhc2s+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVs
JiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vha1B0cjxTZXNzaW9uU2V0PiYmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBSZXRhaW5QdHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0
VGFzaz4mJik7CisgICAgV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIsIFdlYWtQdHI8U2Vzc2lvblNldD4mJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgUmV0YWluUHRy
PE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYpOwogICAgIH5XZWJTb2NrZXRUYXNrKCk7CiAK
ICAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTY4LDYgKzcwLDcgQEAgcHVibGljOgogCiAgICAgV2Vi
UGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VJRDsgfQog
ICAgIFN0cmluZyBwYXJ0aXRpb24oKSBjb25zdCB7IHJldHVybiBtX3BhcnRpdGlvbjsgfQorICAg
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYgdG9wT3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BPcmlnaW47IH0KIAogcHJpdmF0ZToKICAgICB2b2lk
IHJlYWROZXh0TWVzc2FnZSgpOwpAQCAtNzksNiArODIsNyBAQCBwcml2YXRlOgogICAgIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAgICAgV2Vha1B0cjxTZXNzaW9uU2V0PiBtX3Nl
c3Npb25TZXQ7CiAgICAgU3RyaW5nIG1fcGFydGl0aW9uOworICAgIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBtX3RvcE9yaWdpbjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQppbmRleCBlNjQ5YzM1ZmY1MDMwODAxZWE3YmQ2MzM1
ODI4YjcxYTQ3MzBmMzIxLi4zMzEyM2MzYTM0MDViZTAyZTYyYjJhNzk4MWNiNmYwYzFhZjI5MDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tl
dFRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dl
YlNvY2tldFRhc2tDb2NvYS5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiTmV0d29ya1Nl
c3Npb25Db2NvYS5oIgogI2ltcG9ydCAiTmV0d29ya1NvY2tldENoYW5uZWwuaCIKICNpbXBvcnQg
PEZvdW5kYXRpb24vTlNVUkxTZXNzaW9uLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NsaWVudE9yaWdp
bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVs
Lmg+CkBAIC00MCwxMyArNDEsMTYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1XZWJTb2NrZXRUYXNrOjpXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2Nr
ZXRDaGFubmVsJiBjaGFubmVsLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgV2Vha1B0
cjxTZXNzaW9uU2V0PiYmIHNlc3Npb25TZXQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYgdGFzaykK
K1dlYlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2soTmV0d29ya1NvY2tldENoYW5uZWwmIGNoYW5u
ZWwsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBXZWFrUHRyPFNlc3Npb25TZXQ+JiYg
c2Vzc2lvblNldCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgUmV0YWluUHRyPE5TVVJMU2Vz
c2lvbldlYlNvY2tldFRhc2s+JiYgdGFzaykKICAgICA6IG1fY2hhbm5lbChjaGFubmVsKQogICAg
ICwgbV90YXNrKFdURk1vdmUodGFzaykpCiAgICAgLCBtX3BhZ2VJRChwYWdlSUQpCiAgICAgLCBt
X3Nlc3Npb25TZXQoV1RGTW92ZShzZXNzaW9uU2V0KSkKICAgICAsIG1fcGFydGl0aW9uKHJlcXVl
c3QuY2FjaGVQYXJ0aXRpb24oKSkKIHsKKyAgICBpZiAoY2xpZW50T3JpZ2luLnRvcE9yaWdpbiA9
PSBjbGllbnRPcmlnaW4uY2xpZW50T3JpZ2luKQorICAgICAgICBtX3RvcE9yaWdpbiA9IGNsaWVu
dE9yaWdpbi50b3BPcmlnaW47CisKICAgICByZWFkTmV4dE1lc3NhZ2UoKTsKICAgICBtX2NoYW5u
ZWwuZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0IHsgW21fdGFzayBjdXJy
ZW50UmVxdWVzdF0gfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCmluZGV4IDJiYzc0Yjk0MWIyM2UwZGYw
YTZlZmM4NDI1N2FjMWJiODgwYmMzZWYuLjdmMTQ2OWQ4MjBjZjFkMWYxMmI1MGNlY2M1NzdiZDU0
MTQ2NDNhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIHZv
aWQgd2ViU29ja2V0TWVzc2FnZU5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiBzb3Vw
TWVzc2FnZSwgR1NvY2sKIH0KICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFz
az4gTmV0d29ya1Nlc3Npb25Tb3VwOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlk
ZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCitzdGQ6OnVuaXF1ZV9wdHI8
V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Tb3VwOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0
IENsaWVudE9yaWdpbiYpCiB7CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gc291cE1lc3NhZ2Ug
PSByZXF1ZXN0LmNyZWF0ZVNvdXBNZXNzYWdlKGJsb2JSZWdpc3RyeSgpKTsKICAgICBpZiAoIXNv
dXBNZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5oCmluZGV4IDZiMDM3NTJiNGJmOGVmMGUxMjUxOTEyMDRjYzY3
ZTc0ODBjMDNhNzIuLmJjM2Y5NmM5NjJhMTI4NjdmNDU0ODFlZDhiYzg5OGZlOGFkMGI5NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nl
c3Npb25Tb3VwLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJveHlT
ZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MmKTsKIAogcHJp
dmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gY3JlYXRlV2ViU29ja2V0
VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpIGZpbmFs
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNr
KFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJikgZmluYWw7CiAgICAgdm9pZCBjbGVhckNyZWRlbnRpYWxzKCkg
ZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U291cE5ldHdvcmtTZXNzaW9u
PiBtX25ldHdvcmtTZXNzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCA5MTBiMmNjZDg0MWJhMTMwMTk0YjFm
NGIyNjEyZGI5MzZiM2U2NDA1Li43MTZhZTVjMTUwMDVlNTUzMWI5Yzg5MDkwMmY5ZTczY2QwOGY3
ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0Jsb2IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkNvZGUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTExNyw3ICsxMTgsNyBAQCBXZWJTb2NrZXRDaGFu
bmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3QgVVJMJiB1
cmwsIGNvbnN0CiAKICAgICBtX2luc3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVu
dC5nZXQoKSwgdXJsKTsKICAgICBtX3VybCA9IHJlcXVlc3QtPnVybCgpOwotICAgIE1lc3NhZ2VT
ZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVh
dGVTb2NrZXRDaGFubmVsIHsgKnJlcXVlc3QsIHByb3RvY29sLCBtX2lkZW50aWZpZXIsIG1fd2Vi
UGFnZVByb3h5SUQgfSk7CisgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNvY2tldENoYW5uZWwgeyAqcmVxdWVzdCwg
cHJvdG9jb2wsIG1faWRlbnRpZmllciwgbV93ZWJQYWdlUHJveHlJRCwgQ2xpZW50T3JpZ2luIHsg
bV9kb2N1bWVudC0+dG9wT3JpZ2luKCkuZGF0YSgpLCBtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLmRhdGEoKSB9IH0pOwogICAgIHJldHVybiBDb25uZWN0U3RhdHVzOjpPSzsKIH0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDdhYTA4NmNhNDMzMGVhYmVmOTI1ZWMzMThkMjNlMDkyNDU0YjIyNmMuLjhiOTI2MzhkNzZj
YjdjZmRlNjZjMGM0NzQ1NWM2OGY0Y2U1MmRkOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAy
Mi0wMS0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFr
ZSBzdXJlIHNlY3VyZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMgaW4gc2VydmljZSB3b3JrZXJzIGNh
biB0cmlnZ2VyIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBjYWxsYmFja3MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDgwOQorICAgICAgICA8cmRh
cjovLzg1ODg4MTc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2Nr
ZXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLmh0bWw6CisgICAgICAgICogcGxhdGZv
cm0vaW9zLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNv
Y2tldC5odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LWJpZ3N1ci13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJz
b2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMi9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dC4KKwogMjAyMi0wMS0wMyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRmV0Y2ggdXNpbmcgRm9y
bURhdGEgd2l0aCBmaWxlIGRvZXNuJ3QgZ28gdGhyb3VnaCBTZXJ2aWNlIFdvcmtlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtl
ci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0
CmluZGV4IDY3NDk4YTVlNDJiNDI3MWE5ODBkNmM1MWU2YzU3NjRiYmUxMDZhMTcuLjZlOWVlZGE4
NmI5YjllZWYyNjE5ZWUwMTkxNmQ5NjY3NmNmZDBhNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBz
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0
IEBACitjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlCiAKIFBBU1MgU2V0dXAg
d29ya2VyCiBQQVNTIE9wZW4gYSBXZWJTb2NrZXQgaW4gc2VydmljZSB3b3JrZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXIt
d2Vic29ja2V0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy5odG1sCmluZGV4IGYyYjk5YjM2NzJi
NDVhMjBkZDdjOGZjNDY4ZTQ5NTcxNzgzZTQ4ZjguLjJmMWJlODE3MzdkNWUxOTg0MmEyNWM4Mzdj
OWU2YzkxMzMzNDViMGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQu
aHR0cHMuaHRtbApAQCAtMzAsNiArMzAsOSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+
IHsKIH0sICJTZXR1cCB3b3JrZXIiKTsKIAogcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLnNldFNob3Vs
ZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UodHJ1ZSk7CisKICAgICB2
YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKICAgICAgICAg
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3Qu
c3RlcF9mdW5jKChldmVudCkgPT4gewogICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJQ
QVNTIikgewpAQCAtNDIsNiArNDUsOSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
IAogICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSgiV0VCU09DS0VULTEiKTsKICAgICBhd2Fp
dCBwcm9taXNlOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLnNldFNob3VsZExvZ0NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoZmFs
c2UpOwogfSwgIk9wZW4gYSBXZWJTb2NrZXQgaW4gc2VydmljZSB3b3JrZXIiKTsKIDwvc2NyaXB0
PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLTE0LXdrMi9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTQtd2syL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjc0OThhNWU0MmI0MjcxYTk4MGQ2YzUx
ZTZjNTc2NGJiZTEwNmExNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MtMTQtd2syL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDQgKzAsMCBAQAotCi1QQVNTIFNldHVwIHdvcmtlcgotUEFTUyBPcGVu
IGEgV2ViU29ja2V0IGluIHNlcnZpY2Ugd29ya2VyCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtl
ci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
LXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5o
dHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRkZDU1ZDk0
YjEyMDIxNTBmNmVmNzI1MmY0NWViNTkwMGQ1MTQ2ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotUEFTUyBTZXR1cCB3b3Jr
ZXIKLUZBSUwgT3BlbiBhIFdlYlNvY2tldCBpbiBzZXJ2aWNlIHdvcmtlciBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogIkZBSUw6IHdlYnNvY2tldCBoYWQgYW4g
ZXJyb3I6IFtvYmplY3QgRXZlbnRdIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMtYmlnc3VyLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2Vy
LXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
Ymlnc3VyLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNv
Y2tldC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc0OThhNWU0MmI0MjcxYTk4MGQ2
YzUxZTZjNTc2NGJiZTEwNmExNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1iaWdzdXItd2syL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3Jr
ZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBT
ZXR1cCB3b3JrZXIKK1BBU1MgT3BlbiBhIFdlYlNvY2tldCBpbiBzZXJ2aWNlIHdvcmtlcgorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2syL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1jYXRhbGluYS13azIvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY3NDk4YTVlNDJiNDI3MWE5ODBkNmM1MWU2YzU3NjRiYmUxMDZhMTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2syL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBTZXR1cCB3b3JrZXIKK1BBU1MgT3Bl
biBhIFdlYlNvY2tldCBpbiBzZXJ2aWNlIHdvcmtlcgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448250</attachid>
            <date>2022-01-03 11:12:51 -0800</date>
            <delta_ts>2022-01-05 01:06:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234809-20220103201248.patch</filename>
            <type>text/plain</type>
            <size>27833</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlmNWFmM2RhYmEzYWEyMTcw
NTcxMGEzZDM0NDMwNGI5MWFhZTkwN2IuLjk4MDhhNjQyNzZkOGU3NjAyYThhNGQ2ODhhZGRhOGIw
YTViZTdhZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDEtMDMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBzZWN1cmUgd2Vi
c29ja2V0IGNvbm5lY3Rpb25zIGluIHNlcnZpY2Ugd29ya2VycyBjYW4gdHJpZ2dlciBhdXRoZW50
aWNhdGlvbiBjaGFsbGVuZ2UgY2FsbGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ4MDkKKyAgICAgICAgPHJkYXI6Ly84NTg4ODE3Nz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBjYXNlIHdl
IGFyZSBub3QgdXNpbmcgZmFzdCBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiwgd2UgYXJlIGdvaW5n
IHRvIHRoZSBVSVByb2Nlc3MgdG8gY2hlY2sgY2VydGlmaWNhdGVzLgorICAgICAgICBUaGlzIGlz
IGFuIGlzc3VlIGZvciB3ZWIgc29ja2V0IGxvYWRzIHRyaWdnZXJlZCBmb3Igc2VydmljZSB3b3Jr
ZXJzIHRoYXQgaGF2ZSBhbiBpbnZhbGlkIGNlcnRpZmljYXRlLgorICAgICAgICBCZWZvcmUgdGhl
IHBhdGNoLCB0aGUgY2hhbGxlbmdlIHdhcyBub3QgcHJvdmlkZWQgYSB0b3Agb3JpZ2luLCBzbyB0
aGUgZGVmYXVsdCBhY3Rpb24gd291bGQgYmUgdHJpZ2dlcmVkIGJ5IFVJUHJvY2Vzcy4KKyAgICAg
ICAgVG8gbWFrZSBzdXJlIHRoaXMgaXMgd29ya2luZyBhcyBleHBlY3RlZCwgd2Ugbm93IGFsd2F5
cyBwYXNzIHRoZSBvcmlnaW4gaWYgaXQgaXMgdGhlIHNhbWUgYXMgdGhlIHRvcCBvcmlnaW4gZm9y
IHdlYiBzb2NrZXQgY2hhbGxlbmdlcy4KKyAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHdlIGdldCBh
IHBhZ2Ugd2l0aCB0aGUgc2FtZSB0b3Agb3JpZ2luIGFuZCB0aGUgY2hhbGxlbmdlIGNhbGxiYWNr
IGlzIGNhbGxlZCBvbiB0aGUgcGFnZS4KKworICAgICAgICBDb3ZlcmVkIGJ5IHVwZGF0ZWQgdGVz
dHMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW06CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwOgorCiAyMDIyLTAxLTAyICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJLaXQyXSBDYW1lcmEgY29udGlu
dWl0eSBpcyBkaXNhYmxlZCBpbiByaWNobHkgZWRpdGFibGUgY29udGVudApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcAppbmRleCA5YzZkZDhjZTRkOGYwNmEyMDNiNjQwYWEyMmEwMjVlOTk3ZjMx
MDM2Li43YjY0ZWFjMGU2YTNhOTAxMTRmYjgxOTg1MzRiNWRkOTJjYjlkYTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtNDI5LDEwICs0MjksMTAgQEAgdm9pZCBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlU29ja2V0U3RyZWFtKFVSTCYmIHVybCwgU3RyaW5n
IGNhY2hlUGEKICAgICBtX25ldHdvcmtTb2NrZXRTdHJlYW1zLmFkZChpZGVudGlmaWVyLCBOZXR3
b3JrU29ja2V0U3RyZWFtOjpjcmVhdGUobV9uZXR3b3JrUHJvY2Vzcy5nZXQoKSwgV1RGTW92ZSh1
cmwpLCBtX3Nlc3Npb25JRCwgY2FjaGVQYXJ0aXRpb24sIGlkZW50aWZpZXIsIG1fY29ubmVjdGlv
biwgV1RGTW92ZSh0b2tlbikpKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6Y3JlYXRlU29ja2V0Q2hhbm5lbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwg
IFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRDaGFubmVsKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29u
c3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFtX25ldHdvcmtT
b2NrZXRDaGFubmVscy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgaWYgKGF1dG8gY2hhbm5l
bCA9IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoKnRoaXMsIG1fc2Vzc2lvbklELCByZXF1
ZXN0LCBwcm90b2NvbCwgaWRlbnRpZmllciwgd2ViUGFnZVByb3h5SUQpKQorICAgIGlmIChhdXRv
IGNoYW5uZWwgPSBOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Y3JlYXRlKCp0aGlzLCBtX3Nlc3Npb25J
RCwgcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZpZXIsIHdlYlBhZ2VQcm94eUlELCBjbGllbnRP
cmlnaW4pKQogICAgICAgICBtX25ldHdvcmtTb2NrZXRDaGFubmVscy5hZGQoaWRlbnRpZmllciwg
V1RGTW92ZShjaGFubmVsKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBiODVi
ZDY1ZmNjMDExMTI3YzRmYzJkZjU5MGQyMTg4Mjg2NDZiNTMxLi43Yjc5YzY0YjM4YzI1YzIwMzI3
OTg1YjM1ODZmZTdmNmRmZjVjMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yNDYs
NyArMjQ2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY3JlYXRlU29ja2V0U3RyZWFtKFVSTCYm
LCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24sIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIpOwog
Ci0gICAgdm9pZCBjcmVhdGVTb2NrZXRDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZp
ZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOworICAgIHZvaWQgY3JlYXRlU29ja2V0Q2hhbm5l
bChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29s
LCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKICAgICB2b2lkIHVwZGF0ZVF1b3RhQmFzZWRP
blNwYWNlVXNhZ2VGb3JUZXN0aW5nKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggZTI4NDdmYzBhNGM0NGQyZWYyMzg0ZmU4NTYxYzRiYTM0ZGM1ZGRj
OS4uMjQyODM1MDUwYjI0OTcwYzVlYWMxZTI2YmY4NmI1YjAyNWE4MGU1MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC02Miw3ICs2Miw3IEBAIG1lc3Nh
Z2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBTZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wgZW5hYmxlZCkK
IAogICAgIENyZWF0ZVNvY2tldFN0cmVhbShVUkwgdXJsLCBTdHJpbmcgY2FjaGVQYXJ0aXRpb24s
IFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBDcmVhdGVTb2Nr
ZXRDaGFubmVsKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcgcHJvdG9j
b2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlEKQorICAgIENyZWF0ZVNvY2tldENoYW5u
ZWwoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIFN0cmluZyBwcm90b2NvbCwgV2Vi
Q29yZTo6V2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4g
Y2xpZW50T3JpZ2luKQogCiAgICAgQ2xlYXJQYWdlU3BlY2lmaWNEYXRhKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggODc5MWU3MjkyN2VkM2UxZDg1Y2M2YWI5Yzk4NzE0YzRj
ODQ1NDQ2NS4uNjRhZGU0ODc1NDQ5NDVkMzg2MmM4NDU1NDRkYmI3YWZmZjg0ZmQ4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTUy
OCw3ICs1MjgsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpyZW1vdmVMb2FkZXJXYWl0aW5nV2Vi
UHJvY2Vzc1RyYW5zZmVyKE5ldHdvcmtSZXNvdXJjZUxvYWRJZAogICAgICAgICBjYWNoZWRSZXNv
dXJjZUxvYWRlci0+dGFrZUxvYWRlcigpLT5hYm9ydCgpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8
V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQorc3RkOjp1bmlxdWVfcHRy
PFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAppbmRleCBjMmRlMWRjNTM1NjJjOTAy
NmU4OGIxZWM4ZTJjOTljNWZkZDRkZmVkLi5iZWQwNzA5NDU3Y2E2ZTYyYzA1OTM1YzZiNzJhZDdh
NjUwMjQ5NWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vz
c2lvbi5oCkBAIC01OCw2ICs1OCw3IEBAIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTV1Nl
cnZlcjsKIGVudW0gY2xhc3MgSW5jbHVkZUh0dHBPbmx5Q29va2llcyA6IGJvb2w7CiBlbnVtIGNs
YXNzIFNob3VsZFNhbXBsZSA6IGJvb2w7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IFNl
Y3VyaXR5T3JpZ2luRGF0YTsKIH0KIApAQCAtMTc2LDcgKzE3Nyw3IEBAIHB1YmxpYzoKICAgICBQ
cmVmZXRjaENhY2hlJiBwcmVmZXRjaENhY2hlKCkgeyByZXR1cm4gbV9wcmVmZXRjaENhY2hlOyB9
CiAgICAgdm9pZCBjbGVhclByZWZldGNoQ2FjaGUoKSB7IG1fcHJlZmV0Y2hDYWNoZS5jbGVhcigp
OyB9CiAKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVX
ZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVs
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2Nv
bCk7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gY3JlYXRlV2Vi
U29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2ws
IGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVX
ZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViU29ja2V0
VGFzayYpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1NvY2tldENoYW5uZWwuY3BwCmluZGV4IGU4NzE1MjQwMzNkODZjYTY5YWFhYTYwY2Q3M2Ey
NGIxMzZiY2YwNjYuLmVjNjcwNzgyODY1MGMzZDQxYTUxYTYzOTRhYzVjYWFlMTY0MDM3ZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENo
YW5uZWwuY3BwCkBAIC0zNiw5ICszNiw5IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCi1zdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+
IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MmIGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpCitz
dGQ6OnVuaXF1ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IE5ldHdvcmtTb2NrZXRDaGFubmVs
OjpjcmVhdGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYlBh
Z2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9y
aWdpbiYgY2xpZW50T3JpZ2luKQogewotICAgIGF1dG8gcmVzdWx0ID0gbWFrZVVuaXF1ZTxOZXR3
b3JrU29ja2V0Q2hhbm5lbD4oY29ubmVjdGlvbiwgY29ubmVjdGlvbi5uZXR3b3JrUHJvY2Vzcygp
Lm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCksIHJlcXVlc3QsIHByb3RvY29sLCBpZGVudGlmaWVy
LCB3ZWJQYWdlUHJveHlJRCk7CisgICAgYXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPE5ldHdvcmtT
b2NrZXRDaGFubmVsPihjb25uZWN0aW9uLCBjb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCkubmV0
d29ya1Nlc3Npb24oc2Vzc2lvbklEKSwgcmVxdWVzdCwgcHJvdG9jb2wsIGlkZW50aWZpZXIsIHdl
YlBhZ2VQcm94eUlELCBjbGllbnRPcmlnaW4pOwogICAgIGlmICghcmVzdWx0LT5tX3NvY2tldCkg
ewogICAgICAgICByZXN1bHQtPmRpZENsb3NlKDAsICJDYW5ub3QgY3JlYXRlIGEgd2ViIHNvY2tl
dCB0YXNrIl9zKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC00Niw3ICs0Niw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENoYW5uZWw6
OmNyZWF0ZShOZXR3b3JrQ29ubmVjCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotTmV0d29ya1Nv
Y2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzJiBjb25uZWN0aW9uLCBOZXR3b3JrU2Vzc2lvbiogc2Vzc2lvbiwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJTb2NrZXRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQp
CitOZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9uLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdl
YlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQ
YWdlUHJveHlJRCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiAg
ICAgOiBtX2Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoY29ubmVjdGlvbikKICAgICAsIG1faWRlbnRp
ZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zZXNzaW9uKHNlc3Npb24pCkBAIC01Niw3ICs1Niw3
IEBAIE5ldHdvcmtTb2NrZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjCiAgICAgaWYgKCFtX3Nlc3Npb24pCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fc29ja2V0ID0gbV9zZXNzaW9uLT5jcmVhdGVXZWJTb2NrZXRUYXNr
KHdlYlBhZ2VQcm94eUlELCAqdGhpcywgcmVxdWVzdCwgcHJvdG9jb2wpOworICAgIG1fc29ja2V0
ID0gbV9zZXNzaW9uLT5jcmVhdGVXZWJTb2NrZXRUYXNrKHdlYlBhZ2VQcm94eUlELCAqdGhpcywg
cmVxdWVzdCwgcHJvdG9jb2wsIGNsaWVudE9yaWdpbik7CiAgICAgaWYgKG1fc29ja2V0KSB7CiAg
ICAgICAgIG1fc2Vzc2lvbi0+YWRkV2ViU29ja2V0VGFzayh3ZWJQYWdlUHJveHlJRCwgKm1fc29j
a2V0KTsKICAgICAgICAgbV9zb2NrZXQtPnJlc3VtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCmluZGV4IDFlN2IyY2UxOTJl
M2E4MzBhOTdjZjk5NWYxYTQ4MWFlYmJiMjM4ZDAuLmFmN2E5NTkyMTQ3ZTQ3ZTIwNzcwNjM2NjEw
OWJiYzFjYTBkNmEzMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1NvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtTb2NrZXRDaGFubmVsLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwog
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIH0KQEAgLTU1
LDkgKzU2LDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBOZXR3b3JrU29ja2V0Q2hh
bm5lbCA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElk
ZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8TmV0d29ya1NvY2tldENoYW5uZWw+IGNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYsIFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsKIAot
ICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwg
TmV0d29ya1Nlc3Npb24qLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIHByb3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyKTsKKyAgICBOZXR3b3JrU29ja2V0Q2hhbm5lbChOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyYsIE5ldHdvcmtTZXNzaW9uKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRp
ZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2lu
Jik7CiAgICAgfk5ldHdvcmtTb2NrZXRDaGFubmVsKCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApp
bmRleCBiMDkyMmIwM2RjOTc1ZmZlODE3YzUxNjdhN2FjZGIwYTEzZmU0NWU0Li4zYzQ2ZTZiMGQ3
Y2UzNWMwNmU5NjM4ZmFiYTdjOTI4ZTE3NWM1MTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EuaApAQCAtMTU3
LDcgKzE1Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckFsdGVybmF0aXZlU2VydmljZXMo
V2FsbFRpbWUpIG92ZXJyaWRlOwogCiAjaWYgSEFWRShOU1VSTFNFU1NJT05fV0VCU09DS0VUKQot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCkgZmluYWw7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4mKSBmaW5hbDsKICAgICB2b2lkIGFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlV2Vi
U29ja2V0VGFzayhTZXNzaW9uU2V0JiwgV2ViU29ja2V0VGFzayYpIGZpbmFsOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KaW5kZXggNmE1M2I1ZDcwYTA1NDRiOGIwMmIzNDlhZmYxYjRiYzYwZWFk
ZTIwOC4uYjNjZDg2NTViZmI1M2I4ZGJiMDJjOTQyZTRlZWI1NmYyMTFmYTIzMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbQpAQCAtMTY2NSw4ICsxNjY1LDggQEAgdm9pZCBOZXR3b3JrU2Vzc2lvbkNvY29h
Ojpjb250aW51ZURpZFJlY2VpdmVDaGFsbGVuZ2UoU2Vzc2lvbldyYXBwZXImIHNlc3Npb25XcmEK
ICNpZiBIQVZFKE5TVVJMU0VTU0lPTl9XRUJTT0NLRVQpCiAgICAgICAgIGlmIChhdXRvKiB3ZWJT
b2NrZXRUYXNrID0gc2Vzc2lvbldyYXBwZXIud2ViU29ja2V0RGF0YVRhc2tNYXAuZ2V0KHRhc2tJ
ZGVudGlmaWVyKSkgewogICAgICAgICAgICAgYXV0byBjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxl
ciA9IGNyZWF0ZUNoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyKG5ldHdvcmtQcm9jZXNzKCksIHNl
c3Npb25JRCgpLCBjaGFsbGVuZ2UsIHdlYlNvY2tldFRhc2stPnBhcnRpdGlvbigpLCAwLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgICAgICBuZXR3b3JrUHJvY2VzcygpLmF1
dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShz
ZXNzaW9uSUQoKSwgd2ViU29ja2V0VGFzay0+cGFnZUlEKCksIG51bGxwdHIsIGNoYWxsZW5nZSwg
bmVnb3RpYXRlZExlZ2FjeVRMUywgV1RGTW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlcikp
OwotCisgICAgICAgICAgICBhdXRvJiBvcmlnaW4gPSB3ZWJTb2NrZXRUYXNrLT50b3BPcmlnaW4o
KTsKKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCku
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNlc3Npb25JRCgpLCB3ZWJTb2NrZXRU
YXNrLT5wYWdlSUQoKSwgb3JpZ2luID8gJm9yaWdpbi52YWx1ZSgpIDogbnVsbHB0ciwgY2hhbGxl
bmdlLCBuZWdvdGlhdGVkTGVnYWN5VExTLCBXVEZNb3ZlKGNoYWxsZW5nZUNvbXBsZXRpb25IYW5k
bGVyKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMTcwNyw3
ICsxNzA3LDcgQEAgRE1GV2Vic2l0ZVBvbGljeU1vbml0b3IgKk5ldHdvcmtTZXNzaW9uQ29jb2E6
OmRldmljZU1hbmFnZW1lbnRQb2xpY3lNb25pdG9yKCkKIH0KIAogI2lmIEhBVkUoTlNVUkxTRVNT
SU9OX1dFQlNPQ0tFVCkKLXN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vz
c2lvbkNvY29hOjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2Vi
UGFnZVByb3h5SUQsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCitzdGQ6
OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Db2NvYTo6Y3JlYXRlV2Vi
U29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBOZXR3b3Jr
U29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmln
aW4mIGNsaWVudE9yaWdpbikKIHsKICAgICBBU1NFUlQoIXJlcXVlc3QuaGFzSFRUUEhlYWRlckZp
ZWxkKFdlYkNvcmU6OkhUVFBIZWFkZXJOYW1lOjpTZWNXZWJTb2NrZXRQcm90b2NvbCkpOwogICAg
IGF1dG8gbnNSZXF1ZXN0ID0gcmV0YWluUHRyKHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KSk7CkBAIC0xNzM1LDcg
KzE3MzUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25D
b2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUAogICAgIC8vIEFsdGhvdWdoIHRoZSBX
ZWJTb2NrZXQgcHJvdG9jb2wgYWxsb3dzIGZ1bGwgNjQtYml0IGxlbmd0aHMsIENocm9tZSBhbmQg
RmlyZWZveCBsaW1pdCB0aGUgbGVuZ3RoIHRvIDJeNjMgLSAxCiAgICAgdGFzay5nZXQoKS5tYXhp
bXVtTWVzc2FnZVNpemUgPSAweDdGRkZGRkZGRkZGRkZGRkZ1bGw7CiAKLSAgICByZXR1cm4gbWFr
ZVVuaXF1ZTxXZWJTb2NrZXRUYXNrPihjaGFubmVsLCB3ZWJQYWdlUHJveHlJRCwgc2Vzc2lvblNl
dCwgcmVxdWVzdCwgV1RGTW92ZSh0YXNrKSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8V2ViU29j
a2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFnZVByb3h5SUQsIHNlc3Npb25TZXQsIHJlcXVlc3QsIGNs
aWVudE9yaWdpbiwgV1RGTW92ZSh0YXNrKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Db2Nv
YTo6YWRkV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlE
LCBXZWJTb2NrZXRUYXNrJiB0YXNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmgKaW5kZXggOTMwN2NlZDk5ZDVhYzg3
MDc1MWQyZGFiNTZkZDQ2YTAzYWQ0MzNlOC4uZTRmMThlNDE2YzdlN2Q3NDgyYTdmMzBkYTk2OTU5
OTBjYzE0NGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9XZWJTb2NrZXRUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKQEAgLTM2LDYgKzM3LDcgQEAg
T0JKQ19DTEFTUyBOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogfQogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ3LDcgKzQ5LDcgQEAgc3RydWN0IFNlc3Npb25TZXQ7CiBj
bGFzcyBXZWJTb2NrZXRUYXNrIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFdlYlNvY2tldFRhc2s+
IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXZWJTb2NrZXRU
YXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vha1B0
cjxTZXNzaW9uU2V0PiYmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBSZXRhaW5Q
dHI8TlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzaz4mJik7CisgICAgV2ViU29ja2V0VGFzayhOZXR3
b3JrU29ja2V0Q2hhbm5lbCYsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYWtQdHI8U2Vzc2lv
blNldD4mJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYpOwog
ICAgIH5XZWJTb2NrZXRUYXNrKCk7CiAKICAgICB2b2lkIHNlbmRTdHJpbmcoY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTY4LDYgKzcw
LDcgQEAgcHVibGljOgogCiAgICAgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQoKSBjb25z
dCB7IHJldHVybiBtX3BhZ2VJRDsgfQogICAgIFN0cmluZyBwYXJ0aXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX3BhcnRpdGlvbjsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiYgdG9wT3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV90b3BPcmlnaW47
IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIHJlYWROZXh0TWVzc2FnZSgpOwpAQCAtNzksNiArODIs
NyBAQCBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV9wYWdlSUQ7CiAgICAg
V2Vha1B0cjxTZXNzaW9uU2V0PiBtX3Nlc3Npb25TZXQ7CiAgICAgU3RyaW5nIG1fcGFydGl0aW9u
OworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBtX3RvcE9y
aWdpbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQppbmRleCBl
NjQ5YzM1ZmY1MDMwODAxZWE3YmQ2MzM1ODI4YjcxYTQ3MzBmMzIxLi4zMzEyM2MzYTM0MDViZTAy
ZTYyYjJhNzk4MWNiNmYwYzFhZjI5MDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5tbQpAQCAtMzEsNiArMzEs
NyBAQAogI2ltcG9ydCAiTmV0d29ya1Nlc3Npb25Db2NvYS5oIgogI2ltcG9ydCAiTmV0d29ya1Nv
Y2tldENoYW5uZWwuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxTZXNzaW9uLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0NsaWVudE9yaWdpbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJl
cXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJTb2NrZXRDaGFubmVsLmg+CkBAIC00MCwxMyArNDEsMTYgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJTb2NrZXRUYXNrOjpX
ZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHBhZ2VJRCwgV2Vha1B0cjxTZXNzaW9uU2V0PiYmIHNlc3Npb25TZXQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmV0YWluUHRyPE5TVVJMU2Vzc2lv
bldlYlNvY2tldFRhc2s+JiYgdGFzaykKK1dlYlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2soTmV0
d29ya1NvY2tldENoYW5uZWwmIGNoYW5uZWwsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlE
LCBXZWFrUHRyPFNlc3Npb25TZXQ+JiYgc2Vzc2lvblNldCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNsaWVudE9y
aWdpbiwgUmV0YWluUHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYgdGFzaykKICAgICA6
IG1fY2hhbm5lbChjaGFubmVsKQogICAgICwgbV90YXNrKFdURk1vdmUodGFzaykpCiAgICAgLCBt
X3BhZ2VJRChwYWdlSUQpCiAgICAgLCBtX3Nlc3Npb25TZXQoV1RGTW92ZShzZXNzaW9uU2V0KSkK
ICAgICAsIG1fcGFydGl0aW9uKHJlcXVlc3QuY2FjaGVQYXJ0aXRpb24oKSkKIHsKKyAgICBpZiAo
Y2xpZW50T3JpZ2luLnRvcE9yaWdpbiA9PSBjbGllbnRPcmlnaW4uY2xpZW50T3JpZ2luKQorICAg
ICAgICBtX3RvcE9yaWdpbiA9IGNsaWVudE9yaWdpbi50b3BPcmlnaW47CisKICAgICByZWFkTmV4
dE1lc3NhZ2UoKTsKICAgICBtX2NoYW5uZWwuZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0IHsgW21fdGFzayBjdXJyZW50UmVxdWVzdF0gfSk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3Bw
CmluZGV4IDJiYzc0Yjk0MWIyM2UwZGYwYTZlZmM4NDI1N2FjMWJiODgwYmMzZWYuLjdmMTQ2OWQ4
MjBjZjFkMWYxMmI1MGNlY2M1NzdiZDU0MTQ2NDNhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuY3BwCkBAIC0x
MTksNyArMTE5LDcgQEAgc3RhdGljIHZvaWQgd2ViU29ja2V0TWVzc2FnZU5ldHdvcmtFdmVudENh
bGxiYWNrKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgR1NvY2sKIH0KICNlbmRpZgogCi1zdGQ6
OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Tb3VwOjpjcmVhdGVXZWJT
b2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRDaGFubmVsJiBj
aGFubmVsLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJv
dG9jb2wpCitzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb25Tb3Vw
OjpjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtTb2Nr
ZXRDaGFubmVsJiBjaGFubmVsLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wsIGNvbnN0IENsaWVudE9yaWdpbiYpCiB7CiAgICAgR1JlZlB0cjxT
b3VwTWVzc2FnZT4gc291cE1lc3NhZ2UgPSByZXF1ZXN0LmNyZWF0ZVNvdXBNZXNzYWdlKGJsb2JS
ZWdpc3RyeSgpKTsKICAgICBpZiAoIXNvdXBNZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oCmluZGV4IDZiMDM3
NTJiNGJmOGVmMGUxMjUxOTEyMDRjYzY3ZTc0ODBjMDNhNzIuLmJjM2Y5NmM5NjJhMTI4NjdmNDU0
ODFlZDhiYzg5OGZlOGFkMGI5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0UHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3VwTmV0d29y
a1Byb3h5U2V0dGluZ3MmKTsKIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29j
a2V0VGFzaz4gY3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3
b3JrU29ja2V0Q2hhbm5lbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFN0cmluZyYgcHJvdG9jb2wpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRU
YXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtT
b2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJikgZmluYWw7CiAgICAg
dm9pZCBjbGVhckNyZWRlbnRpYWxzKCkgZmluYWw7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6U291cE5ldHdvcmtTZXNzaW9uPiBtX25ldHdvcmtTZXNzaW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCA5MTBiMmNjZDg0MWJhMTMwMTk0YjFmNGIyNjEyZGI5MzZiM2U2NDA1Li43MTZhZTVjMTUwMDVl
NTUzMWI5Yzg5MDkwMmY5ZTczY2QwOGY3ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Jsb2IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NsaWVu
dE9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0V4Y2VwdGlvbkNvZGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTExNyw3
ICsxMTgsNyBAQCBXZWJTb2NrZXRDaGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5u
ZWw6OmNvbm5lY3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAKICAgICBtX2luc3BlY3Rvci5kaWRD
cmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgdXJsKTsKICAgICBtX3VybCA9IHJlcXVl
c3QtPnVybCgpOwotICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFubmVsIHsgKnJlcXVlc3QsIHByb3Rv
Y29sLCBtX2lkZW50aWZpZXIsIG1fd2ViUGFnZVByb3h5SUQgfSk7CisgICAgTWVzc2FnZVNlbmRl
cjo6c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNv
Y2tldENoYW5uZWwgeyAqcmVxdWVzdCwgcHJvdG9jb2wsIG1faWRlbnRpZmllciwgbV93ZWJQYWdl
UHJveHlJRCwgQ2xpZW50T3JpZ2luIHsgbV9kb2N1bWVudC0+dG9wT3JpZ2luKCkuZGF0YSgpLCBt
X2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLmRhdGEoKSB9IH0pOwogICAgIHJldHVybiBDb25u
ZWN0U3RhdHVzOjpPSzsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3NjdlNWQxNTA2YmE4MzlmMTA0YTA4ZTk2ZmU0
MGJjNjBkOTc3ZTMuLjc3YmM1NDM4NGMxMTE4YzlkOTliMmVkZTVkYWM5ZjA1NmZjOTVkZmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMi0wMS0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIHNlY3VyZSB3ZWJzb2NrZXQgY29ubmVjdGlv
bnMgaW4gc2VydmljZSB3b3JrZXJzIGNhbiB0cmlnZ2VyIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5n
ZSBjYWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDgwOQorICAgICAgICA8cmRhcjovLzg1ODg4MTc3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBz
Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJz
b2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy1iaWdzdXItd2syL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4
cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy1jYXRhbGluYS13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
c2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNv
Y2tldC5odHRwcy1leHBlY3RlZC50eHQuCisKIDIwMjItMDEtMDMgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEZldGNoIHVzaW5nIEZvcm1EYXRhIHdpdGggZmls
ZSBkb2Vzbid0IGdvIHRocm91Z2ggU2VydmljZSBXb3JrZXIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0
dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2NzQ5OGE1
ZTQyYjQyNzFhOTgwZDZjNTFlNmM1NzY0YmJlMTA2YTE3Li42ZTllZWRhODZiOWI5ZWVmMjYxOWVl
MDE5MTZkOTY2NzZjZmQwYTVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtl
ci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsNCBAQAorY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZQogCiBQQVNTIFNldHVwIHdvcmtlcgogUEFTUyBP
cGVuIGEgV2ViU29ja2V0IGluIHNlcnZpY2Ugd29ya2VyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdv
cmtlci13ZWJzb2NrZXQuaHR0cHMuaHRtbAppbmRleCBmMmI5OWIzNjcyYjQ1YTIwZGQ3YzhmYzQ2
OGU0OTU3MTc4M2U0OGY4Li4yZjFiZTgxNzM3ZDVlMTk4NDJhMjVjODM3YzllNmM5MTMzMzQ1YjBl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2
aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLmh0bWwKQEAg
LTMwLDYgKzMwLDkgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiB9LCAiU2V0dXAg
d29ya2VyIik7CiAKIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRMb2dDYW5BdXRoZW50
aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKHRydWUpOworCiAgICAgdmFyIHByb21pc2UgPSBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CiAgICAgICAgIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB0ZXN0LnN0ZXBfZnVuYygoZXZl
bnQpID0+IHsKICAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiUEFTUyIpIHsKQEAgLTQy
LDYgKzQ1LDkgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAKICAgICBhY3RpdmVX
b3JrZXIucG9zdE1lc3NhZ2UoIldFQlNPQ0tFVC0xIik7CiAgICAgYXdhaXQgcHJvbWlzZTsKKwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTaG91bGRM
b2dDYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKGZhbHNlKTsKIH0sICJPcGVu
IGEgV2ViU29ja2V0IGluIHNlcnZpY2Ugd29ya2VyIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtl
ci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3NDk4YTVlNDJiNDI3
MWE5ODBkNmM1MWU2YzU3NjRiYmUxMDZhMTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13
ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFNldHVw
IHdvcmtlcgorUEFTUyBPcGVuIGEgV2ViU29ja2V0IGluIHNlcnZpY2Ugd29ya2VyCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xNC13azIvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zLTE0LXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDY3NDk4YTVlNDJiNDI3MWE5ODBkNmM1MWU2YzU3NjRiYmUxMDZhMTcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLTE0LXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
d29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0
ICswLDAgQEAKLQotUEFTUyBTZXR1cCB3b3JrZXIKLVBBU1MgT3BlbiBhIFdlYlNvY2tldCBpbiBz
ZXJ2aWNlIHdvcmtlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGQ1NWQ5NGIxMjAyMTUwZjZlZjcyNTJm
NDVlYjU5MDBkNTE0Njg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgU2V0dXAgd29ya2VyCi1GQUlMIE9wZW4gYSBX
ZWJTb2NrZXQgaW4gc2VydmljZSB3b3JrZXIgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6ICJGQUlMOiB3ZWJzb2NrZXQgaGFkIGFuIGVycm9yOiBbb2JqZWN0IEV2
ZW50XSIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWJpZ3N1ci13azIv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWJpZ3N1ci13azIvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjY3NDk4YTVlNDJiNDI3MWE5ODBkNmM1MWU2YzU3NjRiYmUxMDZh
MTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtYmlnc3VyLXdr
Mi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgU2V0dXAgd29ya2VyCitQQVNT
IE9wZW4gYSBXZWJTb2NrZXQgaW4gc2VydmljZSB3b3JrZXIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtY2F0YWxpbmEtd2syL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzQ5
OGE1ZTQyYjQyNzFhOTgwZDZjNTFlNmM1NzY0YmJlMTA2YTE3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWNhdGFsaW5hLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACisKK1BBU1MgU2V0dXAgd29ya2VyCitQQVNTIE9wZW4gYSBXZWJTb2NrZXQgaW4g
c2VydmljZSB3b3JrZXIKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448272</attachid>
            <date>2022-01-04 01:01:32 -0800</date>
            <delta_ts>2022-01-04 04:18:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234809-20220104100128.patch</filename>
            <type>text/plain</type>
            <size>47059</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzllMDE1ZDIxZjIyZDgy
NzllMWVlYWJlODQzYjBmMTcyYWRiZTlmYi4uZTQ1MmRlMTExZjFkZWE3OWFkNzg3YzIwODg0MjJl
NGFlNmEwZDliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAxLTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGZXRjaCB1c2luZyBGb3Jt
RGF0YSB3aXRoIGZpbGUgZG9lc24ndCBnbyB0aHJvdWdoIFNlcnZpY2UgV29ya2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc0NjEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQxOTc1NTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZWFkaW5nIGZvcm1EYXRhIGJhc2Vk
IGJvZGllcyB0aHJvdWdoIHN0cmVhbXMgb3IgcmVndWxhciBtZXRob2RzIGxpa2UgdGV4dC4KKyAg
ICAgICAgRm9yIHRoYXQgcHVycG9zZSwgd2UgYWRkIEZvcm1EYXRhQ29uc3VtZXIgd2hpY2ggYWxs
b3dzIHNlcmlhbGl6aW5nIGZvcm0gZGF0YXMgdGhhdCBtYXkgY29udGFpbiBmaWxlcyBvciBibG9i
cy4KKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IHRvIGxvYWQgYmxvYnMgZnJvbSBCbG9iTG9hZGVy
IHVzaW5nIHRoZSBpbnRlcm5hbCBVUkwgKHN0b3JlZCBpbiBGb3JtRGF0YSkgaW4gbGlldSBvZiBw
YXNzaW5nIGEgYmxvYiBvYmplY3QuCisgICAgICAgIEVuYWJsZSBmZXRjaCBldmVudHMgZm9yIGZv
cm0gZGF0YSBiYXNlZCBmZXRjaCBldmVudHMuCisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL2Zvcm0tZGF0YS11cGxvYWQuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHkuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Lmg6
CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHA6CisgICAgICAg
ICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRm9ybURhdGFDb25zdW1lci5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRm9ybURhdGFDb25zdW1lci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZmls
ZWFwaS9CbG9iTG9hZGVyLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwOgorCiAyMDIyLTAxLTAy
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFj
Y2VzcyBrZXkgc2hvdWxkIHdvcmsgb24gZm9jdXNhYmxlIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5kZXggYjhmMmVjMzczZDg3M2NjOWM4YWNi
M2M2ZWM4NDVmNmFiMDAwOWFhNi4uNzQxN2FlMGMxMjAzZWNmYzQ4NDkxZmUxMjQ4MDk2ZWI2NWVm
YzJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAt
OTQsOCArOTQsNyBAQCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4gRmV0Y2hCb2R5Ojpmcm9tRm9y
bURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dAogICAgICAgICByZXR1cm4gRmV0
Y2hCb2R5IHsgV1RGTW92ZShibG9iKSB9OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBTdXBwb3J0
IGZvcm0gZGF0YSBib2RpZXMuCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4g
RmV0Y2hCb2R5IHsgUmVmIHsgZm9ybURhdGEgfSB9OwogfQogCiB2b2lkIEZldGNoQm9keTo6YXJy
YXlCdWZmZXIoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBGZXRjaEJvZHk6OmNvbnN1bWVBc1N0cmVh
bShGZXRjaEJvZHlPd25lciYgb3duZXIsIEZldGNoQm9keVNvdXJjZSYgc291cmNlKQogICAgICAg
ICBvd25lci5sb2FkQmxvYihibG9iQm9keSgpLCBudWxscHRyKTsKICAgICAgICAgbV9kYXRhID0g
bnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKGlzRm9ybURhdGEoKSkKLSAgICAgICAgc291cmNlLmVy
cm9yKEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIl9zIH0p
OworICAgICAgICBtX2NvbnN1bWVyLmNvbnN1bWVGb3JtRGF0YUFzU3RyZWFtKGZvcm1EYXRhQm9k
eSgpLCBzb3VyY2UsIG93bmVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgZWxzZSBp
ZiAobV9jb25zdW1lci5oYXNEYXRhKCkpCiAgICAgICAgIGNsb3NlU3RyZWFtID0gc291cmNlLmVu
cXVldWUobV9jb25zdW1lci50YWtlQXNBcnJheUJ1ZmZlcigpKTsKICAgICBlbHNlCkBAIC0yMzQs
MTQgKzIzMyw4IEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lQmxvYihGZXRjaEJvZHlPd25lciYg
b3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzCiAKIHZvaWQgRmV0Y2hCb2R5Ojpj
b25zdW1lRm9ybURhdGEoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKGF1dG8gc2hhcmVkQnVmZmVyID0gZm9ybURhdGFCb2R5
KCkuYXNTaGFyZWRCdWZmZXIoKSkgewotICAgICAgICBtX2NvbnN1bWVyLnJlc29sdmVXaXRoRGF0
YShXVEZNb3ZlKHByb21pc2UpLCBvd25lci5jb250ZW50VHlwZSgpLCBzaGFyZWRCdWZmZXItPm1h
a2VDb250aWd1b3VzKCktPmRhdGEoKSwgc2hhcmVkQnVmZmVyLT5zaXplKCkpOwotICAgICAgICBt
X2RhdGEgPSBudWxscHRyOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBJZiB0aGUg
Zm9ybSBkYXRhIGNvbnRhaW5zIGJsb2JzLCBsb2FkIHRoZW0gbGlrZSB3ZSBkbyBvdGhlciBibG9i
cy4KLSAgICAgICAgLy8gVGhhdCB3aWxsIGZpeCB0aGUgbGFzdCBXUFQgdGVzdCBpbiByZXNwb25z
ZS1jb25zdW1lLmh0bWwuCi0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJv
cik7Ci0gICAgfQorICAgIG1fY29uc3VtZXIucmVzb2x2ZVdpdGhGb3JtRGF0YShXVEZNb3ZlKHBy
b21pc2UpLCBvd25lci5jb250ZW50VHlwZSgpLCBmb3JtRGF0YUJvZHkoKSwgb3duZXIuc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBtX2RhdGEgPSBudWxscHRyOwogfQogCiB2b2lkIEZl
dGNoQm9keTo6bG9hZGluZ0ZhaWxlZChjb25zdCBFeGNlcHRpb24mIGV4Y2VwdGlvbikKQEAgLTMx
MSw3ICszMDQsNyBAQCBGZXRjaEJvZHk6OlRha2VuRGF0YSBGZXRjaEJvZHk6OnRha2UoKQogCiBG
ZXRjaEJvZHkgRmV0Y2hCb2R5OjpjbG9uZSgpCiB7Ci0gICAgRmV0Y2hCb2R5IGNsb25lKG1fY29u
c3VtZXIpOworICAgIEZldGNoQm9keSBjbG9uZShtX2NvbnN1bWVyLmNsb25lKCkpOwogCiAgICAg
aWYgKGlzQXJyYXlCdWZmZXIoKSkKICAgICAgICAgY2xvbmUubV9kYXRhID0gYXJyYXlCdWZmZXJC
b2R5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaAppbmRleCBiYWQx
YjVlYTIzYjc3MWIzNDdmNGIwNGE1Njc1OGZjMDA4OGUxMmU0Li5hNGFmMmFhZDU4NTM1Njc4M2Jm
NzI3MTMxM2RjNjA0MGVkNzhmNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBGZXRjaEJv
ZHkoUmVmPEZvcm1EYXRhPiYmIGRhdGEpIDogbV9kYXRhKFdURk1vdmUoZGF0YSkpIHsgfQogICAg
IGV4cGxpY2l0IEZldGNoQm9keShTdHJpbmcmJiBkYXRhKSA6IG1fZGF0YShXVEZNb3ZlKGRhdGEp
KSB7IH0KICAgICBleHBsaWNpdCBGZXRjaEJvZHkoUmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4m
JiBkYXRhKSA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKSB7IH0KLSAgICBleHBsaWNpdCBGZXRjaEJv
ZHkoY29uc3QgRmV0Y2hCb2R5Q29uc3VtZXImIGNvbnN1bWVyKSA6IG1fY29uc3VtZXIoY29uc3Vt
ZXIpIHsgfQorICAgIGV4cGxpY2l0IEZldGNoQm9keShGZXRjaEJvZHlDb25zdW1lciYmIGNvbnN1
bWVyKSA6IG1fY29uc3VtZXIoV1RGTW92ZShjb25zdW1lcikpIHsgfQogICAgIGV4cGxpY2l0IEZl
dGNoQm9keShSZWY8UmVhZGFibGVTdHJlYW0+JiYgc3RyZWFtKSA6IG1fcmVhZGFibGVTdHJlYW0o
V1RGTW92ZShzdHJlYW0pKSB7IH0KIAogICAgIHZvaWQgY29uc3VtZShGZXRjaEJvZHlPd25lciYs
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAppbmRleCBjMjMxZjIwN2RhMjVjZDJhMTU4NjBk
MjhkYjNjZTE3ZTg1NzU3N2Q1Li42ZTQ1YjlmYjgzYzBlMTZlZWIwYWY3ZTg2NWMzMWY5ODUyYTM3
NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkZldGNoQm9keUNvbnN1bWVy
LmgiCiAKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUgIkZvcm1EYXRhQ29uc3Vt
ZXIuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyRmllbGQuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogI2luY2x1ZGUgIkpTQmxvYi5oIgpAQCAtMjQzLDYgKzI0NCw4IEBAIHN0YXRpYyB2b2lk
IHJlc29sdmVXaXRoVHlwZUFuZERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
ZXRjaEJvZHlDb25zCiB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpjbGVhbigpCiB7CiAgICAgbV9i
dWZmZXIucmVzZXQoKTsKKyAgICBpZiAobV9mb3JtRGF0YUNvbnN1bWVyKQorICAgICAgICBtX2Zv
cm1EYXRhQ29uc3VtZXItPmNhbmNlbCgpOwogICAgIHJlc2V0Q29uc3VtZVByb21pc2UoKTsKICAg
ICBpZiAobV9zaW5rKSB7CiAgICAgICAgIG1fc2luay0+Y2xlYXJDYWxsYmFjaygpOwpAQCAtMjU1
LDYgKzI1OCw2MSBAQCB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBjb25zdCBTdAogICAgIHJlc29sdmVXaXRoVHlw
ZUFuZERhdGEoV1RGTW92ZShwcm9taXNlKSwgbV90eXBlLCBjb250ZW50VHlwZSwgZGF0YSwgbGVu
Z3RoKTsKIH0KIAordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhGb3JtRGF0YShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IGNvbnN0IEZvcm1EYXRhJiBmb3JtRGF0YSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKK3sKKyAgICBpZiAoYXV0byBzaGFyZWRCdWZmZXIgPSBmb3JtRGF0YS5hc1NoYXJlZEJ1ZmZl
cigpKSB7CisgICAgICAgIHJlc29sdmVXaXRoRGF0YShXVEZNb3ZlKHByb21pc2UpLCBjb250ZW50
VHlwZSwgc2hhcmVkQnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIHNoYXJlZEJ1ZmZl
ci0+c2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb3JtRGF0YUNvbnN1bWVyID0gbWFrZVVuaXF1ZTxG
b3JtRGF0YUNvbnN1bWVyPihmb3JtRGF0YSwgKmNvbnRleHQsIFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgY29udGVudFR5cGUsIGJ1aWxkZXIgPSBTaGFyZWRCdWZmZXJCdWlsZGVy
IHsgfV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1
dG8mIHZhbHVlID0gcmVzdWx0LnJldHVyblZhbHVlKCk7CisgICAgICAgIGlmICghdmFsdWUuc2l6
ZSgpKSB7CisgICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IGJ1aWxkZXIudGFrZUFzQ29udGlndW91
cygpOworICAgICAgICAgICAgcmVzb2x2ZVdpdGhEYXRhKFdURk1vdmUocHJvbWlzZSksIGNvbnRl
bnRUeXBlLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUuZGF0YSgpLCB2
YWx1ZS5zaXplKCkpOworICAgIH0pOworfQorCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpjb25z
dW1lRm9ybURhdGFBc1N0cmVhbShjb25zdCBGb3JtRGF0YSYgZm9ybURhdGEsIEZldGNoQm9keVNv
dXJjZSYgc291cmNlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIGlm
IChhdXRvIHNoYXJlZEJ1ZmZlciA9IGZvcm1EYXRhLmFzU2hhcmVkQnVmZmVyKCkpIHsKKyAgICAg
ICAgaWYgKHNvdXJjZS5lbnF1ZXVlKEFycmF5QnVmZmVyOjp0cnlDcmVhdGUoc2hhcmVkQnVmZmVy
LT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIHNoYXJlZEJ1ZmZlci0+c2l6ZSgpKSkpCisgICAg
ICAgICAgICBzb3VyY2UuY2xvc2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
ICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb3JtRGF0YUNvbnN1bWVyID0g
bWFrZVVuaXF1ZTxGb3JtRGF0YUNvbnN1bWVyPihmb3JtRGF0YSwgKmNvbnRleHQsIFt0aGlzLCBz
b3VyY2UgPSBSZWYgeyBzb3VyY2UgfV0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBzb3VyY2UtPmVycm9yKHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byYgdmFsdWUgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKKyAgICAgICAgaWYgKCF2
YWx1ZS5zaXplKCkpIHsKKyAgICAgICAgICAgIHNvdXJjZS0+Y2xvc2UoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc291cmNlLT5lbnF1ZXVlKEFycmF5
QnVmZmVyOjp0cnlDcmVhdGUodmFsdWUuZGF0YSgpLCB2YWx1ZS5zaXplKCkpKSkKKyAgICAgICAg
ICAgIG1fZm9ybURhdGFDb25zdW1lci0+Y2FuY2VsKCk7CisgICAgfSk7Cit9CisKIHZvaWQgRmV0
Y2hCb2R5Q29uc3VtZXI6OmV4dHJhY3QoUmVhZGFibGVTdHJlYW0mIHN0cmVhbSwgUmVhZGFibGVT
dHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgQVNT
RVJUKCFtX3NpbmspOwpAQCAtNDE2LDQgKzQ3NCwxMiBAQCB2b2lkIEZldGNoQm9keUNvbnN1bWVy
Ojpsb2FkaW5nU3VjY2VlZGVkKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiAgICAgfQogfQog
CitGZXRjaEJvZHlDb25zdW1lciBGZXRjaEJvZHlDb25zdW1lcjo6Y2xvbmUoKQoreworICAgIEZl
dGNoQm9keUNvbnN1bWVyIGNsb25lIHsgbV90eXBlIH07CisgICAgY2xvbmUubV9jb250ZW50VHlw
ZSA9IG1fY29udGVudFR5cGU7CisgICAgY2xvbmUubV9idWZmZXIgPSBtX2J1ZmZlcjsKKyAgICBy
ZXR1cm4gY2xvbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAppbmRleCA4NzFkMmMwODYz
MzFhOTgyOTRhMTY2YTRiNDJlMzE4NGUwMzc3NzJiLi43OTgwNWQ0YWE1NjRiYTBjZjVhZTEzYTEy
NDQ5M2QwNjAzMWFkYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keUNvbnN1bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaEJvZHlDb25zdW1lci5oCkBAIC0yOSw4ICsyOSwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKKyNpbmNsdWRlICJGb3JtRGF0YUNvbnN1bWVyLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0
cmVhbVNpbmsuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNh
dG9yLmgiCiAKQEAgLTM5LDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxv
YjsKIGNsYXNzIERPTUZvcm1EYXRhOwogY2xhc3MgRmV0Y2hCb2R5U291cmNlOworY2xhc3MgRm9y
bURhdGE7CiBjbGFzcyBSZWFkYWJsZVN0cmVhbTsKIAogY2xhc3MgRmV0Y2hCb2R5Q29uc3VtZXIg
ewpAQCAtNDcsNiArNTAsOCBAQCBwdWJsaWM6CiAKICAgICBleHBsaWNpdCBGZXRjaEJvZHlDb25z
dW1lcihUeXBlIHR5cGUpIDogbV90eXBlKHR5cGUpIHsgfQogCisgICAgRmV0Y2hCb2R5Q29uc3Vt
ZXIgY2xvbmUoKTsKKwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHVuc2ln
bmVkKTsKIAogICAgIGJvb2wgaGFzRGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9idWZmZXI7IH0K
QEAgLTY1LDYgKzcwLDggQEAgcHVibGljOgogICAgIHZvaWQgZXh0cmFjdChSZWFkYWJsZVN0cmVh
bSYsIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpDYWxsYmFjayYmKTsKICAgICB2
b2lkIHJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgUmVhZGFibGVTdHJlYW0qKTsKICAgICB2b2lkIHJlc29sdmVXaXRoRGF0YShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiwgdW5zaWduZWQpOworICAgIHZvaWQgcmVzb2x2ZVdpdGhGb3JtRGF0YShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBGb3JtRGF0
YSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2b2lkIGNvbnN1bWVGb3JtRGF0YUFz
U3RyZWFtKGNvbnN0IEZvcm1EYXRhJiwgRmV0Y2hCb2R5U291cmNlJiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogCiAgICAgdm9pZCBsb2FkaW5nRmFpbGVkKGNvbnN0IEV4Y2VwdGlvbiYpOwog
ICAgIHZvaWQgbG9hZGluZ1N1Y2NlZWRlZChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAg
LTg4LDYgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RmV0Y2hCb2R5U291cmNlPiBtX3Nv
dXJjZTsKICAgICBib29sIG1faXNMb2FkaW5nIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8VXNlckdl
c3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGb3Jt
RGF0YUNvbnN1bWVyPiBtX2Zvcm1EYXRhQ29uc3VtZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zvcm1EYXRh
Q29uc3VtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9Gb3JtRGF0YUNvbnN1
bWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mNTAyNGQ4NzhmYjc0OWRhZTA1NDE0MzI4ZGExYTU0ZjFhYzFm
YzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9Gb3Jt
RGF0YUNvbnN1bWVyLmNwcApAQCAtMCwwICsxLDEyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJGb3JtRGF0YUNvbnN1bWVyLmgiCisKKyNpbmNsdWRlICJC
bG9iTG9hZGVyLmgiCisjaW5jbHVkZSAiRm9ybURhdGEuaCIKKyNpbmNsdWRlIDx3dGYvV29ya1F1
ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRm9ybURhdGFDb25zdW1lcjo6Rm9ybURh
dGFDb25zdW1lcihjb25zdCBGb3JtRGF0YSYgZm9ybURhdGEsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIENhbGxiYWNrJiYgY2FsbGJhY2spCisgICAgOiBtX2Zvcm1EYXRhKGZvcm1E
YXRhLmNvcHkoKSkKKyAgICAsIG1fY29udGV4dCgmY29udGV4dCkKKyAgICAsIG1fY2FsbGJhY2so
V1RGTW92ZShjYWxsYmFjaykpCisgICAgLCBtX2ZpbGVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Rm9ybURhdGFDb25zdW1lciBmaWxlIHF1ZXVlIikpCit7CisgICAgcmVhZCgpOworfQorCitGb3Jt
RGF0YUNvbnN1bWVyOjp+Rm9ybURhdGFDb25zdW1lcigpCit7Cit9CisKK3ZvaWQgRm9ybURhdGFD
b25zdW1lcjo6cmVhZCgpCit7CisgICAgQVNTRVJUKG1fY2FsbGJhY2spOworICAgIEFTU0VSVCht
X2NvbnRleHQpOworCisgICAgaWYgKG1fY3VycmVudEVsZW1lbnRJbmRleCA+PSBtX2Zvcm1EYXRh
LT5lbGVtZW50cygpLnNpemUoKSkgeworICAgICAgICBtX2NhbGxiYWNrKFNwYW48Y29uc3QgdWlu
dDhfdD4geyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFdURjo6c3dpdGNoT24o
bV9mb3JtRGF0YS0+ZWxlbWVudHMoKVttX2N1cnJlbnRFbGVtZW50SW5kZXgrK10uZGF0YSwKKyAg
ICBbdGhpc10oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjb250ZW50KSB7CisgICAgICAgIHRoaXMt
PmNvbnN1bWUoY29udGVudCk7CisgICAgfSwgW3RoaXNdKGNvbnN0IEZvcm1EYXRhRWxlbWVudDo6
RW5jb2RlZEZpbGVEYXRhJiBmaWxlRGF0YSkgeworICAgICAgICBtX2ZpbGVRdWV1ZS0+ZGlzcGF0
Y2goW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGlkZW50aWZpZXIgPSBtX2NvbnRleHQt
PmlkZW50aWZpZXIoKSwgcGF0aCA9IGZpbGVEYXRhLmZpbGVuYW1lLmlzb2xhdGVkQ29weSgpXSgp
IG11dGFibGUgeworICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tU
byhpZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgY29udGVudCA9IEZp
bGVTeXN0ZW06OnJlYWRFbnRpcmVGaWxlKHBhdGgpXShhdXRvJikgeworICAgICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgICAgIGlmICghY29udGVudCkgeworICAgICAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMt
Pm1fY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9jYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlVuYWJsZSB0byByZWFkIGZvcm0gZGF0
YSBmaWxlIl9zIH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jb25zdW1lKCpjb250ZW50KTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9LCBbdGhpc10oY29uc3QgRm9ybURhdGFFbGVt
ZW50OjpFbmNvZGVkQmxvYkRhdGEmIGJsb2JEYXRhKSB7CisgICAgICAgIG1fYmxvYkxvYWRlciA9
IG1ha2VVbmlxdWU8QmxvYkxvYWRlcj4oW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKEJs
b2JMb2FkZXImKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYXV0byBsb2FkZXIgPSBzdGQ6OmV4Y2hhbmdl
KHdlYWtUaGlzLT5tX2Jsb2JMb2FkZXIsIHsgfSk7CisgICAgICAgICAgICBpZiAoYXV0byBvcHRp
b25hbEVycm9yQ29kZSA9IGxvYWRlci0+ZXJyb3JDb2RlKCkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAod2Vha1RoaXMtPm1fY2FsbGJhY2spCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5t
X2NhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiRmFpbGVkIHRvIHJlYWQg
Zm9ybSBkYXRhIGJsb2IiX3MgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgaWYgKGF1dG8gZGF0YSA9IGxvYWRlci0+YXJyYXlCdWZmZXJSZXN1
bHQoKSkKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y29uc3VtZShTcGFuPGNvbnN0IHVpbnQ4
X3Q+IHsgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEtPmRhdGEoKSksIGRhdGEtPmJ5
dGVMZW5ndGgoKSB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIG1fYmxvYkxvYWRlci0+c3RhcnQo
YmxvYkRhdGEudXJsLCBtX2NvbnRleHQuZ2V0KCksIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0Fy
cmF5QnVmZmVyKTsKKyAgICAgICAgaWYgKCFtX2Jsb2JMb2FkZXItPmlzTG9hZGluZygpKSB7Cisg
ICAgICAgICAgICBtX2NhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVW5h
YmxlIHRvIHJlYWQgZm9ybSBkYXRhIGJsb2IiX3MgfSk7CisgICAgICAgICAgICBtX2Jsb2JMb2Fk
ZXIgPSBudWxscHRyOworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgRm9ybURhdGFDb25z
dW1lcjo6Y29uc3VtZShjb25zdCBWZWN0b3I8dWludDhfdD4mIGNvbnRlbnQpCit7CisgICAgY29u
c3VtZShTcGFuPGNvbnN0IHVpbnQ4X3Q+IHsgY29udGVudC5kYXRhKCksIGNvbnRlbnQuc2l6ZSgp
IH0pOworfQorCit2b2lkIEZvcm1EYXRhQ29uc3VtZXI6OmNvbnN1bWUoU3Bhbjxjb25zdCB1aW50
OF90PiBjb250ZW50KQoreworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jYWxsYmFjayhTcGFuPGNvbnN0IHVpbnQ4X3Q+IHsgY29udGVudC5kYXRhKCksIGNv
bnRlbnQuc2l6ZSgpIH0pOworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmVhZCgpOworfQorCit2b2lkIEZvcm1EYXRhQ29uc3VtZXI6OmNhbmNlbCgpCit7Cisg
ICAgbV9jYWxsYmFjayA9IG51bGxwdHI7CisgICAgaWYgKG1fYmxvYkxvYWRlcikgeworICAgICAg
ICBtX2Jsb2JMb2FkZXItPmNhbmNlbCgpOworICAgICAgICBtX2Jsb2JMb2FkZXIgPSBudWxscHRy
OworICAgIH0KKyAgICBtX2NvbnRleHQgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zvcm1EYXRh
Q29uc3VtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRm9ybURhdGFDb25zdW1l
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU1YjU0NGZmMDhlOGM1ZTk3ZjhlNzUyOWIwY2ExODdmNWI5OWQ5ZmUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zvcm1EYXRh
Q29uc3VtZXIuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL1NwYW4uaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9Xb3Jr
UXVldWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGb3JtRGF0YTsKKworY2xh
c3MgRm9ybURhdGFDb25zdW1lciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGb3JtRGF0YUNvbnN1
bWVyPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcg
Q2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPFNwYW48Y29uc3QgdWludDhfdD4+
KT47CisgICAgRm9ybURhdGFDb25zdW1lcihjb25zdCBGb3JtRGF0YSYsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBDYWxsYmFjayYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+Rm9ybURhdGFDb25z
dW1lcigpOworCisgICAgdm9pZCBjYW5jZWwoKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIGNvbnN1
bWUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CisgICAgdm9pZCBjb25zdW1lKFNwYW48Y29uc3Qg
dWludDhfdD4pOworICAgIHZvaWQgcmVhZCgpOworCisgICAgUmVmPEZvcm1EYXRhPiBtX2Zvcm1E
YXRhOworICAgIFJlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBtX2NvbnRleHQ7CisgICAg
Q2FsbGJhY2sgbV9jYWxsYmFjazsKKworICAgIHNpemVfdCBtX2N1cnJlbnRFbGVtZW50SW5kZXgg
eyAwIH07CisgICAgUmVmPFdvcmtRdWV1ZT4gbV9maWxlUXVldWU7CisgICAgc3RkOjp1bmlxdWVf
cHRyPEJsb2JMb2FkZXI+IG1fYmxvYkxvYWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggYmQ1YTc0NzljYjM5ZTQ2Y2M5MTA0MDBmNGVlMzg0OTMyNGM3
NTMxZi4uZjZmMDBhZThhZmRmMTAyYTM2ZjEyNTE0NTc0MTIyYTMwOWM5NDA3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTg4LDYgKzg4LDcgQEAgTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCiBN
b2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAogTW9kdWxlcy9mZXRjaC9GZXRjaFJlcXVlc3Qu
Y3BwCiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCitNb2R1bGVzL2ZldGNoL0Zvcm1E
YXRhQ29uc3VtZXIuY3BwCiBNb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVG
ZXRjaC5jcHAKIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlLmNwcAogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDNjOWVjMjVjMGE5MjQ2MDZhZTJlYjMyNzY0YTE3OGRkY2M5NDQzZjguLjcwYmUyODNh
MDM0ZWIzMDU0OTIzMzEwZWE1YjIzNjBkMGVmYmYwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTg0ODEsNiArODQ4MSw4IEBA
CiAJCTNGQkM0QUYxMTg5ODgxNTYwMDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
RkJDNEFGMjE4OTg4MTU2MDA0NkVFMzggLyogVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwMjRGQzgyM0NGMjU0
RjAwRkRGOThFIC8qIFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MTAyRUUwRTI3ODMwRTYzMDBENkJFNzQgLyogRm9ybURhdGFDb25zdW1lci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb3JtRGF0YUNvbnN1bWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQxMDJFRTEwMjc4MzBFNjMwMEQ2QkU3NCAvKiBGb3JtRGF0YUNvbnN1bWVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1EYXRhQ29uc3VtZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MTA3OTA4QTFGQzNFNEYyMDA2MUIyN0EgLyogQ2xpZW50T3JpZ2luLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaWVudE9yaWdpbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0MTA5MzgyQzIzNDc4NTBFMDA5NDI4QkEgLyogSlNBYm9y
dFNpZ25hbEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Fib3J0U2lnbmFsQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDEwQThFRjQyNEY4MjNCOTAwNEY5
MDcwIC8qIFRleHRFbmNvZGVyU3RyZWFtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUZXh0RW5jb2RlclN0cmVhbS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTI3MCw2ICsyMTI3Miw4IEBACiAJCQkJ
NDEzMDE1RDUxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuY3BwICovLAogCQkJCTQx
MzAxNUQ2MUM3QjU3MDQwMDA5MUM2RSAvKiBGZXRjaFJlc3BvbnNlLmggKi8sCiAJCQkJNDEzMDE1
RDcxQzdCNTcwNDAwMDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuaWRsICovLAorCQkJCTQxMDJFRTEw
Mjc4MzBFNjMwMEQ2QkU3NCAvKiBGb3JtRGF0YUNvbnN1bWVyLmNwcCAqLywKKwkJCQk0MTAyRUUw
RTI3ODMwRTYzMDBENkJFNzQgLyogRm9ybURhdGFDb25zdW1lci5oICovLAogCQkJCTdDMkUwQkQx
MjUxMDZBQzQwMDVGM0M4NyAvKiBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlK0ZldGNoLmlkbCAq
LywKIAkJCQk3QzJFMEJEMDI1MTA2QUM0MDA1RjNDODcgLyogV2luZG93T3JXb3JrZXJHbG9iYWxT
Y29wZUZldGNoLmNwcCAqLywKIAkJCQk3QzJFMEJDRjI1MTA2QUM0MDA1RjNDODcgLyogV2luZG93
T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmggKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL0Jsb2JMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYkxvYWRl
ci5oCmluZGV4IDhiMWE2MTE3ZjI2ZTcxN2JiYzhmOTFmYWViZGQ0NDA3NzU2MWE1OGYuLmNkMGQw
YzFiOWE1NDNkYjA0MjUzYTcyZGJmNWQwNzdhYzFmYzUzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvQmxvYkxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
QmxvYkxvYWRlci5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICB+QmxvYkxvYWRlcigp
OwogCiAgICAgdm9pZCBzdGFydChCbG9iJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEZpbGVS
ZWFkZXJMb2FkZXI6OlJlYWRUeXBlKTsKKyAgICB2b2lkIHN0YXJ0KGNvbnN0IFVSTCYsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSk7CiAKICAgICB2
b2lkIGNhbmNlbCgpOwogICAgIGJvb2wgaXNMb2FkaW5nKCkgY29uc3QgeyByZXR1cm4gbV9sb2Fk
ZXIgJiYgbV9jb21wbGV0aW9uSGFuZGxlcjsgfQpAQCAtODksNiArOTAsMTMgQEAgaW5saW5lIHZv
aWQgQmxvYkxvYWRlcjo6c3RhcnQoQmxvYiYgYmxvYiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgRmlsZVIKICAgICBtX2xvYWRlci0+c3RhcnQoY29udGV4dCwgYmxvYik7CiB9CiAK
K2lubGluZSB2b2lkIEJsb2JMb2FkZXI6OnN0YXJ0KGNvbnN0IFVSTCYgYmxvYlVSTCwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVJlYWRlckxvYWRlcjo6UmVhZFR5cGUgcmVh
ZFR5cGUpCit7CisgICAgQVNTRVJUKCFtX2xvYWRlcik7CisgICAgbV9sb2FkZXIgPSBtYWtlVW5p
cXVlPEZpbGVSZWFkZXJMb2FkZXI+KHJlYWRUeXBlLCB0aGlzKTsKKyAgICBtX2xvYWRlci0+c3Rh
cnQoY29udGV4dCwgYmxvYlVSTCk7Cit9CisKIGlubGluZSB2b2lkIEJsb2JMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcoKQogewogICAgIG1fY29tcGxldGlvbkhhbmRsZXIoKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKaW5kZXggYjdmNzVlZGEzYjIz
M2IxOWIyMGVkNzA0Mjg5NDliYjMzNTg5OGU4MS4uNzRlZjVmNGI4YjQ3YTcyYTU1OTA4N2ZhZmE3
MTc1Njg4ZThkNTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVh
ZGVyTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2Fk
ZXIuY3BwCkBAIC03Myw2ICs3MywxMSBAQCBGaWxlUmVhZGVyTG9hZGVyOjp+RmlsZVJlYWRlckxv
YWRlcigpCiB9CiAKIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgQmxvYiYgYmxvYikKK3sKKyAgICBzdGFy
dChzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBibG9iLnVybCgpKTsKK30KKwordm9pZCBGaWxlUmVh
ZGVyTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBjb25zdCBVUkwmIGJsb2JVUkwpCiB7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOwogCkBAIC04Miw3ICs4Nyw3IEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6c3Rh
cnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgQmxvCiAg
ICAgICAgIGZhaWxlZChTZWN1cml0eUVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAg
ICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5OjpyZWdpc3RlckJsb2JVUkwoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9saWN5
Q29udGFpbmVyKCksIG1fdXJsRm9yUmVhZGluZywgYmxvYi51cmwoKSk7CisgICAgVGhyZWFkYWJs
ZUJsb2JSZWdpc3RyeTo6cmVnaXN0ZXJCbG9iVVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNl
Y3VyaXR5T3JpZ2luKCksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnBvbGljeUNvbnRhaW5lcigp
LCBtX3VybEZvclJlYWRpbmcsIGJsb2JVUkwpOwogCiAgICAgLy8gQ29uc3RydWN0IGFuZCBsb2Fk
IHRoZSByZXF1ZXN0LgogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG1fdXJsRm9yUmVhZGlu
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oCmluZGV4IDUzOWMy
MzA0YTgyZTYzYWFkZmUyYzU2N2M5OGQwYjhjNjg3YThlOWYuLmRiYWU5ZTMzNTA5MGE4Yjk2ZGZi
NzZlYjZlMTUxMTI1OTg4ZTYwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ckxvYWRlci5oCkBAIC02Niw2ICs2Niw3IEBAIHB1YmxpYzoKICAgICB+RmlsZVJlYWRlckxvYWRl
cigpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgQmxvYiYpOworICAgIHZvaWQgc3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFVSTCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2FuY2VsKCk7CiAKICAgICAvLyBU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcAppbmRleCA4YTkx
MzhkMjNiMGQ1ZGVjNTNkMjk5MGRlZDVkYjc3NjM1NGU1MjQwLi45ZDlhY2Q2NGExNjIxODRkY2Mx
MmE0ZDQ0M2ViZTAwMmE2NTJiNmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKQEAgLTQ2
LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFNlcnZpY2VXb3JrZXJG
ZXRjaCB7CiAKIC8vIGh0dHBzOi8vZmV0Y2guc3BlYy53aGF0d2cub3JnLyNodHRwLWZldGNoIHN0
ZXAgMy4zCi1zdGF0aWMgaW5saW5lIHN0ZDo6b3B0aW9uYWw8UmVzb3VyY2VFcnJvcj4gdmFsaWRh
dGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRmV0Y2hPcHRpb25z
OjpNb2RlIG1vZGUsIEZldGNoT3B0aW9uczo6UmVkaXJlY3QgcmVkaXJlY3QpCitzdGF0aWMgaW5s
aW5lIFJlc291cmNlRXJyb3IgdmFsaWRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgRmV0Y2hPcHRpb25zOjpNb2RlIG1vZGUsIEZldGNoT3B0aW9uczo6UmVkaXJl
Y3QgcmVkaXJlY3QpCiB7CiAgICAgaWYgKHJlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3Bv
bnNlOjpUeXBlOjpFcnJvcikKICAgICAgICAgcmV0dXJuIFJlc291cmNlRXJyb3IgeyBlcnJvckRv
bWFpbldlYktpdEludGVybmFsLCAwLCByZXNwb25zZS51cmwoKSwgIlJlc3BvbnNlIHNlcnZlZCBi
eSBzZXJ2aWNlIHdvcmtlciBpcyBhbiBlcnJvciJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6R2Vu
ZXJhbCwgUmVzb3VyY2VFcnJvcjo6SXNTYW5pdGl6ZWQ6OlllcyB9OwpAQCAtODQsOCArODQsOCBA
QCBzdGF0aWMgdm9pZCBwcm9jZXNzUmVzcG9uc2UoUmVmPENsaWVudD4mJiBjbGllbnQsIEV4cGVj
dGVkPFJlZjxGZXRjaFJlc3BvbnNlPiwgcwogICAgIH0KIAogICAgIGF1dG8gcmVzb3VyY2VSZXNw
b25zZSA9IHJlc3BvbnNlLT5yZXNvdXJjZVJlc3BvbnNlKCk7Ci0gICAgaWYgKGF1dG8gZXJyb3Ig
PSB2YWxpZGF0ZVJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UsIG1vZGUsIHJlZGlyZWN0KSkgewot
ICAgICAgICBjbGllbnQtPmRpZEZhaWwoZXJyb3IudmFsdWUoKSk7CisgICAgaWYgKGF1dG8gZXJy
b3IgPSB2YWxpZGF0ZVJlc3BvbnNlKHJlc291cmNlUmVzcG9uc2UsIG1vZGUsIHJlZGlyZWN0KTsg
IWVycm9yLmlzTnVsbCgpKSB7CisgICAgICAgIGNsaWVudC0+ZGlkRmFpbChlcnJvcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiZDQwZTcyNDM2NTA0OGE0OTYwYmQwOThlN2Q4
MDcxMTcyMjNjZTM0Li41NzY3ZTVkMTUwNmJhODM5ZjEwNGEwOGU5NmZlNDBiYzYwZDk3N2UzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjItMDEtMDMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEZldGNoIHVzaW5nIEZvcm1EYXRhIHdpdGggZmlsZSBkb2Vz
bid0IGdvIHRocm91Z2ggU2VydmljZSBXb3JrZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NzQ2MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDE5
NzU1NDQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SW4gYWRkaXRpb24gdG8gYWRkaW5nIGEgdGVzdCB0byBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LWNv
bnN1bWUtc3RyZWFtLmh0bWwsIHdlIGZpeCB0aGUgb3RoZXIgdGVzdHMgdGhhdCBzaG91bGQgYWxs
IGJlIHBhc3NpbmcuCisgICAgICAgIEFkZCBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1k
YXRhLXVwbG9hZC5odG1sIGFuZCB0cmFuc2xhdGUgZXhpdGluZyBodHRwL3Rlc3RzIHNjcmlwdHMg
Zm9yIHRoZSBXUFQgc2VydmVyLgorCisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1j
b25zdW1lLXN0cmVhbS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvZmV0Y2gvcmVx
dWVzdC1jb25zdW1lLXN0cmVhbS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mb3JtLWRhdGEtdXBsb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvc2VydmljZS13b3JrZXJzL2Zvcm0tZGF0YS11cGxvYWQtd29ya2VyLmpzOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1kYXRhLXVwbG9hZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2Ny
ZWF0ZS10ZW1wLWZpbGUtaWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcmVzZXQtdGVtcC1maWxlLnB5OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3RlbXAtZmlsZS11dGlscy5q
czogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy90
b3VjaC10ZW1wLWZpbGUucHk6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvd3JpdGUtdGVtcC1maWxlLnB5OiBBZGRlZC4KKwogMjAyMi0wMS0wMyAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBzdXJlIHNl
Y3VyZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMgaW4gc2VydmljZSB3b3JrZXJzIGNhbiB0cmlnZ2Vy
IGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBjYWxsYmFja3MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IDcyNWZmNzFjZWVlNDllZmJhODBiMTE1MDBmYTdjZDMzMWQ5ODRjMjQuLjNk
ZWE2M2QwZTBkYWQxNjgxZWJmZDEzZDM5MDRlMWRmZmE3ZmI3MTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTA0ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgc2VjdXJlIHdlYnNvY2tl
dCBjb25uZWN0aW9ucyBpbiBzZXJ2aWNlIHdvcmtlcnMgY2FuIHRyaWdnZXIgYXV0aGVudGljYXRp
b24gY2hhbGxlbmdlIGNhbGxiYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0ODA5CisgICAgICAgIDxyZGFyOi8vODU4ODgxNzc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2Ut
Y29uc3VtZS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS53b3Jr
ZXItZXhwZWN0ZWQudHh0OgorCiAyMDIyLTAxLTAyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gZ2V0S2V5ZnJhbWVzKCkgc2hv
dWxkIGhhbmRsZSBtdWx0aXBsZSAwJSBhbmQgMTAwJSBrZXlmcmFtZXMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3QtY29uc3VtZS1zdHJlYW0tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1jb25zdW1lLXN0cmVhbS1l
eHBlY3RlZC50eHQKaW5kZXggY2RkNjY5ODIyMzUwZTRiMGE1YTQ3OWZiMGZhY2JlYTY1YzNiMjRl
OC4uMzVhYzc3YjU0ZWZkNWJhYTE5MTY0N2IwNjczZTk2OGRhMzc5NzYxNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1jb25zdW1lLXN0cmVhbS1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1jb25zdW1lLXN0
cmVhbS1leHBlY3RlZC50eHQKQEAgLTEsOSArMSwxMCBAQAogCi1GQUlMIFJlYWQgZW1wdHkgdGV4
dCByZXF1ZXN0J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBS
ZXRyaWV2ZSBhbmQgdmVyaWZ5IHN0cmVhbSBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkg
b2JqZWN0ICIiIGxlbmd0aCAwLCBnb3Qgb2JqZWN0ICIxMjMsMzQsMTA3LDEwMSwxMjEsMzQsNTgs
MzIsMzQsMTE4LDk3LDEwOCwxMTcsMTAxLDM0LDEyNSIgbGVuZ3RoIDE2Ci1GQUlMIFJlYWQgZW1w
dHkgYmxvYiByZXF1ZXN0J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBSZXRyaWV2ZSBhbmQgdmVyaWZ5IHN0cmVhbSBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQg
YXJyYXkgb2JqZWN0ICIiIGxlbmd0aCAwLCBnb3Qgb2JqZWN0ICIxMjMsMzQsMTA3LDEwMSwxMjEs
MzQsNTgsMzIsMzQsMTE4LDk3LDEwOCwxMTcsMTAxLDM0LDEyNSIgbGVuZ3RoIDE2Ci1GQUlMIFJl
YWQgYmxvYiByZXF1ZXN0J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSBhc3NlcnRfYXJyYXlfZXF1
YWxzOiBSZXRyaWV2ZSBhbmQgdmVyaWZ5IHN0cmVhbSBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQg
YXJyYXkgb2JqZWN0ICIxMTUsMzIsMTA1LDExNSwzMiwxMTQsMTAxLDExMywxMTcsMTAxLDExNSwx
MTYsMzksMTE1LDMyLDk4LDExMSwxMDAsMTIxLDM0IiBsZW5ndGggMjQsIGdvdCBvYmplY3QgIjEy
MywzNCwxMDcsMTAxLDEyMSwzNCw1OCwzMiwzNCwxMTgsOTcsMTA4LDExNywxMDEsMzQsMTI1IiBs
ZW5ndGggMTYKLUZBSUwgUmVhZCB0ZXh0IHJlcXVlc3QncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFt
IGFzc2VydF9hcnJheV9lcXVhbHM6IFJldHJpZXZlIGFuZCB2ZXJpZnkgc3RyZWFtIGxlbmd0aHMg
ZGlmZmVyLCBleHBlY3RlZCBhcnJheSBvYmplY3QgIjExNSwzMiwxMDUsMTE1LDMyLDExNCwxMDEs
MTEzLDExNywxMDEsMTE1LDExNiwzOSwxMTUsMzIsOTgsMTExLDEwMCwxMjEsMzQiIGxlbmd0aCAy
NCwgZ290IG9iamVjdCAiMTIzLDM0LDEwNywxMDEsMTIxLDM0LDU4LDMyLDM0LDExOCw5NywxMDgs
MTE3LDEwMSwzNCwxMjUiIGxlbmd0aCAxNgotRkFJTCBSZWFkIFVSTFNlYXJjaFBhcmFtcyByZXF1
ZXN0J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBSZXRyaWV2
ZSBhbmQgdmVyaWZ5IHN0cmVhbSBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgb2JqZWN0
ICIxMTAsOTcsMTA5LDEwMSw2MSwxMTgsOTcsMTA4LDExNywxMDEiIGxlbmd0aCAxMCwgZ290IG9i
amVjdCAiMTIzLDM0LDEwNywxMDEsMTIxLDM0LDU4LDMyLDM0LDExOCw5NywxMDgsMTE3LDEwMSwz
NCwxMjUiIGxlbmd0aCAxNgotRkFJTCBSZWFkIGFycmF5IGJ1ZmZlciByZXF1ZXN0J3MgYm9keSBh
cyByZWFkYWJsZVN0cmVhbSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBSZXRyaWV2ZSBhbmQgdmVyaWZ5
IHN0cmVhbSBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgb2JqZWN0ICIxMTUsMzIsMTA1
LDExNSwzMiwxMTQsMTAxLDExMywxMTcsMTAxLDExNSwxMTYsMzksMTE1LDMyLDk4LDExMSwxMDAs
MTIxLDM0IiBsZW5ndGggMjQsIGdvdCBvYmplY3QgIjEyMywzNCwxMDcsMTAxLDEyMSwzNCw1OCwz
MiwzNCwxMTgsOTcsMTA4LDExNywxMDEsMzQsMTI1IiBsZW5ndGggMTYKLUZBSUwgUmVhZCBmb3Jt
IGRhdGEgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0gYXNzZXJ0X2FycmF5X2VxdWFs
czogUmV0cmlldmUgYW5kIHZlcmlmeSBzdHJlYW0gbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVkIGFy
cmF5IG9iamVjdCAiMTEwLDk3LDEwOSwxMDEsNjEsMTE4LDk3LDEwOCwxMTcsMTAxIiBsZW5ndGgg
MTAsIGdvdCBvYmplY3QgIjEyMywzNCwxMDcsMTAxLDEyMSwzNCw1OCwzMiwzNCwxMTgsOTcsMTA4
LDExNywxMDEsMzQsMTI1IiBsZW5ndGggMTYKK1BBU1MgUmVhZCBlbXB0eSB0ZXh0IHJlcXVlc3Qn
cyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCitQQVNTIFJlYWQgZW1wdHkgYmxvYiByZXF1ZXN0J3Mg
Ym9keSBhcyByZWFkYWJsZVN0cmVhbQorUEFTUyBSZWFkIGJsb2IgcmVxdWVzdCdzIGJvZHkgYXMg
cmVhZGFibGVTdHJlYW0KK1BBU1MgUmVhZCB0ZXh0IHJlcXVlc3QncyBib2R5IGFzIHJlYWRhYmxl
U3RyZWFtCitQQVNTIFJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlcXVlc3QncyBib2R5IGFzIHJlYWRh
YmxlU3RyZWFtCitQQVNTIFJlYWQgYXJyYXkgYnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIHJlYWRh
YmxlU3RyZWFtCitQQVNTIFJlYWQgZm9ybSBkYXRhIHJlcXVlc3QncyBib2R5IGFzIHJlYWRhYmxl
U3RyZWFtCitQQVNTIFJlYWQgZm9ybSBkYXRhIHdpdGggYmxvYiByZXF1ZXN0J3MgYm9keSBhcyBy
ZWFkYWJsZVN0cmVhbQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9y
ZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLmh0bWwKaW5kZXggYTU4YTQ3MjAwNDNjYjk0MTE3MWI3MzYx
ZTA5ZWI4ZjE0OWUyYmFiNy4uYzQ5YTk3YzJkNDg0Mjc0ZWZmNzkxMzQ2YzczYmE1NGU2Y2M0MjUy
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1jb25zdW1l
LXN0cmVhbS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3QtY29u
c3VtZS1zdHJlYW0uaHRtbApAQCAtMTEsOSArMTEsMjUgQEAKICAgPC9oZWFkPgogICA8Ym9keT4K
ICAgICA8c2NyaXB0PgorYXN5bmMgZnVuY3Rpb24gZ2V0U3RyaW5nRnJvbVN0cmVhbShyZWFkZXIs
IGN1cnJlbnRWYWx1ZSkgeworICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZWFkZXIucmVhZCgpOwor
ICAgIGlmICghZGF0YS5kb25lKSB7CisgICAgICAgIGxldCBidWZmZXI7CisgICAgICAgIGlmIChj
dXJyZW50VmFsdWUpIHsKKyAgICAgICAgICAgIGNvbnN0IG5ld0J1ZmZlciA9IG5ldyBBcnJheUJ1
ZmZlcihkYXRhLnZhbHVlLmxlbmd0aCArIGN1cnJlbnRWYWx1ZS5sZW5ndGgpOworICAgICAgICAg
ICAgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkobmV3QnVmZmVyKTsKKyAgICAgICAgICAgIGJ1ZmZl
ci5zZXQoY3VycmVudFZhbHVlLCAwKTsKKyAgICAgICAgICAgIGJ1ZmZlci5zZXQoZGF0YS52YWx1
ZSwgY3VycmVudFZhbHVlLmxlbmd0aCk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgYnVm
ZmVyID0gZGF0YS52YWx1ZTsKKyAgICAgICAgcmV0dXJuIGdldFN0cmluZ0Zyb21TdHJlYW0ocmVh
ZGVyLCBidWZmZXIpOworICAgIH0KKyAgICByZXR1cm4gKG5ldyBUZXh0RGVjb2RlcikuZGVjb2Rl
KGN1cnJlbnRWYWx1ZSk7Cit9CisKIGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RXaXRoQm9keShib2R5
KQogewotICAgIHJldHVybiBuZXcgUmVxdWVzdCgiIiwge2JvZHk6ICJ7XCJrZXlcIjogXCJ2YWx1
ZVwifSIsIG1ldGhvZDogIlBPU1QifSk7CisgICAgcmV0dXJuIG5ldyBSZXF1ZXN0KCIiLCB7Ym9k
eTogYm9keSwgbWV0aG9kOiAiUE9TVCJ9KTsKIH0KIAogcHJvbWlzZV90ZXN0KGZ1bmN0aW9uKHRl
c3QpIHsKQEAgLTU4LDEwICs3NCwyOSBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewog
ICAgIHJldHVybiB2YWxpZGF0ZVN0cmVhbUZyb21TdHJpbmcoY3JlYXRlUmVxdWVzdFdpdGhCb2R5
KGFycmF5QnVmZmVyKS5ib2R5LmdldFJlYWRlcigpLCB0ZXh0RGF0YSk7CiB9LCAiUmVhZCBhcnJh
eSBidWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0iKTsKIAotcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKHRlc3QpIHsKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogICAg
IHZhciByZXF1ZXN0ID0gY3JlYXRlUmVxdWVzdFdpdGhCb2R5KGZvcm1EYXRhKTsKLSAgICByZXR1
cm4gdmFsaWRhdGVTdHJlYW1Gcm9tU3RyaW5nKHJlcXVlc3QuYm9keS5nZXRSZWFkZXIoKSwgIm5h
bWU9dmFsdWUiKTsKKyAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IGdldFN0cmluZ0Zyb21TdHJlYW0o
cmVxdWVzdC5ib2R5LmdldFJlYWRlcigpKTsKKworICAgIGFzc2VydF90cnVlKHZhbHVlLmluY2x1
ZGVzKCduYW1lPSJuYW1lIicpLCAibmFtZSIpOworICAgIGFzc2VydF90cnVlKHZhbHVlLmluY2x1
ZGVzKCd2YWx1ZScpLCAibmFtZSIpOwogfSwgIlJlYWQgZm9ybSBkYXRhIHJlcXVlc3QncyBib2R5
IGFzIHJlYWRhYmxlU3RyZWFtIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CisgICAgY29uc3QgYmxvYiA9IG5l
dyBCbG9iKFsiJ0hlbGxvJyJdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9KTsKKyAgICBmb3Jt
RGF0YS5hcHBlbmQoImJsb2IiLCBibG9iLCAiYmxvYi5maWxlIik7CisgICAgZm9ybURhdGEuYXBw
ZW5kKCJuYW1lIiwgInZhbHVlIik7CisKKyAgICBjb25zdCByZXF1ZXN0ID0gY3JlYXRlUmVxdWVz
dFdpdGhCb2R5KGZvcm1EYXRhKTsKKyAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IGdldFN0cmluZ0Zy
b21TdHJlYW0ocmVxdWVzdC5ib2R5LmdldFJlYWRlcigpKTsKKworICAgIGFzc2VydF90cnVlKHZh
bHVlLmluY2x1ZGVzKCduYW1lPSJuYW1lIicpLCAibmFtZSIpOworICAgIGFzc2VydF90cnVlKHZh
bHVlLmluY2x1ZGVzKCd2YWx1ZScpLCAibmFtZSIpOworCisgICAgYXNzZXJ0X3RydWUodmFsdWUu
aW5jbHVkZXMoJ25hbWU9ImJsb2IiJyksICJibG9iIik7CisgICAgYXNzZXJ0X3RydWUodmFsdWUu
aW5jbHVkZXMoJ0hlbGxvJyksICJIZWxsbyIpOworfSwgIlJlYWQgZm9ybSBkYXRhIHdpdGggYmxv
YiByZXF1ZXN0J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOwogICAgIDwvc2NyaXB0PgogICA8
L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvZm9ybS1kYXRhLXVwbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1kYXRhLXVwbG9hZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGJkYzNjOGU5ZjYwYmViZWY5OGVhNzYxZTU4ZWRjMjVmMWMxZDZhZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEt
dXBsb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitPUEVOIEZJTEUgUEFORUwKKwor
CitQQVNTIFNldHVwIHdvcmtlcgorUEFTUyBDcmVhdGUgY2hhbm5lbCB3aXRoIHdvcmtlcgorUEFT
UyBTZXR1cCBmcmFtZQorUEFTUyBTZXR1cCBmaWxlIHRvIHVwbG9hZAorUEFTUyBTZXR1cCBmaWxl
IGZvcm0gZGF0YQorUEFTUyBVcGxvYWQgaW50ZXJjZXB0ZWQgYnkgc2VydmljZSB3b3JrZXIKK1BB
U1MgVXBsb2FkIGNsb25lZCBieSBzZXJ2aWNlIHdvcmtlcgorUEFTUyBEZWxldGUgdGVtcG9yYXJ5
IGZpbGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJz
L2Zvcm0tZGF0YS11cGxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL2Zvcm0tZGF0YS11cGxvYWQtd29ya2VyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1YmUzODk2
MThlYTlhY2UxOTI5NmU1NmMzNzdlZDE2MWIwNDk5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1kYXRhLXVwbG9hZC13b3JrZXIu
anMKQEAgLTAsMCArMSwxOCBAQAorYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGFzeW5jIChl
KSA9PiB7CisgICAgaWYgKCFlLmRhdGEucG9ydCkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2Vs
Zi5wb3J0ID0gZS5kYXRhLnBvcnQ7CisgICAgc2VsZi5wb3J0LnBvc3RNZXNzYWdlKCJvayIpOwor
fSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImZldGNoIiwgYXN5bmMgKGUpID0+IHsKKyAgICBpZiAo
ZS5yZXF1ZXN0LnVybC5pbmNsdWRlcygiY2xvbmUiKSkgeworICAgICAgICBjb25zdCBjbG9uZWQg
PSBlLnJlcXVlc3QuY2xvbmUoKTsKKyAgICAgICAgZS5yZXNwb25kV2l0aChmZXRjaChlLnJlcXVl
c3QuY2xvbmUoKSkpOworICAgICAgICBpZiAoc2VsZi5wb3J0KQorICAgICAgICAgICAgc2VsZi5w
b3J0LnBvc3RNZXNzYWdlKGF3YWl0IGNsb25lZC50ZXh0KCkpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGUucmVzcG9uZFdpdGgoZmV0Y2goZS5yZXF1ZXN0KSk7Cit9KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEtdXBsb2Fk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1kYXRhLXVw
bG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MzE3ZDI3M2I1M2EwYzYxNGI1N2JlZjdkM2ZjYjQxMzIz
ZGNmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvZm9ybS1kYXRhLXVwbG9hZC5odG1sCkBAIC0wLDAgKzEsMTQ2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dlYmtpdC10ZXN0LXJlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorY29uc3QgdGVt
cEZpbGVDb250ZW50ID0gIlRFU1QiOworY29uc3QgdGVtcEZpbGVOYW1lID0gInRlc3QudG1wIjsK
KwordmFyIGZpbGVJbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0Iik7CitmaWxl
SW5wdXQudHlwZSA9ICdmaWxlJzsKK2ZpbGVJbnB1dC5zdHlsZS53aWR0aCA9ICIxMDAlIjsgLy8g
U28gdGhhdCBhbnkgbWFudWFsIHRlc3Rpbmcgd2lsbCBzaG93IGZ1bGwgZmlsZSBuYW1lcworZG9j
dW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZmlsZUlucHV0LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hp
bGQpOworCit2YXIgc2NvcGUgPSAicmVzb3VyY2VzIjsKK3ZhciBhY3RpdmVXb3JrZXI7Cit2YXIg
ZnJhbWU7Cit2YXIgZmlsZUZyYW1lOwordmFyIGZvcm1EYXRhOwordmFyIGZpbGVTaXplOworCitm
dW5jdGlvbiB3aXRoX2lmcmFtZSh1cmwpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rp
b24ocmVzb2x2ZSkgeworICAgICAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdpZnJhbWUnKTsKKyAgICAgICAgZnJhbWUuY2xhc3NOYW1lID0gJ3Rlc3QtaWZyYW1lJzsKKyAg
ICAgICAgZnJhbWUuc3JjID0gdXJsOworICAgICAgICBmcmFtZS5vbmxvYWQgPSBmdW5jdGlvbigp
IHsgcmVzb2x2ZShmcmFtZSk7IH07CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
ZnJhbWUpOworICAgIH0pOworfQorCitmdW5jdGlvbiBwcmVwYXJlVXBsb2FkKCkKK3sKKyAgICBs
ZXQgcmVzb2x2ZSwgcmVqZWN0OworICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVz
b2x2ZV8sIHJlamVjdF8pID0+IHsKKyAgICAgICAgcmVzb2x2ZSA9IHJlc29sdmVfOworICAgICAg
ICByZWplY3QgPSByZWplY3RfOworICAgIH0pOworICAgIHNldFRpbWVvdXQoKCkgPT4gcmVqZWN0
KCJ0ZXN0IHRpbWVkIG91dCIpLCA1MDAwKTsKKworICAgIHZhciBpbnB1dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdOworICAgIGlucHV0Lm9uY2hhbmdlID0gYXN5
bmMgKGUpID0+IHsKKyAgICAgICAgdmFyIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhOworICAgICAg
ICBmb3JtRGF0YS5hcHBlbmQoImZpbGUiLCBlLnRhcmdldC5maWxlc1swXSwgdGVtcEZpbGVOYW1l
KTsKKyAgICAgICAgZmlsZVNpemUgPSBlLnRhcmdldC5maWxlc1swXS5zaXplOworICAgICAgICBy
ZXNvbHZlKGZvcm1EYXRhKTsKKyAgICB9OworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0T3BlblBhbmVsRmlsZXMoW3RlbXBGaWxlUGF0aF0pOwor
CisgICAgICAgIHZhciBjZW50ZXJYID0gaW5wdXQub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFdp
ZHRoIC8gMjsKKyAgICAgICAgdmFyIGNlbnRlclkgPSBpbnB1dC5vZmZzZXRUb3AgKyBpbnB1dC5v
ZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpOworICAgIH0KKyAgICByZXR1cm4gcHJvbWlzZTsKK30KKworcHJvbWlzZV90ZXN0KGFz
eW5jICh0ZXN0KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAgICAg
ICAgYXdhaXQgZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKwor
ICAgIHZhciByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdp
c3RlcigiZm9ybS1kYXRhLXVwbG9hZC13b3JrZXIuanMiLCB7IHNjb3BlIDogc2NvcGUgfSk7Cisg
ICAgYWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmFjdGl2ZTsKKyAgICBpZiAoIWFjdGl2ZVdv
cmtlcikgeworICAgICAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24uaW5zdGFsbGluZzsK
KyAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBhY3Rp
dmVXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcignc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICAg
ICAgICAgICAgaWYgKGFjdGl2ZVdvcmtlci5zdGF0ZSA9PT0gImFjdGl2YXRlZCIpCisgICAgICAg
ICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAg
ICB9Cit9LCAiU2V0dXAgd29ya2VyIik7CisKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNo
YW5uZWwoKTsKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGFjdGl2ZVdvcmtl
ci5wb3N0TWVzc2FnZSh7IHBvcnQ6IGNoYW5uZWwucG9ydDEgfSwgW2NoYW5uZWwucG9ydDFdKTsK
KyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGNoYW5uZWwucG9ydDIub25tZXNzYWdl
ID0gcmVzb2x2ZSk7Cit9LCAiQ3JlYXRlIGNoYW5uZWwgd2l0aCB3b3JrZXIiKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgZnJhbWUgPSBhd2FpdCB3aXRoX2lmcmFtZSgi
cmVzb3VyY2VzLyIpOworfSwgIlNldHVwIGZyYW1lIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHdp
bmRvdy5vbm1lc3NhZ2UgPSByZXNvbHZlKTsKKyAgICBmaWxlRnJhbWUgPSBhd2FpdCB3aXRoX2lm
cmFtZSgiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2NyZWF0ZS10ZW1wLWZpbGUt
aWZyYW1lLmh0bWwiKTsKKyAgICBsZXQgZXZlbnQgPSBhd2FpdCBwcm9taXNlOworICAgIHRlbXBG
aWxlUGF0aCA9IGV2ZW50LmRhdGE7Cit9LCAiU2V0dXAgZmlsZSB0byB1cGxvYWQiKTsKKworcHJv
bWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgZm9ybURhdGEgPSBhd2FpdCBwcmVwYXJl
VXBsb2FkKCk7CisgICAgYXNzZXJ0X2VxdWFscyhmaWxlU2l6ZSwgNCk7Cit9LCAiU2V0dXAgZmls
ZSBmb3JtIGRhdGEiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29u
c3QgYmxvYiA9IG5ldyBCbG9iKFsiJ0hlbGxvJyJdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWluIiB9
KTsKKyAgICBmb3JtRGF0YS5hcHBlbmQoImJsb2IiLCBibG9iLCAiYmxvYi5maWxlIik7CisgICAg
Zm9ybURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIik7CisKKyAgICBjb25zdCByZXNwb25zZSA9
IGF3YWl0IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goIi9XZWJLaXQvc2VydmljZS13b3JrZXJz
L3Jlc291cmNlcy9maWxlLXVwbG9hZC1jaGVjay5weSIsIHttZXRob2Q6ICJQT1NUIiwgYm9keTog
Zm9ybURhdGF9KTsKKyAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9uc2UudGV4dCgpOworCisg
ICAgYXNzZXJ0X3RydWUodGV4dC5pbmNsdWRlcyh0ZW1wRmlsZUNvbnRlbnQpLCAiY29udGVudCIp
OworICAgIGFzc2VydF90cnVlKHRleHQuaW5jbHVkZXModGVtcEZpbGVOYW1lKSwgIm5hbWUiKTsK
KworICAgIGFzc2VydF90cnVlKHRleHQuaW5jbHVkZXMoJ25hbWU9Im5hbWUiJyksICJuYW1lIik7
CisgICAgYXNzZXJ0X3RydWUodGV4dC5pbmNsdWRlcygndmFsdWUnKSwgIm5hbWUiKTsKKworICAg
IGFzc2VydF90cnVlKHRleHQuaW5jbHVkZXMoJ25hbWU9ImJsb2IiJyksICJibG9iIik7CisgICAg
YXNzZXJ0X3RydWUodGV4dC5pbmNsdWRlcygnSGVsbG8nKSwgIkhlbGxvIik7Cit9LCAiVXBsb2Fk
IGludGVyY2VwdGVkIGJ5IHNlcnZpY2Ugd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAo
dGVzdCkgPT4geworICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbIidIZWxsbyciXSwgeyAidHlw
ZSIgOiAidGV4dC9wbGFpbiIgfSk7CisgICAgZm9ybURhdGEuYXBwZW5kKCJibG9iIiwgYmxvYiwg
ImJsb2IuZmlsZSIpOworICAgIGZvcm1EYXRhLmFwcGVuZCgibmFtZSIsICJ2YWx1ZSIpOworCisg
ICAgY29uc3QgbWVzc2FnZVByb21pc2UgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGNoYW5uZWwu
cG9ydDIub25tZXNzYWdlID0gKGUpID0+IHJlc29sdmUoZS5kYXRhKSk7CisKKyAgICBjb25zdCBy
ZXNwb25zZSA9IGF3YWl0IGZyYW1lLmNvbnRlbnRXaW5kb3cuZmV0Y2goIi9XZWJLaXQvc2Vydmlj
ZS13b3JrZXJzL3Jlc291cmNlcy9maWxlLXVwbG9hZC1jaGVjay5weT9jbG9uZSIsIHttZXRob2Q6
ICJQT1NUIiwgYm9keTogZm9ybURhdGF9KTsKKyAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzcG9u
c2UudGV4dCgpOworCisgICAgY29uc3QgbWVzc2FnZVRleHQgPSBhd2FpdCBtZXNzYWdlUHJvbWlz
ZTsKKyAgICBhc3NlcnRfZXF1YWxzKHRleHQsIG1lc3NhZ2VUZXh0KTsKKworICAgIGFzc2VydF90
cnVlKHRleHQuaW5jbHVkZXMoJ25hbWU9Im5hbWUiJyksICJuYW1lIik7CisgICAgYXNzZXJ0X3Ry
dWUodGV4dC5pbmNsdWRlcygndmFsdWUnKSwgIm5hbWUiKTsKKworICAgIGFzc2VydF90cnVlKHRl
eHQuaW5jbHVkZXMoJ25hbWU9ImJsb2IiJyksICJibG9iIik7CisgICAgYXNzZXJ0X3RydWUodGV4
dC5pbmNsdWRlcygnSGVsbG8nKSwgIkhlbGxvIik7Cit9LCAiVXBsb2FkIGNsb25lZCBieSBzZXJ2
aWNlIHdvcmtlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBhd2Fp
dCB3aXRoX2lmcmFtZSgiL1dlYktpdC9yZXNvdXJjZXMvZGVsZXRlLXRlbXAtZmlsZS1pZnJhbWUu
aHRtbCIpOworfSwgIkRlbGV0ZSB0ZW1wb3JhcnkgZmlsZSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL2NyZWF0ZS10ZW1wLWZpbGUtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2NyZWF0ZS10ZW1wLWZpbGUtaWZyYW1l
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDNkOWY3MjgwNzBhN2Y4YjBiMjNjMzRjNGQ5Y2MyMTEyMWU2MjQz
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vy
cy9yZXNvdXJjZXMvY3JlYXRlLXRlbXAtZmlsZS1pZnJhbWUuaHRtbApAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0idGVtcC1maWxl
LXV0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB0ZW1wRmlsZUNvbnRlbnQgPSAi
VEVTVCI7Citjb25zdCB0ZW1wRmlsZU5hbWUgPSAidGVzdC50bXAiOworCitjb25zdCBwYXRoID0g
Y3JlYXRlVGVtcEZpbGUodGVtcEZpbGVOYW1lLCB0ZW1wRmlsZUNvbnRlbnQpOword2luZG93LnBh
cmVudC5wb3N0TWVzc2FnZShwYXRoLCAiKiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL3Jlc2V0LXRlbXAtZmlsZS5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvcmVzZXQtdGVtcC1maWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1OTljZDQ2YWMy
OWJlZmU2ZmM5NWQwOGM0OTEzNDEzZTMwMzM3ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Jlc2V0LXRlbXAtZmlsZS5w
eQpAQCAtMCwwICsxLDExIEBACisjIS91c3IvYmluL2VudiBweXRob24zCitpbXBvcnQgb3MKK2lt
cG9ydCB0ZW1wZmlsZQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBmaWxl
bmFtZSA9IHJlcXVlc3QuR0VUW2InZmlsZW5hbWUnXQorICAgIHN0YXRlX2ZpbGUgPSBvcy5wYXRo
LmpvaW4odGVtcGZpbGUuZ2V0dGVtcGRpcigpLCBmaWxlbmFtZS5kZWNvZGUoKSkKKyAgICBpZiBv
cy5wYXRoLmV4aXN0cyhzdGF0ZV9maWxlKToKKyAgICAgICAgb3MucmVtb3ZlKHN0YXRlX2ZpbGUp
CisgICAgcmV0dXJuIDIwMCwgWyhiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIildLCAiIgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNl
cy90ZW1wLWZpbGUtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtl
cnMvcmVzb3VyY2VzL3RlbXAtZmlsZS11dGlscy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NGNlNWM0ZmI4Njhj
OTdkMjI0MTc1MWE2YzAwY2IwM2E0ZTA5MzQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy90ZW1wLWZpbGUtdXRpbHMuanMK
QEAgLTAsMCArMSwzMiBAQAorZnVuY3Rpb24gY3JlYXRlVGVtcEZpbGUoZmlsZU5hbWUsIGZpbGVE
YXRhKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3Bl
bigiUE9TVCIsICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvd3JpdGUtdGVtcC1m
aWxlLnB5P2ZpbGVuYW1lPSIgKyBmaWxlTmFtZSArICImZGF0YT0iICsgZmlsZURhdGEsIGZhbHNl
KTsKKyAgICB4aHIuc2VuZCgpOworICAgIGlmICh4aHIuc3RhdHVzICE9IDIwMCkgeworICAgICAg
ICB0ZXN0RmFpbGVkKCJVbmV4cGVjdGVkIHJlc3BvbnNlIHN0YXR1cyByZWNlaXZlZDogIiArIHho
ci5zdGF0dXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgdmFyIHZhbHVlcyA9IHho
ci5yZXNwb25zZVRleHQuc3BsaXQoJ1xuJyk7CisgICAgaWYgKHhoci5yZXNwb25zZVRleHQuaW5k
ZXhPZigiRkFJTCIpID09IDApIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiVW5leHBlY3RlZCByZXNw
b25zZSB0ZXh0IHJlY2VpdmVkOiAiICsgeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICByZXR1cm4geGhyLnJlc3BvbnNlVGV4dDsKK30KKworZnVuY3Rpb24g
dG91Y2hUZW1wRmlsZShmaWxlTmFtZSkKK3sKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgICAgeGhyLm9wZW4oIlBPU1QiLCAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVz
b3VyY2VzL3RvdWNoLXRlbXAtZmlsZS5weT9maWxlbmFtZT0iICsgZmlsZU5hbWUsIGZhbHNlKTsK
KyAgICB4aHIuc2VuZCgpOworfQorCitmdW5jdGlvbiByZW1vdmVUZW1wRmlsZShmaWxlTmFtZSkK
K3sKKyAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oIlBP
U1QiLCAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3Jlc2V0LXRlbXAtZmlsZS5w
eT9maWxlbmFtZT0iICsgZmlsZU5hbWUsIGZhbHNlKTsKKyAgICB4aHIuc2VuZCgpOworfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy90
b3VjaC10ZW1wLWZpbGUucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL3RvdWNoLXRlbXAtZmlsZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NGQ5NjQxZjUyMjMwMjI0
NDc2MjhhMmEyZGI1ZjIzZWVkYWFhNzYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy90b3VjaC10ZW1wLWZpbGUucHkKQEAg
LTAsMCArMSwyMSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9y
dCB0ZW1wZmlsZQorCisKK2RlZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICBmaWxlbmFt
ZSA9IHJlcXVlc3QuR0VUW2InZmlsZW5hbWUnXQorICAgIHRtcEZpbGVQYXRoID0gb3MucGF0aC5q
b2luKHRlbXBmaWxlLmdldHRlbXBkaXIoKSwgZmlsZW5hbWUuZGVjb2RlKCkpCisgICAgc3RhdCA9
IG9zLnN0YXQodG1wRmlsZVBhdGgpCisKKyAgICBpZiBub3Qgc3RhdDoKKyAgICAgICAgcmV0dXJu
IDIwMCwgWyhiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIildLCAiRkFJTDogc3RhdCgpIGNh
bGwgZmFpbGVkLlxuIgorCisgICAgYXRpbWUgPSBzdGF0LnN0X2F0aW1lCisgICAgbXRpbWUgPSBz
dGF0LnN0X210aW1lCisgICAgdHJ5OgorICAgICAgICBvcy51dGltZSh0bXBGaWxlUGF0aCwgdGlt
ZXM9KGF0aW1lLCBtdGltZSArIDEpKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuIDIwMCwg
WyhiIkNvbnRlbnQtVHlwZSIsIGIidGV4dC9odG1sIildLCAiRkFJTDogdG91Y2goKSBjYWxsIGZh
aWxlZC5cbiIKKyAgICByZXR1cm4gMjAwLCBbKGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwi
KV0sICIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMv
cmVzb3VyY2VzL3dyaXRlLXRlbXAtZmlsZS5weSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvd3JpdGUtdGVtcC1maWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzZjJj
ZjhiMmZiMTEyMzA4Nzc5YzdmYmYwNTI5YTFkZTA2NTBmMDYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3dyaXRlLXRlbXAt
ZmlsZS5weQpAQCAtMCwwICsxLDE2IEBACisjIS91c3IvYmluL2VudiBweXRob24zCisKK2ltcG9y
dCBvcworaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCisKKworZGVmIG1haW4ocmVxdWVzdCwg
cmVzcG9uc2UpOgorICAgIGZpbGVuYW1lID0gcmVxdWVzdC5HRVRbYidmaWxlbmFtZSddCisgICAg
ZGF0YSA9IHJlcXVlc3QuR0VUW2InZGF0YSddCisKKyAgICB0bXBfZmlsZSA9IG9zLnBhdGguam9p
bih0ZW1wZmlsZS5nZXR0ZW1wZGlyKCksIGZpbGVuYW1lLmRlY29kZSgpKQorICAgIHdpdGggb3Bl
bih0bXBfZmlsZSwgJ3cnKSBhcyBvcGVuX2ZpbGU6CisgICAgICAgIG9wZW5fZmlsZS53cml0ZShk
YXRhLmRlY29kZSgpKQorCisgICAgcmV0dXJuIDIwMCwgWyhiIkNvbnRlbnQtVHlwZSIsIGIidGV4
dC9odG1sIildLCB0bXBfZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWV4cGVjdGVkLnR4dAppbmRleCBh
MTBiOGYyNjY4MTJmZWJhZmJhYzFhNmVjNTZhYTg1MzY4MWVkZTk4Li4xODBjODczMTI4ZjNjMWMz
YjY1YjQ3ZDRlMTBjMzVmM2Q2M2Y5OWY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25z
dW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWV4cGVjdGVkLnR4
dApAQCAtMzgsNSArMzgsNSBAQCBQQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5OiBmcm9tIGZl
dGNoIHRvIGJsb2IKIFBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHk6IGZyb20gZmV0Y2ggdG8g
dGV4dAogUEFTUyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keTogZnJvbSBmZXRjaCB0byBhcnJheUJ1
ZmZlcgogUEFTUyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keTogZnJvbSBmZXRjaCB3aXRob3V0IGNv
cnJlY3QgdHlwZSB0byBmb3JtRGF0YSAoZXJyb3IgY2FzZSkKLUZBSUwgQ29uc3VtZSByZXNwb25z
ZSdzIGJvZHk6IGZyb20gbXVsdGlwYXJ0IGZvcm0gZGF0YSBibG9iIHRvIGZvcm1EYXRhIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk5vdFN1cHBv
cnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuIgorUEFTUyBDb25zdW1l
IHJlc3BvbnNlJ3MgYm9keTogZnJvbSBtdWx0aXBhcnQgZm9ybSBkYXRhIGJsb2IgdG8gZm9ybURh
dGEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFueS1leHBlY3RlZC50eHQK
aW5kZXggODRhNjlkNzVjNTFhZTY1YTMyMDY4MzliZjAwZDljZWEyODg1YTZmNy4uZDFhMjIxMWNm
YzEwYjQ2NzdiMDU5MjE0MjRjYzQzODY1YjEwMjUxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9u
c2UtY29uc3VtZS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1j
b25zdW1lLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBQQVNTIFJlYWQg
YmxvYiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KIFBBU1MgUmVhZCB0ZXh0IHJl
c3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIFVSTFNlYXJjaFBhcmFt
cyByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KIFBBU1MgUmVhZCBhcnJheSBidWZm
ZXIgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCi1GQUlMIFJlYWQgZm9ybSBkYXRh
IHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogTm90IGlt
cGxlbWVudGVkIgorUEFTUyBSZWFkIGZvcm0gZGF0YSByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFi
bGVTdHJlYW0KIFBBU1MgR2V0dGluZyBhbiBlcnJvciBSZXNwb25zZSBzdHJlYW0KIFBBU1MgR2V0
dGluZyBhIHJlZGlyZWN0IFJlc3BvbnNlIHN0cmVhbQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNw
b25zZS1jb25zdW1lLXN0cmVhbS5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3Bv
bnNlLWNvbnN1bWUtc3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDg0YTY5ZDc1
YzUxYWU2NWEzMjA2ODM5YmYwMGQ5Y2VhMjg4NWE2ZjcuLmQxYTIyMTFjZmMxMGI0Njc3YjA1OTIx
NDI0Y2M0Mzg2NWIxMDI1MWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3Ry
ZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUt
c3RyZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC01LDcgKzUsNyBAQCBQQVNTIFJlYWQg
YmxvYiByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KIFBBU1MgUmVhZCB0ZXh0IHJl
c3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIFVSTFNlYXJjaFBhcmFt
cyByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KIFBBU1MgUmVhZCBhcnJheSBidWZm
ZXIgcmVzcG9uc2UncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCi1GQUlMIFJlYWQgZm9ybSBkYXRh
IHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJOb3RTdXBwb3J0ZWRFcnJvcjogTm90IGlt
cGxlbWVudGVkIgorUEFTUyBSZWFkIGZvcm0gZGF0YSByZXNwb25zZSdzIGJvZHkgYXMgcmVhZGFi
bGVTdHJlYW0KIFBBU1MgR2V0dGluZyBhbiBlcnJvciBSZXNwb25zZSBzdHJlYW0KIFBBU1MgR2V0
dGluZyBhIHJlZGlyZWN0IFJlc3BvbnNlIHN0cmVhbQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448281</attachid>
            <date>2022-01-04 04:18:17 -0800</date>
            <delta_ts>2022-01-04 04:19:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234809-20220104131815.patch</filename>
            <type>text/plain</type>
            <size>47271</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzllMDE1ZDIxZjIyZDgy
NzllMWVlYWJlODQzYjBmMTcyYWRiZTlmYi4uZTQ1MmRlMTExZjFkZWE3OWFkNzg3YzIwODg0MjJl
NGFlNmEwZDliMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIyLTAxLTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBGZXRjaCB1c2luZyBGb3Jt
RGF0YSB3aXRoIGZpbGUgZG9lc24ndCBnbyB0aHJvdWdoIFNlcnZpY2UgV29ya2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODc0NjEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQxOTc1NTQ0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZWFkaW5nIGZvcm1EYXRhIGJhc2Vk
IGJvZGllcyB0aHJvdWdoIHN0cmVhbXMgb3IgcmVndWxhciBtZXRob2RzIGxpa2UgdGV4dC4KKyAg
ICAgICAgRm9yIHRoYXQgcHVycG9zZSwgd2UgYWRkIEZvcm1EYXRhQ29uc3VtZXIgd2hpY2ggYWxs
b3dzIHNlcmlhbGl6aW5nIGZvcm0gZGF0YXMgdGhhdCBtYXkgY29udGFpbiBmaWxlcyBvciBibG9i
cy4KKyAgICAgICAgQWRkIHRoZSBhYmlsaXR5IHRvIGxvYWQgYmxvYnMgZnJvbSBCbG9iTG9hZGVy
IHVzaW5nIHRoZSBpbnRlcm5hbCBVUkwgKHN0b3JlZCBpbiBGb3JtRGF0YSkgaW4gbGlldSBvZiBw
YXNzaW5nIGEgYmxvYiBvYmplY3QuCisgICAgICAgIEVuYWJsZSBmZXRjaCBldmVudHMgZm9yIGZv
cm0gZGF0YSBiYXNlZCBmZXRjaCBldmVudHMuCisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvc2Vy
dmljZS13b3JrZXJzL2Zvcm0tZGF0YS11cGxvYWQuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHkuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Lmg6
CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHA6CisgICAgICAg
ICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRm9ybURhdGFDb25zdW1lci5jcHA6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvRm9ybURhdGFDb25zdW1lci5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZmls
ZWFwaS9CbG9iTG9hZGVyLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNw
cDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwOgorCiAyMDIyLTAxLTAy
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFj
Y2VzcyBrZXkgc2hvdWxkIHdvcmsgb24gZm9jdXNhYmxlIGVsZW1lbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5kZXggYjhmMmVjMzczZDg3M2NjOWM4YWNi
M2M2ZWM4NDVmNmFiMDAwOWFhNi4uNzQxN2FlMGMxMjAzZWNmYzQ4NDkxZmUxMjQ4MDk2ZWI2NWVm
YzJjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5LmNwcApAQCAt
OTQsOCArOTQsNyBAQCBzdGQ6Om9wdGlvbmFsPEZldGNoQm9keT4gRmV0Y2hCb2R5Ojpmcm9tRm9y
bURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dAogICAgICAgICByZXR1cm4gRmV0
Y2hCb2R5IHsgV1RGTW92ZShibG9iKSB9OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBTdXBwb3J0
IGZvcm0gZGF0YSBib2RpZXMuCi0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4g
RmV0Y2hCb2R5IHsgUmVmIHsgZm9ybURhdGEgfSB9OwogfQogCiB2b2lkIEZldGNoQm9keTo6YXJy
YXlCdWZmZXIoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCkBAIC0xOTYsNyArMTk1LDcgQEAgdm9pZCBGZXRjaEJvZHk6OmNvbnN1bWVBc1N0cmVh
bShGZXRjaEJvZHlPd25lciYgb3duZXIsIEZldGNoQm9keVNvdXJjZSYgc291cmNlKQogICAgICAg
ICBvd25lci5sb2FkQmxvYihibG9iQm9keSgpLCBudWxscHRyKTsKICAgICAgICAgbV9kYXRhID0g
bnVsbHB0cjsKICAgICB9IGVsc2UgaWYgKGlzRm9ybURhdGEoKSkKLSAgICAgICAgc291cmNlLmVy
cm9yKEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIl9zIH0p
OworICAgICAgICBtX2NvbnN1bWVyLmNvbnN1bWVGb3JtRGF0YUFzU3RyZWFtKGZvcm1EYXRhQm9k
eSgpLCBzb3VyY2UsIG93bmVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAgICAgZWxzZSBp
ZiAobV9jb25zdW1lci5oYXNEYXRhKCkpCiAgICAgICAgIGNsb3NlU3RyZWFtID0gc291cmNlLmVu
cXVldWUobV9jb25zdW1lci50YWtlQXNBcnJheUJ1ZmZlcigpKTsKICAgICBlbHNlCkBAIC0yMzQs
MTQgKzIzMyw4IEBAIHZvaWQgRmV0Y2hCb2R5Ojpjb25zdW1lQmxvYihGZXRjaEJvZHlPd25lciYg
b3duZXIsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzCiAKIHZvaWQgRmV0Y2hCb2R5Ojpj
b25zdW1lRm9ybURhdGEoRmV0Y2hCb2R5T3duZXImIG93bmVyLCBSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKGF1dG8gc2hhcmVkQnVmZmVyID0gZm9ybURhdGFCb2R5
KCkuYXNTaGFyZWRCdWZmZXIoKSkgewotICAgICAgICBtX2NvbnN1bWVyLnJlc29sdmVXaXRoRGF0
YShXVEZNb3ZlKHByb21pc2UpLCBvd25lci5jb250ZW50VHlwZSgpLCBzaGFyZWRCdWZmZXItPm1h
a2VDb250aWd1b3VzKCktPmRhdGEoKSwgc2hhcmVkQnVmZmVyLT5zaXplKCkpOwotICAgICAgICBt
X2RhdGEgPSBudWxscHRyOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBJZiB0aGUg
Zm9ybSBkYXRhIGNvbnRhaW5zIGJsb2JzLCBsb2FkIHRoZW0gbGlrZSB3ZSBkbyBvdGhlciBibG9i
cy4KLSAgICAgICAgLy8gVGhhdCB3aWxsIGZpeCB0aGUgbGFzdCBXUFQgdGVzdCBpbiByZXNwb25z
ZS1jb25zdW1lLmh0bWwuCi0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJv
cik7Ci0gICAgfQorICAgIG1fY29uc3VtZXIucmVzb2x2ZVdpdGhGb3JtRGF0YShXVEZNb3ZlKHBy
b21pc2UpLCBvd25lci5jb250ZW50VHlwZSgpLCBmb3JtRGF0YUJvZHkoKSwgb3duZXIuc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBtX2RhdGEgPSBudWxscHRyOwogfQogCiB2b2lkIEZl
dGNoQm9keTo6bG9hZGluZ0ZhaWxlZChjb25zdCBFeGNlcHRpb24mIGV4Y2VwdGlvbikKQEAgLTMx
MSw3ICszMDQsNyBAQCBGZXRjaEJvZHk6OlRha2VuRGF0YSBGZXRjaEJvZHk6OnRha2UoKQogCiBG
ZXRjaEJvZHkgRmV0Y2hCb2R5OjpjbG9uZSgpCiB7Ci0gICAgRmV0Y2hCb2R5IGNsb25lKG1fY29u
c3VtZXIpOworICAgIEZldGNoQm9keSBjbG9uZShtX2NvbnN1bWVyLmNsb25lKCkpOwogCiAgICAg
aWYgKGlzQXJyYXlCdWZmZXIoKSkKICAgICAgICAgY2xvbmUubV9kYXRhID0gYXJyYXlCdWZmZXJC
b2R5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9k
eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHkuaAppbmRleCBiYWQx
YjVlYTIzYjc3MWIzNDdmNGIwNGE1Njc1OGZjMDA4OGUxMmU0Li5hNGFmMmFhZDU4NTM1Njc4M2Jm
NzI3MTMxM2RjNjA0MGVkNzhmNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBGZXRjaEJv
ZHkoUmVmPEZvcm1EYXRhPiYmIGRhdGEpIDogbV9kYXRhKFdURk1vdmUoZGF0YSkpIHsgfQogICAg
IGV4cGxpY2l0IEZldGNoQm9keShTdHJpbmcmJiBkYXRhKSA6IG1fZGF0YShXVEZNb3ZlKGRhdGEp
KSB7IH0KICAgICBleHBsaWNpdCBGZXRjaEJvZHkoUmVmPGNvbnN0IFVSTFNlYXJjaFBhcmFtcz4m
JiBkYXRhKSA6IG1fZGF0YShXVEZNb3ZlKGRhdGEpKSB7IH0KLSAgICBleHBsaWNpdCBGZXRjaEJv
ZHkoY29uc3QgRmV0Y2hCb2R5Q29uc3VtZXImIGNvbnN1bWVyKSA6IG1fY29uc3VtZXIoY29uc3Vt
ZXIpIHsgfQorICAgIGV4cGxpY2l0IEZldGNoQm9keShGZXRjaEJvZHlDb25zdW1lciYmIGNvbnN1
bWVyKSA6IG1fY29uc3VtZXIoV1RGTW92ZShjb25zdW1lcikpIHsgfQogICAgIGV4cGxpY2l0IEZl
dGNoQm9keShSZWY8UmVhZGFibGVTdHJlYW0+JiYgc3RyZWFtKSA6IG1fcmVhZGFibGVTdHJlYW0o
V1RGTW92ZShzdHJlYW0pKSB7IH0KIAogICAgIHZvaWQgY29uc3VtZShGZXRjaEJvZHlPd25lciYs
IFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAppbmRleCBjMjMxZjIwN2RhMjVjZDJhMTU4NjBk
MjhkYjNjZTE3ZTg1NzU3N2Q1Li42ZTQ1YjlmYjgzYzBlMTZlZWIwYWY3ZTg2NWMzMWY5ODUyYTM3
NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkZldGNoQm9keUNvbnN1bWVy
LmgiCiAKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUgIkZvcm1EYXRhQ29uc3Vt
ZXIuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyRmllbGQuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogI2luY2x1ZGUgIkpTQmxvYi5oIgpAQCAtMjQzLDYgKzI0NCw4IEBAIHN0YXRpYyB2b2lk
IHJlc29sdmVXaXRoVHlwZUFuZERhdGEoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
ZXRjaEJvZHlDb25zCiB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpjbGVhbigpCiB7CiAgICAgbV9i
dWZmZXIucmVzZXQoKTsKKyAgICBpZiAobV9mb3JtRGF0YUNvbnN1bWVyKQorICAgICAgICBtX2Zv
cm1EYXRhQ29uc3VtZXItPmNhbmNlbCgpOwogICAgIHJlc2V0Q29uc3VtZVByb21pc2UoKTsKICAg
ICBpZiAobV9zaW5rKSB7CiAgICAgICAgIG1fc2luay0+Y2xlYXJDYWxsYmFjaygpOwpAQCAtMjU1
LDYgKzI1OCw2MSBAQCB2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpyZXNvbHZlV2l0aERhdGEoUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBjb25zdCBTdAogICAgIHJlc29sdmVXaXRoVHlw
ZUFuZERhdGEoV1RGTW92ZShwcm9taXNlKSwgbV90eXBlLCBjb250ZW50VHlwZSwgZGF0YSwgbGVu
Z3RoKTsKIH0KIAordm9pZCBGZXRjaEJvZHlDb25zdW1lcjo6cmVzb2x2ZVdpdGhGb3JtRGF0YShS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUs
IGNvbnN0IEZvcm1EYXRhJiBmb3JtRGF0YSwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKK3sKKyAgICBpZiAoYXV0byBzaGFyZWRCdWZmZXIgPSBmb3JtRGF0YS5hc1NoYXJlZEJ1ZmZl
cigpKSB7CisgICAgICAgIHJlc29sdmVXaXRoRGF0YShXVEZNb3ZlKHByb21pc2UpLCBjb250ZW50
VHlwZSwgc2hhcmVkQnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIHNoYXJlZEJ1ZmZl
ci0+c2l6ZSgpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghY29udGV4dCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb3JtRGF0YUNvbnN1bWVyID0gbWFrZVVuaXF1ZTxG
b3JtRGF0YUNvbnN1bWVyPihmb3JtRGF0YSwgKmNvbnRleHQsIFt0aGlzLCBwcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKSwgY29udGVudFR5cGUsIGJ1aWxkZXIgPSBTaGFyZWRCdWZmZXJCdWlsZGVy
IHsgfV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGF1
dG8mIHZhbHVlID0gcmVzdWx0LnJldHVyblZhbHVlKCk7CisgICAgICAgIGlmICghdmFsdWUuc2l6
ZSgpKSB7CisgICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IGJ1aWxkZXIudGFrZUFzQ29udGlndW91
cygpOworICAgICAgICAgICAgcmVzb2x2ZVdpdGhEYXRhKFdURk1vdmUocHJvbWlzZSksIGNvbnRl
bnRUeXBlLCBidWZmZXItPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgYnVpbGRlci5hcHBlbmQodmFsdWUuZGF0YSgpLCB2
YWx1ZS5zaXplKCkpOworICAgIH0pOworfQorCit2b2lkIEZldGNoQm9keUNvbnN1bWVyOjpjb25z
dW1lRm9ybURhdGFBc1N0cmVhbShjb25zdCBGb3JtRGF0YSYgZm9ybURhdGEsIEZldGNoQm9keVNv
dXJjZSYgc291cmNlLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIGlm
IChhdXRvIHNoYXJlZEJ1ZmZlciA9IGZvcm1EYXRhLmFzU2hhcmVkQnVmZmVyKCkpIHsKKyAgICAg
ICAgaWYgKHNvdXJjZS5lbnF1ZXVlKEFycmF5QnVmZmVyOjp0cnlDcmVhdGUoc2hhcmVkQnVmZmVy
LT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIHNoYXJlZEJ1ZmZlci0+c2l6ZSgpKSkpCisgICAg
ICAgICAgICBzb3VyY2UuY2xvc2UoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
ICghY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9mb3JtRGF0YUNvbnN1bWVyID0g
bWFrZVVuaXF1ZTxGb3JtRGF0YUNvbnN1bWVyPihmb3JtRGF0YSwgKmNvbnRleHQsIFt0aGlzLCBz
b3VyY2UgPSBSZWYgeyBzb3VyY2UgfV0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBzb3VyY2UtPmVycm9yKHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byYgdmFsdWUgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKKyAgICAgICAgaWYgKCF2
YWx1ZS5zaXplKCkpIHsKKyAgICAgICAgICAgIHNvdXJjZS0+Y2xvc2UoKTsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghc291cmNlLT5lbnF1ZXVlKEFycmF5
QnVmZmVyOjp0cnlDcmVhdGUodmFsdWUuZGF0YSgpLCB2YWx1ZS5zaXplKCkpKSkKKyAgICAgICAg
ICAgIG1fZm9ybURhdGFDb25zdW1lci0+Y2FuY2VsKCk7CisgICAgfSk7Cit9CisKIHZvaWQgRmV0
Y2hCb2R5Q29uc3VtZXI6OmV4dHJhY3QoUmVhZGFibGVTdHJlYW0mIHN0cmVhbSwgUmVhZGFibGVT
dHJlYW1Ub1NoYXJlZEJ1ZmZlclNpbms6OkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgQVNT
RVJUKCFtX3NpbmspOwpAQCAtNDE2LDQgKzQ3NCwxMiBAQCB2b2lkIEZldGNoQm9keUNvbnN1bWVy
Ojpsb2FkaW5nU3VjY2VlZGVkKGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUpCiAgICAgfQogfQog
CitGZXRjaEJvZHlDb25zdW1lciBGZXRjaEJvZHlDb25zdW1lcjo6Y2xvbmUoKQoreworICAgIEZl
dGNoQm9keUNvbnN1bWVyIGNsb25lIHsgbV90eXBlIH07CisgICAgY2xvbmUubV9jb250ZW50VHlw
ZSA9IG1fY29udGVudFR5cGU7CisgICAgY2xvbmUubV9idWZmZXIgPSBtX2J1ZmZlcjsKKyAgICBy
ZXR1cm4gY2xvbmU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuaAppbmRleCA4NzFkMmMwODYz
MzFhOTgyOTRhMTY2YTRiNDJlMzE4NGUwMzc3NzJiLi43OTgwNWQ0YWE1NjRiYTBjZjVhZTEzYTEy
NDQ5M2QwNjAzMWFkYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoQm9keUNvbnN1bWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9G
ZXRjaEJvZHlDb25zdW1lci5oCkBAIC0yOSw4ICsyOSwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlICJGZXRjaEJvZHlTb3VyY2UuaCIKKyNpbmNsdWRlICJGb3JtRGF0YUNvbnN1bWVyLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJSZWFkYWJsZVN0
cmVhbVNpbmsuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNh
dG9yLmgiCiAKQEAgLTM5LDYgKzQxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQmxv
YjsKIGNsYXNzIERPTUZvcm1EYXRhOwogY2xhc3MgRmV0Y2hCb2R5U291cmNlOworY2xhc3MgRm9y
bURhdGE7CiBjbGFzcyBSZWFkYWJsZVN0cmVhbTsKIAogY2xhc3MgRmV0Y2hCb2R5Q29uc3VtZXIg
ewpAQCAtNDcsNiArNTAsOCBAQCBwdWJsaWM6CiAKICAgICBleHBsaWNpdCBGZXRjaEJvZHlDb25z
dW1lcihUeXBlIHR5cGUpIDogbV90eXBlKHR5cGUpIHsgfQogCisgICAgRmV0Y2hCb2R5Q29uc3Vt
ZXIgY2xvbmUoKTsKKwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHVuc2ln
bmVkKTsKIAogICAgIGJvb2wgaGFzRGF0YSgpIGNvbnN0IHsgcmV0dXJuICEhbV9idWZmZXI7IH0K
QEAgLTY1LDYgKzcwLDggQEAgcHVibGljOgogICAgIHZvaWQgZXh0cmFjdChSZWFkYWJsZVN0cmVh
bSYsIFJlYWRhYmxlU3RyZWFtVG9TaGFyZWRCdWZmZXJTaW5rOjpDYWxsYmFjayYmKTsKICAgICB2
b2lkIHJlc29sdmUoUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgY29uc3QgU3RyaW5nJiBjb250ZW50
VHlwZSwgUmVhZGFibGVTdHJlYW0qKTsKICAgICB2b2lkIHJlc29sdmVXaXRoRGF0YShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCB1bnNpZ25l
ZCBjaGFyKiwgdW5zaWduZWQpOworICAgIHZvaWQgcmVzb2x2ZVdpdGhGb3JtRGF0YShSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBjb25zdCBGb3JtRGF0
YSYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKyAgICB2b2lkIGNvbnN1bWVGb3JtRGF0YUFz
U3RyZWFtKGNvbnN0IEZvcm1EYXRhJiwgRmV0Y2hCb2R5U291cmNlJiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwogCiAgICAgdm9pZCBsb2FkaW5nRmFpbGVkKGNvbnN0IEV4Y2VwdGlvbiYpOwog
ICAgIHZvaWQgbG9hZGluZ1N1Y2NlZWRlZChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKQEAg
LTg4LDYgKzk1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RmV0Y2hCb2R5U291cmNlPiBtX3Nv
dXJjZTsKICAgICBib29sIG1faXNMb2FkaW5nIHsgZmFsc2UgfTsKICAgICBSZWZQdHI8VXNlckdl
c3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRva2VuOworICAgIHN0ZDo6dW5pcXVlX3B0cjxGb3Jt
RGF0YUNvbnN1bWVyPiBtX2Zvcm1EYXRhQ29uc3VtZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zvcm1EYXRh
Q29uc3VtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9Gb3JtRGF0YUNvbnN1
bWVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45ZjAxYzM0ZWMxMDMyMjUwYjY2YTcwYmYwODIwOTY0Y2M2YmJk
ODBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9Gb3Jt
RGF0YUNvbnN1bWVyLmNwcApAQCAtMCwwICsxLDEzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJGb3JtRGF0YUNvbnN1bWVyLmgiCisKKyNpbmNsdWRlICJC
bG9iTG9hZGVyLmgiCisjaW5jbHVkZSAiRm9ybURhdGEuaCIKKyNpbmNsdWRlIDx3dGYvV29ya1F1
ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRm9ybURhdGFDb25zdW1lcjo6Rm9ybURh
dGFDb25zdW1lcihjb25zdCBGb3JtRGF0YSYgZm9ybURhdGEsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIENhbGxiYWNrJiYgY2FsbGJhY2spCisgICAgOiBtX2Zvcm1EYXRhKGZvcm1E
YXRhLmNvcHkoKSkKKyAgICAsIG1fY29udGV4dCgmY29udGV4dCkKKyAgICAsIG1fY2FsbGJhY2so
V1RGTW92ZShjYWxsYmFjaykpCisgICAgLCBtX2ZpbGVRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgi
Rm9ybURhdGFDb25zdW1lciBmaWxlIHF1ZXVlIikpCit7CisgICAgcmVhZCgpOworfQorCitGb3Jt
RGF0YUNvbnN1bWVyOjp+Rm9ybURhdGFDb25zdW1lcigpCit7Cit9CisKK3ZvaWQgRm9ybURhdGFD
b25zdW1lcjo6cmVhZCgpCit7CisgICAgQVNTRVJUKG1fY2FsbGJhY2spOworICAgIEFTU0VSVCht
X2NvbnRleHQpOworICAgIEFTU0VSVCghbV9ibG9iTG9hZGVyKTsKKworICAgIGlmIChtX2N1cnJl
bnRFbGVtZW50SW5kZXggPj0gbV9mb3JtRGF0YS0+ZWxlbWVudHMoKS5zaXplKCkpIHsKKyAgICAg
ICAgbV9jYWxsYmFjayhTcGFuPGNvbnN0IHVpbnQ4X3Q+IHsgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBXVEY6OnN3aXRjaE9uKG1fZm9ybURhdGEtPmVsZW1lbnRzKClbbV9jdXJy
ZW50RWxlbWVudEluZGV4KytdLmRhdGEsIFt0aGlzXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGNv
bnRlbnQpIHsKKyAgICAgICAgY29uc3VtZURhdGEoY29udGVudCk7CisgICAgfSwgW3RoaXNdKGNv
bnN0IEZvcm1EYXRhRWxlbWVudDo6RW5jb2RlZEZpbGVEYXRhJiBmaWxlRGF0YSkgeworICAgICAg
ICBjb25zdW1lRmlsZShmaWxlRGF0YS5maWxlbmFtZSk7CisgICAgfSwgW3RoaXNdKGNvbnN0IEZv
cm1EYXRhRWxlbWVudDo6RW5jb2RlZEJsb2JEYXRhJiBibG9iRGF0YSkgeworICAgICAgICBjb25z
dW1lQmxvYihibG9iRGF0YS51cmwpOworICAgIH0pOworfQorCit2b2lkIEZvcm1EYXRhQ29uc3Vt
ZXI6OmNvbnN1bWVEYXRhKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgY29udGVudCkKK3sKKyAgICBj
b25zdW1lKFNwYW48Y29uc3QgdWludDhfdD4geyBjb250ZW50LmRhdGEoKSwgY29udGVudC5zaXpl
KCkgfSk7Cit9CisKK3ZvaWQgRm9ybURhdGFDb25zdW1lcjo6Y29uc3VtZUZpbGUoY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSkKK3sKKyAgICBtX2ZpbGVRdWV1ZS0+ZGlzcGF0Y2goW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGlkZW50aWZpZXIgPSBtX2NvbnRleHQtPmlkZW50aWZpZXIoKSwg
cGF0aCA9IGZpbGVuYW1lLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAgICAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGlkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdU
Rk1vdmUod2Vha1RoaXMpLCBjb250ZW50ID0gRmlsZVN5c3RlbTo6cmVhZEVudGlyZUZpbGUocGF0
aCldKGF1dG8mKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFjb250ZW50KSB7CisgICAgICAgICAgICAgICAg
aWYgKHdlYWtUaGlzLT5tX2NhbGxiYWNrKQorICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9jYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIlVuYWJsZSB0byByZWFk
IGZvcm0gZGF0YSBmaWxlIl9zIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgd2Vha1RoaXMtPmNvbnN1bWUoKmNvbnRlbnQpOworICAgICAg
ICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBGb3JtRGF0YUNvbnN1bWVyOjpjb25zdW1lQmxvYihj
b25zdCBVUkwmIGJsb2JVUkwpCit7CisgICAgbV9ibG9iTG9hZGVyID0gbWFrZVVuaXF1ZTxCbG9i
TG9hZGVyPihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oQmxvYkxvYWRlciYpIG11dGFi
bGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGF1dG8gbG9hZGVyID0gc3RkOjpleGNoYW5nZSh3ZWFrVGhpcy0+bV9ibG9iTG9hZGVyLCB7
IH0pOworICAgICAgICBpZiAoYXV0byBvcHRpb25hbEVycm9yQ29kZSA9IGxvYWRlci0+ZXJyb3JD
b2RlKCkpIHsKKyAgICAgICAgICAgIGlmICh3ZWFrVGhpcy0+bV9jYWxsYmFjaykKKyAgICAgICAg
ICAgICAgICB3ZWFrVGhpcy0+bV9jYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkZhaWxlZCB0byByZWFkIGZvcm0gZGF0YSBibG9iIl9zIH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGF1dG8gZGF0YSA9IGxvYWRlci0+YXJyYXlC
dWZmZXJSZXN1bHQoKSkKKyAgICAgICAgICAgIHdlYWtUaGlzLT5jb25zdW1lKFNwYW48Y29uc3Qg
dWludDhfdD4geyBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YS0+ZGF0YSgpKSwgZGF0
YS0+Ynl0ZUxlbmd0aCgpIH0pOworICAgIH0pOworCisgICAgbV9ibG9iTG9hZGVyLT5zdGFydChi
bG9iVVJMLCBtX2NvbnRleHQuZ2V0KCksIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0FycmF5QnVm
ZmVyKTsKKworICAgIGlmICghbV9ibG9iTG9hZGVyLT5pc0xvYWRpbmcoKSkgeworICAgICAgICBt
X2NhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiVW5hYmxlIHRvIHJlYWQg
Zm9ybSBkYXRhIGJsb2IiX3MgfSk7CisgICAgICAgIG1fYmxvYkxvYWRlciA9IG51bGxwdHI7Cisg
ICAgfQorfQorCit2b2lkIEZvcm1EYXRhQ29uc3VtZXI6OmNvbnN1bWUoU3Bhbjxjb25zdCB1aW50
OF90PiBjb250ZW50KQoreworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9jYWxsYmFjayhTcGFuPGNvbnN0IHVpbnQ4X3Q+IHsgY29udGVudC5kYXRhKCksIGNv
bnRlbnQuc2l6ZSgpIH0pOworICAgIGlmICghbV9jYWxsYmFjaykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgcmVhZCgpOworfQorCit2b2lkIEZvcm1EYXRhQ29uc3VtZXI6OmNhbmNlbCgpCit7Cisg
ICAgbV9jYWxsYmFjayA9IG51bGxwdHI7CisgICAgaWYgKG1fYmxvYkxvYWRlcikgeworICAgICAg
ICBtX2Jsb2JMb2FkZXItPmNhbmNlbCgpOworICAgICAgICBtX2Jsb2JMb2FkZXIgPSBudWxscHRy
OworICAgIH0KKyAgICBtX2NvbnRleHQgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zvcm1EYXRh
Q29uc3VtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRm9ybURhdGFDb25zdW1l
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJhYTgyNTk2MWNjZmI2NGUxZGQyMzg4MjQzM2E3NzlmZWIwMTk3ODAK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zvcm1EYXRh
Q29uc3VtZXIuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL1NwYW4uaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9Xb3Jr
UXVldWUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBCbG9iTG9hZGVyOworY2xh
c3MgRm9ybURhdGE7CisKK2NsYXNzIEZvcm1EYXRhQ29uc3VtZXIgOiBwdWJsaWMgQ2FuTWFrZVdl
YWtQdHI8Rm9ybURhdGFDb25zdW1lcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHVzaW5nIENhbGxiYWNrID0gRnVuY3Rpb248dm9pZChFeGNlcHRpb25PcjxT
cGFuPGNvbnN0IHVpbnQ4X3Q+Pik+OworICAgIEZvcm1EYXRhQ29uc3VtZXIoY29uc3QgRm9ybURh
dGEmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgQ2FsbGJhY2smJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgfkZvcm1EYXRhQ29uc3VtZXIoKTsKKworICAgIHZvaWQgY2FuY2VsKCk7CisKK3ByaXZh
dGU6CisgICAgdm9pZCBjb25zdW1lRGF0YShjb25zdCBWZWN0b3I8dWludDhfdD4mKTsKKyAgICB2
b2lkIGNvbnN1bWVGaWxlKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgY29uc3VtZUJsb2IoY29u
c3QgVVJMJik7CisKKyAgICB2b2lkIGNvbnN1bWUoU3Bhbjxjb25zdCB1aW50OF90Pik7CisgICAg
dm9pZCByZWFkKCk7CisKKyAgICBSZWY8Rm9ybURhdGE+IG1fZm9ybURhdGE7CisgICAgUmVmUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKKyAgICBDYWxsYmFjayBtX2NhbGxi
YWNrOworCisgICAgc2l6ZV90IG1fY3VycmVudEVsZW1lbnRJbmRleCB7IDAgfTsKKyAgICBSZWY8
V29ya1F1ZXVlPiBtX2ZpbGVRdWV1ZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QmxvYkxvYWRlcj4g
bV9ibG9iTG9hZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBiZDVhNzQ3OWNiMzllNDZjYzkxMDQwMGY0ZWUzODQ5MzI0Yzc1MzFmLi5mNmYwMGFlOGFm
ZGYxMDJhMzZmMTI1MTQ1NzQxMjJhMzA5Yzk0MDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtODgsNiAr
ODgsNyBAQCBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKIE1vZHVsZXMvZmV0Y2gvRmV0
Y2hMb2FkZXIuY3BwCiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVxdWVzdC5jcHAKIE1vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5jcHAKK01vZHVsZXMvZmV0Y2gvRm9ybURhdGFDb25zdW1lci5jcHAK
IE1vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcAogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2M5ZWMyNWMw
YTkyNDYwNmFlMmViMzI3NjRhMTc4ZGRjYzk0NDNmOC4uNzBiZTI4M2EwMzRlYjMwNTQ5MjMzMTBl
YTViMjM2MGQwZWZiZjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtODQ4MSw2ICs4NDgxLDggQEAKIAkJM0ZCQzRBRjExODk4
ODE1NjAwNDZFRTM4IC8qIFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGQkM0QUYyMTg5ODgxNTYw
MDQ2RUUzOCAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTAyNEZDODIzQ0YyNTRGMDBGREY5OEUgLyogU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxMDJFRTBF
Mjc4MzBFNjMwMEQ2QkU3NCAvKiBGb3JtRGF0YUNvbnN1bWVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZv
cm1EYXRhQ29uc3VtZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDEwMkVFMTAy
NzgzMEU2MzAwRDZCRTc0IC8qIEZvcm1EYXRhQ29uc3VtZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRm9ybURhdGFDb25zdW1lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
MDc5MDhBMUZDM0U0RjIwMDYxQjI3QSAvKiBDbGllbnRPcmlnaW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2xpZW50T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxMDkzODJDMjM0Nzg1MEUwMDk0MjhCQSAvKiBKU0Fib3J0U2lnbmFsQ3VzdG9tLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQWJvcnRTaWduYWxDdXN0b20uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0MTBBOEVGNDI0RjgyM0I5MDA0RjkwNzAgLyogVGV4dEVuY29k
ZXJTdHJlYW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFRleHRFbmNvZGVyU3RyZWFtLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIxMjcwLDYgKzIxMjcyLDggQEAKIAkJCQk0MTMwMTVENTFDN0I1NzA0
MDAwOTFDNkUgLyogRmV0Y2hSZXNwb25zZS5jcHAgKi8sCiAJCQkJNDEzMDE1RDYxQzdCNTcwNDAw
MDkxQzZFIC8qIEZldGNoUmVzcG9uc2UuaCAqLywKIAkJCQk0MTMwMTVENzFDN0I1NzA0MDAwOTFD
NkUgLyogRmV0Y2hSZXNwb25zZS5pZGwgKi8sCisJCQkJNDEwMkVFMTAyNzgzMEU2MzAwRDZCRTc0
IC8qIEZvcm1EYXRhQ29uc3VtZXIuY3BwICovLAorCQkJCTQxMDJFRTBFMjc4MzBFNjMwMEQ2QkU3
NCAvKiBGb3JtRGF0YUNvbnN1bWVyLmggKi8sCiAJCQkJN0MyRTBCRDEyNTEwNkFDNDAwNUYzQzg3
IC8qIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGUrRmV0Y2guaWRsICovLAogCQkJCTdDMkUwQkQw
MjUxMDZBQzQwMDVGM0M4NyAvKiBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwICov
LAogCQkJCTdDMkUwQkNGMjUxMDZBQzQwMDVGM0M4NyAvKiBXaW5kb3dPcldvcmtlckdsb2JhbFNj
b3BlRmV0Y2guaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvQmxvYkxv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iTG9hZGVyLmgKaW5kZXggOGIxYTYx
MTdmMjZlNzE3YmJjOGY5MWZhZWJkZDQ0MDc3NTYxYTU4Zi4uY2QwZDBjMWI5YTU0M2RiMDQyNTNh
NzJkYmY1ZDA3N2FjMWZjNTM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9C
bG9iTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iTG9hZGVyLmgKQEAg
LTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIH5CbG9iTG9hZGVyKCk7CiAKICAgICB2b2lkIHN0
YXJ0KEJsb2ImLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVJlYWRlckxvYWRlcjo6UmVh
ZFR5cGUpOworICAgIHZvaWQgc3RhcnQoY29uc3QgVVJMJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRUeXBlKTsKIAogICAgIHZvaWQgY2FuY2VsKCk7CiAg
ICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiBtX2xvYWRlciAmJiBtX2NvbXBsZXRp
b25IYW5kbGVyOyB9CkBAIC04OSw2ICs5MCwxMyBAQCBpbmxpbmUgdm9pZCBCbG9iTG9hZGVyOjpz
dGFydChCbG9iJiBibG9iLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlUgog
ICAgIG1fbG9hZGVyLT5zdGFydChjb250ZXh0LCBibG9iKTsKIH0KIAoraW5saW5lIHZvaWQgQmxv
YkxvYWRlcjo6c3RhcnQoY29uc3QgVVJMJiBibG9iVVJMLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSByZWFkVHlwZSkKK3sKKyAgICBB
U1NFUlQoIW1fbG9hZGVyKTsKKyAgICBtX2xvYWRlciA9IG1ha2VVbmlxdWU8RmlsZVJlYWRlckxv
YWRlcj4ocmVhZFR5cGUsIHRoaXMpOworICAgIG1fbG9hZGVyLT5zdGFydChjb250ZXh0LCBibG9i
VVJMKTsKK30KKwogaW5saW5lIHZvaWQgQmxvYkxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZygpCiB7
CiAgICAgbV9jb21wbGV0aW9uSGFuZGxlcigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlUmVhZGVyTG9hZGVyLmNwcAppbmRleCBiN2Y3NWVkYTNiMjMzYjE5YjIwZWQ3MDQyODk0
OWJiMzM1ODk4ZTgxLi43NGVmNWY0YjhiNDdhNzJhNTU5MDg3ZmFmYTcxNzU2ODhlOGQ1NjQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5jcHAKQEAgLTczLDYg
KzczLDExIEBAIEZpbGVSZWFkZXJMb2FkZXI6On5GaWxlUmVhZGVyTG9hZGVyKCkKIH0KIAogdm9p
ZCBGaWxlUmVhZGVyTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0LCBCbG9iJiBibG9iKQoreworICAgIHN0YXJ0KHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIGJsb2IudXJsKCkpOworfQorCit2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OnN0YXJ0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFVS
TCYgYmxvYlVSTCkKIHsKICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CiAKQEAg
LTgyLDcgKzg3LDcgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBCbG8KICAgICAgICAgZmFpbGVkKFNl
Y3VyaXR5RXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIFRocmVhZGFibGVCbG9i
UmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zZWN1cml0
eU9yaWdpbigpLCBzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5wb2xpY3lDb250YWluZXIoKSwgbV91
cmxGb3JSZWFkaW5nLCBibG9iLnVybCgpKTsKKyAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojpy
ZWdpc3RlckJsb2JVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwg
c2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+cG9saWN5Q29udGFpbmVyKCksIG1fdXJsRm9yUmVhZGlu
ZywgYmxvYlVSTCk7CiAKICAgICAvLyBDb25zdHJ1Y3QgYW5kIGxvYWQgdGhlIHJlcXVlc3QuCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmxGb3JSZWFkaW5nKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgKaW5kZXggNTM5YzIzMDRhODJlNjNhYWRmZTJj
NTY3Yzk4ZDBiOGM2ODdhOGU5Zi4uZGJhZTllMzM1MDkwYThiOTZkZmI3NmViNmUxNTExMjU5ODhl
NjBlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgKQEAgLTY2
LDYgKzY2LDcgQEAgcHVibGljOgogICAgIH5GaWxlUmVhZGVyTG9hZGVyKCk7CiAKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBCbG9iJik7Cisg
ICAgdm9pZCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBjYW5jZWwoKTsKIAogICAgIC8vIFRocmVhZGFibGVMb2FkZXJD
bGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCmluZGV4IDhhOTEzOGQyM2IwZDVkZWM1M2Qy
OTkwZGVkNWRiNzc2MzU0ZTUyNDAuLjlkOWFjZDY0YTE2MjE4NGRjYzEyYTRkNDQzZWJlMDAyYTY1
MmI2YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU2VydmljZVdvcmtlckZldGNoIHsKIAogLy8gaHR0
cHM6Ly9mZXRjaC5zcGVjLndoYXR3Zy5vcmcvI2h0dHAtZmV0Y2ggc3RlcCAzLjMKLXN0YXRpYyBp
bmxpbmUgc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVycm9yPiB2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGZXRjaE9wdGlvbnM6Ok1vZGUgbW9kZSwgRmV0
Y2hPcHRpb25zOjpSZWRpcmVjdCByZWRpcmVjdCkKK3N0YXRpYyBpbmxpbmUgUmVzb3VyY2VFcnJv
ciB2YWxpZGF0ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGZXRj
aE9wdGlvbnM6Ok1vZGUgbW9kZSwgRmV0Y2hPcHRpb25zOjpSZWRpcmVjdCByZWRpcmVjdCkKIHsK
ICAgICBpZiAocmVzcG9uc2UudHlwZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlR5cGU6OkVycm9y
KQogICAgICAgICByZXR1cm4gUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJu
YWwsIDAsIHJlc3BvbnNlLnVybCgpLCAiUmVzcG9uc2Ugc2VydmVkIGJ5IHNlcnZpY2Ugd29ya2Vy
IGlzIGFuIGVycm9yIl9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpHZW5lcmFsLCBSZXNvdXJjZUVy
cm9yOjpJc1Nhbml0aXplZDo6WWVzIH07CkBAIC04NCw4ICs4NCw4IEBAIHN0YXRpYyB2b2lkIHBy
b2Nlc3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNsaWVudCwgRXhwZWN0ZWQ8UmVmPEZldGNoUmVz
cG9uc2U+LCBzCiAgICAgfQogCiAgICAgYXV0byByZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2Ut
PnJlc291cmNlUmVzcG9uc2UoKTsKLSAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlUmVzcG9u
c2UocmVzb3VyY2VSZXNwb25zZSwgbW9kZSwgcmVkaXJlY3QpKSB7Ci0gICAgICAgIGNsaWVudC0+
ZGlkRmFpbChlcnJvci52YWx1ZSgpKTsKKyAgICBpZiAoYXV0byBlcnJvciA9IHZhbGlkYXRlUmVz
cG9uc2UocmVzb3VyY2VSZXNwb25zZSwgbW9kZSwgcmVkaXJlY3QpOyAhZXJyb3IuaXNOdWxsKCkp
IHsKKyAgICAgICAgY2xpZW50LT5kaWRGYWlsKGVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGJkNDBlNzI0MzY1MDQ4YTQ5NjBiZDA5OGU3ZDgwNzExNzIyM2NlMzQuLjU3
NjdlNWQxNTA2YmE4MzlmMTA0YTA4ZTk2ZmU0MGJjNjBkOTc3ZTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAyMi0wMS0wMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmV0Y2ggdXNpbmcgRm9ybURhdGEgd2l0aCBmaWxlIGRvZXNuJ3QgZ28gdGhyb3VnaCBT
ZXJ2aWNlIFdvcmtlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTg3NDYxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MTk3NTU0ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byBh
ZGRpbmcgYSB0ZXN0IHRvIGh0dHAvd3B0L2ZldGNoL3JlcXVlc3QtY29uc3VtZS1zdHJlYW0uaHRt
bCwgd2UgZml4IHRoZSBvdGhlciB0ZXN0cyB0aGF0IHNob3VsZCBhbGwgYmUgcGFzc2luZy4KKyAg
ICAgICAgQWRkIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEtdXBsb2FkLmh0bWwg
YW5kIHRyYW5zbGF0ZSBleGl0aW5nIGh0dHAvdGVzdHMgc2NyaXB0cyBmb3IgdGhlIFdQVCBzZXJ2
ZXIuCisKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC9mZXRjaC9yZXF1ZXN0LWNvbnN1bWUtc3Ry
ZWFtLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zvcm0tZGF0YS11
cGxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdv
cmtlcnMvZm9ybS1kYXRhLXVwbG9hZC13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEtdXBsb2FkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvY3JlYXRlLXRlbXAtZmlsZS1p
ZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jl
c291cmNlcy9yZXNldC10ZW1wLWZpbGUucHk6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvdGVtcC1maWxlLXV0aWxzLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3RvdWNoLXRlbXAtZmlsZS5w
eTogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy93
cml0ZS10ZW1wLWZpbGUucHk6IEFkZGVkLgorCiAyMDIyLTAxLTAzICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHN1cmUgc2VjdXJlIHdlYnNvY2tldCBj
b25uZWN0aW9ucyBpbiBzZXJ2aWNlIHdvcmtlcnMgY2FuIHRyaWdnZXIgYXV0aGVudGljYXRpb24g
Y2hhbGxlbmdlIGNhbGxiYWNrcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNzI1
ZmY3MWNlZWU0OWVmYmE4MGIxMTUwMGZhN2NkMzMxZDk4NGMyNC4uM2RlYTYzZDBlMGRhZDE2ODFl
YmZkMTNkMzkwNGUxZGZmYTdmYjcxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjItMDEtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBzZWN1cmUgd2Vic29ja2V0IGNvbm5lY3Rpb25zIGlu
IHNlcnZpY2Ugd29ya2VycyBjYW4gdHJpZ2dlciBhdXRoZW50aWNhdGlvbiBjaGFsbGVuZ2UgY2Fs
bGJhY2tzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzQ4MDkKKyAgICAgICAgPHJkYXI6Ly84NTg4ODE3Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5h
bnktZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkv
cmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQ6
CisKIDIwMjItMDEtMDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1dlYiBBbmltYXRpb25zXSBnZXRLZXlmcmFtZXMoKSBzaG91bGQgaGFuZGxlIG11bHRp
cGxlIDAlIGFuZCAxMDAlIGtleWZyYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvZmV0Y2gvcmVxdWVzdC1jb25zdW1lLXN0cmVhbS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLWV4cGVjdGVkLnR4dAppbmRl
eCBjZGQ2Njk4MjIzNTBlNGIwYTVhNDc5ZmIwZmFjYmVhNjVjM2IyNGU4Li4zNWFjNzdiNTRlZmQ1
YmFhMTkxNjQ3YjA2NzNlOTY4ZGEzNzk3NjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9mZXRjaC9yZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLWV4cGVjdGVkLnR4
dApAQCAtMSw5ICsxLDEwIEBACiAKLUZBSUwgUmVhZCBlbXB0eSB0ZXh0IHJlcXVlc3QncyBib2R5
IGFzIHJlYWRhYmxlU3RyZWFtIGFzc2VydF9hcnJheV9lcXVhbHM6IFJldHJpZXZlIGFuZCB2ZXJp
Znkgc3RyZWFtIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBvYmplY3QgIiIgbGVuZ3Ro
IDAsIGdvdCBvYmplY3QgIjEyMywzNCwxMDcsMTAxLDEyMSwzNCw1OCwzMiwzNCwxMTgsOTcsMTA4
LDExNywxMDEsMzQsMTI1IiBsZW5ndGggMTYKLUZBSUwgUmVhZCBlbXB0eSBibG9iIHJlcXVlc3Qn
cyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIGFzc2VydF9hcnJheV9lcXVhbHM6IFJldHJpZXZlIGFu
ZCB2ZXJpZnkgc3RyZWFtIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBvYmplY3QgIiIg
bGVuZ3RoIDAsIGdvdCBvYmplY3QgIjEyMywzNCwxMDcsMTAxLDEyMSwzNCw1OCwzMiwzNCwxMTgs
OTcsMTA4LDExNywxMDEsMzQsMTI1IiBsZW5ndGggMTYKLUZBSUwgUmVhZCBibG9iIHJlcXVlc3Qn
cyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtIGFzc2VydF9hcnJheV9lcXVhbHM6IFJldHJpZXZlIGFu
ZCB2ZXJpZnkgc3RyZWFtIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBvYmplY3QgIjEx
NSwzMiwxMDUsMTE1LDMyLDExNCwxMDEsMTEzLDExNywxMDEsMTE1LDExNiwzOSwxMTUsMzIsOTgs
MTExLDEwMCwxMjEsMzQiIGxlbmd0aCAyNCwgZ290IG9iamVjdCAiMTIzLDM0LDEwNywxMDEsMTIx
LDM0LDU4LDMyLDM0LDExOCw5NywxMDgsMTE3LDEwMSwzNCwxMjUiIGxlbmd0aCAxNgotRkFJTCBS
ZWFkIHRleHQgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0gYXNzZXJ0X2FycmF5X2Vx
dWFsczogUmV0cmlldmUgYW5kIHZlcmlmeSBzdHJlYW0gbGVuZ3RocyBkaWZmZXIsIGV4cGVjdGVk
IGFycmF5IG9iamVjdCAiMTE1LDMyLDEwNSwxMTUsMzIsMTE0LDEwMSwxMTMsMTE3LDEwMSwxMTUs
MTE2LDM5LDExNSwzMiw5OCwxMTEsMTAwLDEyMSwzNCIgbGVuZ3RoIDI0LCBnb3Qgb2JqZWN0ICIx
MjMsMzQsMTA3LDEwMSwxMjEsMzQsNTgsMzIsMzQsMTE4LDk3LDEwOCwxMTcsMTAxLDM0LDEyNSIg
bGVuZ3RoIDE2Ci1GQUlMIFJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlcXVlc3QncyBib2R5IGFzIHJl
YWRhYmxlU3RyZWFtIGFzc2VydF9hcnJheV9lcXVhbHM6IFJldHJpZXZlIGFuZCB2ZXJpZnkgc3Ry
ZWFtIGxlbmd0aHMgZGlmZmVyLCBleHBlY3RlZCBhcnJheSBvYmplY3QgIjExMCw5NywxMDksMTAx
LDYxLDExOCw5NywxMDgsMTE3LDEwMSIgbGVuZ3RoIDEwLCBnb3Qgb2JqZWN0ICIxMjMsMzQsMTA3
LDEwMSwxMjEsMzQsNTgsMzIsMzQsMTE4LDk3LDEwOCwxMTcsMTAxLDM0LDEyNSIgbGVuZ3RoIDE2
Ci1GQUlMIFJlYWQgYXJyYXkgYnVmZmVyIHJlcXVlc3QncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFt
IGFzc2VydF9hcnJheV9lcXVhbHM6IFJldHJpZXZlIGFuZCB2ZXJpZnkgc3RyZWFtIGxlbmd0aHMg
ZGlmZmVyLCBleHBlY3RlZCBhcnJheSBvYmplY3QgIjExNSwzMiwxMDUsMTE1LDMyLDExNCwxMDEs
MTEzLDExNywxMDEsMTE1LDExNiwzOSwxMTUsMzIsOTgsMTExLDEwMCwxMjEsMzQiIGxlbmd0aCAy
NCwgZ290IG9iamVjdCAiMTIzLDM0LDEwNywxMDEsMTIxLDM0LDU4LDMyLDM0LDExOCw5NywxMDgs
MTE3LDEwMSwzNCwxMjUiIGxlbmd0aCAxNgotRkFJTCBSZWFkIGZvcm0gZGF0YSByZXF1ZXN0J3Mg
Ym9keSBhcyByZWFkYWJsZVN0cmVhbSBhc3NlcnRfYXJyYXlfZXF1YWxzOiBSZXRyaWV2ZSBhbmQg
dmVyaWZ5IHN0cmVhbSBsZW5ndGhzIGRpZmZlciwgZXhwZWN0ZWQgYXJyYXkgb2JqZWN0ICIxMTAs
OTcsMTA5LDEwMSw2MSwxMTgsOTcsMTA4LDExNywxMDEiIGxlbmd0aCAxMCwgZ290IG9iamVjdCAi
MTIzLDM0LDEwNywxMDEsMTIxLDM0LDU4LDMyLDM0LDExOCw5NywxMDgsMTE3LDEwMSwzNCwxMjUi
IGxlbmd0aCAxNgorUEFTUyBSZWFkIGVtcHR5IHRleHQgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFi
bGVTdHJlYW0KK1BBU1MgUmVhZCBlbXB0eSBibG9iIHJlcXVlc3QncyBib2R5IGFzIHJlYWRhYmxl
U3RyZWFtCitQQVNTIFJlYWQgYmxvYiByZXF1ZXN0J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQor
UEFTUyBSZWFkIHRleHQgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVh
ZCBVUkxTZWFyY2hQYXJhbXMgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1Mg
UmVhZCBhcnJheSBidWZmZXIgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1Mg
UmVhZCBmb3JtIGRhdGEgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJlYW0KK1BBU1MgUmVh
ZCBmb3JtIGRhdGEgd2l0aCBibG9iIHJlcXVlc3QncyBib2R5IGFzIHJlYWRhYmxlU3RyZWFtCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3QtY29uc3VtZS1z
dHJlYW0uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ZldGNoL3JlcXVlc3QtY29uc3VtZS1z
dHJlYW0uaHRtbAppbmRleCBhNThhNDcyMDA0M2NiOTQxMTcxYjczNjFlMDllYjhmMTQ5ZTJiYWI3
Li5jNDlhOTdjMmQ0ODQyNzRlZmY3OTEzNDZjNzNiYTU0ZTZjYzQyNTJlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC9mZXRjaC9yZXF1ZXN0LWNvbnN1bWUtc3RyZWFtLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvZmV0Y2gvcmVxdWVzdC1jb25zdW1lLXN0cmVhbS5odG1s
CkBAIC0xMSw5ICsxMSwyNSBAQAogICA8L2hlYWQ+CiAgIDxib2R5PgogICAgIDxzY3JpcHQ+Cith
c3luYyBmdW5jdGlvbiBnZXRTdHJpbmdGcm9tU3RyZWFtKHJlYWRlciwgY3VycmVudFZhbHVlKSB7
CisgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRlci5yZWFkKCk7CisgICAgaWYgKCFkYXRhLmRv
bmUpIHsKKyAgICAgICAgbGV0IGJ1ZmZlcjsKKyAgICAgICAgaWYgKGN1cnJlbnRWYWx1ZSkgewor
ICAgICAgICAgICAgY29uc3QgbmV3QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKGRhdGEudmFsdWUu
bGVuZ3RoICsgY3VycmVudFZhbHVlLmxlbmd0aCk7CisgICAgICAgICAgICBidWZmZXIgPSBuZXcg
VWludDhBcnJheShuZXdCdWZmZXIpOworICAgICAgICAgICAgYnVmZmVyLnNldChjdXJyZW50VmFs
dWUsIDApOworICAgICAgICAgICAgYnVmZmVyLnNldChkYXRhLnZhbHVlLCBjdXJyZW50VmFsdWUu
bGVuZ3RoKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBidWZmZXIgPSBkYXRhLnZhbHVl
OworICAgICAgICByZXR1cm4gZ2V0U3RyaW5nRnJvbVN0cmVhbShyZWFkZXIsIGJ1ZmZlcik7Cisg
ICAgfQorICAgIHJldHVybiAobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoY3VycmVudFZhbHVlKTsK
K30KKwogZnVuY3Rpb24gY3JlYXRlUmVxdWVzdFdpdGhCb2R5KGJvZHkpCiB7Ci0gICAgcmV0dXJu
IG5ldyBSZXF1ZXN0KCIiLCB7Ym9keTogIntcImtleVwiOiBcInZhbHVlXCJ9IiwgbWV0aG9kOiAi
UE9TVCJ9KTsKKyAgICByZXR1cm4gbmV3IFJlcXVlc3QoIiIsIHtib2R5OiBib2R5LCBtZXRob2Q6
ICJQT1NUIn0pOwogfQogCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVzdCkgewpAQCAtNTgsMTAg
Kzc0LDI5IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbih0ZXN0KSB7CiAgICAgcmV0dXJuIHZhbGlk
YXRlU3RyZWFtRnJvbVN0cmluZyhjcmVhdGVSZXF1ZXN0V2l0aEJvZHkoYXJyYXlCdWZmZXIpLmJv
ZHkuZ2V0UmVhZGVyKCksIHRleHREYXRhKTsKIH0sICJSZWFkIGFycmF5IGJ1ZmZlciByZXF1ZXN0
J3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbSIpOwogCi1wcm9taXNlX3Rlc3QoZnVuY3Rpb24odGVz
dCkgeworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiAgICAgdmFyIHJlcXVlc3QgPSBj
cmVhdGVSZXF1ZXN0V2l0aEJvZHkoZm9ybURhdGEpOwotICAgIHJldHVybiB2YWxpZGF0ZVN0cmVh
bUZyb21TdHJpbmcocmVxdWVzdC5ib2R5LmdldFJlYWRlcigpLCAibmFtZT12YWx1ZSIpOworICAg
IGNvbnN0IHZhbHVlID0gYXdhaXQgZ2V0U3RyaW5nRnJvbVN0cmVhbShyZXF1ZXN0LmJvZHkuZ2V0
UmVhZGVyKCkpOworCisgICAgYXNzZXJ0X3RydWUodmFsdWUuaW5jbHVkZXMoJ25hbWU9Im5hbWUi
JyksICJuYW1lIik7CisgICAgYXNzZXJ0X3RydWUodmFsdWUuaW5jbHVkZXMoJ3ZhbHVlJyksICJu
YW1lIik7CiB9LCAiUmVhZCBmb3JtIGRhdGEgcmVxdWVzdCdzIGJvZHkgYXMgcmVhZGFibGVTdHJl
YW0iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgY29uc3QgZm9ybURh
dGEgPSBuZXcgRm9ybURhdGEoKTsKKyAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoWyInSGVsbG8n
Il0sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pOworICAgIGZvcm1EYXRhLmFwcGVuZCgiYmxv
YiIsIGJsb2IsICJibG9iLmZpbGUiKTsKKyAgICBmb3JtRGF0YS5hcHBlbmQoIm5hbWUiLCAidmFs
dWUiKTsKKworICAgIGNvbnN0IHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0V2l0aEJvZHkoZm9ybURh
dGEpOworICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgZ2V0U3RyaW5nRnJvbVN0cmVhbShyZXF1ZXN0
LmJvZHkuZ2V0UmVhZGVyKCkpOworCisgICAgYXNzZXJ0X3RydWUodmFsdWUuaW5jbHVkZXMoJ25h
bWU9Im5hbWUiJyksICJuYW1lIik7CisgICAgYXNzZXJ0X3RydWUodmFsdWUuaW5jbHVkZXMoJ3Zh
bHVlJyksICJuYW1lIik7CisKKyAgICBhc3NlcnRfdHJ1ZSh2YWx1ZS5pbmNsdWRlcygnbmFtZT0i
YmxvYiInKSwgImJsb2IiKTsKKyAgICBhc3NlcnRfdHJ1ZSh2YWx1ZS5pbmNsdWRlcygnSGVsbG8n
KSwgIkhlbGxvIik7Cit9LCAiUmVhZCBmb3JtIGRhdGEgd2l0aCBibG9iIHJlcXVlc3QncyBib2R5
IGFzIHJlYWRhYmxlU3RyZWFtIik7CiAgICAgPC9zY3JpcHQ+CiAgIDwvYm9keT4KIDwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRh
dGEtdXBsb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9mb3JtLWRhdGEtdXBsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYmRjM2M4ZTlm
NjBiZWJlZjk4ZWE3NjFlNThlZGMyNWYxYzFkNmFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zvcm0tZGF0YS11cGxvYWQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK09QRU4gRklMRSBQQU5FTAorCisKK1BBU1MgU2V0dXAgd29y
a2VyCitQQVNTIENyZWF0ZSBjaGFubmVsIHdpdGggd29ya2VyCitQQVNTIFNldHVwIGZyYW1lCitQ
QVNTIFNldHVwIGZpbGUgdG8gdXBsb2FkCitQQVNTIFNldHVwIGZpbGUgZm9ybSBkYXRhCitQQVNT
IFVwbG9hZCBpbnRlcmNlcHRlZCBieSBzZXJ2aWNlIHdvcmtlcgorUEFTUyBVcGxvYWQgY2xvbmVk
IGJ5IHNlcnZpY2Ugd29ya2VyCitQQVNTIERlbGV0ZSB0ZW1wb3JhcnkgZmlsZQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1kYXRhLXVwbG9h
ZC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvZm9ybS1k
YXRhLXVwbG9hZC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTViZTM4OTYxOGVhOWFjZTE5Mjk2ZTU2
YzM3N2VkMTYxYjA0OTk2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEtdXBsb2FkLXdvcmtlci5qcwpAQCAtMCwwICsxLDE4
IEBACithZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgYXN5bmMgKGUpID0+IHsKKyAgICBpZiAo
IWUuZGF0YS5wb3J0KQorICAgICAgICByZXR1cm47CisKKyAgICBzZWxmLnBvcnQgPSBlLmRhdGEu
cG9ydDsKKyAgICBzZWxmLnBvcnQucG9zdE1lc3NhZ2UoIm9rIik7Cit9KTsKKworYWRkRXZlbnRM
aXN0ZW5lcigiZmV0Y2giLCBhc3luYyAoZSkgPT4geworICAgIGlmIChlLnJlcXVlc3QudXJsLmlu
Y2x1ZGVzKCJjbG9uZSIpKSB7CisgICAgICAgIGNvbnN0IGNsb25lZCA9IGUucmVxdWVzdC5jbG9u
ZSgpOworICAgICAgICBlLnJlc3BvbmRXaXRoKGZldGNoKGUucmVxdWVzdC5jbG9uZSgpKSk7Cisg
ICAgICAgIGlmIChzZWxmLnBvcnQpCisgICAgICAgICAgICBzZWxmLnBvcnQucG9zdE1lc3NhZ2Uo
YXdhaXQgY2xvbmVkLnRleHQoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZS5yZXNw
b25kV2l0aChmZXRjaChlLnJlcXVlc3QpKTsKK30pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvc2VydmljZS13b3JrZXJzL2Zvcm0tZGF0YS11cGxvYWQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEtdXBsb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDgzMTdkMjczYjUzYTBjNjE0YjU3YmVmN2QzZmNiNDEzMjNkY2Y5YwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9mb3JtLWRhdGEt
dXBsb2FkLmh0bWwKQEAgLTAsMCArMSwxNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvd2Via2l0LXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Citjb25zdCB0ZW1wRmlsZUNvbnRlbnQgPSAi
VEVTVCI7Citjb25zdCB0ZW1wRmlsZU5hbWUgPSAidGVzdC50bXAiOworCit2YXIgZmlsZUlucHV0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW5wdXQiKTsKK2ZpbGVJbnB1dC50eXBlID0gJ2Zp
bGUnOworZmlsZUlucHV0LnN0eWxlLndpZHRoID0gIjEwMCUiOyAvLyBTbyB0aGF0IGFueSBtYW51
YWwgdGVzdGluZyB3aWxsIHNob3cgZnVsbCBmaWxlIG5hbWVzCitkb2N1bWVudC5ib2R5Lmluc2Vy
dEJlZm9yZShmaWxlSW5wdXQsIGRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CisKK3ZhciBzY29w
ZSA9ICJyZXNvdXJjZXMiOwordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciBmcmFtZTsKK3ZhciBmaWxl
RnJhbWU7Cit2YXIgZm9ybURhdGE7Cit2YXIgZmlsZVNpemU7CisKK2Z1bmN0aW9uIHdpdGhfaWZy
YW1lKHVybCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlKSB7Cisg
ICAgICAgIHZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAg
ICAgICBmcmFtZS5jbGFzc05hbWUgPSAndGVzdC1pZnJhbWUnOworICAgICAgICBmcmFtZS5zcmMg
PSB1cmw7CisgICAgICAgIGZyYW1lLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeyByZXNvbHZlKGZyYW1l
KTsgfTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmcmFtZSk7CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIHByZXBhcmVVcGxvYWQoKQoreworICAgIGxldCByZXNvbHZlLCByZWpl
Y3Q7CisgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlXywgcmVqZWN0Xykg
PT4geworICAgICAgICByZXNvbHZlID0gcmVzb2x2ZV87CisgICAgICAgIHJlamVjdCA9IHJlamVj
dF87CisgICAgfSk7CisgICAgc2V0VGltZW91dCgoKSA9PiByZWplY3QoInRlc3QgdGltZWQgb3V0
IiksIDUwMDApOworCisgICAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlucHV0IilbMF07CisgICAgaW5wdXQub25jaGFuZ2UgPSBhc3luYyAoZSkgPT4geworICAg
ICAgICB2YXIgZm9ybURhdGEgPSBuZXcgRm9ybURhdGE7CisgICAgICAgIGZvcm1EYXRhLmFwcGVu
ZCgiZmlsZSIsIGUudGFyZ2V0LmZpbGVzWzBdLCB0ZW1wRmlsZU5hbWUpOworICAgICAgICBmaWxl
U2l6ZSA9IGUudGFyZ2V0LmZpbGVzWzBdLnNpemU7CisgICAgICAgIHJlc29sdmUoZm9ybURhdGEp
OworICAgIH07CisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRPcGVuUGFuZWxGaWxlcyhbdGVtcEZpbGVQYXRoXSk7CisKKyAgICAgICAgdmFyIGNl
bnRlclggPSBpbnB1dC5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0V2lkdGggLyAyOworICAgICAg
ICB2YXIgY2VudGVyWSA9IGlucHV0Lm9mZnNldFRvcCArIGlucHV0Lm9mZnNldEhlaWdodCAvIDI7
CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoY2VudGVyWCwgY2VudGVyWSk7CisgICAgfQor
ICAgIHJldHVybiBwcm9taXNlOworfQorCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VT
ZXBhcmF0ZVNlcnZpY2VXb3JrZXJQcm9jZXNzKHRydWUpOworICAgICAgICBhd2FpdCBmZXRjaCgi
IikudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgfQorCisgICAgdmFyIHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJmb3JtLWRhdGEt
dXBsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiBzY29wZSB9KTsKKyAgICBhY3RpdmVXb3JrZXIg
PSByZWdpc3RyYXRpb24uYWN0aXZlOworICAgIGlmICghYWN0aXZlV29ya2VyKSB7CisgICAgICAg
IGFjdGl2ZVdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOworICAgICAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICAgICAgICAgIGFjdGl2ZVdvcmtlci5hZGRFdmVu
dExpc3RlbmVyKCdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAoYWN0
aXZlV29ya2VyLnN0YXRlID09PSAiYWN0aXZhdGVkIikKKyAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KK30sICJTZXR1cCB3
b3JrZXIiKTsKKworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNzYWdlQ2hhbm5lbCgpOworcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsg
cG9ydDogY2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0pOworICAgIGF3YWl0IG5ldyBQ
cm9taXNlKHJlc29sdmUgPT4gY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2UgPSByZXNvbHZlKTsKK30s
ICJDcmVhdGUgY2hhbm5lbCB3aXRoIHdvcmtlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRl
c3QpID0+IHsKKyAgICBmcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCJyZXNvdXJjZXMvIik7Cit9
LCAiU2V0dXAgZnJhbWUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
Y29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gd2luZG93Lm9ubWVzc2FnZSA9
IHJlc29sdmUpOworICAgIGZpbGVGcmFtZSA9IGF3YWl0IHdpdGhfaWZyYW1lKCIvV2ViS2l0L3Nl
cnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvY3JlYXRlLXRlbXAtZmlsZS1pZnJhbWUuaHRtbCIpOwor
ICAgIGxldCBldmVudCA9IGF3YWl0IHByb21pc2U7CisgICAgdGVtcEZpbGVQYXRoID0gZXZlbnQu
ZGF0YTsKK30sICJTZXR1cCBmaWxlIHRvIHVwbG9hZCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
KHRlc3QpID0+IHsKKyAgICBmb3JtRGF0YSA9IGF3YWl0IHByZXBhcmVVcGxvYWQoKTsKKyAgICBh
c3NlcnRfZXF1YWxzKGZpbGVTaXplLCA0KTsKK30sICJTZXR1cCBmaWxlIGZvcm0gZGF0YSIpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBjb25zdCBibG9iID0gbmV3IEJs
b2IoWyInSGVsbG8nIl0sIHsgInR5cGUiIDogInRleHQvcGxhaW4iIH0pOworICAgIGZvcm1EYXRh
LmFwcGVuZCgiYmxvYiIsIGJsb2IsICJibG9iLmZpbGUiKTsKKyAgICBmb3JtRGF0YS5hcHBlbmQo
Im5hbWUiLCAidmFsdWUiKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZnJhbWUuY29u
dGVudFdpbmRvdy5mZXRjaCgiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL2ZpbGUt
dXBsb2FkLWNoZWNrLnB5Iiwge21ldGhvZDogIlBPU1QiLCBib2R5OiBmb3JtRGF0YX0pOworICAg
IGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7CisKKyAgICBhc3NlcnRfdHJ1ZSh0
ZXh0LmluY2x1ZGVzKHRlbXBGaWxlQ29udGVudCksICJjb250ZW50Iik7CisgICAgYXNzZXJ0X3Ry
dWUodGV4dC5pbmNsdWRlcyh0ZW1wRmlsZU5hbWUpLCAibmFtZSIpOworCisgICAgYXNzZXJ0X3Ry
dWUodGV4dC5pbmNsdWRlcygnbmFtZT0ibmFtZSInKSwgIm5hbWUiKTsKKyAgICBhc3NlcnRfdHJ1
ZSh0ZXh0LmluY2x1ZGVzKCd2YWx1ZScpLCAibmFtZSIpOworCisgICAgYXNzZXJ0X3RydWUodGV4
dC5pbmNsdWRlcygnbmFtZT0iYmxvYiInKSwgImJsb2IiKTsKKyAgICBhc3NlcnRfdHJ1ZSh0ZXh0
LmluY2x1ZGVzKCdIZWxsbycpLCAiSGVsbG8iKTsKK30sICJVcGxvYWQgaW50ZXJjZXB0ZWQgYnkg
c2VydmljZSB3b3JrZXIiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CisgICAg
Y29uc3QgYmxvYiA9IG5ldyBCbG9iKFsiJ0hlbGxvJyJdLCB7ICJ0eXBlIiA6ICJ0ZXh0L3BsYWlu
IiB9KTsKKyAgICBmb3JtRGF0YS5hcHBlbmQoImJsb2IiLCBibG9iLCAiYmxvYi5maWxlIik7Cisg
ICAgZm9ybURhdGEuYXBwZW5kKCJuYW1lIiwgInZhbHVlIik7CisKKyAgICBjb25zdCBtZXNzYWdl
UHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2Ug
PSAoZSkgPT4gcmVzb2x2ZShlLmRhdGEpKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQg
ZnJhbWUuY29udGVudFdpbmRvdy5mZXRjaCgiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3Vy
Y2VzL2ZpbGUtdXBsb2FkLWNoZWNrLnB5P2Nsb25lIiwge21ldGhvZDogIlBPU1QiLCBib2R5OiBm
b3JtRGF0YX0pOworICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXNwb25zZS50ZXh0KCk7CisKKyAg
ICBjb25zdCBtZXNzYWdlVGV4dCA9IGF3YWl0IG1lc3NhZ2VQcm9taXNlOworICAgIGFzc2VydF9l
cXVhbHModGV4dCwgbWVzc2FnZVRleHQpOworCisgICAgYXNzZXJ0X3RydWUodGV4dC5pbmNsdWRl
cygnbmFtZT0ibmFtZSInKSwgIm5hbWUiKTsKKyAgICBhc3NlcnRfdHJ1ZSh0ZXh0LmluY2x1ZGVz
KCd2YWx1ZScpLCAibmFtZSIpOworCisgICAgYXNzZXJ0X3RydWUodGV4dC5pbmNsdWRlcygnbmFt
ZT0iYmxvYiInKSwgImJsb2IiKTsKKyAgICBhc3NlcnRfdHJ1ZSh0ZXh0LmluY2x1ZGVzKCdIZWxs
bycpLCAiSGVsbG8iKTsKK30sICJVcGxvYWQgY2xvbmVkIGJ5IHNlcnZpY2Ugd29ya2VyIik7CisK
K3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGF3YWl0IHdpdGhfaWZyYW1lKCIv
V2ViS2l0L3Jlc291cmNlcy9kZWxldGUtdGVtcC1maWxlLWlmcmFtZS5odG1sIik7Cit9LCAiRGVs
ZXRlIHRlbXBvcmFyeSBmaWxlIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvY3Jl
YXRlLXRlbXAtZmlsZS1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Ut
d29ya2Vycy9yZXNvdXJjZXMvY3JlYXRlLXRlbXAtZmlsZS1pZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40M2Q5ZjcyODA3MGE3ZjhiMGIyM2MzNGM0ZDljYzIxMTIxZTYyNDM5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9jcmVh
dGUtdGVtcC1maWxlLWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJ0ZW1wLWZpbGUtdXRpbHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2NvbnN0IHRlbXBGaWxlQ29udGVudCA9ICJURVNUIjsKK2NvbnN0IHRl
bXBGaWxlTmFtZSA9ICJ0ZXN0LnRtcCI7CisKK2NvbnN0IHBhdGggPSBjcmVhdGVUZW1wRmlsZSh0
ZW1wRmlsZU5hbWUsIHRlbXBGaWxlQ29udGVudCk7Cit3aW5kb3cucGFyZW50LnBvc3RNZXNzYWdl
KHBhdGgsICIqIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcmVzZXQtdGVtcC1m
aWxlLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9y
ZXNldC10ZW1wLWZpbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTU5OWNkNDZhYzI5YmVmZTZmYzk1ZDA4YzQ5
MTM0MTNlMzAzMzdlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3Nl
cnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcmVzZXQtdGVtcC1maWxlLnB5CkBAIC0wLDAgKzEsMTEg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKK2ltcG9ydCBvcworaW1wb3J0IHRlbXBmaWxlCisK
KworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGZpbGVuYW1lID0gcmVxdWVzdC5H
RVRbYidmaWxlbmFtZSddCisgICAgc3RhdGVfZmlsZSA9IG9zLnBhdGguam9pbih0ZW1wZmlsZS5n
ZXR0ZW1wZGlyKCksIGZpbGVuYW1lLmRlY29kZSgpKQorICAgIGlmIG9zLnBhdGguZXhpc3RzKHN0
YXRlX2ZpbGUpOgorICAgICAgICBvcy5yZW1vdmUoc3RhdGVfZmlsZSkKKyAgICByZXR1cm4gMjAw
LCBbKGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKV0sICIiCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3RlbXAtZmlsZS11dGls
cy5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvdGVt
cC1maWxlLXV0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0Y2U1YzRmYjg2OGM5N2QyMjQxNzUxYTZjMDBj
YjAzYTRlMDkzNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2
aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3RlbXAtZmlsZS11dGlscy5qcwpAQCAtMCwwICsxLDMyIEBA
CitmdW5jdGlvbiBjcmVhdGVUZW1wRmlsZShmaWxlTmFtZSwgZmlsZURhdGEpCit7CisgICAgdmFy
IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJQT1NUIiwgIi9XZWJL
aXQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy93cml0ZS10ZW1wLWZpbGUucHk/ZmlsZW5hbWU9
IiArIGZpbGVOYW1lICsgIiZkYXRhPSIgKyBmaWxlRGF0YSwgZmFsc2UpOworICAgIHhoci5zZW5k
KCk7CisgICAgaWYgKHhoci5zdGF0dXMgIT0gMjAwKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIlVu
ZXhwZWN0ZWQgcmVzcG9uc2Ugc3RhdHVzIHJlY2VpdmVkOiAiICsgeGhyLnN0YXR1cyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICB2YXIgdmFsdWVzID0geGhyLnJlc3BvbnNlVGV4dC5z
cGxpdCgnXG4nKTsKKyAgICBpZiAoeGhyLnJlc3BvbnNlVGV4dC5pbmRleE9mKCJGQUlMIikgPT0g
MCkgeworICAgICAgICB0ZXN0RmFpbGVkKCJVbmV4cGVjdGVkIHJlc3BvbnNlIHRleHQgcmVjZWl2
ZWQ6ICIgKyB4aHIucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IHJldHVybiB4aHIucmVzcG9uc2VUZXh0OworfQorCitmdW5jdGlvbiB0b3VjaFRlbXBGaWxlKGZp
bGVOYW1lKQoreworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIu
b3BlbigiUE9TVCIsICIvV2ViS2l0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvdG91Y2gtdGVt
cC1maWxlLnB5P2ZpbGVuYW1lPSIgKyBmaWxlTmFtZSwgZmFsc2UpOworICAgIHhoci5zZW5kKCk7
Cit9CisKK2Z1bmN0aW9uIHJlbW92ZVRlbXBGaWxlKGZpbGVOYW1lKQoreworICAgIHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiUE9TVCIsICIvV2ViS2l0L3Nl
cnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvcmVzZXQtdGVtcC1maWxlLnB5P2ZpbGVuYW1lPSIgKyBm
aWxlTmFtZSwgZmFsc2UpOworICAgIHhoci5zZW5kKCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3RvdWNoLXRlbXAtZmlsZS5w
eSBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvdG91Y2gt
dGVtcC1maWxlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0ZDk2NDFmNTIyMzAyMjQ0NzYyOGEyYTJkYjVmMjNl
ZWRhYWE3NjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcmVzb3VyY2VzL3RvdWNoLXRlbXAtZmlsZS5weQpAQCAtMCwwICsxLDIxIEBACisj
IS91c3IvYmluL2VudiBweXRob24zCisKK2ltcG9ydCBvcworaW1wb3J0IHRlbXBmaWxlCisKKwor
ZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIGZpbGVuYW1lID0gcmVxdWVzdC5HRVRb
YidmaWxlbmFtZSddCisgICAgdG1wRmlsZVBhdGggPSBvcy5wYXRoLmpvaW4odGVtcGZpbGUuZ2V0
dGVtcGRpcigpLCBmaWxlbmFtZS5kZWNvZGUoKSkKKyAgICBzdGF0ID0gb3Muc3RhdCh0bXBGaWxl
UGF0aCkKKworICAgIGlmIG5vdCBzdGF0OgorICAgICAgICByZXR1cm4gMjAwLCBbKGIiQ29udGVu
dC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKV0sICJGQUlMOiBzdGF0KCkgY2FsbCBmYWlsZWQuXG4iCisK
KyAgICBhdGltZSA9IHN0YXQuc3RfYXRpbWUKKyAgICBtdGltZSA9IHN0YXQuc3RfbXRpbWUKKyAg
ICB0cnk6CisgICAgICAgIG9zLnV0aW1lKHRtcEZpbGVQYXRoLCB0aW1lcz0oYXRpbWUsIG10aW1l
ICsgMSkpCisgICAgZXhjZXB0OgorICAgICAgICByZXR1cm4gMjAwLCBbKGIiQ29udGVudC1UeXBl
IiwgYiJ0ZXh0L2h0bWwiKV0sICJGQUlMOiB0b3VjaCgpIGNhbGwgZmFpbGVkLlxuIgorICAgIHJl
dHVybiAyMDAsIFsoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpXSwgIiIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvd3JpdGUt
dGVtcC1maWxlLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291
cmNlcy93cml0ZS10ZW1wLWZpbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNmMmNmOGIyZmIxMTIzMDg3Nzlj
N2ZiZjA1MjlhMWRlMDY1MGYwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvd3JpdGUtdGVtcC1maWxlLnB5CkBAIC0wLDAg
KzEsMTYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9zCitpbXBvcnQgc3lz
CitpbXBvcnQgdGVtcGZpbGUKKworCitkZWYgbWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAg
ZmlsZW5hbWUgPSByZXF1ZXN0LkdFVFtiJ2ZpbGVuYW1lJ10KKyAgICBkYXRhID0gcmVxdWVzdC5H
RVRbYidkYXRhJ10KKworICAgIHRtcF9maWxlID0gb3MucGF0aC5qb2luKHRlbXBmaWxlLmdldHRl
bXBkaXIoKSwgZmlsZW5hbWUuZGVjb2RlKCkpCisgICAgd2l0aCBvcGVuKHRtcF9maWxlLCAndycp
IGFzIG9wZW5fZmlsZToKKyAgICAgICAgb3Blbl9maWxlLndyaXRlKGRhdGEuZGVjb2RlKCkpCisK
KyAgICByZXR1cm4gMjAwLCBbKGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKV0sIHRtcF9m
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3Bv
bnNlL3Jlc3BvbnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0CmluZGV4IGExMGI4ZjI2NjgxMmZlYmFm
YmFjMWE2ZWM1NmFhODUzNjgxZWRlOTguLjE4MGM4NzMxMjhmM2MxYzNiNjViNDdkNGUxMGMzNWYz
ZDYzZjk5ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gv
YXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtZXhwZWN0ZWQudHh0CkBAIC0zOCw1ICszOCw1
IEBAIFBBU1MgQ29uc3VtZSByZXNwb25zZSdzIGJvZHk6IGZyb20gZmV0Y2ggdG8gYmxvYgogUEFT
UyBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keTogZnJvbSBmZXRjaCB0byB0ZXh0CiBQQVNTIENvbnN1
bWUgcmVzcG9uc2UncyBib2R5OiBmcm9tIGZldGNoIHRvIGFycmF5QnVmZmVyCiBQQVNTIENvbnN1
bWUgcmVzcG9uc2UncyBib2R5OiBmcm9tIGZldGNoIHdpdGhvdXQgY29ycmVjdCB0eXBlIHRvIGZv
cm1EYXRhIChlcnJvciBjYXNlKQotRkFJTCBDb25zdW1lIHJlc3BvbnNlJ3MgYm9keTogZnJvbSBt
dWx0aXBhcnQgZm9ybSBkYXRhIGJsb2IgdG8gZm9ybURhdGEgcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBv
cGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4iCitQQVNTIENvbnN1bWUgcmVzcG9uc2UncyBib2R5
OiBmcm9tIG11bHRpcGFydCBmb3JtIGRhdGEgYmxvYiB0byBmb3JtRGF0YQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9y
ZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVhbS5hbnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2Uv
cmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55LWV4cGVjdGVkLnR4dAppbmRleCA4NGE2OWQ3NWM1
MWFlNjVhMzIwNjgzOWJmMDBkOWNlYTI4ODVhNmY3Li5kMWEyMjExY2ZjMTBiNDY3N2IwNTkyMTQy
NGNjNDM4NjViMTAyNTFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXNwb25zZS9yZXNwb25zZS1jb25zdW1lLXN0cmVh
bS5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3RyZWFtLmFu
eS1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFBBU1MgUmVhZCBibG9iIHJlc3BvbnNlJ3Mg
Ym9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFz
IHJlYWRhYmxlU3RyZWFtCiBQQVNTIFJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9k
eSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJv
ZHkgYXMgcmVhZGFibGVTdHJlYW0KLUZBSUwgUmVhZCBmb3JtIGRhdGEgcmVzcG9uc2UncyBib2R5
IGFzIHJlYWRhYmxlU3RyZWFtIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBOb3QgaW1wbGVtZW50ZWQiCitQQVNT
IFJlYWQgZm9ybSBkYXRhIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBH
ZXR0aW5nIGFuIGVycm9yIFJlc3BvbnNlIHN0cmVhbQogUEFTUyBHZXR0aW5nIGEgcmVkaXJlY3Qg
UmVzcG9uc2Ugc3RyZWFtCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3Jlc3BvbnNlL3Jlc3BvbnNlLWNvbnN1bWUtc3Ry
ZWFtLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJl
YW0uYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggODRhNjlkNzVjNTFhZTY1YTMyMDY4Mzli
ZjAwZDljZWEyODg1YTZmNy4uZDFhMjIxMWNmYzEwYjQ2NzdiMDU5MjE0MjRjYzQzODY1YjEwMjUx
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndvcmtlci1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9mZXRjaC9hcGkvcmVzcG9uc2UvcmVzcG9uc2UtY29uc3VtZS1zdHJlYW0uYW55Lndvcmtl
ci1leHBlY3RlZC50eHQKQEAgLTUsNyArNSw3IEBAIFBBU1MgUmVhZCBibG9iIHJlc3BvbnNlJ3Mg
Ym9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIHRleHQgcmVzcG9uc2UncyBib2R5IGFz
IHJlYWRhYmxlU3RyZWFtCiBQQVNTIFJlYWQgVVJMU2VhcmNoUGFyYW1zIHJlc3BvbnNlJ3MgYm9k
eSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBSZWFkIGFycmF5IGJ1ZmZlciByZXNwb25zZSdzIGJv
ZHkgYXMgcmVhZGFibGVTdHJlYW0KLUZBSUwgUmVhZCBmb3JtIGRhdGEgcmVzcG9uc2UncyBib2R5
IGFzIHJlYWRhYmxlU3RyZWFtIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRo
IHZhbHVlOiBvYmplY3QgIk5vdFN1cHBvcnRlZEVycm9yOiBOb3QgaW1wbGVtZW50ZWQiCitQQVNT
IFJlYWQgZm9ybSBkYXRhIHJlc3BvbnNlJ3MgYm9keSBhcyByZWFkYWJsZVN0cmVhbQogUEFTUyBH
ZXR0aW5nIGFuIGVycm9yIFJlc3BvbnNlIHN0cmVhbQogUEFTUyBHZXR0aW5nIGEgcmVkaXJlY3Qg
UmVzcG9uc2Ugc3RyZWFtCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448365</attachid>
            <date>2022-01-05 01:06:43 -0800</date>
            <delta_ts>2022-01-05 07:56:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-234809-20220105100640.patch</filename>
            <type>text/plain</type>
            <size>29751</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzdmMzE4ZGNiZWExMWRi
ODA1NzM5MjVjMGQxYzc5ZWUyNjZiNWZlNy4uMGVmMmQ5NzQ5YTViNDliMzM4NWM3NWFhMzRmN2Q1
YzVmOGU2MmE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAxLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgc2VjdXJl
IHdlYnNvY2tldCBjb25uZWN0aW9ucyBpbiBzZXJ2aWNlIHdvcmtlcnMgY2FuIHRyaWdnZXIgYXV0
aGVudGljYXRpb24gY2hhbGxlbmdlIGNhbGxiYWNrcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0ODA5CisgICAgICAgIDxyZGFyOi8vODU4ODgxNzc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuaDoKKwogMjAyMi0wMS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgVGlnaHRlbiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Ojpmcm9tRGF0
YWJhc2VLZXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggMzQ3OGRkMWFkMjg2NjE4NjhkMGIxYjU4YjNlMWUxMDc2MWEy
ZTU4OS4uODc3MWU2MzdhMTBiMWNhZTk4Zjk5OGU2MTMyMDk2NGE4ZGQ2OTRiMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNCBAQAorMjAyMi0wMS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWFrZSBzdXJlIHNlY3VyZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMg
aW4gc2VydmljZSB3b3JrZXJzIGNhbiB0cmlnZ2VyIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBj
YWxsYmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzNDgwOQorICAgICAgICA8cmRhcjovLzg1ODg4MTc3PgorCisgICAgICAgIFJldmlld2VkIGJ5
IENocmlzIER1bWV6LgorCisgICAgICAgIEluIGNhc2Ugd2UgYXJlIG5vdCB1c2luZyBmYXN0IHNl
cnZlciB0cnVzdCBldmFsdWF0aW9uLCB3ZSBhcmUgZ29pbmcgdG8gdGhlIFVJUHJvY2VzcyB0byBj
aGVjayBjZXJ0aWZpY2F0ZXMuCisgICAgICAgIFRoaXMgaXMgYW4gaXNzdWUgZm9yIHdlYiBzb2Nr
ZXQgbG9hZHMgdHJpZ2dlcmVkIGZvciBzZXJ2aWNlIHdvcmtlcnMgdGhhdCBoYXZlIGFuIGludmFs
aWQgY2VydGlmaWNhdGUuCisgICAgICAgIEJlZm9yZSB0aGUgcGF0Y2gsIHRoZSBjaGFsbGVuZ2Ug
d2FzIG5vdCBwcm92aWRlZCBhIHRvcCBvcmlnaW4sIHNvIHRoZSBkZWZhdWx0IGFjdGlvbiB3b3Vs
ZCBiZSB0cmlnZ2VyZWQgYnkgVUlQcm9jZXNzLgorICAgICAgICBUbyBtYWtlIHN1cmUgdGhpcyBp
cyB3b3JraW5nIGFzIGV4cGVjdGVkLCB3ZSBub3cgYWx3YXlzIHBhc3MgdGhlIG9yaWdpbiBpZiBp
dCBpcyB0aGUgc2FtZSBhcyB0aGUgdG9wIG9yaWdpbiBmb3Igd2ViIHNvY2tldCBjaGFsbGVuZ2Vz
LgorICAgICAgICBUaGlzIG1ha2VzIHN1cmUgd2UgZ2V0IGEgcGFnZSB3aXRoIHRoZSBzYW1lIHRv
cCBvcmlnaW4gYW5kIHRoZSBjaGFsbGVuZ2UgY2FsbGJhY2sgaXMgY2FsbGVkIG9uIHRoZSBwYWdl
LgorCisgICAgICAgIENvdmVyZWQgYnkgdXBkYXRlZCB0ZXN0cy4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtTZXNzaW9uQ29jb2EuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNv
Y2tldFRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL1dlYlNvY2tl
dFRhc2tDb2NvYS5tbToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNz
aW9uU291cC5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lv
blNvdXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5j
cHA6CisKIDIwMjItMDEtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JTcGVlY2hS
ZWNvZ25pdGlvbiBzaG91bGQgcmV0dXJuIGVhcmx5IGluIGNhc2Ugb2Ygbm8gY2FwdHVyZSBkZXZp
Y2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDgwNWQwY2I1NmE0MGE5MmZhZDIyYjc3ZDdlZGZj
MTZhZDY1NTRmNzIuLmMzNjY0N2FmZjg5NjY5NzNkZDhlNGZiN2E5ODNmYTZjYWQ3MmYzMmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDU1NSZWdp
c3RlcmVkQ3VzdG9tUHJvcGVydHkuaCIKICNpbmNsdWRlICJDYW52YXNCYXNlLmgiCisjaW5jbHVk
ZSAiQ2xpZW50T3JpZ2luLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJDb250YWlu
ZXJOb2RlLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCIKQEAgLTQ5LDYg
KzUwLDcgQEAKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRl
clB0ci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlN0cmluZ1dpdGhEaXJlY3Rpb24uaCIKICNpbmNs
dWRlICJTdXBwbGVtZW50YWJsZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0xMzgyLDYgKzEz
ODQsNyBAQCBwdWJsaWM6CiAKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBj
b25zdCB7IHJldHVybiAqU2VjdXJpdHlDb250ZXh0OjpzZWN1cml0eU9yaWdpbigpOyB9CiAgICAg
U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRvcERvY3Vt
ZW50KCkuc2VjdXJpdHlPcmlnaW4oKTsgfQorICAgIENsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4o
KSBjb25zdCB7IHJldHVybiB7IHRvcE9yaWdpbigpLmRhdGEoKSwgc2VjdXJpdHlPcmlnaW4oKS5k
YXRhKCkgfTsgfQogCiAgICAgaW5saW5lIGJvb2wgaXNTYW1lT3JpZ2luQXNUb3BEb2N1bWVudCgp
IGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRm9yY2VOb09wZW5lckJhc2VkT25DT09QKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDljNmRkOGNlNGQ4ZjA2YTIwM2I2NDBh
YTIyYTAyNWU5OTdmMzEwMzYuLjdiNjRlYWMwZTZhM2E5MDExNGZiODE5ODUzNGI1ZGQ5MmNiOWRh
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00MjksMTAgKzQyOSwxMCBAQCB2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRTdHJlYW0oVVJM
JiYgdXJsLCBTdHJpbmcgY2FjaGVQYQogICAgIG1fbmV0d29ya1NvY2tldFN0cmVhbXMuYWRkKGlk
ZW50aWZpZXIsIE5ldHdvcmtTb2NrZXRTdHJlYW06OmNyZWF0ZShtX25ldHdvcmtQcm9jZXNzLmdl
dCgpLCBXVEZNb3ZlKHVybCksIG1fc2Vzc2lvbklELCBjYWNoZVBhcnRpdGlvbiwgaWRlbnRpZmll
ciwgbV9jb25uZWN0aW9uLCBXVEZNb3ZlKHRva2VuKSkpOwogfQogCi12b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpjcmVhdGVTb2NrZXRDaGFubmVsKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCAgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCkKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVNvY2tldENoYW5uZWwoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJT
b2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbikKIHsKICAgICBBU1NF
UlQoIW1fbmV0d29ya1NvY2tldENoYW5uZWxzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBp
ZiAoYXV0byBjaGFubmVsID0gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZSgqdGhpcywgbV9z
ZXNzaW9uSUQsIHJlcXVlc3QsIHByb3RvY29sLCBpZGVudGlmaWVyLCB3ZWJQYWdlUHJveHlJRCkp
CisgICAgaWYgKGF1dG8gY2hhbm5lbCA9IE5ldHdvcmtTb2NrZXRDaGFubmVsOjpjcmVhdGUoKnRo
aXMsIG1fc2Vzc2lvbklELCByZXF1ZXN0LCBwcm90b2NvbCwgaWRlbnRpZmllciwgd2ViUGFnZVBy
b3h5SUQsIGNsaWVudE9yaWdpbikpCiAgICAgICAgIG1fbmV0d29ya1NvY2tldENoYW5uZWxzLmFk
ZChpZGVudGlmaWVyLCBXVEZNb3ZlKGNoYW5uZWwpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oCmluZGV4IGU4MTdiN2I2MmQyNDk3ODdkYzRhYjE5ZWRlYmIwYzRmNjg1MTJmMmUuLmI1OGEw
NGNkMmY1MTJjYWZiZWE3OGJmNDAxOTU5NTA3Zjk2ODEyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmgKQEAgLTI0Niw3ICsyNDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjcmVhdGVTb2Nr
ZXRTdHJlYW0oVVJMJiYsIFN0cmluZyBjYWNoZVBhcnRpdGlvbiwgV2ViQ29yZTo6V2ViU29ja2V0
SWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGNyZWF0ZVNvY2tldENoYW5uZWwoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViQ29yZTo6V2Vi
U29ja2V0SWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllcik7CisgICAgdm9pZCBjcmVh
dGVTb2NrZXRDaGFubmVsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0
cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZpZXIsIFdlYlBhZ2VQcm94
eUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpOwogICAgIHZvaWQgdXBk
YXRlUXVvdGFCYXNlZE9uU3BhY2VVc2FnZUZvclRlc3RpbmcoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJik7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAwMDVmNjMyZWY1NzdjOWMxNmE3ZGQ3YzFl
NmM2N2M5MTFiNDI2NzZjLi42NTBiMmFhNjgzNzA5NjE4ZjU4OWExYmQ1MzI2ZGRjZjk5MTczZDM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTYyLDcg
KzYyLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogCiAgICAgQ3JlYXRlU29ja2V0U3RyZWFtKFVSTCB1cmwsIFN0cmluZyBj
YWNoZVBhcnRpdGlvbiwgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyKQot
ICAgIENyZWF0ZVNvY2tldENoYW5uZWwoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBwcm90b2NvbCwgV2ViQ29yZTo6V2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQpCisgICAgQ3Jl
YXRlU29ja2V0Q2hhbm5lbChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5n
IHByb3RvY29sLCBXZWJDb3JlOjpXZWJTb2NrZXRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYktp
dDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBjbGllbnRPcmlnaW4pCiAKICAgICBDbGVhclBhZ2VTcGVjaWZpY0RhdGEo
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlEKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCA4N2RkMGY3ODU0YzhiNGQ4ODEx
YTFhMWMwMDNkMGY3M2IwNGFlZmJlLi5iMDExYTU4YmEwZGE1YzA2ZjRiOGVjY2Q5ZThhNDhiYTA2
ZWUwZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcApAQCAtNTMwLDcgKzUzMCw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnJlbW92ZUxv
YWRlcldhaXRpbmdXZWJQcm9jZXNzVHJhbnNmZXIoTmV0d29ya1Jlc291cmNlTG9hZElkCiAgICAg
ICAgIGNhY2hlZFJlc291cmNlTG9hZGVyLT50YWtlTG9hZGVyKCktPmFib3J0KCk7CiB9CiAKLXN0
ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRUYXNrPiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlV2ViU29j
a2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpCitz
dGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZVdlYlNv
Y2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwmLCBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBj
b25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGMy
ZGUxZGM1MzU2MmM5MDI2ZTg4YjFlYzhlMmM5OWM1ZmRkNGRmZWQuLmJlZDA3MDk0NTdjYTZlNjJj
MDU5MzVjNmI3MmFkN2E2NTAyNDk1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTU4LDYgKzU4LDcgQEAgY2xhc3MgUmVzb3VyY2VFcnJv
cjsKIGNsYXNzIFNXU2VydmVyOwogZW51bSBjbGFzcyBJbmNsdWRlSHR0cE9ubHlDb29raWVzIDog
Ym9vbDsKIGVudW0gY2xhc3MgU2hvdWxkU2FtcGxlIDogYm9vbDsKK3N0cnVjdCBDbGllbnRPcmln
aW47CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogfQogCkBAIC0xNzYsNyArMTc3LDcgQEAg
cHVibGljOgogICAgIFByZWZldGNoQ2FjaGUmIHByZWZldGNoQ2FjaGUoKSB7IHJldHVybiBtX3By
ZWZldGNoQ2FjaGU7IH0KICAgICB2b2lkIGNsZWFyUHJlZmV0Y2hDYWNoZSgpIHsgbV9wcmVmZXRj
aENhY2hlLmNsZWFyKCk7IH0KIAotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tl
dFRhc2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29y
a1NvY2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBT
dHJpbmcmIHByb3RvY29sKTsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJTb2NrZXRU
YXNrPiBjcmVhdGVXZWJTb2NrZXRUYXNrKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIE5ldHdvcmtT
b2NrZXRDaGFubmVsJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAgICAgdmlydHVh
bCB2b2lkIHJlbW92ZVdlYlNvY2tldFRhc2soU2Vzc2lvblNldCYsIFdlYlNvY2tldFRhc2smKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgYWRkV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlm
aWVyLCBXZWJTb2NrZXRUYXNrJikgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZTg3MTUyNDAzM2Q4NmNh
NjlhYWFhNjBjZDczYTI0YjEzNmJjZjA2Ni4uZWM2NzA3ODI4NjUwYzNkNDFhNTFhNjM5NGFjNWNh
YWUxNjQwMzdlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM2LDkgKzM2LDkgQEAKIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0ZDo6dW5pcXVlX3B0cjxOZXR3b3Jr
U29ja2V0Q2hhbm5lbD4gTmV0d29ya1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdl
YlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQ
YWdlUHJveHlJRCkKK3N0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gTmV0d29y
a1NvY2tldENoYW5uZWw6OmNyZWF0ZShOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYlNvY2tldElkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4pCiB7Ci0gICAgYXV0byByZXN1bHQgPSBt
YWtlVW5pcXVlPE5ldHdvcmtTb2NrZXRDaGFubmVsPihjb25uZWN0aW9uLCBjb25uZWN0aW9uLm5l
dHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSwgcmVxdWVzdCwgcHJvdG9j
b2wsIGlkZW50aWZpZXIsIHdlYlBhZ2VQcm94eUlEKTsKKyAgICBhdXRvIHJlc3VsdCA9IG1ha2VV
bmlxdWU8TmV0d29ya1NvY2tldENoYW5uZWw+KGNvbm5lY3Rpb24sIGNvbm5lY3Rpb24ubmV0d29y
a1Byb2Nlc3MoKS5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpLCByZXF1ZXN0LCBwcm90b2NvbCwg
aWRlbnRpZmllciwgd2ViUGFnZVByb3h5SUQsIGNsaWVudE9yaWdpbik7CiAgICAgaWYgKCFyZXN1
bHQtPm1fc29ja2V0KSB7CiAgICAgICAgIHJlc3VsdC0+ZGlkQ2xvc2UoMCwgIkNhbm5vdCBjcmVh
dGUgYSB3ZWIgc29ja2V0IHRhc2siX3MpOwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTQ2
LDcgKzQ2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBOZXR3b3Jr
U29ja2V0Q2hhbm5lbDo6Y3JlYXRlKE5ldHdvcmtDb25uZWMKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1OZXR3b3JrU29ja2V0Q2hhbm5lbDo6TmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIE5ldHdvcmtTZXNzaW9uKiBzZXNzaW9u
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2ws
IFdlYlNvY2tldElkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3
ZWJQYWdlUHJveHlJRCkKK05ldHdvcmtTb2NrZXRDaGFubmVsOjpOZXR3b3JrU29ja2V0Q2hhbm5l
bChOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgTmV0d29ya1Nlc3Np
b24qIHNlc3Npb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5n
JiBwcm90b2NvbCwgV2ViU29ja2V0SWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIGNs
aWVudE9yaWdpbikKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uKQog
ICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3Nlc3Npb24oc2Vzc2lvbikK
QEAgLTU2LDcgKzU2LDcgQEAgTmV0d29ya1NvY2tldENoYW5uZWw6Ok5ldHdvcmtTb2NrZXRDaGFu
bmVsKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWMKICAgICBpZiAoIW1fc2Vz
c2lvbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zb2NrZXQgPSBtX3Nlc3Npb24tPmNyZWF0
ZVdlYlNvY2tldFRhc2sod2ViUGFnZVByb3h5SUQsICp0aGlzLCByZXF1ZXN0LCBwcm90b2NvbCk7
CisgICAgbV9zb2NrZXQgPSBtX3Nlc3Npb24tPmNyZWF0ZVdlYlNvY2tldFRhc2sod2ViUGFnZVBy
b3h5SUQsICp0aGlzLCByZXF1ZXN0LCBwcm90b2NvbCwgY2xpZW50T3JpZ2luKTsKICAgICBpZiAo
bV9zb2NrZXQpIHsKICAgICAgICAgbV9zZXNzaW9uLT5hZGRXZWJTb2NrZXRUYXNrKHdlYlBhZ2VQ
cm94eUlELCAqbV9zb2NrZXQpOwogICAgICAgICBtX3NvY2tldC0+cmVzdW1lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTb2NrZXRDaGFubmVsLmgKaW5k
ZXggMWU3YjJjZTE5MmUzYTgzMGE5N2NmOTk1ZjFhNDgxYWViYmIyMzhkMC4uYWY3YTk1OTIxNDdl
NDdlMjA3NzA2MzY2MTA5YmJjMWNhMGQ2YTMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1NvY2tldENoYW5uZWwuaApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBD
bGllbnRPcmlnaW47CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwogfQpAQCAtNTUsOSArNTYsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNsYXNzIE5l
dHdvcmtTb2NrZXRDaGFubmVsIDogcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtTb2NrZXRDaGFubmVsPiBjcmVh
dGUoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgV2ViQ29y
ZTo6V2ViU29ja2V0SWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllcik7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU29ja2V0Q2hhbm5lbD4gY3JlYXRlKE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tl
dElkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVu
dE9yaWdpbiYpOwogCi0gICAgTmV0d29ya1NvY2tldENoYW5uZWwoTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmLCBOZXR3b3JrU2Vzc2lvbiosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFdlYkNvcmU6OldlYlNvY2tldElkZW50aWZp
ZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIpOworICAgIE5ldHdvcmtTb2NrZXRDaGFubmVsKE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgTmV0d29ya1Nlc3Npb24qLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29sLCBXZWJDb3JlOjpX
ZWJTb2NrZXRJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mKTsKICAgICB+TmV0d29ya1NvY2tldENoYW5uZWwoKTsKIAogICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNz
aW9uQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5oCmluZGV4IGIwOTIyYjAzZGM5NzVmZmU4MTdjNTE2N2E3YWNkYjBhMTNmZTQ1
ZTQuLjNjNDZlNmIwZDdjZTM1YzA2ZTk2MzhmYWJhN2M5MjhlMTc1YzUxMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5oCkBAIC0xNTcsNyArMTU3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyQWx0ZXJu
YXRpdmVTZXJ2aWNlcyhXYWxsVGltZSkgb3ZlcnJpZGU7CiAKICNpZiBIQVZFKE5TVVJMU0VTU0lP
Tl9XRUJTT0NLRVQpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IGNyZWF0ZVdl
YlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1NvY2tldENoYW5uZWwm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJpbmcmIHByb3RvY29s
KSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gY3JlYXRlV2ViU29j
a2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogICAgIHZvaWQgYWRkV2ViU29ja2V0
VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJTb2NrZXRUYXNrJikgZmluYWw7CiAgICAg
dm9pZCByZW1vdmVXZWJTb2NrZXRUYXNrKFNlc3Npb25TZXQmLCBXZWJTb2NrZXRUYXNrJikgZmlu
YWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQppbmRleCA2YTUzYjVkNzBhMDU0NGI4YjAyYjM0
OWFmZjFiNGJjNjBlYWRlMjA4Li4xZjA2NTQ0OWVjOTJjMWM1NjhkNmY5MmMwZGFlM2FjZmQxOTAz
YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCkBAIC0xNjY1LDggKzE2NjUsNyBAQCB2b2lkIE5ldHdv
cmtTZXNzaW9uQ29jb2E6OmNvbnRpbnVlRGlkUmVjZWl2ZUNoYWxsZW5nZShTZXNzaW9uV3JhcHBl
ciYgc2Vzc2lvbldyYQogI2lmIEhBVkUoTlNVUkxTRVNTSU9OX1dFQlNPQ0tFVCkKICAgICAgICAg
aWYgKGF1dG8qIHdlYlNvY2tldFRhc2sgPSBzZXNzaW9uV3JhcHBlci53ZWJTb2NrZXREYXRhVGFz
a01hcC5nZXQodGFza0lkZW50aWZpZXIpKSB7CiAgICAgICAgICAgICBhdXRvIGNoYWxsZW5nZUNv
bXBsZXRpb25IYW5kbGVyID0gY3JlYXRlQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXIobmV0d29y
a1Byb2Nlc3MoKSwgc2Vzc2lvbklEKCksIGNoYWxsZW5nZSwgd2ViU29ja2V0VGFzay0+cGFydGl0
aW9uKCksIDAsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgICAgIG5ldHdv
cmtQcm9jZXNzKCkuYXV0aGVudGljYXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKHNlc3Npb25JRCgpLCB3ZWJTb2NrZXRUYXNrLT5wYWdlSUQoKSwgbnVsbHB0
ciwgY2hhbGxlbmdlLCBuZWdvdGlhdGVkTGVnYWN5VExTLCBXVEZNb3ZlKGNoYWxsZW5nZUNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0KKyAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzKCkuYXV0aGVudGlj
YXRpb25NYW5hZ2VyKCkuZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHNlc3Npb25J
RCgpLCB3ZWJTb2NrZXRUYXNrLT5wYWdlSUQoKSwgIXdlYlNvY2tldFRhc2stPnRvcE9yaWdpbigp
LmlzRW1wdHkoKSA/ICZ3ZWJTb2NrZXRUYXNrLT50b3BPcmlnaW4oKSA6IG51bGxwdHIsIGNoYWxs
ZW5nZSwgbmVnb3RpYXRlZExlZ2FjeVRMUywgV1RGTW92ZShjaGFsbGVuZ2VDb21wbGV0aW9uSGFu
ZGxlcikpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTE3MDcs
NyArMTcwNiw3IEBAIERNRldlYnNpdGVQb2xpY3lNb25pdG9yICpOZXR3b3JrU2Vzc2lvbkNvY29h
OjpkZXZpY2VNYW5hZ2VtZW50UG9saWN5TW9uaXRvcigpCiB9CiAKICNpZiBIQVZFKE5TVVJMU0VT
U0lPTl9XRUJTT0NLRVQpCi1zdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4gTmV0d29ya1Nl
c3Npb25Db2NvYTo6Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQorc3Rk
Ojp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uQ29jb2E6OmNyZWF0ZVdl
YlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgTmV0d29y
a1NvY2tldENoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiBjbGllbnRPcmlnaW4pCiB7CiAgICAgQVNTRVJUKCFyZXF1ZXN0Lmhhc0hUVFBIZWFkZXJG
aWVsZChXZWJDb3JlOjpIVFRQSGVhZGVyTmFtZTo6U2VjV2ViU29ja2V0UHJvdG9jb2wpKTsKICAg
ICBhdXRvIG5zUmVxdWVzdCA9IHJldGFpblB0cihyZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3Jl
OjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6RG9Ob3RVcGRhdGVIVFRQQm9keSkpOwpAQCAtMTczNSw3
ICsxNzM0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9u
Q29jb2E6OmNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFnZVAKICAgICAvLyBBbHRob3VnaCB0aGUg
V2ViU29ja2V0IHByb3RvY29sIGFsbG93cyBmdWxsIDY0LWJpdCBsZW5ndGhzLCBDaHJvbWUgYW5k
IEZpcmVmb3ggbGltaXQgdGhlIGxlbmd0aCB0byAyXjYzIC0gMQogICAgIHRhc2suZ2V0KCkubWF4
aW11bU1lc3NhZ2VTaXplID0gMHg3RkZGRkZGRkZGRkZGRkZGdWxsOwogCi0gICAgcmV0dXJuIG1h
a2VVbmlxdWU8V2ViU29ja2V0VGFzaz4oY2hhbm5lbCwgd2ViUGFnZVByb3h5SUQsIHNlc3Npb25T
ZXQsIHJlcXVlc3QsIFdURk1vdmUodGFzaykpOworICAgIHJldHVybiBtYWtlVW5pcXVlPFdlYlNv
Y2tldFRhc2s+KGNoYW5uZWwsIHdlYlBhZ2VQcm94eUlELCBzZXNzaW9uU2V0LCByZXF1ZXN0LCBj
bGllbnRPcmlnaW4sIFdURk1vdmUodGFzaykpOwogfQogCiB2b2lkIE5ldHdvcmtTZXNzaW9uQ29j
b2E6OmFkZFdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgV2ViU29ja2V0VGFzayYgdGFzaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvV2ViU29ja2V0VGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NvY29hL1dlYlNvY2tldFRhc2tDb2NvYS5oCmluZGV4IDkzMDdjZWQ5OWQ1YWM4
NzA3NTFkMmRhYjU2ZGQ0NmEwM2FkNDMzZTguLmViZTgzYTUxYTMwZGE1MTI3NTBlNWRjZjQxMzA2
Y2JmYmY5OGJlYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvV2ViU29ja2V0VGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9XZWJTb2NrZXRUYXNrQ29jb2EuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiRGF0YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0zNiw2ICszNyw3IEBA
IE9CSkNfQ0xBU1MgTlNVUkxTZXNzaW9uV2ViU29ja2V0VGFzazsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Oworc3RydWN0IENsaWVudE9yaWdpbjsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Nyw3ICs0OSw3IEBAIHN0cnVjdCBTZXNzaW9uU2V0Owog
Y2xhc3MgV2ViU29ja2V0VGFzayA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxXZWJTb2NrZXRUYXNr
PiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV2ViU29ja2V0
VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYWtQ
dHI8U2Vzc2lvblNldD4mJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUmV0YWlu
UHRyPE5TVVJMU2Vzc2lvbldlYlNvY2tldFRhc2s+JiYpOworICAgIFdlYlNvY2tldFRhc2soTmV0
d29ya1NvY2tldENoYW5uZWwmLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWFrUHRyPFNlc3Np
b25TZXQ+JiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrPiYmKTsK
ICAgICB+V2ViU29ja2V0VGFzaygpOwogCiAgICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CkBAIC02OCw2ICs3
MCw3IEBAIHB1YmxpYzoKIAogICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlEKCkgY29u
c3QgeyByZXR1cm4gbV9wYWdlSUQ7IH0KICAgICBTdHJpbmcgcGFydGl0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9wYXJ0aXRpb247IH0KKyAgICBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmIHRvcE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fdG9wT3JpZ2luOyB9CiAKIHByaXZhdGU6
CiAgICAgdm9pZCByZWFkTmV4dE1lc3NhZ2UoKTsKQEAgLTc5LDYgKzgyLDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1fcGFnZUlEOwogICAgIFdlYWtQdHI8U2Vzc2lv
blNldD4gbV9zZXNzaW9uU2V0OwogICAgIFN0cmluZyBtX3BhcnRpdGlvbjsKKyAgICBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgbV90b3BPcmlnaW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvV2Vi
U29ja2V0VGFza0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9X
ZWJTb2NrZXRUYXNrQ29jb2EubW0KaW5kZXggZTY0OWMzNWZmNTAzMDgwMWVhN2JkNjMzNTgyOGI3
MWE0NzMwZjMyMS4uNGRjYTg4OWRmYzE5NjE0NGNkMTg5ZDI2Y2E3Njg5MWIxZjMzNDMzMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2NrZXRUYXNr
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9XZWJTb2Nr
ZXRUYXNrQ29jb2EubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIk5ldHdvcmtTZXNzaW9u
Q29jb2EuaCIKICNpbXBvcnQgIk5ldHdvcmtTb2NrZXRDaGFubmVsLmgiCiAjaW1wb3J0IDxGb3Vu
ZGF0aW9uL05TVVJMU2Vzc2lvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9DbGllbnRPcmlnaW4uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
c291cmNlUmVzcG9uc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbC5oPgpA
QCAtNDAsMTMgKzQxLDE4IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAotV2ViU29ja2V0VGFzazo6V2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hh
bm5lbCYgY2hhbm5lbCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIFdlYWtQdHI8U2Vz
c2lvblNldD4mJiBzZXNzaW9uU2V0LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIFJldGFpblB0cjxOU1VSTFNlc3Npb25XZWJTb2NrZXRUYXNrPiYmIHRhc2spCitXZWJT
b2NrZXRUYXNrOjpXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiBjaGFubmVsLCBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VJRCwgV2Vha1B0cjxTZXNzaW9uU2V0PiYmIHNlc3Np
b25TZXQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFJldGFpblB0cjxOU1VSTFNlc3Npb25X
ZWJTb2NrZXRUYXNrPiYmIHRhc2spCiAgICAgOiBtX2NoYW5uZWwoY2hhbm5lbCkKICAgICAsIG1f
dGFzayhXVEZNb3ZlKHRhc2spKQogICAgICwgbV9wYWdlSUQocGFnZUlEKQogICAgICwgbV9zZXNz
aW9uU2V0KFdURk1vdmUoc2Vzc2lvblNldCkpCiAgICAgLCBtX3BhcnRpdGlvbihyZXF1ZXN0LmNh
Y2hlUGFydGl0aW9uKCkpCiB7CisgICAgLy8gV2UgdXNlIHRvcE9yaWdpbiBpbiBjYXNlIG9mIHNl
cnZpY2Ugd29ya2VyIHdlYnNvY2tldCBjb25uZWN0aW9ucywgZm9yIHdoaWNoIHBhZ2VJRCBkb2Vz
IG5vdCBsaW5rIHRvIGEgcmVhbCBwYWdlLgorICAgIC8vIEluIHRoYXQgY2FzZSwgbGV0J3Mgb25s
eSBjYWxsIHRoZSBjYWxsYmFjayBmb3Igc2FtZSBvcmlnaW4gbG9hZHMuCisgICAgaWYgKGNsaWVu
dE9yaWdpbi50b3BPcmlnaW4gPT0gY2xpZW50T3JpZ2luLmNsaWVudE9yaWdpbikKKyAgICAgICAg
bV90b3BPcmlnaW4gPSBjbGllbnRPcmlnaW4udG9wT3JpZ2luOworCiAgICAgcmVhZE5leHRNZXNz
YWdlKCk7CiAgICAgbV9jaGFubmVsLmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCB7IFttX3Rhc2sgY3VycmVudFJlcXVlc3RdIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAppbmRl
eCAyYmM3NGI5NDFiMjNlMGRmMGE2ZWZjODQyNTdhYzFiYjg4MGJjM2VmLi43ZjE0NjlkODIwY2Yx
ZDFmMTJiNTBjZWNjNTc3YmQ1NDE0NjQzYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcApAQCAtMTE5LDcg
KzExOSw3IEBAIHN0YXRpYyB2b2lkIHdlYlNvY2tldE1lc3NhZ2VOZXR3b3JrRXZlbnRDYWxsYmFj
ayhTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEdTb2NrCiB9CiAjZW5kaWYKIAotc3RkOjp1bmlx
dWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uU291cDo6Y3JlYXRlV2ViU29ja2V0
VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5l
bCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29s
KQorc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uU291cDo6Y3Jl
YXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0Q2hh
bm5lbCYgY2hhbm5lbCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJp
bmcmIHByb3RvY29sLCBjb25zdCBDbGllbnRPcmlnaW4mKQogewogICAgIEdSZWZQdHI8U291cE1l
c3NhZ2U+IHNvdXBNZXNzYWdlID0gcmVxdWVzdC5jcmVhdGVTb3VwTWVzc2FnZShibG9iUmVnaXN0
cnkoKSk7CiAgICAgaWYgKCFzb3VwTWVzc2FnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrU2Vzc2lvblNvdXAuaAppbmRleCA2YjAzNzUyYjRi
ZjhlZjBlMTI1MTkxMjA0Y2M2N2U3NDgwYzAzYTcyLi5iYzNmOTZjOTYyYTEyODY3ZjQ1NDgxZWQ4
YmM4OThmZThhZDBiOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFByb3h5U2V0dGluZ3MoY29uc3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94
eVNldHRpbmdzJik7CiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRh
c2s+IGNyZWF0ZVdlYlNvY2tldFRhc2soV2ViUGFnZVByb3h5SWRlbnRpZmllciwgTmV0d29ya1Nv
Y2tldENoYW5uZWwmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBTdHJp
bmcmIHByb3RvY29sKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU29ja2V0VGFzaz4g
Y3JlYXRlV2ViU29ja2V0VGFzayhXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBOZXR3b3JrU29ja2V0
Q2hhbm5lbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYpIGZpbmFsOwogICAgIHZvaWQg
Y2xlYXJDcmVkZW50aWFscygpIGZpbmFsOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6
OlNvdXBOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3b3JrU2Vzc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggOTEw
YjJjY2Q4NDFiYTEzMDE5NGIxZjRiMjYxMmRiOTM2YjNlNjQwNS4uNjVkYmJhMmU5OTFiYTMwYzg2
MGI5ZTBkNGQ0YTk1ZDQ1MjU3MDE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9DbGllbnRPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9F
eGNlcHRpb25Db2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CkBAIC0xMTcsNyArMTE4
LDcgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJTb2NrZXRDaGFubmVsOjpj
b25uZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdAogCiAgICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRl
V2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCksIHVybCk7CiAgICAgbV91cmwgPSByZXF1ZXN0LT51
cmwoKTsKLSAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hhbm5lbCB7ICpyZXF1ZXN0LCBwcm90b2NvbCwg
bV9pZGVudGlmaWVyLCBtX3dlYlBhZ2VQcm94eUlEIH0pOworICAgIE1lc3NhZ2VTZW5kZXI6OnNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRD
aGFubmVsIHsgKnJlcXVlc3QsIHByb3RvY29sLCBtX2lkZW50aWZpZXIsIG1fd2ViUGFnZVByb3h5
SUQsIG1fZG9jdW1lbnQtPmNsaWVudE9yaWdpbigpIH0pOwogICAgIHJldHVybiBDb25uZWN0U3Rh
dHVzOjpPSzsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3ODY3OTFhMWFiODIyNjFkMzg3OWE2NDQ5NDY0NmU0ZWMx
MWNmMzEuLmFmMWRmOWMzZjhkMmFmODE4ODM2NDhkNjFiY2YxZDBiZjBjZTMyZmUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxOCBAQAorMjAyMi0wMS0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgTWFrZSBzdXJlIHNlY3VyZSB3ZWJzb2NrZXQgY29ubmVjdGlvbnMgaW4g
c2VydmljZSB3b3JrZXJzIGNhbiB0cmlnZ2VyIGF1dGhlbnRpY2F0aW9uIGNoYWxsZW5nZSBjYWxs
YmFja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NDgwOQorICAgICAgICA8cmRhcjovLzg1ODg4MTc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIER1bWV6LgorCisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLmh0bWw6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3
b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0
cHMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy13azIvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy1iaWdzdXItd2syL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4
dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRm
b3JtL21hYy1jYXRhbGluYS13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdv
cmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRw
cy1leHBlY3RlZC50eHQuCisKIDIwMjItMDEtMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JTcGVlY2hSZWNvZ25pdGlvbiBzaG91bGQgcmV0dXJuIGVhcmx5IGluIGNhc2Ugb2Ygbm8g
Y2FwdHVyZSBkZXZpY2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNv
Y2tldC5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggNjc0OThhNWU0MmI0MjcxYTk4MGQ2YzUxZTZj
NTc2NGJiZTEwNmExNy4uNmU5ZWVkYTg2YjliOWVlZjI2MTllZTAxOTE2ZDk2Njc2Y2ZkMGE1YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vydmlj
ZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKK2NhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0
aW9uU3BhY2UKIAogUEFTUyBTZXR1cCB3b3JrZXIKIFBBU1MgT3BlbiBhIFdlYlNvY2tldCBpbiBz
ZXJ2aWNlIHdvcmtlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBz
Lmh0bWwKaW5kZXggZjJiOTliMzY3MmI0NWEyMGRkN2M4ZmM0NjhlNDk1NzE3ODNlNDhmOC4uMmYx
YmU4MTczN2Q1ZTE5ODQyYTI1YzgzN2M5ZTZjOTEzMzM0NWIwZSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQu
aHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9z
ZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy5odG1sCkBAIC0zMCw2ICszMCw5IEBAIHByb21p
c2VfdGVzdChhc3luYyAodGVzdCkgPT4gewogfSwgIlNldHVwIHdvcmtlciIpOwogCiBwcm9taXNl
X3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rp
b25TcGFjZSh0cnVlKTsKKwogICAgIHZhciBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUs
IHJlamVjdCkgPT4gewogICAgICAgICBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgdGVzdC5zdGVwX2Z1bmMoKGV2ZW50KSA9PiB7CiAgICAgICAgICAg
ICBpZiAoZXZlbnQuZGF0YSA9PT0gIlBBU1MiKSB7CkBAIC00Miw2ICs0NSw5IEBAIHByb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4gewogCiAgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJX
RUJTT0NLRVQtMSIpOwogICAgIGF3YWl0IHByb21pc2U7CisKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U2hvdWxkTG9nQ2FuQXV0aGVudGljYXRlQWdh
aW5zdFByb3RlY3Rpb25TcGFjZShmYWxzZSk7CiB9LCAiT3BlbiBhIFdlYlNvY2tldCBpbiBzZXJ2
aWNlIHdvcmtlciIpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13
ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzQ5OGE1ZTQyYjQyNzFhOTgwZDZjNTFlNmM1NzY0YmJl
MTA2YTE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBTZXR1cCB3b3JrZXIKK1BBU1MgT3BlbiBh
IFdlYlNvY2tldCBpbiBzZXJ2aWNlIHdvcmtlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MtMTQtd2syL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3Jr
ZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy0xNC13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2Nr
ZXQuaHR0cHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzQ5
OGE1ZTQyYjQyNzFhOTgwZDZjNTFlNmM1NzY0YmJlMTA2YTE3Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy0xNC13
azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi0KLVBBU1MgU2V0
dXAgd29ya2VyCi1QQVNTIE9wZW4gYSBXZWJTb2NrZXQgaW4gc2VydmljZSB3b3JrZXIKLQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tldC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZp
Y2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNGRkNTVkOTRiMTIwMjE1MGY2ZWY3MjUyZjQ1ZWI1OTAwZDUxNDY4NS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtd2syL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXIt
d2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAsMCBA
QAotCi1QQVNTIFNldHVwIHdvcmtlcgotRkFJTCBPcGVuIGEgV2ViU29ja2V0IGluIHNlcnZpY2Ug
d29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiAiRkFJ
TDogd2Vic29ja2V0IGhhZCBhbiBlcnJvcjogW29iamVjdCBFdmVudF0iCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1iaWdzdXItd2syL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1iaWdzdXItd2syL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXItd2Vic29ja2V0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
NzQ5OGE1ZTQyYjQyNzFhOTgwZDZjNTFlNmM1NzY0YmJlMTA2YTE3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWJpZ3N1ci13azIvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCitQQVNTIFNldHVwIHdvcmtlcgorUEFTUyBPcGVuIGEgV2ViU29ja2V0IGlu
IHNlcnZpY2Ugd29ya2VyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1j
YXRhbGluYS13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlci13ZWJz
b2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWNhdGFs
aW5hLXdrMi9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyLXdlYnNvY2tl
dC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjc0OThhNWU0MmI0MjcxYTk4MGQ2YzUx
ZTZjNTc2NGJiZTEwNmExNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy1jYXRhbGluYS13azIvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtl
ci13ZWJzb2NrZXQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIFNl
dHVwIHdvcmtlcgorUEFTUyBPcGVuIGEgV2ViU29ja2V0IGluIHNlcnZpY2Ugd29ya2VyCisK
</data>
<flag name="commit-queue"
          id="474239"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>