<?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>239432</bug_id>
          
          <creation_ts>2022-04-17 00:34:15 -0700</creation_ts>
          <short_desc>Suspend storage operations when network process is in background and will be suspended</short_desc>
          <delta_ts>2022-05-17 14:33:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>240359</dup_id>
          
          <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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1862123</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-17 00:34:15 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862125</commentid>
    <comment_count>1</comment_count>
      <attachid>457769</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-17 00:49:37 -0700</bug_when>
    <thetext>Created attachment 457769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862188</commentid>
    <comment_count>2</comment_count>
      <attachid>457787</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-17 17:56:24 -0700</bug_when>
    <thetext>Created attachment 457787
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862203</commentid>
    <comment_count>3</comment_count>
      <attachid>457793</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-17 22:26:15 -0700</bug_when>
    <thetext>Created attachment 457793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862356</commentid>
    <comment_count>4</comment_count>
      <attachid>457833</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-18 16:18:07 -0700</bug_when>
    <thetext>Created attachment 457833
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862374</commentid>
    <comment_count>5</comment_count>
      <attachid>457840</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-18 16:52:35 -0700</bug_when>
    <thetext>Created attachment 457840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862396</commentid>
    <comment_count>6</comment_count>
      <attachid>457846</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-18 18:25:11 -0700</bug_when>
    <thetext>Created attachment 457846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862584</commentid>
    <comment_count>7</comment_count>
      <attachid>457906</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-19 09:13:56 -0700</bug_when>
    <thetext>Created attachment 457906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862587</commentid>
    <comment_count>8</comment_count>
      <attachid>457906</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-19 09:22:56 -0700</bug_when>
    <thetext>Comment on attachment 457906
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        However, this is not a very reliable singal, because UI process may not send the message before process 

typo: singal

&gt; Source/WebKit/ChangeLog:13
&gt; +        background notification as signal of suspension. It&apos;s possible that application process holds special assertion

I can think of 2 issues here:
1. We are not supposed to use RunningBoard in child processes for security reasons AFAIK.
2. What if an app gets backgrounded, the timer starts (you suspend the db thread), then the app starts playing audible media and the RunningBoard timer stops?

Presumably then, your db thread says suspended and we&apos;ll end up with the same old hangs when the page&apos;s JS does DB operations? I say &quot;same old&quot; because this is the kind of bug I caused the last time I tried to rely on app visibility to make suspension decisions (as mentioned off-line).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863373</commentid>
    <comment_count>9</comment_count>
      <attachid>458084</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-21 12:49:58 -0700</bug_when>
    <thetext>Created attachment 458084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863393</commentid>
    <comment_count>10</comment_count>
      <attachid>458089</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-21 13:42:25 -0700</bug_when>
    <thetext>Created attachment 458089
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863787</commentid>
    <comment_count>11</comment_count>
      <attachid>458175</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-22 14:41:39 -0700</bug_when>
    <thetext>Created attachment 458175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863790</commentid>
    <comment_count>12</comment_count>
      <attachid>458176</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-22 15:15:06 -0700</bug_when>
    <thetext>Created attachment 458176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863791</commentid>
    <comment_count>13</comment_count>
      <attachid>458177</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-22 15:29:05 -0700</bug_when>
    <thetext>Created attachment 458177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863797</commentid>
    <comment_count>14</comment_count>
      <attachid>458181</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-22 15:46:35 -0700</bug_when>
    <thetext>Created attachment 458181
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863953</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-24 00:35:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/92228190&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864220</commentid>
    <comment_count>16</comment_count>
      <attachid>458297</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-25 14:08:46 -0700</bug_when>
    <thetext>Created attachment 458297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864251</commentid>
    <comment_count>17</comment_count>
      <attachid>458302</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-25 15:14:05 -0700</bug_when>
    <thetext>Created attachment 458302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864989</commentid>
    <comment_count>18</comment_count>
      <attachid>458302</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-27 16:48:59 -0700</bug_when>
    <thetext>Comment on attachment 458302
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        However, this is not a very reliable singal, because UI process may not send the message before process 

typo: singal

&gt; Source/WebKit/ChangeLog:20
&gt; +        may send the suspend message earlier if ProcessThrottler says there is no activity left.

So, the odds are that the WebContent process will keep running for those 5 seconds where the network process db thread is suspended. As a result, wouldn&apos;t it cause a WebContent process hang in case of Webstorage usage (which does sync IPC to the network process).
If so, the WebProcess likely won&apos;t process the PrepareToSuspend IPC from the UIProcess. This means the WebProcess will not free its memory or make itself eligible for the freezer, making it way more likely to get jetsammed in the background.

I wouldn&apos;t want to trade network process kills on suspensions with increased WebProcess jetsams (which are more noticeable to the user IMO).

Or am I wrong and your patch deals with this in some way?

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1536
&gt; +        WTFLogAlways(&quot;sihuil: [%p]NetworkProcess::deleteWebsiteData will removeAllPushSubscriptions session[%llu]&quot;, this, sessionID.toUInt64());

Oops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865003</commentid>
    <comment_count>19</comment_count>
      <attachid>458302</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-27 17:25:36 -0700</bug_when>
    <thetext>Comment on attachment 458302
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:10
&gt;&gt; +        However, this is not a very reliable singal, because UI process may not send the message before process 
&gt; 
&gt; typo: singal

Will change.

&gt;&gt; Source/WebKit/ChangeLog:20
&gt;&gt; +        may send the suspend message earlier if ProcessThrottler says there is no activity left.
&gt; 
&gt; So, the odds are that the WebContent process will keep running for those 5 seconds where the network process db thread is suspended. As a result, wouldn&apos;t it cause a WebContent process hang in case of Webstorage usage (which does sync IPC to the network process).
&gt; If so, the WebProcess likely won&apos;t process the PrepareToSuspend IPC from the UIProcess. This means the WebProcess will not free its memory or make itself eligible for the freezer, making it way more likely to get jetsammed in the background.
&gt; 
&gt; I wouldn&apos;t want to trade network process kills on suspensions with increased WebProcess jetsams (which are more noticeable to the user IMO).
&gt; 
&gt; Or am I wrong and your patch deals with this in some way?

Yes, it&apos;s possible that this increases jetsam rate of web process, when:
1. web process needs to import StorageAreaMap syncly for executing localStorage or sessionStorage operations immediately (note we import it asyncly when an origin is loaded).
2. web process keeps running in background for over 25 seconds (with some background activities) and receives assertionWillInvalidate callback (sends prepareToSuspend) after ProcessStateMonitor&apos;s timer fires (note when process gets the assertion in less than 5s to the timeout, it will not receive invalidate message, thus not sending prepareToSuspend; leading to the process be jetsammed anyways).
3. web process will not be jetsammed if prepareToSuspend is called; and will be jetsammed if prepareToSuspend is not called.
Considering the probability of meeting all conditions, the chance of increasing jetsam rate is not very likely to be noticeable.
Also, if a web process uses much memory and runs for a long time in background, I think it&apos;s not surprising that it will get jetsammed at some point.

A complete fix would be using ProcessStateMonitor to send prepareToSuspend and processDidResume messages (merging prepareToSuspend with setStorageOperationsSuspended message), and maybe ensure UI process gets the reply of prepareToSuspend from web processes before sending it to network process; but this change might be even more risky. I&apos;d like to view the patch as a step towards the complete fix; and let&apos;s see how ProcessStateMonitor works in production.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:1536
&gt;&gt; +        WTFLogAlways(&quot;sihuil: [%p]NetworkProcess::deleteWebsiteData will removeAllPushSubscriptions session[%llu]&quot;, this, sessionID.toUInt64());
&gt; 
&gt; Oops.

:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865004</commentid>
    <comment_count>20</comment_count>
      <attachid>458483</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-27 17:29:47 -0700</bug_when>
    <thetext>Created attachment 458483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865476</commentid>
    <comment_count>21</comment_count>
      <attachid>458596</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-29 10:56:15 -0700</bug_when>
    <thetext>Created attachment 458596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865477</commentid>
    <comment_count>22</comment_count>
      <attachid>458597</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-29 11:02:07 -0700</bug_when>
    <thetext>Created attachment 458597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865487</commentid>
    <comment_count>23</comment_count>
      <attachid>458599</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-29 11:38:18 -0700</bug_when>
    <thetext>Created attachment 458599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869808</commentid>
    <comment_count>24</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-05-17 14:33:07 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 240359 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457769</attachid>
            <date>2022-04-17 00:49:37 -0700</date>
            <delta_ts>2022-04-17 17:56:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220417004936.patch</filename>
            <type>text/plain</type>
            <size>14672</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3M2VhNzFiZjRkNTkxODgz
OWIzMTFhZjlkYjJmN2UwMjkwZTc1NDQuLmE3NjNkNTVlYjUwZTY2MzVmZmQ5NTA4NTIzNDYwZjUz
MTUzMTIyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDQtMTcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpwbGF0Zm9ybUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5k
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9j
ZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1Byb2Nl
c3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJh
Y2tncm91bmQpOgorCiAyMDIyLTA0LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFtjc3Mtc2Nyb2xsLXNuYXBdIHNjcm9sbEludG9WaWV3IGZhaWxz
IHdpdGggc2Nyb2xsLXNuYXAtdHlwZSBvbiA6cm9vdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCA2YTg3NWY0MDI0MjE5NGZhOTJjNjg5
ZDc0ZDFkNDJjYWY5MzYzNzFkLi5iZmI1ZGZhN2U0YTExZjY1ZWM3NWYxYmZjMjc2ZGMwOWFkMzli
N2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcApAQCAtMzMzLDYgKzMzMyw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVO
ZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgc2V0
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKHBhcmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQpOwogICAgIG1fZnRwRW5hYmxlZCA9IHBhcmFtZXRlcnMuZnRwRW5hYmxl
ZDsKIAorICAgIGlmIChwYXJhbWV0ZXJzLmlzSW5CYWNrZ3JvdW5kKQorICAgICAgICBhcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworCiAgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDog
bV9zdXBwbGVtZW50cy52YWx1ZXMoKSkKICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZShw
YXJhbWV0ZXJzKTsKIApAQCAtNDU3LDcgKzQ2MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFk
ZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
CiAgICAgICAgIHJldHVybiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJz
Lm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0g
ICAgaWYgKG1faXNTdXNwZW5kZWQpCisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRl
ZCkKICAgICAgICAgc2Vzc2lvbi0+c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9
CiAKQEAgLTIxNDIsNyArMjE0NSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1
c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAg
UkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVw
YXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJs
aWN9c2luIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJh
Y2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0g
dHJ1ZTsKICAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRy
PENhbGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdh
dG9yOjpjcmVhdGUoW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC0yMTc1LDYgKzIxNzcsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJC
YWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25s
b2FkTWFuYWdlci5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3Jt
QXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
czo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4Niw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAg
ICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAg
bV9kb3dubG9hZE1hbmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAg
cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkK
QEAgLTIxOTIsOCArMjE5Niw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1
bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKSBmb3JGb3JlZ3JvdW5kQWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNr
Z3JvdW5kIGZvciAlZiBzZWNvbmRzIiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9u
b3RvbmljVGltZTo6bm93KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52
YWx1ZSgpKTsKIAotICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBj
b25uZWN0aW9uLT5lbmRTdXNwZW5zaW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOSw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAg
ICAgICAgICAgIHN3U2VydmVyLT5lbmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vz
c2lvbi5zdG9yYWdlTWFuYWdlcigpLnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQg
KzI3NTksMzEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNl
dHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxl
cihzZXNzaW9uID8gc2Vzc2lvbi0+Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwog
fQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChi
b29sIHN1c3BlbmRlZCkKK3sKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID09
IHN1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9MT0coU3RvcmFnZSwg
IiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkOiBzdXNw
ZW5kZWQ9JWQiLCB0aGlzLCBzdXNwZW5kZWQpOworICAgIG1fc3RvcmFnZU9wZXJhdGlvblN1c3Bl
bmRlZCA9IHN1c3BlbmRlZDsKKyAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBz
ZXNzaW9uKSB7CisgICAgICAgIGlmIChzdXNwZW5kZWQpCisgICAgICAgICAgICBzZXNzaW9uLnN0
b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0pOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgfSk7Cit9CisKKyNpZiAh
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCit7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKK3sKK30KKworI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDhlOTJmYzJjMTM1NzE0YTE2ZGZiYzYzNWM3NTM5MzFh
NjRiYWE5ZWYuLjgxNGMzY2U0NDAyMzA3YzlmOGI1ZDA5Y2U0ZWQzNTM0NmNkYWVmZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTY2LDYg
KzY2LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiV2ViU1FMaXRl
RGF0YWJhc2VUcmFja2VyLmgiCitPQkpDX0NMQVNTIFJCU1Byb2Nlc3NNb25pdG9yOwogI2VuZGlm
CiAKICNpZiBQTEFURk9STShDT0NPQSkKQEAgLTQ0MCw2ICs0NDEsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgY2FuY2VsRGF0YVRhc2soRGF0YVRhc2tJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7
CiAgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwogICAgIHZvaWQgYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgdm9pZCBwbGF0Zm9ybUFwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisgICAgdm9pZCBwbGF0Zm9ybUFwcGxpY2F0aW9uV2ls
bEVudGVyRm9yZWdyb3VuZCgpOworICAgIHZvaWQgc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoYm9vbCk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAgICAgdm9p
ZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTgsNyBAQCBwcml2YXRlOgogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1fd2Vi
U1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2hv
bGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQcm9jZXNzTW9uaXRv
cj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXRUJfUlRDKQpA
QCAtNTMwLDcgKzUzNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdG9yYWdl
T3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90b25p
Y1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAppbmRleCBmYTY4ZTk3ODYxMDhkZTkwMThmZmYxMDY4ODJlNjdlMzdj
NWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIxY2NiMGFjMjRmODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjcsNiArNjcsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsK
ICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJsZWQ7CisgICAgZW5jb2RlciA8PCBpc0luQmFja2dyb3Vu
ZDsKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogfQogCkBAIC0x
MTksNiArMTIwLDggQEAgYm9vbCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Byb2MKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmZ0cEVuYWJsZWQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNJbkJhY2tn
cm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rv
cjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4+IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
OwogICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDRmODE2NjE4ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZk
NDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1ZDczZTljOGNhYzAwMjYwOTNmODNkOTM5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODUsNiArODUsNyBAQCBzdHJ1Y3QgTmV0d29y
a1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCB7IHRydWUgfTsKICAgICBib29sIGZ0cEVuYWJsZWQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgaXNJbkJhY2tncm91bmQgeyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lP
Uy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9T
Lm1tCmluZGV4IDAzYThjM2E4MmQzNzA2MzA2ZTIwYjEzOGE3Y2M3Njc1MDQ0N2MyMTkuLjI5MGE5
NTgzNjRmMTBiZDQ5NGU4MDkzOThjOTVkNjI3OTMzYzQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2
ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3b3JrQ2FjaGUuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisj
aW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiU2VjSXRlbVNoaW0uaCIKICNpbXBvcnQg
PFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEsNiArMTEyLDQyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAg
bV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShn
ZXRDdXJyZW50UHJvY2Vzc0lEKCksICJOZXR3b3JrIFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQg
ZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwg
UHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworICAgIFJFTEVBU0Vf
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGlmIChtX3Byb2Nlc3NNb25pdG9yKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3NNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25p
dG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjpbd2Vha1Byb2Nlc3MgPSBXZWFrUHRyIHsgKnRo
aXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25maWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsK
KyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9j
ZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3JdOworICAgICAgICBbZGVzY3JpcHRvciBzZXRW
YWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0
YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAgICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2Ny
aXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtjb25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQ
cm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNoaW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxl
IGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAgW2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3
ZWFrUHJvY2VzcyA9IFdURk1vdmUod2Vha1Byb2Nlc3MpXShSQlNQcm9jZXNzTW9uaXRvciAqbW9u
aXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2VzcywgUkJTUHJvY2Vzc1N0YXRlVXBkYXRlICp1
cGRhdGUpIHsKKyAgICAgICAgICAgIGJvb2wgc2hvdWxkU3VzcGVuZFN0b3JhZ2VPcGVyYXRpb25z
ID0gW1tbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNd
IHJ1blRpbWVdICE9IFJCU1Byb2Nlc3NUaW1lTGltaXRhdGlvbk5vbmU7CisgICAgICAgICAgICBj
YWxsT25NYWluUnVuTG9vcChbd2Vha1Byb2Nlc3MsIHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0
aW9uc10geworICAgICAgICAgICAgICAgIGlmICh3ZWFrUHJvY2VzcyAmJiB3ZWFrUHJvY2Vzcy0+
bV9wcm9jZXNzTW9uaXRvcikKKyAgICAgICAgICAgICAgICAgICAgd2Vha1Byb2Nlc3MtPnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9ucyk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07CisgICAgfV07CisgICAgCisgICAgaWYgKFtS
QlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXS5hY3RpdmVMaW1pdGF0aW9ucy5ydW5UaW1l
ICE9IFJCU1Byb2Nlc3NUaW1lTGltaXRhdGlvbk5vbmUpCisgICAgICAgIHNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKHRydWUpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9y
bUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQo
UnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYgKG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAg
ICAgW21fcHJvY2Vzc01vbml0b3IuZ2V0KCkgaW52YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vz
c01vbml0b3IgPSBuaWw7CisgICAgfQorICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVk
KGZhbHNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggODFmNjRiOGIwNzdhY2ZiNGJmNDM0MzNk
ZGQ2ZWEwYmRjNTAxMTg5OS4uMmY5MDBmYjZmYWYzNjY4ZjE4ZDNjZmZhYWZiNzMzZTk2NTA4N2M4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCkBAIC0yMDQsNiArMjA0LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2VuZENyZWF0aW9uUGFyYW1ldGVyc1RvTmV3UHJvY2VzcygpCiAjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgcGFyYW1ldGVycy5lbmFibGVQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCA9IGZhbHNlOwogI2VuZGlmCisgICAgCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBwYXJhbWV0ZXJzLmlzSW5CYWNrZ3JvdW5kID0gaXNBcHBsaWNhdGlvbkluQmFj
a2dyb3VuZCgpOworI2VuZGlmCiAKICAgICBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFs
aXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyk7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRl
cnMpLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA2ZDk2
ZDAyM2Y5Mzk0OGVkZGE1YzZhZGM3MjQzMmRkNmRjNDU0ZTRkLi44YjEzODcyYjM2MTI0YmQ2ZWYx
Zjg1MDY0OGIxYTIyZDk0MTFmYmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMzg0LDYgKzM4NCw3IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2b2lkIGFkZEJhY2tncm91bmRT
dGF0ZU9ic2VydmVycygpOwogICAgIHZvaWQgcmVtb3ZlQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJz
KCk7CisgICAgYm9vbCBpc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCk7CiAjZW5kaWYKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZFByb3h5TWFwPiBtX2Rvd25sb2FkUHJveHlNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDUxNzE2MDI4NzQ5ZDBiZjgzNDFlMzcwOTA3ZmVhYjk4
ZjU1NDMyODEuLjYwNGNmNGQ2YzVkMDkxMDYwMmI3N2FmZjM3MGM0OWZiYmRlM2E3MDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tCkBAIC0xMTIsNiArMTEyLDExIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6cmVtb3ZlQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCkKICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZm9yZWdyb3VuZE9i
c2VydmVyLmdldCgpXTsKIH0KIAorYm9vbCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc0FwcGxpY2F0
aW9uSW5CYWNrZ3JvdW5kKCkKK3sKKyAgICByZXR1cm4gW1tVSUFwcGxpY2F0aW9uIHNoYXJlZEFw
cGxpY2F0aW9uXSBhcHBsaWNhdGlvblN0YXRlXSA9PSBVSUFwcGxpY2F0aW9uU3RhdGVCYWNrZ3Jv
dW5kOworfQorCiAjZW5kaWYKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457787</attachid>
            <date>2022-04-17 17:56:24 -0700</date>
            <delta_ts>2022-04-17 22:26:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220417175623.patch</filename>
            <type>text/plain</type>
            <size>25629</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3M2VhNzFiZjRkNTkxODgz
OWIzMTFhZjlkYjJmN2UwMjkwZTc1NDQuLjYwZWM1NzI1NjFmMDY1YWViMGZiNmJiMmM3NGE5MDNi
ZjhlMDVlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDQtMTcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAy
MDIyLTA0LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtjc3Mtc2Nyb2xsLXNuYXBdIHNjcm9sbEludG9WaWV3IGZhaWxzIHdpdGggc2Nyb2xsLXNu
YXAtdHlwZSBvbiA6cm9vdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA2YTg3NWY0MDI0MjE5NGZhOTJjNjg5ZDc0ZDFkNDJjYWY5MzYz
NzFkLi4yNjM0NTJhNGVlOTY4ZDBjYzI4ZDZhY2EyNjhkZTY3NTlkNzE0N2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMzMzLDYg
KzMzMyw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmFibGVkKHBhcmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
OwogICAgIG1fZnRwRW5hYmxlZCA9IHBhcmFtZXRlcnMuZnRwRW5hYmxlZDsKIAorICAgIGlmIChw
YXJhbWV0ZXJzLmlzSW5CYWNrZ3JvdW5kKQorICAgICAgICBhcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCgpOworCiAgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52
YWx1ZXMoKSkKICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIApA
QCAtNDU3LDcgKzQ2MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVy
biBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKG1faXNTdXNw
ZW5kZWQpCisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkKICAgICAgICAgc2Vz
c2lvbi0+c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAKQEAgLTIxNDIsNyAr
MjE0NSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCks
IGlzU3VzcGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJsaWN9c2luIGJhY2tncm91
bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3Rh
bXAgPyAiIiA6ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKICAgICBsb3dN
ZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVn
YXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3Ro
aXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CkBAIC0yMTc1LDYgKzIxNzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0
YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3JtQXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4Niw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJC
YWNrZ3JvdW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9kb3dubG9hZE1hbmFn
ZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgcGxhdGZvcm1BcHBsaWNh
dGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKQEAgLTIxOTIsOCArMjE5
Niw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3Jl
Z3JvdW5kQWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3Jl
Z3JvdW5kQWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBz
ZWNvbmRzIiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAg
IG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRT
dXNwZW5zaW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgICAgIGlm
IChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2Vy
dmVyLT5lbmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFu
YWdlcigpLnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQgKzI3NTksMzggQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vz
c2lvbi0+Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
IChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQ6IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRl
ZCk7CisgICAgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGZv
ckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgaWYgKHN1
c3BlbmRlZCkKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworfQor
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCgpCit7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEz
NTcxNGExNmRmYmM2MzVjNzUzOTMxYTY0YmFhOWVmLi40YWU4YWU2NDhjYzE3ZWQ2OGE5YjE0MzQx
OGQwMmUyOGNhZDM0YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC02Niw2ICs2Niw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgorT0JKQ19DTEFTUyBSQlNQ
cm9jZXNzTW9uaXRvcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNzgsNiAr
MTc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZv
clRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVw
YXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVz
dGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAg
IENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQog
CkBAIC00NDAsNiArNDQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbERhdGFUYXNrKERh
dGFUYXNrSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgYXBwbGljYXRpb25E
aWRFbnRlckJhY2tncm91bmQoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAg
ICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiA9IHsgfSk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVN
b2RlbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTksNyBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNz
ZXJ0aW9uPiBtX2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQ
cm9jZXNzTW9uaXRvcj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJM
RShXRUJfUlRDKQpAQCAtNTMwLDcgKzUzNiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFi
bGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlv
bmFsPE1vbm90b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggNTMxYmNiYzM1NWNmZGY1MWQwYjQ5MDQ4YzIxNDlkNzAzOGRjZjE1Yi4u
ZWM5ZWYwMDkwZDc4Mjk4MmZjYTA1MDI3MmNmODE5MGFjNjNkODdjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC03NCw2ICs3NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAt
PiAoKSBTeW5jaHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25J
bW1pbmVudCkgLT4gKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5KQorICAgIFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29s
IHN1c3BlbmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9v
bCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2Fz
QXBwSW5pdGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBm
YTY4ZTk3ODYxMDhkZTkwMThmZmYxMDY4ODJlNjdlMzdjNWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIx
Y2NiMGFjMjRmODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtNjcsNiArNjcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8
PCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJs
ZWQ7CisgICAgZW5jb2RlciA8PCBpc0luQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IHdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogfQogCkBAIC0xMTksNiArMTIwLDggQEAgYm9vbCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTmV0d29ya1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmZ0cEVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNJbkJhY2tncm91bmQpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycz4+IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gd2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXgg
MDRmODE2NjE4ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1
ZDczZTljOGNhYzAwMjYwOTNmODNkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aApAQCAtODUsNiArODUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogCiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IHRydWUgfTsK
ICAgICBib29sIGZ0cEVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkJhY2tncm91bmQg
eyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IDAzYThjM2E4MmQzNzA2
MzA2ZTIwYjEzOGE3Y2M3Njc1MDQ0N2MyMTkuLjI5MGE5NTgzNjRmMTBiZDQ5NGU4MDkzOThjOTVk
NjI3OTMzYzQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9z
L05ldHdvcmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
aW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3
b3JrQ2FjaGUuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2
aWNlc1NQSS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgog
I2ltcG9ydCAiU2VjSXRlbVNoaW0uaCIKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEs
NiArMTEyLDQyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVz
KGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2Vy
dGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJO
ZXR3b3JrIFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRp
b25UeXBlOjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6
U3luYyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGlmIChtX3Byb2Nlc3NNb25pdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3Byb2Nlc3NNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJh
dGlvbjpbd2Vha1Byb2Nlc3MgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0
b3JDb25maWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRl
RGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2Ny
aXB0b3JdOworICAgICAgICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFs
dWVMZWdhY3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25z
XTsKKyAgICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAg
ICAgIFtjb25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0
ZU1hdGNoaW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAg
ICAgICAgW2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3ZWFrUHJvY2VzcyA9IFdURk1vdmUod2Vh
a1Byb2Nlc3MpXShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAq
cHJvY2VzcywgUkJTUHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGJv
b2wgc2hvdWxkU3VzcGVuZFN0b3JhZ2VPcGVyYXRpb25zID0gW1tbUkJTUHJvY2Vzc0hhbmRsZSBj
dXJyZW50UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNdIHJ1blRpbWVdICE9IFJCU1Byb2Nlc3NU
aW1lTGltaXRhdGlvbk5vbmU7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1By
b2Nlc3MsIHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9uc10geworICAgICAgICAgICAgICAg
IGlmICh3ZWFrUHJvY2VzcyAmJiB3ZWFrUHJvY2Vzcy0+bV9wcm9jZXNzTW9uaXRvcikKKyAgICAg
ICAgICAgICAgICAgICAgd2Vha1Byb2Nlc3MtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVk
KHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9ucyk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfV07CisgICAgfV07CisgICAgCisgICAgaWYgKFtSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQ
cm9jZXNzXS5hY3RpdmVMaW1pdGF0aW9ucy5ydW5UaW1lICE9IFJCU1Byb2Nlc3NUaW1lTGltaXRh
dGlvbk5vbmUpCisgICAgICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHRydWUpOwor
fQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisg
ICAgaWYgKG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAgICAgW21fcHJvY2Vzc01vbml0b3IuZ2V0
KCkgaW52YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vzc01vbml0b3IgPSBuaWw7CisgICAgfQor
ICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGZhbHNlKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNT
UEkuaAppbmRleCA0MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi5hNGJk
MWY5NmRkNTZjYjAxOTUwNTI5OGE2NjQ0NmU2NGE1ZjQxZjk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApA
QCAtMTM3LDggKzEzNywxOCBAQCB0eXBlZGVmIHZvaWQgKF5SQlNQcm9jZXNzVXBkYXRlSGFuZGxl
cikoUkJTUHJvY2Vzc01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYQogKyAoUkJTUHJvY2Vz
c1ByZWRpY2F0ZSAqKXByZWRpY2F0ZU1hdGNoaW5nSGFuZGxlOihSQlNQcm9jZXNzSGFuZGxlICop
cHJvY2VzczsKIEBlbmQKIAordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFJCU1Byb2Nl
c3NTdGF0ZVZhbHVlcykgeworICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTm9uZSAgICAgICAgICAg
ICAgICAgICAgPSAwLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGFza1N0YXRlICAgICAgICAg
ICAgICAgPSAoMSA8PCAwKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhZ3MgICAgICAgICAg
ICAgICAgICAgID0gKDEgPDwgMSksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUZXJtaW5hdGlv
blJlc2lzdGFuY2UgICA9ICgxIDw8IDIpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5
QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCAzKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1v
ZGVybkFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgNCksCit9OworCiBAaW50ZXJmYWNlIFJCU1By
b2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0
eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBhc3NpZ24p
IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2YWx1ZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqZW5kb3dtZW50TmFt
ZXNwYWNlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggZTA5MzgwMzYxNDc5ODg1NjEyZjQ4
YWZhZGIzYzc0YmFlMzU1MTE2MS4uY2EyMDQxNjViMmIwYzljZTYzNmNiYjM2ZjU5MDQwNmI2YWVi
ZGM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC03NTUsNiArNzU1LDEzIEBAIHN0YXRpYyBWZWN0b3I8
V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAq
ZGF0YVJlY29yCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJl
c3VtZSgpOwogfQogCistICh2b2lkKV9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNwZW5kZWQsIFtjb21wbGV0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3Vu
ZDooQk9PTCliYWNrZ3JvdW5kCiB7CiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPm5ldHdvcmtQcm9j
ZXNzKCkuc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCmluZGV4IDQ3MDE3OTJhZWE4ZTA4ZTE5M2MwYmQ2NWY4OTAyZDZjNjY5ZTY2
YmMuLmQwODM2ZjQ4NDU3ODY0ODgzZGQ1NGZkZmQzYjRmMTc2MjY4ZmRjYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaApAQCAtMTAxLDYgKzEwMSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAtICh2b2lkKV9z
ZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJl
c3VtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClf
c2V0TmV0d29ya1Byb2Nlc3NTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3Rpbmc6KEJPT0wpYWxsb3dl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
LSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1
c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
LSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtIChwaWRfdClfbmV0d29ya1By
b2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiArICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDgxZjY0YjhiMDc3YWNmYjRiZjQzNDMzZGRkNmVhMGJkYzUwMTE4OTkuLjNhZjBlNGI2ODliYjg2
YTA3ZDA1YzQ0MTE1Mzk2NDI1Yjk3ZWZmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjA0LDYgKzIw
NCwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNU
b05ld1Byb2Nlc3MoKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHBh
cmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBmYWxzZTsKICNlbmRpZgor
ICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcGFyYW1ldGVycy5pc0luQmFja2dy
b3VuZCA9IGlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKTsKKyNlbmRpZgogCiAgICAgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwog
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkluaXRpYWxp
emVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dIHsKQEAgLTEzODIsNiArMTM4NiwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
bmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBSZXN1bWVS
ZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3Bl
bmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNwZW5kZWQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0
eTo6Tm8pOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAppbmRleCA2ZDk2ZDAyM2Y5Mzk0OGVkZGE1YzZhZGM3MjQzMmRkNmRjNDU0
ZTRkLi42MWEyOGYxZGE3NDJkYjk5YTBmNjNlZmI4MjMxOGU3YjJjN2FjMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aApAQCAtMjQ0LDYgKzI0NCw3IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRT
dXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9vbCk7CiAgICAgdm9pZCBzZW5kUHJvY2Vzc1dp
bGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJTY2hlbWVGb3JMZWdhY3lDdXN0b21Q
cm90b2NvbChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTY2hlbWVGb3JMZWdh
Y3lDdXN0b21Qcm90b2NvbChjb25zdCBTdHJpbmcmKTsKQEAgLTM4NCw2ICszODUsNyBAQCBwcml2
YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBhZGRCYWNrZ3JvdW5kU3Rh
dGVPYnNlcnZlcnMoKTsKICAgICB2b2lkIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygp
OworICAgIGJvb2wgaXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCgpOwogI2VuZGlmCiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWRQcm94eU1hcD4gbV9kb3dubG9hZFByb3h5TWFwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHlDb2NvYS5tbQppbmRleCA1MTcxNjAyODc0OWQwYmY4MzQxZTM3MDkwN2ZlYWI5OGY1
NTQzMjgxLi42MDRjZjRkNmM1ZDA5MTA2MDJiNzdhZmYzNzBjNDlmYmJkZTNhNzA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHlDb2NvYS5tbQpAQCAtMTEyLDYgKzExMiwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2ZvcmVncm91bmRPYnNl
cnZlci5nZXQoKV07CiB9CiAKK2Jvb2wgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNBcHBsaWNhdGlv
bkluQmFja2dyb3VuZCgpCit7CisgICAgcmV0dXJuIFtbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBs
aWNhdGlvbl0gYXBwbGljYXRpb25TdGF0ZV0gPT0gVUlBcHBsaWNhdGlvblN0YXRlQmFja2dyb3Vu
ZDsKK30KKwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMjE2Y2M0N2NkMTI3ZjJk
ZGY5YjFlZmJkODkzNWRkYmU1NDk5ZGNmOS4uYWI1ZTA4ZTMxOWE4NWMwOTI0ODk5YjkxOGMwM2E0
Y2ViZjAzZGVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE1OTksNiArMTU5OSwxMSBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpCiAgICAgbmV0
d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZShQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
OjpSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3Vz
cGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmcoc3VzcGVuZGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGJvb2wg
V2Vic2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAog
ewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CmluZGV4IGQ5ZDYyMjMwZjkwNWI0OWFkY2VhY2ViZjU5ZWJhMWFhZGFiYjdkOGQuLjQyMTQxMTU3
NmU0MGMxMTEzZjcyYTA3NWI5NzUxYWNlNDhjZjIyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Myw2
ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9T
dXNwZW5kRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwogICAg
IHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShO
ZXR3b3JrUHJvY2Vzc1Byb3h5Jik7CiAgICAgc3RhdGljIHZvaWQgbWFrZU5leHROZXR3b3JrUHJv
Y2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nKCk7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZU5l
eHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTg2MmYyOWM1YTYxNmMzMWRhOGQ2
NjAyMGJlNzdiM2U4NGEwMjEyYi4uMDIyYmJiYjI1ZGM5MmYwZDg4ODgyZjRkY2IzOTJmOWRlNTE2
ZGFlZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIyLTA0LTE3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gbmV0d29yayBw
cm9jZXNzIGlzIGluIGJhY2tncm91bmQgYW5kIHdpbGwgYmUgc3VzcGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0MzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW06CisgICAgICAgIChURVNU
KToKKwogMjAyMi0wNC0xMiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNv
bT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFdFQktJVF9MSUJSQVJJRVMgZW52IHZhciBzaG91bGQg
YmUgY3VzdG9taXphYmxlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQppbmRleCAwMjUy
NDMwMmZiZGZjYTgzZGFlMmFhNGVlYWZkMzg5YWFhYzNiNjE5Li5jMjEwMmYzZTBlMTA5MjYzZjU0
NjJhMDZjYTczNjYxZjgwMTgxZDYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0K
QEAgLTE3MCw3ICsxNzAsMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NT
dXNwZW5kcykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVz
c2FnZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAidmFsdWUiLCBbbGFzdFNjcmlwdE1lc3NhZ2Ug
Ym9keV0pOwogCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2Vu
ZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5XTsKKyAgICByZWFkeVRvQ29udGlu
dWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9z
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5k
bGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcmVhZHlUb0Nv
bnRpbnVlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRv
dy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgna2V5JywgJ25ld1ZhbHVlJykiIGNvbXBsZXRpb25IYW5k
bGVyOl4oaWQsIE5TRXJyb3IgKikgewpAQCAtMTg1LDcgKzE4OSwxMSBAQCBURVNUKFdLV2ViVmll
dywgTG9jYWxTdG9yYWdlUHJvY2Vzc1N1c3BlbmRzKQogICAgIH1dOwogICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKICAgICAKLSAgICBbY29uZmlndXJhdGlv
bi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWVdOwor
ICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpO
TyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsK
IAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457793</attachid>
            <date>2022-04-17 22:26:15 -0700</date>
            <delta_ts>2022-04-18 16:18:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220417222614.patch</filename>
            <type>text/plain</type>
            <size>25870</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM3M2VhNzFiZjRkNTkxODgz
OWIzMTFhZjlkYjJmN2UwMjkwZTc1NDQuLjYwZWM1NzI1NjFmMDY1YWViMGZiNmJiMmM3NGE5MDNi
ZjhlMDVlNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDQtMTcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAy
MDIyLTA0LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtjc3Mtc2Nyb2xsLXNuYXBdIHNjcm9sbEludG9WaWV3IGZhaWxzIHdpdGggc2Nyb2xsLXNu
YXAtdHlwZSBvbiA6cm9vdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA2YTg3NWY0MDI0MjE5NGZhOTJjNjg5ZDc0ZDFkNDJjYWY5MzYz
NzFkLi4yNjM0NTJhNGVlOTY4ZDBjYzI4ZDZhY2EyNjhkZTY3NTlkNzE0N2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMzMzLDYg
KzMzMyw5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhO
ZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYmCiAgICAgc2V0UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmFibGVkKHBhcmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQp
OwogICAgIG1fZnRwRW5hYmxlZCA9IHBhcmFtZXRlcnMuZnRwRW5hYmxlZDsKIAorICAgIGlmIChw
YXJhbWV0ZXJzLmlzSW5CYWNrZ3JvdW5kKQorICAgICAgICBhcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCgpOworCiAgICAgZm9yIChhdXRvJiBzdXBwbGVtZW50IDogbV9zdXBwbGVtZW50cy52
YWx1ZXMoKSkKICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZShwYXJhbWV0ZXJzKTsKIApA
QCAtNDU3LDcgKzQ2MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVy
biBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9u
UGFyYW1ldGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKG1faXNTdXNw
ZW5kZWQpCisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkKICAgICAgICAgc2Vz
c2lvbi0+c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAKQEAgLTIxNDIsNyAr
MjE0NSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCks
IGlzU3VzcGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJsaWN9c2luIGJhY2tncm91
bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3Rh
bXAgPyAiIiA6ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKICAgICBsb3dN
ZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVn
YXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3Ro
aXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0
YWJsZSB7CkBAIC0yMTc1LDYgKzIxNzcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0
YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3JtQXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4Niw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJC
YWNrZ3JvdW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9kb3dubG9hZE1hbmFn
ZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgcGxhdGZvcm1BcHBsaWNh
dGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKQEAgLTIxOTIsOCArMjE5
Niw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3Jl
Z3JvdW5kQWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3Jl
Z3JvdW5kQWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBz
ZWNvbmRzIiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAg
IG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRT
dXNwZW5zaW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOSw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgICAgIGlm
IChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2Vy
dmVyLT5lbmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFu
YWdlcigpLnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQgKzI3NTksMzggQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vz
c2lvbi0+Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlm
IChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1
cm47CisKKyAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQ6IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRl
ZCk7CisgICAgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGZv
ckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgaWYgKHN1
c3BlbmRlZCkKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworfQorCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworfQor
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCgpCit7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEz
NTcxNGExNmRmYmM2MzVjNzUzOTMxYTY0YmFhOWVmLi40YWU4YWU2NDhjYzE3ZWQ2OGE5YjE0MzQx
OGQwMmUyOGNhZDM0YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oCkBAIC02Niw2ICs2Niw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgorT0JKQ19DTEFTUyBSQlNQ
cm9jZXNzTW9uaXRvcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNzgsNiAr
MTc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZv
clRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVw
YXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVz
dGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAg
IENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQog
CkBAIC00NDAsNiArNDQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbERhdGFUYXNrKERh
dGFUYXNrSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgYXBwbGljYXRpb25E
aWRFbnRlckJhY2tncm91bmQoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCgpOworICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAg
ICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiA9IHsgfSk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVN
b2RlbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTksNyBAQCBw
cml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyIG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNz
ZXJ0aW9uPiBtX2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQ
cm9jZXNzTW9uaXRvcj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJM
RShXRUJfUlRDKQpAQCAtNTMwLDcgKzUzNiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFi
bGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlv
bmFsPE1vbm90b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KaW5kZXggNTMxYmNiYzM1NWNmZGY1MWQwYjQ5MDQ4YzIxNDlkNzAzOGRjZjE1Yi4u
ZWM5ZWYwMDkwZDc4Mjk4MmZjYTA1MDI3MmNmODE5MGFjNjNkODdjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CkBAIC03NCw2ICs3NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAt
PiAoKSBTeW5jaHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25J
bW1pbmVudCkgLT4gKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5KQorICAgIFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29s
IHN1c3BlbmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50
LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGlu
Z1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9v
bCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2Fz
QXBwSW5pdGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBm
YTY4ZTk3ODYxMDhkZTkwMThmZmYxMDY4ODJlNjdlMzdjNWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIx
Y2NiMGFjMjRmODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcApAQCAtNjcsNiArNjcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8
PCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJs
ZWQ7CisgICAgZW5jb2RlciA8PCBpc0luQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IHdlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogfQogCkBAIC0xMTksNiArMTIwLDggQEAgYm9vbCBOZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rl
ciwgTmV0d29ya1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocmVzdWx0LmZ0cEVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNJbkJhY2tncm91bmQpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycz4+IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gd2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXgg
MDRmODE2NjE4ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1
ZDczZTljOGNhYzAwMjYwOTNmODNkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aApAQCAtODUsNiArODUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMgewogCiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IHRydWUgfTsK
ICAgICBib29sIGZ0cEVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkJhY2tncm91bmQg
eyBmYWxzZSB9OwogCiAgICAgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IDAzYThjM2E4MmQzNzA2
MzA2ZTIwYjEzOGE3Y2M3Njc1MDQ0N2MyMTkuLjI5MGE5NTgzNjRmMTBiZDQ5NGU4MDkzOThjOTVk
NjI3OTMzYzQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9z
L05ldHdvcmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
aW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3
b3JrQ2FjaGUuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2
aWNlc1NQSS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgog
I2ltcG9ydCAiU2VjSXRlbVNoaW0uaCIKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEs
NiArMTEyLDQyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVz
KGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2Vy
dGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJO
ZXR3b3JrIFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRp
b25UeXBlOjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6
U3luYyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKKworICAgIGlmIChtX3Byb2Nlc3NNb25pdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3Byb2Nlc3NNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJh
dGlvbjpbd2Vha1Byb2Nlc3MgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0
b3JDb25maWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRl
RGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2Ny
aXB0b3JdOworICAgICAgICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFs
dWVMZWdhY3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25z
XTsKKyAgICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAg
ICAgIFtjb25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0
ZU1hdGNoaW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAg
ICAgICAgW2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3ZWFrUHJvY2VzcyA9IFdURk1vdmUod2Vh
a1Byb2Nlc3MpXShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAq
cHJvY2VzcywgUkJTUHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGJv
b2wgc2hvdWxkU3VzcGVuZFN0b3JhZ2VPcGVyYXRpb25zID0gW1tbUkJTUHJvY2Vzc0hhbmRsZSBj
dXJyZW50UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNdIHJ1blRpbWVdICE9IFJCU1Byb2Nlc3NU
aW1lTGltaXRhdGlvbk5vbmU7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1By
b2Nlc3MsIHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9uc10geworICAgICAgICAgICAgICAg
IGlmICh3ZWFrUHJvY2VzcyAmJiB3ZWFrUHJvY2Vzcy0+bV9wcm9jZXNzTW9uaXRvcikKKyAgICAg
ICAgICAgICAgICAgICAgd2Vha1Byb2Nlc3MtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVk
KHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9ucyk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfV07CisgICAgfV07CisgICAgCisgICAgaWYgKFtSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQ
cm9jZXNzXS5hY3RpdmVMaW1pdGF0aW9ucy5ydW5UaW1lICE9IFJCU1Byb2Nlc3NUaW1lTGltaXRh
dGlvbk5vbmUpCisgICAgICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHRydWUpOwor
fQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisg
ICAgaWYgKG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAgICAgW21fcHJvY2Vzc01vbml0b3IuZ2V0
KCkgaW52YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vzc01vbml0b3IgPSBuaWw7CisgICAgfQor
ICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGZhbHNlKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNT
UEkuaAppbmRleCA0MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi4wYTll
Y2RlNGFjOTQwNjhlYWI5MTVmNTg4MjU2NzE4NGNkYjk4MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApA
QCAtMTMxLDE0ICsxMzEsMjUgQEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vzc1VwZGF0ZUhhbmRs
ZXIpKFJCU1Byb2Nlc3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEKIAogQGludGVyZmFj
ZSBSQlNQcm9jZXNzTW9uaXRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5
cGUpbW9uaXRvcldpdGhDb25maWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQcm9jZXNzTW9uaXRv
ckNvbmZpZ3VyYXRvcilibG9jazsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogQGludGVy
ZmFjZSBSQlNQcm9jZXNzUHJlZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nlc3NNYXRjaGluZz4K
ICsgKFJCU1Byb2Nlc3NQcmVkaWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTooUkJTUHJv
Y2Vzc0hhbmRsZSAqKXByb2Nlc3M7CiBAZW5kCiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMpIHsKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU5v
bmUgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhc2tT
dGF0ZSAgICAgICAgICAgICAgID0gKDEgPDwgMCksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVU
YWdzICAgICAgICAgICAgICAgICAgICA9ICgxIDw8IDEpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZh
bHVlVGVybWluYXRpb25SZXNpc3RhbmNlICAgPSAoMSA8PCAyKSwKKyAgICBSQlNQcm9jZXNzU3Rh
dGVWYWx1ZUxlZ2FjeUFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgMyksCisgICAgUkJTUHJvY2Vz
c1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zICAgICAgICA9ICgxIDw8IDQpLAorfTsKKwogQGlu
dGVyZmFjZSBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4K
ICsgKGluc3RhbmNldHlwZSlkZXNjcmlwdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3
cml0ZSwgYXNzaWduKSBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMgdmFsdWVzOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWR3cml0ZSwgY29weSwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KmVuZG93bWVudE5hbWVzcGFjZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUwOTM4MDM2
MTQ3OTg4NTYxMmY0OGFmYWRiM2M3NGJhZTM1NTExNjEuLmNhMjA0MTY1YjJiMGM5Y2U2MzZjYmIz
NmY1OTA0MDZiNmFlYmRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU1LDYgKzc1NSwxMyBAQCBz
dGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNv
cmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZW5kTmV0d29y
a1Byb2Nlc3NEaWRSZXN1bWUoKTsKIH0KIAorLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5z
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3N5bnRoZXNpemVB
cHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZAogewogICAgIF93ZWJzaXRlRGF0YVN0b3Jl
LT5uZXR3b3JrUHJvY2VzcygpLnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYmFja2dyb3VuZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA0NzAxNzkyYWVhOGUwOGUxOTNjMGJkNjVm
ODkwMmQ2YzY2OWU2NmJjLi5kMDgzNmY0ODQ1Nzg2NDg4M2RkNTRmZGZkM2I0ZjE3NjI2OGZkY2Mz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVm
IE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykg
ewogLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29y
a1Byb2Nlc3NEaWRSZXN1bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKICsgKHZvaWQpX3NldE5ldHdvcmtQcm9jZXNzU3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5n
OihCT09MKWFsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVz
dGluZzooQk9PTClzdXNwZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29t
cGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFj
a2dyb3VuZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlk
X3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogKyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxG
b3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCA4MWY2NGI4YjA3N2FjZmI0YmY0MzQzM2RkZDZlYTBiZGM1MDExODk5Li4z
YWYwZTRiNjg5YmI4NmEwN2QwNWM0NDExNTM5NjQyNWI5N2VmZmRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTIwNCw2ICsyMDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRp
b25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKCkKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBwYXJhbWV0ZXJzLmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gZmFs
c2U7CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHBhcmFtZXRl
cnMuaXNJbkJhY2tncm91bmQgPSBpc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCk7CisjZW5kaWYK
IAogICAgIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhw
YXJhbWV0ZXJzKTsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpJbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSB7CkBAIC0xMzgyLDYgKzEzODYsMTEgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24gcmVhc29uKQogICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZShyZWFz
b24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsKIH0KIAordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rp
bmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhy
b3R0bGVyQWN0aXZpdHk6Ok5vKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVz
aENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Npb25JRCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNmQ5NmQwMjNmOTM5NDhlZGRhNWM2YWRj
NzI0MzJkZDZkYzQ1NGU0ZC4uNjFhMjhmMWRhNzQyZGI5OWEwZjYzZWZiODIzMThlN2IyYzdhYzM1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKQEAgLTI0NCw2ICsyNDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3Rh
dGljIHZvaWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQg
c2VuZFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBz
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHJlZ2lzdGVyU2NoZW1lRm9y
TGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVy
U2NoZW1lRm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CkBAIC0zODQsNiAr
Mzg1LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgYWRk
QmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CiAgICAgdm9pZCByZW1vdmVCYWNrZ3JvdW5kU3Rh
dGVPYnNlcnZlcnMoKTsKKyAgICBib29sIGlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKTsKICNl
bmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkUHJveHlNYXA+IG1fZG93bmxvYWRQ
cm94eU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNTE3MTYwMjg3NDlkMGJmODM0MWUz
NzA5MDdmZWFiOThmNTU0MzI4MS4uNjA0Y2Y0ZDZjNWQwOTEwNjAyYjc3YWZmMzcwYzQ5ZmJiZGUz
YTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTExMiw2ICsxMTIsMTEgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKQogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9m
b3JlZ3JvdW5kT2JzZXJ2ZXIuZ2V0KCldOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKQoreworICAgIHJldHVybiBbW1VJQXBwbGljYXRp
b24gc2hhcmVkQXBwbGljYXRpb25dIGFwcGxpY2F0aW9uU3RhdGVdID09IFVJQXBwbGljYXRpb25T
dGF0ZUJhY2tncm91bmQ7Cit9CisKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDIx
NmNjNDdjZDEyN2YyZGRmOWIxZWZiZDg5MzVkZGJlNTQ5OWRjZjkuLmFiNWUwOGUzMTlhODVjMDky
NDg5OWI5MThjMDNhNGNlYmYwM2RlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNTk5LDYgKzE1
OTksMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1
bWUoKQogICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJvY2Vzc1Ro
cm90dGxlckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQogCit2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVz
dGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWRGb3JUZXN0aW5nKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCiBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAppbmRleCBkOWQ2MjIzMGY5MDViNDlhZGNlYWNlYmY1OWViYTFhYWRhYmI3
ZDhkLi40MjE0MTE1NzZlNDBjMTExM2Y3MmEwNzViOTc1MWFjZTQ4Y2YyMjNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9j
ZXNzUHJlcGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRl
c3RpbmcoKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIHZv
aWQgc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3VzcGVuZGVk
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NE
aWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYpOwogICAgIHN0YXRpYyB2b2lkIG1ha2VO
ZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwogICAgIHN0YXRpYyBib29s
IHNob3VsZE1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE4NjJmMjlj
NWE2MTZjMzFkYThkNjYwMjBiZTc3YjNlODRhMDIxMmIuLjAyMmJiYmIyNWRjOTJmMGQ4ODg4MmY0
ZGNiMzkyZjlkZTUxNmRhZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wNC0xNyAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tOgor
ICAgICAgICAoVEVTVCk6CisKIDIwMjItMDQtMTIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmku
RnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBXRUJLSVRfTElCUkFSSUVTIGVu
diB2YXIgc2hvdWxkIGJlIGN1c3RvbWl6YWJsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2Uu
bW0KaW5kZXggMDI1MjQzMDJmYmRmY2E4M2RhZTJhYTRlZWFmZDM4OWFhYWMzYjYxOS4uYzIxMDJm
M2UwZTEwOTI2M2Y1NDYyYTA2Y2E3MzY2MWY4MDE4MWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBl
cnNpc3RlbmNlLm1tCkBAIC0xNzAsNyArMTcwLDExIEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0
b3JhZ2VQcm9jZXNzU3VzcGVuZHMpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVDVF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVE
YXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseV07CisgICAg
cmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0
ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBj
b21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAog
ICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFT
Y3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2tleScsICduZXdWYWx1ZScpIiBj
b21wbGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vycm9yICopIHsKQEAgLTE4NSw3ICsxODksMTEgQEAg
VEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICB9XTsKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAgICAgCi0gICAg
W2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNz
RGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJh
dGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRl
ZEZvclRlc3Rpbmc6Tk8gY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgcmVhZHlUb0NvbnRp
bnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5
VG9Db250aW51ZSk7CiAKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457833</attachid>
            <date>2022-04-18 16:18:07 -0700</date>
            <delta_ts>2022-04-18 16:52:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220418161806.patch</filename>
            <type>text/plain</type>
            <size>28054</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA4ZDU0ZWQ1MmJhM2M4ZDgz
Njc5YjYxZmIwZTEwZGJiOTZmODc0ZDcuLjZhMjhiYzRiODJiYTZhOTI5YmJmNjBhNWIyMGE0YTYy
NmNjMGNlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDQtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAy
MDIyLTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgdGhlIG1haW4gdmlkZW8gaGV1cmlzdGljIHJvYnVzdCB3aGVuIHZpZGVvIGVsZW1l
bnRzIGFyZSBhZGRlZCBhZnRlciBlbnRlcmluZyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDZhODc1ZjQwMjQyMTk0
ZmE5MmM2ODlkNzRkMWQ0MmNhZjkzNjM3MWQuLjNjNjQ5OTM0ZGFjOTkzNzBlM2I1M2Q3OGE2YjQ0
ZGZkMGZhMmE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0zMzMsNiArMzMzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYK
ICAgICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiAgICAgbV9mdHBFbmFibGVkID0gcGFyYW1ldGVycy5m
dHBFbmFibGVkOwogCisgICAgaWYgKHBhcmFtZXRlcnMuaXNJbkJhY2tncm91bmQpCisgICAgICAg
IGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisKICAgICBmb3IgKGF1dG8mIHN1cHBs
ZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQogICAgICAgICBzdXBwbGVtZW50LT5pbml0
aWFsaXplKHBhcmFtZXRlcnMpOwogCkBAIC00NTcsNyArNDYwLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMKICAgICAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoKnRoaXMsIHBh
cmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKICAgICB9KS5pdGVyYXRvci0+dmFs
dWU7CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9u
U3VzcGVuZGVkKQogICAgICAgICBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW10g
eyB9KTsKIH0KIApAQCAtMjE0Miw3ICsyMTQ1LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwK
IHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQgUHJvY2VzcyBp
cyAle3B1YmxpY31zaW4gYmFja2dyb3VuZCIsIHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIiIDogIm5vdCAiKTsKIAotICAgIG1faXNTdXNw
ZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAKICAg
ICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFj
a0FnZ3JlZ2F0b3I6OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTIxNjIsNyArMjE2NCw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24u
c3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5zdGFydFN1c3BlbnNpb24oW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgotICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5h
Z2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogCiAgICAg
Zm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkp
CkBAIC0yMTc1LDYgKzIxNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3Jv
dW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgcGxhdGZvcm1BcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0Rp
ZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKQEAgLTIxOTIsOCArMjE5NSw2IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRz
IiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNT
dXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5z
aW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5l
bmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigp
LnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQgKzI3NTgsMzkgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX3N0
b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBXVEZMb2dBbHdheXMoInNpaHVpbDogWyVwXU5ldHdvcmtQcm9jZXNzOjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZDogc3VzcGVuZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKyAg
ICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9w
ZXJhdGlvbnNTdXNwZW5kZWQ6IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7CisgICAg
bV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGZvckVhY2hOZXR3
b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgaWYgKHN1c3BlbmRlZCkK
KyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXNzaW9uLnN0
b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworfQorCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCit7
Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEzNTcxNGExNmRm
YmM2MzVjNzUzOTMxYTY0YmFhOWVmLi40YWU4YWU2NDhjYzE3ZWQ2OGE5YjE0MzQxOGQwMmUyOGNh
ZDM0YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCkBAIC02Niw2ICs2Niw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2luY2x1
ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgorT0JKQ19DTEFTUyBSQlNQcm9jZXNzTW9u
aXRvcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNzgsNiArMTc5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdT
eW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNw
ZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5
KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29s
IHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIENhY2hlTW9k
ZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC00NDAs
NiArNDQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbERhdGFUYXNrKERhdGFUYXNrSWRl
bnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwor
ICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHZv
aWQgcGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAgICB2b2lkIHNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiA9IHsgfSk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAgICAg
dm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTksNyBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1f
d2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBt
X2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQcm9jZXNzTW9u
aXRvcj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXRUJfUlRD
KQpAQCAtNTMwLDcgKzUzNiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFs
c2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdG9y
YWdlT3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90
b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggNTMxYmNiYzM1NWNmZGY1MWQwYjQ5MDQ4YzIxNDlkNzAzOGRjZjE1Yi4uZWM5ZWYwMDkw
ZDc4Mjk4MmZjYTA1MDI3MmNmODE5MGFjNjNkODdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NCw2
ICs3NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5j
aHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkg
LT4gKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQor
ICAgIFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRl
ZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6
Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBmYTY4ZTk3ODYx
MDhkZTkwMThmZmYxMDY4ODJlNjdlMzdjNWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIxY2NiMGFjMjRm
ODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
NjcsNiArNjcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBlbmFibGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJsZWQ7CisgICAg
ZW5jb2RlciA8PCBpc0luQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzOwogfQogCkBAIC0xMTksNiArMTIwLDggQEAgYm9vbCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29y
a1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmZ0cEVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaXNJbkJhY2tncm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4+IHdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDRmODE2NjE4
ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1ZDczZTljOGNh
YzAwMjYwOTNmODNkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODUs
NiArODUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAg
ICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IHRydWUgfTsKICAgICBib29s
IGZ0cEVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkJhY2tncm91bmQgeyBmYWxzZSB9
OwogCiAgICAgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IDAzYThjM2E4MmQzNzA2MzA2ZTIwYjEz
OGE3Y2M3Njc1MDQ0N2MyMTkuLjBiY2Y4ZDk1MDJlYjEzZWJlNWY0YjliYTA4ZjdhYzE4NDdkYjJi
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQ
cm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3b3JrQ2FjaGUu
aCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0
ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5o
IgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAi
U2VjSXRlbVNoaW0uaCIKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEsNiArMTEyLDQ0
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNI
b2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbiA9IFBy
b2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJOZXR3b3JrIFBy
b2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpG
aW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmQoKQoreworICAgIFdURkxvZ0Fsd2F5cygic2lodWlsOiBbJXBdTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQiLCB0aGlzKTsKKyAgICBSRUxF
QVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAobV9wcm9jZXNzTW9uaXRv
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzTW9uaXRvciA9IFtSQlNQcm9jZXNz
TW9uaXRvciBtb25pdG9yV2l0aENvbmZpZ3VyYXRpb246W3dlYWtQcm9jZXNzID0gV2Vha1B0ciB7
ICp0aGlzIH1dKGlkPFJCU1Byb2Nlc3NNb25pdG9yQ29uZmlndXJpbmc+IGNvbmZpZykgbXV0YWJs
ZSB7CisgICAgICAgIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgKmRlc2NyaXB0b3IgPSBbUkJT
UHJvY2Vzc1N0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Ig
c2V0VmFsdWVzOlJCU1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyB8IFJCU1Byb2Nl
c3NTdGF0ZVZhbHVlTW9kZXJuQXNzZXJ0aW9uc107CisgICAgICAgIFtjb25maWcgc2V0U3RhdGVE
ZXNjcmlwdG9yOmRlc2NyaXB0b3JdOworICAgICAgICBbY29uZmlnIHNldFByZWRpY2F0ZXM6QFtb
UkJTUHJvY2Vzc1ByZWRpY2F0ZSBwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTpbUkJTUHJvY2Vzc0hh
bmRsZSBjdXJyZW50UHJvY2Vzc11dXV07CisgICAgICAgIFtjb25maWcgc2V0VXBkYXRlSGFuZGxl
cjpbd2Vha1Byb2Nlc3MgPSBXVEZNb3ZlKHdlYWtQcm9jZXNzKV0oUkJTUHJvY2Vzc01vbml0b3Ig
Km1vbml0b3IsIFJCU1Byb2Nlc3NIYW5kbGUgKnByb2Nlc3MsIFJCU1Byb2Nlc3NTdGF0ZVVwZGF0
ZSAqdXBkYXRlKSB7CisgICAgICAgICAgICBib29sIHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0
aW9ucyA9IFtbW1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3NdIGFjdGl2ZUxpbWl0YXRp
b25zXSBydW5UaW1lXSAhPSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25lOworICAgICAgICAg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtQcm9jZXNzLCBzaG91bGRTdXNwZW5kU3RvcmFnZU9w
ZXJhdGlvbnNdIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vha1Byb2Nlc3MgJiYgd2Vha1Byb2Nl
c3MtPm1fcHJvY2Vzc01vbml0b3IpCisgICAgICAgICAgICAgICAgICAgIHdlYWtQcm9jZXNzLT5z
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChzaG91bGRTdXNwZW5kU3RvcmFnZU9wZXJhdGlv
bnMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH1dOworICAgIH1dOworICAgIAorICAgIGlm
IChbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50UHJvY2Vzc10uYWN0aXZlTGltaXRhdGlvbnMucnVu
VGltZSAhPSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25lKQorICAgICAgICBzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZCh0cnVlKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIFdURkxvZ0Fsd2F5
cygic2lodWlsOiBbJXBdTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kIiwgdGhpcyk7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOworCisgICAgaWYgKG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAgICAgW21fcHJvY2Vzc01v
bml0b3IuZ2V0KCkgaW52YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vzc01vbml0b3IgPSBuaWw7
CisgICAgfQorICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGZhbHNlKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBmOWJiMjg1YzJlNDFhNGQxODhlMDUwNDdm
OGU3MzAyMGMwZThmMjdjLi43YTBmMjBkZmIyMGRmZDdkZDQzYjA3ZTNkYTlkMDBjYzdlMTUzODUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTU2LDYgKzE1Niw3IEBAIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6fk5ldHdvcmtTdG9yYWdlTWFuYWdlcigpCiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9jbG9zZWQpOwogCisgICAgV1RGTG9nQWx3
YXlzKCJzaWh1aWw6IFslcF1OZXR3b3JrU3RvcmFnZU1hbmFnZXI6Ok5ldHdvcmtTdG9yYWdlTWFu
YWdlciBzZXNzaW9uSURbJWxsdV0iLCB0aGlzLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpKTsKICAg
ICBhbGxOZXR3b3JrU3RvcmFnZU1hbmFnZXJzKCkucmVtb3ZlKCp0aGlzKTsKIH0KIApAQCAtNjYx
LDYgKzY2Miw4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpzdXNwZW5kKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlCiAgICAgaWYgKG1fc2Vzc2lvbklE
LmlzRXBoZW1lcmFsKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwogCisg
ICAgV1RGTG9nQWx3YXlzKCJzaWh1aWw6IFslcF1OZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnN1c3Bl
bmQgc2Vzc2lvbklEWyVsbHVdIiwgdGhpcywgbV9zZXNzaW9uSUQudG9VSW50NjQoKSk7CisgICAg
V1RGUmVwb3J0QmFja3RyYWNlKCk7CiAgICAgbV9xdWV1ZS0+c3VzcGVuZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIHsKICAgICAgICAgZm9yIChhdXRvJiBtYW5hZ2VyIDog
bV9sb2NhbE9yaWdpblN0b3JhZ2VNYW5hZ2Vycy52YWx1ZXMoKSkgewogICAgICAgICAgICAgaWYg
KGF1dG8gbG9jYWxTdG9yYWdlTWFuYWdlciA9IG1hbmFnZXItPmV4aXN0aW5nTG9jYWxTdG9yYWdl
TWFuYWdlcigpKQpAQCAtNjc4LDYgKzY4MSw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
OjpyZXN1bWUoKQogICAgIGlmIChtX3Nlc3Npb25JRC5pc0VwaGVtZXJhbCgpKQogICAgICAgICBy
ZXR1cm47CiAKKyAgICBXVEZMb2dBbHdheXMoInNpaHVpbDogWyVwXU5ldHdvcmtTdG9yYWdlTWFu
YWdlcjo6cmVzdW1lIHNlc3Npb25JRFslbGx1XSIsIHRoaXMsIG1fc2Vzc2lvbklELnRvVUludDY0
KCkpOwogICAgIG1fcXVldWUtPnJlc3VtZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oCmluZGV4IDQy
NTEzMmZlOTBjZmJlYzM3NmYzNjkyMTVmMDQzMmNmMmJhOTg4NGQuLjBhOWVjZGU0YWM5NDA2OGVh
YjkxNWY1ODgyNTY3MTg0Y2RiOTgzMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oCkBAIC0xMzEsMTQgKzEz
MSwyNSBAQCB0eXBlZGVmIHZvaWQgKF5SQlNQcm9jZXNzVXBkYXRlSGFuZGxlcikoUkJTUHJvY2Vz
c01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYQogCiBAaW50ZXJmYWNlIFJCU1Byb2Nlc3NN
b25pdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4KICsgKGluc3RhbmNldHlwZSltb25pdG9yV2l0
aENvbmZpZ3VyYXRpb246KE5TX05PRVNDQVBFIFJCU1Byb2Nlc3NNb25pdG9yQ29uZmlndXJhdG9y
KWJsb2NrOworLSAodm9pZClpbnZhbGlkYXRlOwogQGVuZAogCiBAaW50ZXJmYWNlIFJCU1Byb2Nl
c3NQcmVkaWNhdGUgOiBOU09iamVjdCA8UkJTUHJvY2Vzc01hdGNoaW5nPgogKyAoUkJTUHJvY2Vz
c1ByZWRpY2F0ZSAqKXByZWRpY2F0ZU1hdGNoaW5nSGFuZGxlOihSQlNQcm9jZXNzSGFuZGxlICop
cHJvY2VzczsKIEBlbmQKIAordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFJCU1Byb2Nl
c3NTdGF0ZVZhbHVlcykgeworICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTm9uZSAgICAgICAgICAg
ICAgICAgICAgPSAwLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGFza1N0YXRlICAgICAgICAg
ICAgICAgPSAoMSA8PCAwKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhZ3MgICAgICAgICAg
ICAgICAgICAgID0gKDEgPDwgMSksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUZXJtaW5hdGlv
blJlc2lzdGFuY2UgICA9ICgxIDw8IDIpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5
QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCAzKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1v
ZGVybkFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgNCksCit9OworCiBAaW50ZXJmYWNlIFJCU1By
b2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0
eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBhc3NpZ24p
IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2YWx1ZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqZW5kb3dtZW50TmFt
ZXNwYWNlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXggZTA5MzgwMzYxNDc5ODg1NjEyZjQ4
YWZhZGIzYzc0YmFlMzU1MTE2MS4uY2EyMDQxNjViMmIwYzljZTYzNmNiYjM2ZjU5MDQwNmI2YWVi
ZGM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC03NTUsNiArNzU1LDEzIEBAIHN0YXRpYyBWZWN0b3I8
V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAq
ZGF0YVJlY29yCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJl
c3VtZSgpOwogfQogCistICh2b2lkKV9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNv
bXBsZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNwZW5kZWQsIFtjb21wbGV0aW9uSGFuZGxlciA9
IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3Vu
ZDooQk9PTCliYWNrZ3JvdW5kCiB7CiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPm5ldHdvcmtQcm9j
ZXNzKCkuc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZChiYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCmluZGV4IDQ3MDE3OTJhZWE4ZTA4ZTE5M2MwYmQ2NWY4OTAyZDZjNjY5ZTY2
YmMuLmQwODM2ZjQ4NDU3ODY0ODgzZGQ1NGZkZmQzYjRmMTc2MjY4ZmRjYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaApAQCAtMTAxLDYgKzEwMSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhO
U1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAtICh2b2lkKV9z
ZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJl
c3VtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClf
c2V0TmV0d29ya1Byb2Nlc3NTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3Rpbmc6KEJPT0wpYWxsb3dl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
LSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1
c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwog
LSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtIChwaWRfdClfbmV0d29ya1By
b2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiArICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGUyYWM5MGMzYTQ2YmU3ZDY5NzEwMGE1N2FiM2UyOTk2YjY3NTViYzUuLmJmYWU1ZTlmYjA3YjJm
OGEwOTk4YTY2ZjFmYTFkYzY0NzZiNzE5MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjA0LDYgKzIw
NCwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNU
b05ld1Byb2Nlc3MoKQogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHBh
cmFtZXRlcnMuZW5hYmxlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBmYWxzZTsKICNlbmRpZgor
ICAgIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcGFyYW1ldGVycy5pc0luQmFja2dy
b3VuZCA9IGlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKTsKKyNlbmRpZgogCiAgICAgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKHBhcmFtZXRlcnMpOwog
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkluaXRpYWxp
emVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlz
IH1dIHsKQEAgLTEzODIsNiArMTM4NiwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
bmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBSZXN1bWVS
ZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3Bl
bmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNwZW5kZWQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0
eTo6Tm8pOworfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAppbmRleCA4N2E0YWYzNjg3MjU5OGE2ZWFiNTAxMWY0NTRlODRiMWUzYzI5
MjFkLi41YTJkYjNjZmNkNzA0NTRjNjU4NzQwYWE5YjFmZGFjMjlhZDk2MDY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aApAQCAtMjQ1LDYgKzI0NSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRT
dXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9vbCk7CiAgICAgdm9pZCBzZW5kUHJvY2Vzc1dp
bGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJTY2hlbWVGb3JMZWdhY3lDdXN0b21Q
cm90b2NvbChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTY2hlbWVGb3JMZWdh
Y3lDdXN0b21Qcm90b2NvbChjb25zdCBTdHJpbmcmKTsKQEAgLTM4NCw2ICszODUsNyBAQCBwcml2
YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBhZGRCYWNrZ3JvdW5kU3Rh
dGVPYnNlcnZlcnMoKTsKICAgICB2b2lkIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygp
OworICAgIGJvb2wgaXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCgpOwogI2VuZGlmCiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8RG93bmxvYWRQcm94eU1hcD4gbV9kb3dubG9hZFByb3h5TWFwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHlDb2NvYS5tbQppbmRleCA1MTcxNjAyODc0OWQwYmY4MzQxZTM3MDkwN2ZlYWI5OGY1
NTQzMjgxLi42MDRjZjRkNmM1ZDA5MTA2MDJiNzdhZmYzNzBjNDlmYmJkZTNhNzA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHlDb2NvYS5tbQpAQCAtMTEyLDYgKzExMiwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2ZvcmVncm91bmRPYnNl
cnZlci5nZXQoKV07CiB9CiAKK2Jvb2wgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNBcHBsaWNhdGlv
bkluQmFja2dyb3VuZCgpCit7CisgICAgcmV0dXJuIFtbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBs
aWNhdGlvbl0gYXBwbGljYXRpb25TdGF0ZV0gPT0gVUlBcHBsaWNhdGlvblN0YXRlQmFja2dyb3Vu
ZDsKK30KKwogI2VuZGlmCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggYTY5NDVlY2UyN2ZjYmVh
ZjM5MWZiMjAwOWQ0MWJkM2YxN2QwNWI5Yi4uMGMxNWRhNzk5Mzk5OTBlMWIzNDViNmZmM2RjNjRi
ODk0YWNlYjYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE1OTksNiArMTU5OSwxMSBAQCB2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpCiAgICAgbmV0
d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZShQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
OjpSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3Vz
cGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7
CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmcoc3VzcGVuZGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGJvb2wg
V2Vic2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAog
ewogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CmluZGV4IGQ5ZDYyMjMwZjkwNWI0OWFkY2VhY2ViZjU5ZWJhMWFhZGFiYjdkOGQuLjQyMTQxMTU3
NmU0MGMxMTEzZjcyYTA3NWI5NzUxYWNlNDhjZjIyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Myw2
ICsxNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9T
dXNwZW5kRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
c2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwogICAg
IHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShO
ZXR3b3JrUHJvY2Vzc1Byb3h5Jik7CiAgICAgc3RhdGljIHZvaWQgbWFrZU5leHROZXR3b3JrUHJv
Y2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nKCk7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZU5l
eHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y4NTQ3YWVlOGZlZGU4MjAwZTll
OGQ5NjBhZGVmNDAxYzM2NGQyNC4uNjE4NzcxMGM0YTNmYWU1OWRjYzhhYjdjZDIwZjA1MDI1OWE0
ODkwZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIyLTA0LTE4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUu
Y29tPgorCisgICAgICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gbmV0d29yayBw
cm9jZXNzIGlzIGluIGJhY2tncm91bmQgYW5kIHdpbGwgYmUgc3VzcGVuZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0MzIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW06CisgICAgICAgIChURVNU
KToKKwogMjAyMi0wNC0xOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBNYWtlIHRoZSBtYWluIHZpZGVvIGhldXJpc3RpYyByb2J1c3Qgd2hlbiB2aWRl
byBlbGVtZW50cyBhcmUgYWRkZWQgYWZ0ZXIgZW50ZXJpbmcgZnVsbHNjcmVlbgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJz
aXN0ZW5jZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxT
dG9yYWdlUGVyc2lzdGVuY2UubW0KaW5kZXggMDI1MjQzMDJmYmRmY2E4M2RhZTJhYTRlZWFmZDM4
OWFhYWMzYjYxOS4uYzIxMDJmM2UwZTEwOTI2M2Y1NDYyYTA2Y2E3MzY2MWY4MDE4MWQ2MSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3Jh
Z2VQZXJzaXN0ZW5jZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCkBAIC0xNzAsNyArMTcwLDExIEBAIFRFU1Qo
V0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMpCiAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVDVF9XS19TVFJF
UShAInZhbHVlIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKIAotICAgIFtjb25maWd1cmF0
aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3Vy
YXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29u
dGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVh
ZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3ZWJW
aWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2tl
eScsICduZXdWYWx1ZScpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vycm9yICopIHsKQEAg
LTE4NSw3ICsxODksMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNw
ZW5kcykKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250
aW51ZSk7CiAgICAgCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBf
c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxz
ZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Tk8gY29tcGxldGlvbkhhbmRsZXI6XnsKKyAg
ICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWNlaXZlZFNjcmlwdE1lc3Nh
Z2UgPSBmYWxzZTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457840</attachid>
            <date>2022-04-18 16:52:35 -0700</date>
            <delta_ts>2022-04-18 18:25:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220418165234.patch</filename>
            <type>text/plain</type>
            <size>26294</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA4ZDU0ZWQ1MmJhM2M4ZDgz
Njc5YjYxZmIwZTEwZGJiOTZmODc0ZDcuLjZhMjhiYzRiODJiYTZhOTI5YmJmNjBhNWIyMGE0YTYy
NmNjMGNlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDQtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAy
MDIyLTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgdGhlIG1haW4gdmlkZW8gaGV1cmlzdGljIHJvYnVzdCB3aGVuIHZpZGVvIGVsZW1l
bnRzIGFyZSBhZGRlZCBhZnRlciBlbnRlcmluZyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDZhODc1ZjQwMjQyMTk0
ZmE5MmM2ODlkNzRkMWQ0MmNhZjkzNjM3MWQuLjI3NjVkYzgzNjA0YzZhN2I2OTNjZTQzZTY2NWE0
ZDBhNmRiMjc3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0zMzMsNiArMzMzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYK
ICAgICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiAgICAgbV9mdHBFbmFibGVkID0gcGFyYW1ldGVycy5m
dHBFbmFibGVkOwogCisgICAgaWYgKHBhcmFtZXRlcnMuaXNJbkJhY2tncm91bmQpCisgICAgICAg
IGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisKICAgICBmb3IgKGF1dG8mIHN1cHBs
ZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQogICAgICAgICBzdXBwbGVtZW50LT5pbml0
aWFsaXplKHBhcmFtZXRlcnMpOwogCkBAIC00NTcsNyArNDYwLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMKICAgICAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoKnRoaXMsIHBh
cmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKICAgICB9KS5pdGVyYXRvci0+dmFs
dWU7CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9u
U3VzcGVuZGVkKQogICAgICAgICBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW10g
eyB9KTsKIH0KIApAQCAtMjE0Miw3ICsyMTQ1LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwK
IHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQgUHJvY2VzcyBp
cyAle3B1YmxpY31zaW4gYmFja2dyb3VuZCIsIHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIiIDogIm5vdCAiKTsKIAotICAgIG1faXNTdXNw
ZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAKICAg
ICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFj
a0FnZ3JlZ2F0b3I6OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTIxNjIsNyArMjE2NCw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24u
c3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5zdGFydFN1c3BlbnNpb24oW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgotICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5h
Z2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogCiAgICAg
Zm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkp
CkBAIC0yMTc1LDYgKzIxNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3Jv
dW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgcGxhdGZvcm1BcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0Rp
ZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKQEAgLTIxOTIsOCArMjE5NSw2IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRz
IiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNT
dXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5z
aW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5l
bmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigp
LnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQgKzI3NTgsMzggQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX3N0
b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWQ6IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7Cisg
ICAgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGZvckVhY2hO
ZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgaWYgKHN1c3BlbmRl
ZCkKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXNzaW9u
LnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
Cit7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEzNTcxNGEx
NmRmYmM2MzVjNzUzOTMxYTY0YmFhOWVmLi40YWU4YWU2NDhjYzE3ZWQ2OGE5YjE0MzQxOGQwMmUy
OGNhZDM0YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC02Niw2ICs2Niw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2lu
Y2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgorT0JKQ19DTEFTUyBSQlNQcm9jZXNz
TW9uaXRvcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNzgsNiArMTc5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rp
bmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9T
dXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2
aXR5KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhi
b29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIENhY2hl
TW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC00
NDAsNiArNDQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbERhdGFUYXNrKERhdGFUYXNr
SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmQoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
OworICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAg
IHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAgICB2b2lk
IHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiA9IHsgfSk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAg
ICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTksNyBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
IG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9u
PiBtX2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQcm9jZXNz
TW9uaXRvcj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXRUJf
UlRDKQpAQCAtNTMwLDcgKzUzNiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9z
dG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1v
bm90b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggNTMxYmNiYzM1NWNmZGY1MWQwYjQ5MDQ4YzIxNDlkNzAzOGRjZjE1Yi4uZWM5ZWYw
MDkwZDc4Mjk4MmZjYTA1MDI3MmNmODE5MGFjNjNkODdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03
NCw2ICs3NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBT
eW5jaHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCkgLT4gKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5
KQorICAgIFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3Bl
bmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJL
aXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBmYTY4ZTk3
ODYxMDhkZTkwMThmZmYxMDY4ODJlNjdlMzdjNWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIxY2NiMGFj
MjRmODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtNjcsNiArNjcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBlbmFi
bGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJsZWQ7Cisg
ICAgZW5jb2RlciA8PCBpc0luQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzOwogfQogCkBAIC0xMTksNiArMTIwLDggQEAgYm9vbCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0
d29ya1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmZ0cEVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuaXNJbkJhY2tncm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4+
IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDRmODE2
NjE4ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1ZDczZTlj
OGNhYzAwMjYwOTNmODNkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAt
ODUsNiArODUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
CiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IHRydWUgfTsKICAgICBi
b29sIGZ0cEVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkJhY2tncm91bmQgeyBmYWxz
ZSB9OwogCiAgICAgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IDAzYThjM2E4MmQzNzA2MzA2ZTIw
YjEzOGE3Y2M3Njc1MDQ0N2MyMTkuLjI5MGE5NTgzNjRmMTBiZDQ5NGU4MDkzOThjOTVkNjI3OTMz
YzQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05l
dHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3b3JrQ2Fj
aGUuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1w
b3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQ
SS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9y
dCAiU2VjSXRlbVNoaW0uaCIKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEsNiArMTEy
LDQyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wg
aXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbiA9
IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJOZXR3b3Jr
IFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBl
OjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKwor
ICAgIGlmIChtX3Byb2Nlc3NNb25pdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3NNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjpb
d2Vha1Byb2Nlc3MgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25m
aWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3Jp
cHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3Jd
OworICAgICAgICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdh
Y3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAg
ICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtj
b25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNo
aW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAg
W2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3ZWFrUHJvY2VzcyA9IFdURk1vdmUod2Vha1Byb2Nl
c3MpXShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2Vz
cywgUkJTUHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGJvb2wgc2hv
dWxkU3VzcGVuZFN0b3JhZ2VPcGVyYXRpb25zID0gW1tbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50
UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNdIHJ1blRpbWVdICE9IFJCU1Byb2Nlc3NUaW1lTGlt
aXRhdGlvbk5vbmU7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1Byb2Nlc3Ms
IHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9uc10geworICAgICAgICAgICAgICAgIGlmICh3
ZWFrUHJvY2VzcyAmJiB3ZWFrUHJvY2Vzcy0+bV9wcm9jZXNzTW9uaXRvcikKKyAgICAgICAgICAg
ICAgICAgICAgd2Vha1Byb2Nlc3MtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHNob3Vs
ZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9ucyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07
CisgICAgfV07CisgICAgCisgICAgaWYgKFtSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNz
XS5hY3RpdmVMaW1pdGF0aW9ucy5ydW5UaW1lICE9IFJCU1Byb2Nlc3NUaW1lTGltaXRhdGlvbk5v
bmUpCisgICAgICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHRydWUpOworfQorCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYg
KG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAgICAgW21fcHJvY2Vzc01vbml0b3IuZ2V0KCkgaW52
YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vzc01vbml0b3IgPSBuaWw7CisgICAgfQorICAgIHNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGZhbHNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApp
bmRleCA0MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi4wYTllY2RlNGFj
OTQwNjhlYWI5MTVmNTg4MjU2NzE4NGNkYjk4MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtMTMx
LDE0ICsxMzEsMjUgQEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vzc1VwZGF0ZUhhbmRsZXIpKFJC
U1Byb2Nlc3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEKIAogQGludGVyZmFjZSBSQlNQ
cm9jZXNzTW9uaXRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpbW9u
aXRvcldpdGhDb25maWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQcm9jZXNzTW9uaXRvckNvbmZp
Z3VyYXRvcilibG9jazsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBS
QlNQcm9jZXNzUHJlZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nlc3NNYXRjaGluZz4KICsgKFJC
U1Byb2Nlc3NQcmVkaWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTooUkJTUHJvY2Vzc0hh
bmRsZSAqKXByb2Nlc3M7CiBAZW5kCiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBS
QlNQcm9jZXNzU3RhdGVWYWx1ZXMpIHsKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU5vbmUgICAg
ICAgICAgICAgICAgICAgID0gMCwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhc2tTdGF0ZSAg
ICAgICAgICAgICAgID0gKDEgPDwgMCksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUYWdzICAg
ICAgICAgICAgICAgICAgICA9ICgxIDw8IDEpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGVy
bWluYXRpb25SZXNpc3RhbmNlICAgPSAoMSA8PCAyKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1
ZUxlZ2FjeUFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgMyksCisgICAgUkJTUHJvY2Vzc1N0YXRl
VmFsdWVNb2Rlcm5Bc3NlcnRpb25zICAgICAgICA9ICgxIDw8IDQpLAorfTsKKwogQGludGVyZmFj
ZSBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4KICsgKGlu
c3RhbmNldHlwZSlkZXNjcmlwdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
YXNzaWduKSBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMgdmFsdWVzOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWR3cml0ZSwgY29weSwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmVuZG93
bWVudE5hbWVzcGFjZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUwOTM4MDM2MTQ3OTg4
NTYxMmY0OGFmYWRiM2M3NGJhZTM1NTExNjEuLmNhMjA0MTY1YjJiMGM5Y2U2MzZjYmIzNmY1OTA0
MDZiNmFlYmRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU1LDYgKzc1NSwxMyBAQCBzdGF0aWMg
VmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5T
QXJyYXkgKmRhdGFSZWNvcgogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWUoKTsKIH0KIAorLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0Jh
Y2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZAogewogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3
b3JrUHJvY2VzcygpLnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYmFja2dyb3VuZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA0NzAxNzkyYWVhOGUwOGUxOTNjMGJkNjVmODkwMmQ2
YzY2OWU2NmJjLi5kMDgzNmY0ODQ1Nzg2NDg4M2RkNTRmZGZkM2I0ZjE3NjI2OGZkY2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09Q
VElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAo
dm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsg
KHZvaWQpX3NldE5ldHdvcmtQcm9jZXNzU3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nOihCT09M
KWFsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzoo
Qk9PTClzdXNwZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3Vu
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25l
dHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogKyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0
aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCBlMmFjOTBjM2E0NmJlN2Q2OTcxMDBhNTdhYjNlMjk5NmI2NzU1YmM1Li5iZmFlNWU5
ZmIwN2IyZjhhMDk5OGE2NmYxZmExZGM2NDc2YjcxOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTIw
NCw2ICsyMDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJh
bWV0ZXJzVG9OZXdQcm9jZXNzKCkKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
ICAgICBwYXJhbWV0ZXJzLmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gZmFsc2U7CiAj
ZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHBhcmFtZXRlcnMuaXNJ
bkJhY2tncm91bmQgPSBpc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCk7CisjZW5kaWYKIAogICAg
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0
ZXJzKTsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJ
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSB7CkBAIC0xMzgyLDYgKzEzODYsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24gcmVhc29uKQogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZShyZWFzb24gPT0g
UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsKIH0KIAordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9v
bCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpT
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVy
QWN0aXZpdHk6Ok5vKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggODdhNGFmMzY4NzI1OThhNmVhYjUwMTFmNDU0ZTg0
YjFlM2MyOTIxZC4uNWEyZGIzY2ZjZDcwNDU0YzY1ODc0MGFhOWIxZmRhYzI5YWQ5NjA2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTI0NSw2ICsyNDUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIHZv
aWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2VuZFBy
b2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHJlZ2lzdGVyU2NoZW1lRm9yTGVnYWN5
Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2NoZW1l
Rm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CkBAIC0zODQsNiArMzg1LDcg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgYWRkQmFja2dy
b3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CiAgICAgdm9pZCByZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNl
cnZlcnMoKTsKKyAgICBib29sIGlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKTsKICNlbmRpZgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkUHJveHlNYXA+IG1fZG93bmxvYWRQcm94eU1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNTE3MTYwMjg3NDlkMGJmODM0MWUzNzA5MDdm
ZWFiOThmNTU0MzI4MS4uNjA0Y2Y0ZDZjNWQwOTEwNjAyYjc3YWZmMzcwYzQ5ZmJiZGUzYTcwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTExMiw2ICsxMTIsMTEgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKQogICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9mb3JlZ3Jv
dW5kT2JzZXJ2ZXIuZ2V0KCldOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzQXBw
bGljYXRpb25JbkJhY2tncm91bmQoKQoreworICAgIHJldHVybiBbW1VJQXBwbGljYXRpb24gc2hh
cmVkQXBwbGljYXRpb25dIGFwcGxpY2F0aW9uU3RhdGVdID09IFVJQXBwbGljYXRpb25TdGF0ZUJh
Y2tncm91bmQ7Cit9CisKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGE2OTQ1ZWNl
MjdmY2JlYWYzOTFmYjIwMDlkNDFiZDNmMTdkMDViOWIuLjBjMTVkYTc5OTM5OTkwZTFiMzQ1YjZm
ZjNkYzY0Yjg5NGFjZWI2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNTk5LDYgKzE1OTksMTEg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKQog
ICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJvY2Vzc1Rocm90dGxl
ckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQogCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhi
b29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
CiBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkg
Y29uc3QKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCBkOWQ2MjIzMGY5MDViNDlhZGNlYWNlYmY1OWViYTFhYWRhYmI3ZDhkLi40
MjE0MTE1NzZlNDBjMTExM2Y3MmEwNzViOTc1MWFjZTQ4Y2YyMjNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzUHJl
cGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIHZvaWQgc2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3VzcGVuZGVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRUZXJt
aW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYpOwogICAgIHN0YXRpYyB2b2lkIG1ha2VOZXh0TmV0
d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwogICAgIHN0YXRpYyBib29sIHNob3Vs
ZE1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNmODU0N2FlZThmZWRl
ODIwMGU5ZThkOTYwYWRlZjQwMWMzNjRkMjQuLjYxODc3MTBjNGEzZmFlNTlkY2M4YWI3Y2QyMGYw
NTAyNTlhNDg5MGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMi0wNC0xOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5l
dHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tOgorICAgICAg
ICAoVEVTVCk6CisKIDIwMjItMDQtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWFrZSB0aGUgbWFpbiB2aWRlbyBoZXVyaXN0aWMgcm9idXN0IHdo
ZW4gdmlkZW8gZWxlbWVudHMgYXJlIGFkZGVkIGFmdGVyIGVudGVyaW5nIGZ1bGxzY3JlZW4KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9y
YWdlUGVyc2lzdGVuY2UubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCmluZGV4IDAyNTI0MzAyZmJkZmNhODNkYWUyYWE0
ZWVhZmQzODlhYWFjM2I2MTkuLmMyMTAyZjNlMGUxMDkyNjNmNTQ2MmEwNmNhNzM2NjFmODAxODFk
NjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9j
YWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQpAQCAtMTcwLDcgKzE3MCwxMSBA
QCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUHJvY2Vzc1N1c3BlbmRzKQogICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBFWFBFQ1Rf
V0tfU1RSRVEoQCJ2YWx1ZSIsIFtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CiAKLSAgICBbY29u
ZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NXaWxs
U3VzcGVuZEltbWluZW50bHldOworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkRm9yVGVzdGluZzpZRVMgY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgcmVh
ZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKICAg
ICBbd2ViVmlldzEgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LmxvY2FsU3RvcmFnZS5zZXRJ
dGVtKCdrZXknLCAnbmV3VmFsdWUnKSIgY29tcGxldGlvbkhhbmRsZXI6XihpZCwgTlNFcnJvciAq
KSB7CkBAIC0xODUsNyArMTg5LDExIEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VQcm9j
ZXNzU3VzcGVuZHMpCiAgICAgfV07CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFk
eVRvQ29udGludWUpOwogICAgIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRh
U3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlUb0NvbnRpbnVl
ID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOk5PIGNvbXBsZXRpb25IYW5kbGVy
Ol57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcmVjZWl2ZWRTY3Jp
cHRNZXNzYWdlID0gZmFsc2U7CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457846</attachid>
            <date>2022-04-18 18:25:11 -0700</date>
            <delta_ts>2022-04-19 09:13:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220418182510.patch</filename>
            <type>text/plain</type>
            <size>30519</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA4ZDU0ZWQ1MmJhM2M4ZDgz
Njc5YjYxZmIwZTEwZGJiOTZmODc0ZDcuLmZkYTE5NTUxMGUyMWQ1NTIxNjhhMDViOWJhOGRkZjg2
YzRkNTI4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjItMDQtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Ojp+TmV0d29ya1N0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpyZXN1bWUpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAy
MDIyLTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgdGhlIG1haW4gdmlkZW8gaGV1cmlzdGljIHJvYnVzdCB3aGVuIHZpZGVvIGVsZW1l
bnRzIGFyZSBhZGRlZCBhZnRlciBlbnRlcmluZyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDZhODc1ZjQwMjQyMTk0
ZmE5MmM2ODlkNzRkMWQ0MmNhZjkzNjM3MWQuLjNjNjQ5OTM0ZGFjOTkzNzBlM2I1M2Q3OGE2YjQ0
ZGZkMGZhMmE4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0zMzMsNiArMzMzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYK
ICAgICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiAgICAgbV9mdHBFbmFibGVkID0gcGFyYW1ldGVycy5m
dHBFbmFibGVkOwogCisgICAgaWYgKHBhcmFtZXRlcnMuaXNJbkJhY2tncm91bmQpCisgICAgICAg
IGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisKICAgICBmb3IgKGF1dG8mIHN1cHBs
ZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQogICAgICAgICBzdXBwbGVtZW50LT5pbml0
aWFsaXplKHBhcmFtZXRlcnMpOwogCkBAIC00NTcsNyArNDYwLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMKICAgICAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoKnRoaXMsIHBh
cmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKICAgICB9KS5pdGVyYXRvci0+dmFs
dWU7CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9u
U3VzcGVuZGVkKQogICAgICAgICBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW10g
eyB9KTsKIH0KIApAQCAtMjE0Miw3ICsyMTQ1LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwK
IHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQgUHJvY2VzcyBp
cyAle3B1YmxpY31zaW4gYmFja2dyb3VuZCIsIHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIiIDogIm5vdCAiKTsKIAotICAgIG1faXNTdXNw
ZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAKICAg
ICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFj
a0FnZ3JlZ2F0b3I6OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTIxNjIsNyArMjE2NCw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24u
c3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5zdGFydFN1c3BlbnNpb24oW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgotICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5h
Z2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogCiAgICAg
Zm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkp
CkBAIC0yMTc1LDYgKzIxNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3Jv
dW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgcGxhdGZvcm1BcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0Rp
ZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKQEAgLTIxOTIsOCArMjE5NSw2IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRz
IiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNT
dXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5z
aW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5l
bmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigp
LnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQgKzI3NTgsMzkgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX3N0
b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBXVEZMb2dBbHdheXMoInNpaHVpbDogWyVwXU5ldHdvcmtQcm9jZXNzOjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZDogc3VzcGVuZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKyAg
ICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9w
ZXJhdGlvbnNTdXNwZW5kZWQ6IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7CisgICAg
bV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGZvckVhY2hOZXR3
b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgaWYgKHN1c3BlbmRlZCkK
KyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXNzaW9uLnN0
b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworfQorCit2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCit7
Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEzNTcxNGExNmRm
YmM2MzVjNzUzOTMxYTY0YmFhOWVmLi40YWU4YWU2NDhjYzE3ZWQ2OGE5YjE0MzQxOGQwMmUyOGNh
ZDM0YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCkBAIC02Niw2ICs2Niw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2luY2x1
ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgorT0JKQ19DTEFTUyBSQlNQcm9jZXNzTW9u
aXRvcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNzgsNiArMTc5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdT
eW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNw
ZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5
KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29s
IHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIENhY2hlTW9k
ZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC00NDAs
NiArNDQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbERhdGFUYXNrKERhdGFUYXNrSWRl
bnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwor
ICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHZv
aWQgcGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAgICB2b2lkIHNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiA9IHsgfSk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAgICAg
dm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTksNyBAQCBwcml2YXRlOgog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyIG1f
d2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBt
X2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQcm9jZXNzTW9u
aXRvcj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXRUJfUlRD
KQpAQCAtNTMwLDcgKzUzNiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFs
c2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdG9y
YWdlT3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90
b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggNTMxYmNiYzM1NWNmZGY1MWQwYjQ5MDQ4YzIxNDlkNzAzOGRjZjE1Yi4uZWM5ZWYwMDkw
ZDc4Mjk4MmZjYTA1MDI3MmNmODE5MGFjNjNkODdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NCw2
ICs3NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5j
aHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkg
LT4gKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQor
ICAgIFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRl
ZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6
Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBmYTY4ZTk3ODYx
MDhkZTkwMThmZmYxMDY4ODJlNjdlMzdjNWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIxY2NiMGFjMjRm
ODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAt
NjcsNiArNjcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBlbmFibGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJsZWQ7CisgICAg
ZW5jb2RlciA8PCBpc0luQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRhU3Rv
cmVQYXJhbWV0ZXJzOwogfQogCkBAIC0xMTksNiArMTIwLDggQEAgYm9vbCBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0d29y
a1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmZ0cEVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuaXNJbkJhY2tncm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4+IHdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDRmODE2NjE4
ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1ZDczZTljOGNh
YzAwMjYwOTNmODNkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtODUs
NiArODUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogCiAg
ICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IHRydWUgfTsKICAgICBib29s
IGZ0cEVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkJhY2tncm91bmQgeyBmYWxzZSB9
OwogCiAgICAgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJzaXRlRGF0YVN0
b3JlUGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IDAzYThjM2E4MmQzNzA2MzA2ZTIwYjEz
OGE3Y2M3Njc1MDQ0N2MyMTkuLjBiY2Y4ZDk1MDJlYjEzZWJlNWY0YjliYTA4ZjdhYzE4NDdkYjJi
M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQ
cm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3b3JrQ2FjaGUu
aCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0
ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5o
IgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAi
U2VjSXRlbVNoaW0uaCIKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEsNiArMTEyLDQ0
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNI
b2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbiA9IFBy
b2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJOZXR3b3JrIFBy
b2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpG
aW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7CiB9
CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmQoKQoreworICAgIFdURkxvZ0Fsd2F5cygic2lodWlsOiBbJXBdTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQiLCB0aGlzKTsKKyAgICBSRUxF
QVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBpZiAobV9wcm9jZXNzTW9uaXRv
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wcm9jZXNzTW9uaXRvciA9IFtSQlNQcm9jZXNz
TW9uaXRvciBtb25pdG9yV2l0aENvbmZpZ3VyYXRpb246W3dlYWtQcm9jZXNzID0gV2Vha1B0ciB7
ICp0aGlzIH1dKGlkPFJCU1Byb2Nlc3NNb25pdG9yQ29uZmlndXJpbmc+IGNvbmZpZykgbXV0YWJs
ZSB7CisgICAgICAgIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgKmRlc2NyaXB0b3IgPSBbUkJT
UHJvY2Vzc1N0YXRlRGVzY3JpcHRvciBkZXNjcmlwdG9yXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Ig
c2V0VmFsdWVzOlJCU1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyB8IFJCU1Byb2Nl
c3NTdGF0ZVZhbHVlTW9kZXJuQXNzZXJ0aW9uc107CisgICAgICAgIFtjb25maWcgc2V0U3RhdGVE
ZXNjcmlwdG9yOmRlc2NyaXB0b3JdOworICAgICAgICBbY29uZmlnIHNldFByZWRpY2F0ZXM6QFtb
UkJTUHJvY2Vzc1ByZWRpY2F0ZSBwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTpbUkJTUHJvY2Vzc0hh
bmRsZSBjdXJyZW50UHJvY2Vzc11dXV07CisgICAgICAgIFtjb25maWcgc2V0VXBkYXRlSGFuZGxl
cjpbd2Vha1Byb2Nlc3MgPSBXVEZNb3ZlKHdlYWtQcm9jZXNzKV0oUkJTUHJvY2Vzc01vbml0b3Ig
Km1vbml0b3IsIFJCU1Byb2Nlc3NIYW5kbGUgKnByb2Nlc3MsIFJCU1Byb2Nlc3NTdGF0ZVVwZGF0
ZSAqdXBkYXRlKSB7CisgICAgICAgICAgICBib29sIHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0
aW9ucyA9IFtbW1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3NdIGFjdGl2ZUxpbWl0YXRp
b25zXSBydW5UaW1lXSAhPSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25lOworICAgICAgICAg
ICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtQcm9jZXNzLCBzaG91bGRTdXNwZW5kU3RvcmFnZU9w
ZXJhdGlvbnNdIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vha1Byb2Nlc3MgJiYgd2Vha1Byb2Nl
c3MtPm1fcHJvY2Vzc01vbml0b3IpCisgICAgICAgICAgICAgICAgICAgIHdlYWtQcm9jZXNzLT5z
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChzaG91bGRTdXNwZW5kU3RvcmFnZU9wZXJhdGlv
bnMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH1dOworICAgIH1dOworICAgIAorICAgIGlm
IChbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50UHJvY2Vzc10uYWN0aXZlTGltaXRhdGlvbnMucnVu
VGltZSAhPSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25lKQorICAgICAgICBzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZCh0cnVlKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxh
dGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIFdURkxvZ0Fsd2F5
cygic2lodWlsOiBbJXBdTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kIiwgdGhpcyk7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWlu
KCkpOworCisgICAgaWYgKG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAgICAgW21fcHJvY2Vzc01v
bml0b3IuZ2V0KCkgaW52YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vzc01vbml0b3IgPSBuaWw7
CisgICAgfQorICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGZhbHNlKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBmOWJiMjg1YzJlNDFhNGQxODhlMDUwNDdm
OGU3MzAyMGMwZThmMjdjLi42ZjA1MjJkODEyZTQzZDZjNzFlNGE4Nzg3OTAzMmIzNWUwOTI3OWYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTU2LDYgKzE1Niw3IEBAIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6fk5ldHdvcmtTdG9yYWdlTWFuYWdlcigpCiAgICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKICAgICBBU1NFUlQobV9jbG9zZWQpOwogCisgICAgV1RGTG9nQWx3
YXlzKCJzaWh1aWw6IFslcF1OZXR3b3JrU3RvcmFnZU1hbmFnZXI6On5OZXR3b3JrU3RvcmFnZU1h
bmFnZXIgc2Vzc2lvbklEWyVsbHVdIiwgdGhpcywgbV9zZXNzaW9uSUQudG9VSW50NjQoKSk7CiAg
ICAgYWxsTmV0d29ya1N0b3JhZ2VNYW5hZ2VycygpLnJlbW92ZSgqdGhpcyk7CiB9CiAKQEAgLTY2
MSw2ICs2NjIsNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6c3VzcGVuZChDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZQogICAgIGlmIChtX3Nlc3Npb25J
RC5pc0VwaGVtZXJhbCgpKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAor
ICAgIFdURkxvZ0Fsd2F5cygic2lodWlsOiBbJXBdTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpzdXNw
ZW5kIHNlc3Npb25JRFslbGx1XSIsIHRoaXMsIG1fc2Vzc2lvbklELnRvVUludDY0KCkpOwogICAg
IG1fcXVldWUtPnN1c3BlbmQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSB7
CiAgICAgICAgIGZvciAoYXV0byYgbWFuYWdlciA6IG1fbG9jYWxPcmlnaW5TdG9yYWdlTWFuYWdl
cnMudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGxvY2FsU3RvcmFnZU1hbmFnZXIg
PSBtYW5hZ2VyLT5leGlzdGluZ0xvY2FsU3RvcmFnZU1hbmFnZXIoKSkKQEAgLTY3OCw2ICs2ODAs
NyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6cmVzdW1lKCkKICAgICBpZiAobV9zZXNz
aW9uSUQuaXNFcGhlbWVyYWwoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgV1RGTG9nQWx3YXlz
KCJzaWh1aWw6IFslcF1OZXR3b3JrU3RvcmFnZU1hbmFnZXI6OnJlc3VtZSBzZXNzaW9uSURbJWxs
dV0iLCB0aGlzLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpKTsKICAgICBtX3F1ZXVlLT5yZXN1bWUo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5p
bmdCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVu
bmluZ0JvYXJkU2VydmljZXNTUEkuaAppbmRleCA0MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0
MzJjZjJiYTk4ODRkLi4wYTllY2RlNGFjOTQwNjhlYWI5MTVmNTg4MjU2NzE4NGNkYjk4MzEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0Jv
YXJkU2VydmljZXNTUEkuaApAQCAtMTMxLDE0ICsxMzEsMjUgQEAgdHlwZWRlZiB2b2lkICheUkJT
UHJvY2Vzc1VwZGF0ZUhhbmRsZXIpKFJCU1Byb2Nlc3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9j
ZXNzSGEKIAogQGludGVyZmFjZSBSQlNQcm9jZXNzTW9uaXRvciA6IE5TT2JqZWN0IDxOU0NvcHlp
bmc+CiArIChpbnN0YW5jZXR5cGUpbW9uaXRvcldpdGhDb25maWd1cmF0aW9uOihOU19OT0VTQ0FQ
RSBSQlNQcm9jZXNzTW9uaXRvckNvbmZpZ3VyYXRvcilibG9jazsKKy0gKHZvaWQpaW52YWxpZGF0
ZTsKIEBlbmQKIAogQGludGVyZmFjZSBSQlNQcm9jZXNzUHJlZGljYXRlIDogTlNPYmplY3QgPFJC
U1Byb2Nlc3NNYXRjaGluZz4KICsgKFJCU1Byb2Nlc3NQcmVkaWNhdGUgKilwcmVkaWNhdGVNYXRj
aGluZ0hhbmRsZTooUkJTUHJvY2Vzc0hhbmRsZSAqKXByb2Nlc3M7CiBAZW5kCiAKK3R5cGVkZWYg
TlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMpIHsKKyAgICBSQlNQ
cm9jZXNzU3RhdGVWYWx1ZU5vbmUgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBSQlNQcm9j
ZXNzU3RhdGVWYWx1ZVRhc2tTdGF0ZSAgICAgICAgICAgICAgID0gKDEgPDwgMCksCisgICAgUkJT
UHJvY2Vzc1N0YXRlVmFsdWVUYWdzICAgICAgICAgICAgICAgICAgICA9ICgxIDw8IDEpLAorICAg
IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGVybWluYXRpb25SZXNpc3RhbmNlICAgPSAoMSA8PCAyKSwK
KyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZUxlZ2FjeUFzc2VydGlvbnMgICAgICAgID0gKDEgPDwg
MyksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zICAgICAgICA9ICgx
IDw8IDQpLAorfTsKKwogQGludGVyZmFjZSBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIDogTlNP
YmplY3QgPE5TQ29weWluZz4KICsgKGluc3RhbmNldHlwZSlkZXNjcmlwdG9yOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWR3cml0ZSwgYXNzaWduKSBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMgdmFs
dWVzOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgY29weSwgbnVsbGFibGUpIE5T
QXJyYXk8TlNTdHJpbmcgKj4gKmVuZG93bWVudE5hbWVzcGFjZXM7CiBAZW5kCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCmluZGV4IGUwOTM4MDM2MTQ3OTg4NTYxMmY0OGFmYWRiM2M3NGJhZTM1NTExNjEuLmNhMjA0
MTY1YjJiMGM5Y2U2MzZjYmIzNmY1OTA0MDZiNmFlYmRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAt
NzU1LDYgKzc1NSwxMyBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+
IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIF93ZWJzaXRlRGF0
YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsKIH0KIAorLSAodm9pZClfc2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF93
ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmco
c3VzcGVuZGVkLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhh
bmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0g
KHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZAogewogICAg
IF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLnN5bnRoZXNpemVBcHBJc0JhY2tn
cm91bmQoYmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA0NzAxNzky
YWVhOGUwOGUxOTNjMGJkNjVmODkwMmQ2YzY2OWU2NmJjLi5kMDgzNmY0ODQ1Nzg2NDg4M2RkNTRm
ZGZkM2I0ZjE3NjI2OGZkY2MzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTEwMSw2
ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFT
dG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3Bl
bmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAt
ICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX3NldE5ldHdvcmtQcm9jZXNzU3VzcGVuc2lv
bkFsbG93ZWRGb3JUZXN0aW5nOihCT09MKWFsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRp
b25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNwZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0Jh
Y2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClfbWFrZU5leHROZXR3b3Jr
UHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCks
IGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBlMmFjOTBjM2E0NmJlN2Q2OTcxMDBhNTdh
YjNlMjk5NmI2NzU1YmM1Li5iZmFlNWU5ZmIwN2IyZjhhMDk5OGE2NmYxZmExZGM2NDc2YjcxOTA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKQEAgLTIwNCw2ICsyMDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKCkKICNpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICBwYXJhbWV0ZXJzLmVuYWJsZVByaXZhdGVDbGlj
a01lYXN1cmVtZW50ID0gZmFsc2U7CiAjZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIHBhcmFtZXRlcnMuaXNJbkJhY2tncm91bmQgPSBpc0FwcGxpY2F0aW9uSW5CYWNr
Z3JvdW5kKCk7CisjZW5kaWYKIAogICAgIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxp
emVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0ZXJzKTsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJbml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVy
cyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CkBAIC0xMzgyLDYgKzEzODYsMTEg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVS
ZWFzb24gcmVhc29uKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJv
Y2Vzc0RpZFJlc3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkp
LCAwKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmcoc3VzcGVuZGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hv
dWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKK30KKwogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Np
b25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggODdhNGFm
MzY4NzI1OThhNmVhYjUwMTFmNDU0ZTg0YjFlM2MyOTIxZC4uNWEyZGIzY2ZjZDcwNDU0YzY1ODc0
MGFhOWIxZmRhYzI5YWQ5NjA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTI0NSw2ICsyNDUsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5n
KGJvb2wpOwogICAgIHZvaWQgc2VuZFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0
aW5nKCk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmco
Ym9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lk
IHJlZ2lzdGVyU2NoZW1lRm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CiAg
ICAgdm9pZCB1bnJlZ2lzdGVyU2NoZW1lRm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3Ry
aW5nJik7CkBAIC0zODQsNiArMzg1LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHZvaWQgYWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CiAgICAgdm9pZCBy
ZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKTsKKyAgICBib29sIGlzQXBwbGljYXRpb25J
bkJhY2tncm91bmQoKTsKICNlbmRpZgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkUHJv
eHlNYXA+IG1fZG93bmxvYWRQcm94eU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNTE3
MTYwMjg3NDlkMGJmODM0MWUzNzA5MDdmZWFiOThmNTU0MzI4MS4uNjA0Y2Y0ZDZjNWQwOTEwNjAy
Yjc3YWZmMzcwYzQ5ZmJiZGUzYTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTExMiw2
ICsxMTIsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZW1vdmVCYWNrZ3JvdW5kU3Rh
dGVPYnNlcnZlcnMoKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cmVtb3ZlT2JzZXJ2ZXI6bV9mb3JlZ3JvdW5kT2JzZXJ2ZXIuZ2V0KCldOwogfQogCitib29sIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKQoreworICAgIHJl
dHVybiBbW1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIGFwcGxpY2F0aW9uU3RhdGVd
ID09IFVJQXBwbGljYXRpb25TdGF0ZUJhY2tncm91bmQ7Cit9CisKICNlbmRpZgogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCmluZGV4IGE2OTQ1ZWNlMjdmY2JlYWYzOTFmYjIwMDlkNDFiZDNmMTdkMDViOWIu
LjBjMTVkYTc5OTM5OTkwZTFiMzQ1YjZmZjNkYzY0Yjg5NGFjZWI2MDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCkBAIC0xNTk5LDYgKzE1OTksMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0
d29ya1Byb2Nlc3NEaWRSZXN1bWUoKQogICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NE
aWRSZXN1bWUoUHJvY2Vzc1Rocm90dGxlckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5k
QWN0aXZpdHkpOwogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRp
b25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKHN1c3BlbmRlZCwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworfQorCiBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBkOWQ2MjIzMGY5MDViNDlhZGNl
YWNlYmY1OWViYTFhYWRhYmI3ZDhkLi40MjE0MTE1NzZlNDBjMTExM2Y3MmEwNzViOTc1MWFjZTQ4
Y2YyMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2VuZE5ldHdvcmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNw
ZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc0Rp
ZFJlc3VtZSgpOworICAgIHZvaWQgc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0
aW5nKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgbmV0d29ya1Byb2Nlc3NEaWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYpOwogICAg
IHN0YXRpYyB2b2lkIG1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygp
OwogICAgIHN0YXRpYyBib29sIHNob3VsZE1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWls
Rm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDNmODU0N2FlZThmZWRlODIwMGU5ZThkOTYwYWRlZjQwMWMzNjRkMjQuLjc4Zjk1
YWQ1MWQzZjZjN2M5ZTBlNzExYzlmNGMyOGYzNzc5OTJlZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0x
OCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIHN0
b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGFu
ZCB3aWxsIGJlIHN1c3BlbmRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM5NDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1
c3BlbmRJbW1pbmVudGx5Lm1tOgorICAgICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAg
ICAgKFRFU1QpOgorCiAyMDIyLTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgogCiAgICAgICAgIE1ha2UgdGhlIG1haW4gdmlkZW8gaGV1cmlzdGljIHJvYnVzdCB3
aGVuIHZpZGVvIGVsZW1lbnRzIGFyZSBhZGRlZCBhZnRlciBlbnRlcmluZyBmdWxsc2NyZWVuCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWRE
QlN1c3BlbmRJbW1pbmVudGx5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQppbmRleCA4Mzg4NTFiZmE4ODhhYzQw
YWM3MWNlY2FlNTBhNDgzYWIxYjg1ZjdhLi41MTlmYzFhYWJmODQzOGZmYjA1NThiMzYxMGQ3Njlk
YjI1ZmE4Zjc3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KQEAgLTkz
LDggKzkzLDE3IEBAIFRFU1QoSW5kZXhlZERCLCBESVNBQkxFRF9JbmRleGVkREJTdXNwZW5kSW1t
aW5lbnRseSkKIAogICAgIHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAIkNvbnRpbnVlIik7CiAKLSAg
ICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nl
c3NXaWxsU3VzcGVuZEltbWluZW50bHldOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlUb0Nv
bnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9y
ZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9u
SGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJlYWR5
VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRh
U3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0
aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJ1
blRlc3RBbmRDaGVja1Jlc3VsdChAIkV4cGVjdGVkIEFib3J0IEZvciBTdXNwZW5zaW9uIik7CiAg
ICAgcnVuVGVzdEFuZENoZWNrUmVzdWx0KEAiRXhwZWN0ZWQgU3VjY2VzcyBBZnRlciBSZXN1bWUi
KTsKQEAgLTE2Myw4ICsxNzIsMTcgQEAgVEVTVChJbmRleGVkREIsIFN1c3BlbmRJbW1pbmVudGx5
Rm9yVGhpcmRQYXJ0eURhdGFiYXNlcykKICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWlu
RnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQu
b3JnIl1dOwogICAgIHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAImRhdGFiYXNlIGlzIGNyZWF0ZWQi
KTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3
b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseV07Ci0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0
KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICBy
ZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRl
RGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNv
bXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworCisg
ICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vi
c2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOk5P
IGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwog
CiAgICAgcnVuVGVzdEFuZENoZWNrUmVzdWx0KEAidHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIik7
CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xv
Y2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQppbmRleCAwMjUyNDMwMmZiZGZjYTgz
ZGFlMmFhNGVlYWZkMzg5YWFhYzNiNjE5Li5jMjEwMmYzZTBlMTA5MjYzZjU0NjJhMDZjYTczNjYx
ZjgwMTgxZDYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KQEAgLTE3MCw3ICsx
NzAsMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAg
RVhQRUNUX1dLX1NUUkVRKEAidmFsdWUiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCi0g
ICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5XTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsK
KyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAg
ICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFs
c2U7CiAgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3Jh
Z2Uuc2V0SXRlbSgna2V5JywgJ25ld1ZhbHVlJykiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5T
RXJyb3IgKikgewpAQCAtMTg1LDcgKzE4OSwxMSBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9y
YWdlUHJvY2Vzc1N1c3BlbmRzKQogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKICAgICAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWVdOworICAgIHJlYWR5VG9D
b250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3Rv
cmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9u
SGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457906</attachid>
            <date>2022-04-19 09:13:56 -0700</date>
            <delta_ts>2022-04-21 12:49:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220419091355.patch</filename>
            <type>text/plain</type>
            <size>28785</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyOTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA4ZDU0ZWQ1MmJhM2M4ZDgz
Njc5YjYxZmIwZTEwZGJiOTZmODc0ZDcuLmZkYTE5NTUxMGUyMWQ1NTIxNjhhMDViOWJhOGRkZjg2
YzRkNTI4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMjItMDQtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgbm93IHdlIHVzZSBh
cHBsaWNhdGlvbiAKKyAgICAgICAgYmFja2dyb3VuZCBub3RpZmljYXRpb24gYXMgc2lnbmFsIG9m
IHN1c3BlbnNpb24uIEl0J3MgcG9zc2libGUgdGhhdCBhcHBsaWNhdGlvbiBwcm9jZXNzIGhvbGRz
IHNwZWNpYWwgYXNzZXJ0aW9uCisgICAgICAgIGluIGJhY2tncm91bmQgYW5kIHByb2Nlc3Mgd29u
J3QgYmUgc3VzcGVuZGVkIGF0IGFsbCAoZS5nLiB3aGVuIGF1ZGlvIHBsYXlzKS4gVG8gaGFuZGxl
IHRoaXMgY2FzZSwgd2Ugb25seQorICAgICAgICBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgaXQgaGFzIGEgYWN0aXZpdGl5IHRpbWUg
Y291bnRkb3duLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZU5ldHdvcmtQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3Rv
cmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Ojp+TmV0d29ya1N0b3JhZ2VNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpzdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5h
Z2VyOjpyZXN1bWUpOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFT
dG9yZS5tbToKKyAgICAgICAgKC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRDcmVhdGlvblBhcmFtZXRlcnNUb05ld1By
b2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzQXBwbGljYXRpb25JbkJhY2tncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorCiAy
MDIyLTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgdGhlIG1haW4gdmlkZW8gaGV1cmlzdGljIHJvYnVzdCB3aGVuIHZpZGVvIGVsZW1l
bnRzIGFyZSBhZGRlZCBhZnRlciBlbnRlcmluZyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDZhODc1ZjQwMjQyMTk0
ZmE5MmM2ODlkNzRkMWQ0MmNhZjkzNjM3MWQuLjI3NjVkYzgzNjA0YzZhN2I2OTNjZTQzZTY2NWE0
ZDBhNmRiMjc3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCkBAIC0zMzMsNiArMzMzLDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5p
dGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYK
ICAgICBzZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQocGFyYW1ldGVycy5lbmFibGVQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudCk7CiAgICAgbV9mdHBFbmFibGVkID0gcGFyYW1ldGVycy5m
dHBFbmFibGVkOwogCisgICAgaWYgKHBhcmFtZXRlcnMuaXNJbkJhY2tncm91bmQpCisgICAgICAg
IGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisKICAgICBmb3IgKGF1dG8mIHN1cHBs
ZW1lbnQgOiBtX3N1cHBsZW1lbnRzLnZhbHVlcygpKQogICAgICAgICBzdXBwbGVtZW50LT5pbml0
aWFsaXplKHBhcmFtZXRlcnMpOwogCkBAIC00NTcsNyArNDYwLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBh
cmFtZXRlcnMKICAgICAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUoKnRoaXMsIHBh
cmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKICAgICB9KS5pdGVyYXRvci0+dmFs
dWU7CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9u
U3VzcGVuZGVkKQogICAgICAgICBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW10g
eyB9KTsKIH0KIApAQCAtMjE0Miw3ICsyMTQ1LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwK
IHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQgUHJvY2VzcyBp
cyAle3B1YmxpY31zaW4gYmFja2dyb3VuZCIsIHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIiIDogIm5vdCAiKTsKIAotICAgIG1faXNTdXNw
ZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAKICAg
ICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFj
a0FnZ3JlZ2F0b3I6OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTIxNjIsNyArMjE2NCw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24u
c3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5zdGFydFN1c3BlbnNpb24oW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgotICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5h
Z2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogCiAgICAg
Zm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkp
CkBAIC0yMTc1LDYgKzIxNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0g
TW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKQEAgLTIxODMsNiArMjE4NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAgICAgICAgIG1fZW50ZXJCYWNrZ3Jv
dW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OwogCiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgcGxhdGZvcm1BcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0Rp
ZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKQEAgLTIxOTIsOCArMjE5NSw2IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRz
IiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBt
X2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNT
dXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5z
aW9uKCk7CiAKQEAgLTIyMDcsNyArMjIwOCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5l
bmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigp
LnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzU4LDQgKzI3NTgsMzggQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX3N0
b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWQ6IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7Cisg
ICAgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGZvckVhY2hO
ZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgaWYgKHN1c3BlbmRl
ZCkKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBzZXNzaW9u
LnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOworICAgICAgICB9CisgICAgfSk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworfQorCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisKK3ZvaWQgTmV0d29ya1Byb2Nl
c3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworfQorCit2b2lk
IE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
Cit7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEzNTcxNGEx
NmRmYmM2MzVjNzUzOTMxYTY0YmFhOWVmLi40YWU4YWU2NDhjYzE3ZWQ2OGE5YjE0MzQxOGQwMmUy
OGNhZDM0YmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCkBAIC02Niw2ICs2Niw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2lu
Y2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgorT0JKQ19DTEFTUyBSQlNQcm9jZXNz
TW9uaXRvcjsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0xNzgsNiArMTc5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rp
bmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9T
dXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2
aXR5KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhi
b29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIENhY2hl
TW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC00
NDAsNiArNDQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbERhdGFUYXNrKERhdGFUYXNr
SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmQoKTsKICAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
OworICAgIHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAg
IHZvaWQgcGxhdGZvcm1BcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAgICB2b2lk
IHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiA9IHsgfSk7CiAKICAgICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAg
ICAgdm9pZCBzZXRDYWNoZU1vZGVsU3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTUxNCw2ICs1MTksNyBAQCBwcml2YXRl
OgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2Vy
IG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9u
PiBtX2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uOworICAgIFJldGFpblB0cjxSQlNQcm9jZXNz
TW9uaXRvcj4gbV9wcm9jZXNzTW9uaXRvcjsKICNlbmRpZgogICAgIAogI2lmIEVOQUJMRShXRUJf
UlRDKQpAQCAtNTMwLDcgKzUzNiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9z
dG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1v
bm90b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggNTMxYmNiYzM1NWNmZGY1MWQwYjQ5MDQ4YzIxNDlkNzAzOGRjZjE1Yi4uZWM5ZWYw
MDkwZDc4Mjk4MmZjYTA1MDI3MmNmODE5MGFjNjNkODdjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03
NCw2ICs3NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsK
ICAgICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBT
eW5jaHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVu
dCkgLT4gKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5
KQorICAgIFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3Bl
bmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBw
Qm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJL
aXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBmYTY4ZTk3
ODYxMDhkZTkwMThmZmYxMDY4ODJlNjdlMzdjNWU1NjA2Li4xNmM0YmUyN2QyMTFkYmIxY2NiMGFj
MjRmODhhYWU2YzIyNTY0ZGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApA
QCAtNjcsNiArNjcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiAgICAgZW5jb2RlciA8PCBlbmFi
bGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDsKICAgICBlbmNvZGVyIDw8IGZ0cEVuYWJsZWQ7Cisg
ICAgZW5jb2RlciA8PCBpc0luQmFja2dyb3VuZDsKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzOwogfQogCkBAIC0xMTksNiArMTIwLDggQEAgYm9vbCBOZXR3b3JrUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgTmV0
d29ya1Byb2MKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cmVzdWx0LmZ0cEVuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuaXNJbkJhY2tncm91bmQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycz4+
IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogICAgIGRlY29kZXIgPj4gd2Vic2l0ZURhdGFT
dG9yZVBhcmFtZXRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggMDRmODE2
NjE4ODQyNmMwOWNmNmY4YmQ2MGRiODg5MTZkNDMyMGM0Yi4uNWZlMzMwMWZkNjMwYzM1ZDczZTlj
OGNhYzAwMjYwOTNmODNkOTM5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAt
ODUsNiArODUsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewog
CiAgICAgYm9vbCBlbmFibGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB7IHRydWUgfTsKICAgICBi
b29sIGZ0cEVuYWJsZWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNJbkJhY2tncm91bmQgeyBmYWxz
ZSB9OwogCiAgICAgVmVjdG9yPFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzPiB3ZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVyczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmluZGV4IDAzYThjM2E4MmQzNzA2MzA2ZTIw
YjEzOGE3Y2M3Njc1MDQ0N2MyMTkuLjI5MGE5NTgzNjRmMTBiZDQ5NGU4MDkzOThjOTVkNjI3OTMz
YzQ1ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdv
cmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05l
dHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJOZXR3b3JrQ2Fj
aGUuaCIKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1w
b3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQ
SS5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9y
dCAiU2VjSXRlbVNoaW0uaCIKICNpbXBvcnQgPFVJS2l0L1VJS2l0Lmg+CkBAIC0xMTEsNiArMTEy
LDQyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wg
aXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbiA9
IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJOZXR3b3Jr
IFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBl
OjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7
CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnBsYXRmb3JtQXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKKwor
ICAgIGlmIChtX3Byb2Nlc3NNb25pdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nl
c3NNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjpb
d2Vha1Byb2Nlc3MgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25m
aWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3Jp
cHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3Jd
OworICAgICAgICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdh
Y3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAg
ICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtj
b25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNo
aW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAg
W2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3ZWFrUHJvY2VzcyA9IFdURk1vdmUod2Vha1Byb2Nl
c3MpXShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2Vz
cywgUkJTUHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGJvb2wgc2hv
dWxkU3VzcGVuZFN0b3JhZ2VPcGVyYXRpb25zID0gW1tbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50
UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNdIHJ1blRpbWVdICE9IFJCU1Byb2Nlc3NUaW1lTGlt
aXRhdGlvbk5vbmU7CisgICAgICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1Byb2Nlc3Ms
IHNob3VsZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9uc10geworICAgICAgICAgICAgICAgIGlmICh3
ZWFrUHJvY2VzcyAmJiB3ZWFrUHJvY2Vzcy0+bV9wcm9jZXNzTW9uaXRvcikKKyAgICAgICAgICAg
ICAgICAgICAgd2Vha1Byb2Nlc3MtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHNob3Vs
ZFN1c3BlbmRTdG9yYWdlT3BlcmF0aW9ucyk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07
CisgICAgfV07CisgICAgCisgICAgaWYgKFtSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNz
XS5hY3RpdmVMaW1pdGF0aW9ucy5ydW5UaW1lICE9IFJCU1Byb2Nlc3NUaW1lTGltaXRhdGlvbk5v
bmUpCisgICAgICAgIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHRydWUpOworfQorCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgaWYg
KG1fcHJvY2Vzc01vbml0b3IpIHsKKyAgICAgICAgW21fcHJvY2Vzc01vbml0b3IuZ2V0KCkgaW52
YWxpZGF0ZV07CisgICAgICAgIG1fcHJvY2Vzc01vbml0b3IgPSBuaWw7CisgICAgfQorICAgIHNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGZhbHNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApp
bmRleCA0MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi4wYTllY2RlNGFj
OTQwNjhlYWI5MTVmNTg4MjU2NzE4NGNkYjk4MzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtMTMx
LDE0ICsxMzEsMjUgQEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vzc1VwZGF0ZUhhbmRsZXIpKFJC
U1Byb2Nlc3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEKIAogQGludGVyZmFjZSBSQlNQ
cm9jZXNzTW9uaXRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpbW9u
aXRvcldpdGhDb25maWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQcm9jZXNzTW9uaXRvckNvbmZp
Z3VyYXRvcilibG9jazsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBS
QlNQcm9jZXNzUHJlZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nlc3NNYXRjaGluZz4KICsgKFJC
U1Byb2Nlc3NQcmVkaWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTooUkJTUHJvY2Vzc0hh
bmRsZSAqKXByb2Nlc3M7CiBAZW5kCiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBS
QlNQcm9jZXNzU3RhdGVWYWx1ZXMpIHsKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU5vbmUgICAg
ICAgICAgICAgICAgICAgID0gMCwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhc2tTdGF0ZSAg
ICAgICAgICAgICAgID0gKDEgPDwgMCksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUYWdzICAg
ICAgICAgICAgICAgICAgICA9ICgxIDw8IDEpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGVy
bWluYXRpb25SZXNpc3RhbmNlICAgPSAoMSA8PCAyKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1
ZUxlZ2FjeUFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgMyksCisgICAgUkJTUHJvY2Vzc1N0YXRl
VmFsdWVNb2Rlcm5Bc3NlcnRpb25zICAgICAgICA9ICgxIDw8IDQpLAorfTsKKwogQGludGVyZmFj
ZSBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4KICsgKGlu
c3RhbmNldHlwZSlkZXNjcmlwdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
YXNzaWduKSBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMgdmFsdWVzOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWR3cml0ZSwgY29weSwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmVuZG93
bWVudE5hbWVzcGFjZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUwOTM4MDM2MTQ3OTg4
NTYxMmY0OGFmYWRiM2M3NGJhZTM1NTExNjEuLmNhMjA0MTY1YjJiMGM5Y2U2MzZjYmIzNmY1OTA0
MDZiNmFlYmRjNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU1LDYgKzc1NSwxMyBAQCBzdGF0aWMg
VmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5T
QXJyYXkgKmRhdGFSZWNvcgogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWUoKTsKIH0KIAorLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0Jh
Y2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZAogewogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3
b3JrUHJvY2VzcygpLnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYmFja2dyb3VuZCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCA0NzAxNzkyYWVhOGUwOGUxOTNjMGJkNjVmODkwMmQ2
YzY2OWU2NmJjLi5kMDgzNmY0ODQ1Nzg2NDg4M2RkNTRmZGZkM2I0ZjE3NjI2OGZkY2MzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0
b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09Q
VElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAo
dm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsg
KHZvaWQpX3NldE5ldHdvcmtQcm9jZXNzU3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nOihCT09M
KWFsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKy0gKHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzoo
Qk9PTClzdXNwZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlv
bkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3Vu
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25l
dHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogKyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0
aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCBlMmFjOTBjM2E0NmJlN2Q2OTcxMDBhNTdhYjNlMjk5NmI2NzU1YmM1Li5iZmFlNWU5
ZmIwN2IyZjhhMDk5OGE2NmYxZmExZGM2NDc2YjcxOTA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTIw
NCw2ICsyMDQsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kQ3JlYXRpb25QYXJh
bWV0ZXJzVG9OZXdQcm9jZXNzKCkKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkK
ICAgICBwYXJhbWV0ZXJzLmVuYWJsZVByaXZhdGVDbGlja01lYXN1cmVtZW50ID0gZmFsc2U7CiAj
ZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHBhcmFtZXRlcnMuaXNJ
bkJhY2tncm91bmQgPSBpc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5kKCk7CisjZW5kaWYKIAogICAg
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2VzcyhwYXJhbWV0
ZXJzKTsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJ
bml0aWFsaXplTmV0d29ya1Byb2Nlc3MocGFyYW1ldGVycyksIFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XSB7CkBAIC0xMzgyLDYgKzEzODYsMTEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24gcmVhc29uKQogICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZShyZWFzb24gPT0g
UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsKIH0KIAordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9v
bCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpT
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVy
QWN0aXZpdHk6Ok5vKTsKK30KKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggODdhNGFmMzY4NzI1OThhNmVhYjUwMTFmNDU0ZTg0
YjFlM2MyOTIxZC4uNWEyZGIzY2ZjZDcwNDU0YzY1ODc0MGFhOWIxZmRhYzI5YWQ5NjA2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKQEAgLTI0NSw2ICsyNDUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIHZv
aWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2VuZFBy
b2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CisgICAgdm9pZCBzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIHJlZ2lzdGVyU2NoZW1lRm9yTGVnYWN5
Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2NoZW1l
Rm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CkBAIC0zODQsNiArMzg1LDcg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgYWRkQmFja2dy
b3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CiAgICAgdm9pZCByZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNl
cnZlcnMoKTsKKyAgICBib29sIGlzQXBwbGljYXRpb25JbkJhY2tncm91bmQoKTsKICNlbmRpZgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPERvd25sb2FkUHJveHlNYXA+IG1fZG93bmxvYWRQcm94eU1h
cDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggNTE3MTYwMjg3NDlkMGJmODM0MWUzNzA5MDdm
ZWFiOThmNTU0MzI4MS4uNjA0Y2Y0ZDZjNWQwOTEwNjAyYjc3YWZmMzcwYzQ5ZmJiZGUzYTcwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTExMiw2ICsxMTIsMTEgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKQogICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9mb3JlZ3Jv
dW5kT2JzZXJ2ZXIuZ2V0KCldOwogfQogCitib29sIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzQXBw
bGljYXRpb25JbkJhY2tncm91bmQoKQoreworICAgIHJldHVybiBbW1VJQXBwbGljYXRpb24gc2hh
cmVkQXBwbGljYXRpb25dIGFwcGxpY2F0aW9uU3RhdGVdID09IFVJQXBwbGljYXRpb25TdGF0ZUJh
Y2tncm91bmQ7Cit9CisKICNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGE2OTQ1ZWNl
MjdmY2JlYWYzOTFmYjIwMDlkNDFiZDNmMTdkMDViOWIuLjBjMTVkYTc5OTM5OTkwZTFiMzQ1YjZm
ZjNkYzY0Yjg5NGFjZWI2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNTk5LDYgKzE1OTksMTEg
QEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKQog
ICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJvY2Vzc1Rocm90dGxl
ckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQogCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhi
b29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
CiBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkg
Y29uc3QKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaAppbmRleCBkOWQ2MjIzMGY5MDViNDlhZGNlYWNlYmY1OWViYTFhYWRhYmI3ZDhkLi40
MjE0MTE1NzZlNDBjMTExM2Y3MmEwNzViOTc1MWFjZTQ4Y2YyMjNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBA
IC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzUHJl
cGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAg
ICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIHZvaWQgc2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3VzcGVuZGVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRUZXJt
aW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYpOwogICAgIHN0YXRpYyB2b2lkIG1ha2VOZXh0TmV0
d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwogICAgIHN0YXRpYyBib29sIHNob3Vs
ZE1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNmODU0N2FlZThmZWRl
ODIwMGU5ZThkOTYwYWRlZjQwMWMzNjRkMjQuLjc4Zjk1YWQ1MWQzZjZjN2M5ZTBlNzExYzlmNGMy
OGYzNzc5OTJlZDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0xOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1
QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5l
dHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tOgorICAg
ICAgICAoVEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9M
b2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTE4
ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ug
dGhlIG1haW4gdmlkZW8gaGV1cmlzdGljIHJvYnVzdCB3aGVuIHZpZGVvIGVsZW1lbnRzIGFyZSBh
ZGRlZCBhZnRlciBlbnRlcmluZyBmdWxsc2NyZWVuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1t
aW5lbnRseS5tbQppbmRleCA4Mzg4NTFiZmE4ODhhYzQwYWM3MWNlY2FlNTBhNDgzYWIxYjg1Zjdh
Li41MTlmYzFhYWJmODQzOGZmYjA1NThiMzYxMGQ3NjlkYjI1ZmE4Zjc3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1p
bmVudGx5Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5k
ZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KQEAgLTkzLDggKzkzLDE3IEBAIFRFU1QoSW5kZXhl
ZERCLCBESVNBQkxFRF9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseSkKIAogICAgIHJ1blRlc3RB
bmRDaGVja1Jlc3VsdChAIkNvbnRpbnVlIik7CiAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53
ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHld
OwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3Jr
UHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2Nv
bmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFk
eVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAg
IFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRp
b25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICBy
ZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAIkV4
cGVjdGVkIEFib3J0IEZvciBTdXNwZW5zaW9uIik7CiAgICAgcnVuVGVzdEFuZENoZWNrUmVzdWx0
KEAiRXhwZWN0ZWQgU3VjY2VzcyBBZnRlciBSZXN1bWUiKTsKQEAgLTE2Myw4ICsxNzIsMTcgQEAg
VEVTVChJbmRleGVkREIsIFN1c3BlbmRJbW1pbmVudGx5Rm9yVGhpcmRQYXJ0eURhdGFiYXNlcykK
ICAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwogICAgIHJ1blRlc3RBbmRD
aGVja1Jlc3VsdChAImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKIAotICAgIFtjb25maWd1cmF0aW9u
LmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseV07Ci0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2Vu
ZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsK
KyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAg
ICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworCisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFs
c2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOk5PIGNvbXBsZXRpb25IYW5kbGVyOl57Cisg
ICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcnVuVGVzdEFuZENoZWNrUmVz
dWx0KEAidHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIik7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJz
aXN0ZW5jZS5tbQppbmRleCAwMjUyNDMwMmZiZGZjYTgzZGFlMmFhNGVlYWZkMzg5YWFhYzNiNjE5
Li5jMjEwMmYzZTBlMTA5MjYzZjU0NjJhMDZjYTczNjYxZjgwMTgxZDYxIDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3Rl
bmNlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxT
dG9yYWdlUGVyc2lzdGVuY2UubW0KQEAgLTE3MCw3ICsxNzAsMTEgQEAgVEVTVChXS1dlYlZpZXcs
IExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAidmFsdWUi
LCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5
XTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQo
KS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rp
bmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRy
dWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGlu
dWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcxIGV2YWx1
YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgna2V5JywgJ25ld1Zh
bHVlJykiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3IgKikgewpAQCAtMTg1LDcgKzE4
OSwxMSBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUHJvY2Vzc1N1c3BlbmRzKQogICAg
IH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKICAg
ICAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29y
a1Byb2Nlc3NEaWRSZXN1bWVdOworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFk
eVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458084</attachid>
            <date>2022-04-21 12:49:58 -0700</date>
            <delta_ts>2022-04-21 13:42:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220421124957.patch</filename>
            <type>text/plain</type>
            <size>37510</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDI5ZDVlNjk1ZDVmODNh
NDVlYjg1ZTQ0NDY2YTIxMWVmODE4NjEuLmExNDU3ZGQ2ODRhYTU3Y2VhOWI3ZjlhNWM2YjgwMWQ3
NDFmMzI0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzkgQEAKKzIwMjItMDQtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBp
bnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlmaWNh
dGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAgICBh
biB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHByb2Nl
c3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vzc1N0
YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ug
b3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0
aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0aGUg
cnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eSk6CisgICAgICAgICog
VUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UHJv
Y2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQpOgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjplbnN1cmVBc3NlcnRpb24pOgorICAg
ICAgICAoV2ViS2l0OjpzdGF0ZVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0
ZU1vbml0b3I6OnN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGlt
ZSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMjIt
MDQtMjEgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVu
ZCBzdG9yYWdlIG9wZXJhdGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3Vu
ZCBhbmQgd2lsbCBiZSBzdXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogU291cmNlc0Nv
Y29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVy
OjpyZW1vdmVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJD
bGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmlu
aXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisKIDIwMjItMDQtMjAgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2ViR1BVXSBXZWJLaXQgYW5kIFdlYktpdExlZ2FjeSBzaG91bGRu
J3QgbmVlZCB0byBrbm93IGFib3V0IFdlYkdQVS5mcmFtZXdvcmsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNTMwY2JjZDVhMDZlMDQy
ZGI2NjVhNTA4YTBjNmIwY2Q0ZDE4MWYxOS4uYTMwOTkxY2JkNTQyNTk0YzkwZmQ5MDliOGE2Mzhi
MjFjMzY5ZTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKQEAgLTQ1Nyw3ICs0NTcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRX
ZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycwog
ICAgICAgICByZXR1cm4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywgcGFyYW1ldGVycy5u
ZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAg
IGlmIChtX2lzU3VzcGVuZGVkKQorICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQp
CiAgICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0pOwogfQog
CkBAIC0yMTUyLDcgKzIxNTIsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNw
ZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogewogICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFy
ZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICV7cHVibGlj
fXNpbiBiYWNrZ3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50ZXJCYWNr
Z3JvdW5kVGltZXN0YW1wID8gIiIgOiAibm90ICIpOwogCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRy
dWU7CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKIAogICAgIFJlZlB0cjxD
YWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRv
cjo6Y3JlYXRlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewpAQCAtMjE2MCwxMSArMjE1OSw2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxl
dGlvbkhhbmRsCiAgICAgICAgIFVOVVNFRF9WQVJJQUJMRSh0aGlzKTsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKICAgICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1
c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKLSNlbmRpZgotICAgIFBDTTo6U3RvcmU6
OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAK
ICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAgICAgICAg
IHBsYXRmb3JtRmx1c2hDb29raWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFja0FnZ3Jl
Z2F0b3JdIHsgfSk7CkBAIC0yMjAyLDIyICsyMTk2LDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAgZWxzZQog
ICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nl
c3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5kQWN0aXZpdHk9JWQgUHJvY2VzcyBo
YXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRzIiwgdGhpcywgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVz
dGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKLQog
ICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVl
cygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5zaW9uKCk7CiAKLSNpZiBFTkFCTEUo
SU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OnJlc3VtZSgpOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6cHJvY2Vzc0Rp
ZFJlc3VtZSgpOwotCiAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFtdKGF1dG8mIHNlc3Npb24p
IHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZl
ciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5lbmRTdXNwZW5z
aW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnJlc3VtZSgp
OwogICAgIH0pOwogfQogCkBAIC0yNzY4LDQgKzI3NTQsMzMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBD
b21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+Y291bnROb25E
ZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRT
dG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX3N0b3JhZ2VPcGVy
YXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoKTsKKworICAgIFJFTEVBU0VfTE9HKFN0b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpzZXRQcm9jZXNzU3VzcGVuZGVkIHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7CisK
KyAgICBtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPSBzdXNwZW5kZWQ7CisgICAgYXV0byBj
YWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkg
eworI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQorICAgICAgICBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRv
cl0geyB9KTsKKyNlbmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1Rv
U3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgICAgICBmb3JFYWNoTmV0d29y
a1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBzZXNzaW9uLnN0b3Jh
Z2VNYW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSgpIHsgfSk7CisgICAgICAg
IH0pOworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCk7
CisjZW5kaWYKKyAgICAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3VtZSgpOworICAgICAg
ICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAg
ICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgIH0pOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
OGU5MmZjMmMxMzU3MTRhMTZkZmJjNjM1Yzc1MzkzMWE2NGJhYTllZi4uMDVlMjhhZjRhZDk4NWFi
MzQzZmRmOTAxNTYwNDdhMTQwOGRjODQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc4LDYgKzE3OCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3Vz
cGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgdm9pZCBz
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MzAsNyArNTMxLDcgQEAgcHJpdmF0ZToKIAog
ICAgIGJvb2wgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQgeyB0cnVlIH07CiAgICAg
Ym9vbCBtX2Z0cEVuYWJsZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgeyBmYWxzZSB9Owog
ICAgIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3Rh
bXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1MzFiY2JjMzU1Y2ZkZjUxZDBiNDkwNDhjMjE0
OWQ3MDM4ZGNmMTViLi4xODgyZTgyZDY5MzIzYzZmYWY4ZjEwZTY2NWRmODdhMGNjODQwOTQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JU
ZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZChib29s
IGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBm
b3JGb3JlZ3JvdW5kQWN0aXZpdHkpCisgICAgU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQo
Ym9vbCBzdXNwZW5kZWQpIC0+ICgpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJB
Z2VudCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVt
OmJvb2wgV2ViS2l0OjpMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlv
bldhc0FwcEluaXRpYXRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCA2OGRjNzcxOTIx
MTQ5ZDY1N2Y1NDZjYTI3M2Y0ZTM5NTM3ODQwZmE2Li40MTk0NDRkM2FhN2QyZmVlOWFmMjZhZmEz
ZWFjMWVhM2Y0Mjg2YTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00ODksNiArNDg5LDcg
QEAgVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5mb3JjZXIubW0K
IFVJUHJvY2Vzcy9pb3MvSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIubW0KIFVJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5t
bQorVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tCiBVSVByb2Nlc3MvaW9zL1Nt
YXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9pb3MvVGV4dENoZWNrZXJJ
T1MubW0KIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCAzOWY2YmUyY2I5MGRlOTIyNmRmNGJmZGNkYjkwMDg5Mjk1M2ViNDA4Li41NDMx
YjEyMzYzMzMzODJiNmI3MWRmNjMzZmU4ZWFmMmUwZmQ1ZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTc4LDYgKzc4LDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNs
dWRlICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBD
U1BJLmg+CiAjZW5kaWYKIApAQCAtMTM5Miw2ICsxMzkzLDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAg
ICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29u
ID09IFJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKK3ZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpCit7CisjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBt
X3Byb2Nlc3NTdGF0ZU1vbml0b3ItPnN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSgpOworI2VuZGlm
Cit9CisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Zmx1c2hDb29raWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBA
IC0xODI4LDExICsxODM3LDI0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bmF2aWdhdGVT
ZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmCiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQogeworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFtX3Byb2Nlc3NTdGF0ZU1vbml0b3IpIHsK
KyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yID0gbWFrZVVuaXF1ZTxQcm9jZXNzU3RhdGVN
b25pdG9yPihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oKSAtPiBJUEM6OkNvbm5lY3Rp
b24qIHsKKyAgICAgICAgICAgIHJldHVybiB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5jb25uZWN0aW9u
KCkgOiBudWxscHRyOworICAgICAgICB9KTsKKyAgICB9CisjZW5kaWYKKwogICAgIHNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpLCAw
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRlckZv
cmVncm91bmQoKQogeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcHJvY2Vz
c1N0YXRlTW9uaXRvcikKKyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yID0gbnVsbHB0cjsK
KyNlbmRpZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCgpLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBjY2Y3YTI2MDFi
N2E2NTE4NWE1MDRiZjdmOWUwYTE3OWI4NDYzYTNlLi42MmZkMzljZGJkNTI0OWU5YzQ5MGE2NTIx
ZDJlZjZhZjNiNWQ4YmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNTUsNiArNTUsMTAgQEAKICNpbmNsdWRl
IDx3dGYvT1NPYmplY3RQdHIuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyNpbmNsdWRlICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIElQ
QyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTI0Miw2ICsyNDYsNyBAQCBwdWJs
aWM6CiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAogICAgIHZvaWQgc2VuZFByb2Nlc3NE
aWRSZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFt
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQorICAgIHZvaWQg
ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpIGZpbmFsOwogICAgIAogICAgIHN0YXRpYyB2b2lkIHNl
dFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNlbmRQcm9jZXNz
V2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwpAQCAtNDI4LDYgKzQzMyw3IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8aWQ+IG1fYmFj
a2dyb3VuZE9ic2VydmVyOwogICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IG1fcHJvY2Vzc1N0YXRl
TW9uaXRvcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNz
VGhyb3R0bGVyLmNwcAppbmRleCA0NzEyZjJlY2ZiYTJjNWE5OWUyZDZiYWQ0ZjFlMDVjNTdkZGU4
NmE1Li5lNTMwMzMxZTMzZTAzYTk2YWQ3Y2JkMzYzY2FmZmYxMjY0MDM4Yzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtNjgsMTIgKzY4LDE4
IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkoRm9yZWdyb3VuZEFjdGl2
aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0
aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3Vs
ZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXko
KTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eShCYWNrZ3JvdW5k
QWN0aXZpdHkmIGFjdGl2aXR5KQogewogICAgIG1fYmFja2dyb3VuZEFjdGl2aXRpZXMucmVtb3Zl
KCZhY3Rpdml0eSk7CiAgICAgdXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKKworICAgIGlmICgh
c2hvdWxkQmVSdW5uYWJsZSgpKQorICAgICAgICBtX3Byb2Nlc3MuZGlkRmluaXNoTGFzdEFjdGl2
aXRpeSgpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OmludmFsaWRhdGVBbGxBY3Rpdml0
aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGll
bnQuaAppbmRleCBmYzc3YmE5NTMzOWE0NmY4ODc5NjZmOGZjYjMwYTU5ZGZkZWFiNDY2Li5iNDhk
MWQ4ZGRlYmNiMDY3MGQ4YTI0ZTE4NjExNGJkZWRhYmVjYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVh
c29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fz
c2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgeyB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDU2OTJjMDcxODUx
OGE4NzIwYjAyYTE5MDU2NGRlOTI0Mjk2MDY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaApAQCAtMCwwICsxLDcwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
CisjaW1wb3J0IDxXZWJDb3JlL1RpbWVyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisK
K09CSkNfQ0xBU1MgUkJTUHJvY2Vzc01vbml0b3I7CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
Q29ubmVjdGlvbjsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFByb2Nlc3NBc3Nl
cnRpb247CisKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3IgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQ
dHI8UHJvY2Vzc1N0YXRlTW9uaXRvcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwor
cHVibGljOgorICAgIHVzaW5nIENvbm5lY3Rpb25HZXR0ZXIgPSBGdW5jdGlvbjxJUEM6OkNvbm5l
Y3Rpb24qKCk+OworICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IoQ29ubmVjdGlvbkdldHRlciYmKTsK
KyAgICB+UHJvY2Vzc1N0YXRlTW9uaXRvcigpOworICAgIHZvaWQgc3VzcGVuZFByb2Nlc3NJZlBv
c3NpYmxlKCk7CisgICAgZW51bSBjbGFzcyBTdGF0ZSA6IHVpbnQ4X3QgeyBVbmtub3duLCBSdW5u
aW5nLCBXaWxsU3VzcGVuZCwgU3VzcGVuZGVkIH07CisKK3ByaXZhdGU6CisgICAgYm9vbCBpc0Fz
c2VydGlvblZhbGlkKCk7CisgICAgdm9pZCBlbnN1cmVBc3NlcnRpb24oKTsKKyAgICB2b2lkIHBy
b2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisgICAgdm9pZCBwcm9jZXNzV2lsbEJlU3VzcGVuZGVk
KFNlY29uZHMpOworICAgIHZvaWQgc2VuZFN1c3BlbmRNZXNzYWdlKCk7CisgICAgdm9pZCBjaGVj
a1JlbWFpbmluZ1J1blRpbWUoKTsKKworICAgIFN0YXRlIG1fc3RhdGUgeyBTdGF0ZTo6VW5rbm93
biB9OworICAgIENvbm5lY3Rpb25HZXR0ZXIgbV9jb25uZWN0aW9uR2V0dGVyOworICAgIFdlYkNv
cmU6OlRpbWVyIG1fc3VzcGVuZFRpbWVyOworICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBt
X2Fzc2VydGlvbjsKKyAgICB1aW50NjRfdCBtX3Nlc3Npb25JRDsKKyAgICBSZXRhaW5QdHI8UkJT
UHJvY2Vzc01vbml0b3I+IG1fcmJzTW9uaXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDUyYTAw
ZWRhODdiMWY4ZGMwODY5Y2EwNDYyNWQ0NTgzNWJkODNjNgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tCkBAIC0wLDAg
KzEsMTY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcm9j
ZXNzU3RhdGVNb25pdG9yLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgi
CisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHByZXBhcmVGb3JTdXNwZW5zaW9uRHVyYXRp
b24gPSAgNV9zOworCitQcm9jZXNzU3RhdGVNb25pdG9yOjpQcm9jZXNzU3RhdGVNb25pdG9yKENv
bm5lY3Rpb25HZXR0ZXImJiBjb25uZWN0aW9uR2V0dGVyKQorICAgIDogbV9jb25uZWN0aW9uR2V0
dGVyKFdURk1vdmUoY29ubmVjdGlvbkdldHRlcikpCisgICAgLCBtX3N1c3BlbmRUaW1lcigqdGhp
cywgJlByb2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSkKK3sKKyAgICBSRUxF
QVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBtX3Jic01vbml0b3IgPSBbUkJT
UHJvY2Vzc01vbml0b3IgbW9uaXRvcldpdGhDb25maWd1cmF0aW9uOlt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9XShpZDxSQlNQcm9jZXNzTW9uaXRvckNvbmZpZ3VyaW5nPiBjb25maWcpIG11
dGFibGUgeworICAgICAgICBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yICpkZXNjcmlwdG9yID0g
W1JCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcl07CisgICAgICAgIFtkZXNjcmlw
dG9yIHNldFZhbHVlczpSQlNQcm9jZXNzU3RhdGVWYWx1ZUxlZ2FjeUFzc2VydGlvbnMgfCBSQlNQ
cm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2VydGlvbnNdOworICAgICAgICBbY29uZmlnIHNldFN0
YXRlRGVzY3JpcHRvcjpkZXNjcmlwdG9yXTsKKyAgICAgICAgW2NvbmZpZyBzZXRQcmVkaWNhdGVz
OkBbW1JCU1Byb2Nlc3NQcmVkaWNhdGUgcHJlZGljYXRlTWF0Y2hpbmdIYW5kbGU6W1JCU1Byb2Nl
c3NIYW5kbGUgY3VycmVudFByb2Nlc3NdXV1dOworICAgICAgICBbY29uZmlnIHNldFVwZGF0ZUhh
bmRsZXI6W3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKFJCU1Byb2Nlc3NNb25pdG9yICpt
b25pdG9yLCBSQlNQcm9jZXNzSGFuZGxlICpwcm9jZXNzLCBSQlNQcm9jZXNzU3RhdGVVcGRhdGUg
KnVwZGF0ZSkgeworICAgICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzXSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgICAgICB3ZWFrVGhp
cy0+Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07
CisgICAgfV07CisgICAgY2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7Cit9CisKK1Byb2Nlc3NTdGF0
ZU1vbml0b3I6On5Qcm9jZXNzU3RhdGVNb25pdG9yKCkKK3sKKyAgICBbbV9yYnNNb25pdG9yLmdl
dCgpIGludmFsaWRhdGVdOworICAgIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7Cit9CisKK2Jv
b2wgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3NlcnRpb25WYWxpZCgpCit7CisgICAgcmV0dXJu
IG1fYXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9uLT5pc1ZhbGlkKCk7Cit9CisKK3ZvaWQgUHJvY2Vz
c1N0YXRlTW9uaXRvcjo6ZW5zdXJlQXNzZXJ0aW9uKCkKK3sKKyAgICBpZiAobV9hc3NlcnRpb24g
JiYgbV9hc3NlcnRpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byog
Y29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbkdldHRlcigpOworICAgIGlmICghY29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwaWQgPSBjb25uZWN0aW9uLT5yZW1vdGVQcm9j
ZXNzSUQoKTsKKyAgICBtX2Fzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShwaWQs
ICJQcm9jZXNzU3RhdGVNb25pdG9yIGlzIHJ1bm5pbmciX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBl
OjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgc3RhdGVTdHJpbmcoUHJvY2Vzc1N0YXRlTW9uaXRvcjo6U3Rh
dGUgc3RhdGUpCit7CisgICAgc3dpdGNoIChzdGF0ZSkgeworICAgIGNhc2UgUHJvY2Vzc1N0YXRl
TW9uaXRvcjo6U3RhdGU6OlJ1bm5pbmc6CisgICAgICAgIHJldHVybiAiUnVubmluZyJfczsKKyAg
ICBjYXNlIFByb2Nlc3NTdGF0ZU1vbml0b3I6OlN0YXRlOjpXaWxsU3VzcGVuZDoKKyAgICAgICAg
cmV0dXJuICJXaWxsIFN1c3BlbmQiX3M7CisgICAgY2FzZSBQcm9jZXNzU3RhdGVNb25pdG9yOjpT
dGF0ZTo6U3VzcGVuZGVkOgorICAgICAgICByZXR1cm4gIlN1c3BlbmRlZCJfczsKKyAgICB9Cit9
CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCkK
K3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6V2lsbFN1c3BlbmQpCisgICAgICAgIHJldHVy
bjsKKworICAgIEFTU0VSVChpc0Fzc2VydGlvblZhbGlkKCkpOworICAgIGlmICghbV9zdXNwZW5k
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kVGltZXIu
c3RvcCgpOworICAgIHNlbmRTdXNwZW5kTWVzc2FnZSgpOworfQorCit2b2lkIFByb2Nlc3NTdGF0
ZU1vbml0b3I6OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9
PSBTdGF0ZTo6UnVubmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlQXNzZXJ0aW9u
KCk7CisgICAgbV9zdXNwZW5kVGltZXIuc3RvcCgpOworICAgICsrbV9zZXNzaW9uSUQ7CisgICAg
bV9zdGF0ZSA9IFN0YXRlOjpSdW5uaW5nOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9j
b25uZWN0aW9uR2V0dGVyKCkpCisgICAgICAgIGNvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVk
KGZhbHNlKSwgW10geyB9KTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNz
V2lsbEJlU3VzcGVuZGVkKFNlY29uZHMgcmVtYWluaW5nUnVuVGltZSkKK3sKKyAgICBpZiAobV9z
dGF0ZSAhPSBTdGF0ZTo6UnVubmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlz
QXNzZXJ0aW9uVmFsaWQoKSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRUaW1lci5pc0FjdGl2ZSgp
KTsKKyAgICBTZWNvbmRzIHRpbWVvdXQgPSByZW1haW5pbmdSdW5UaW1lID4gcHJlcGFyZUZvclN1
c3BlbnNpb25EdXJhdGlvbiA/IHJlbWFpbmluZ1J1blRpbWUgLSBwcmVwYXJlRm9yU3VzcGVuc2lv
bkR1cmF0aW9uIDogMF9zOworICAgIG1fc3VzcGVuZFRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0
KTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OldpbGxTdXNwZW5kOworfQorCit2b2lkIFByb2Nlc3NT
dGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSgpCit7CisgICAgYXV0byogY29ubmVjdGlv
biA9IG1fY29ubmVjdGlvbkdldHRlcigpOworICAgIGlmICghY29ubmVjdGlvbikgeworICAgICAg
ICBtX2Fzc2VydGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3VzcGVu
ZGVkOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29ubmVjdGlvbi0+c2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWQodHJ1ZSksIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBzZXNz
aW9uSUQgPSBtX3Nlc3Npb25JRF0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgbV9hc3NlcnRpb24gPSBudWxscHRyOworICAgICAgICBtX3N0YXRlID0gU3RhdGU6OlN1c3Bl
bmRlZDsKKyAgICB9KTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpjaGVja1JlbWFp
bmluZ1J1blRpbWUoKQoreworICAgIGRvdWJsZSBydW5UaW1lID0gW1tbUkJTUHJvY2Vzc0hhbmRs
ZSBjdXJyZW50UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNdIHJ1blRpbWVdOworICAgIGlmIChy
dW5UaW1lID09IFJCU1Byb2Nlc3NUaW1lTGltaXRhdGlvbk5vbmUpCisgICAgICAgIHJldHVybiBw
cm9jZXNzRGlkQmVjb21lUnVubmluZygpOworCisgICAgcHJvY2Vzc1dpbGxCZVN1c3BlbmRlZChT
ZWNvbmRzKHJ1blRpbWUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBQTEFURk9STShJT1NfRkFNSUxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5YTNlMTdlMmI1NGIwNjgxN2E1YzBkMzJiZGZjNjA4
OTNmYjY1YjNiLi41MTZmY2E5NDQ5NTkwOTRjZWY5NDY0OWRhZGE0NmZiZTUxM2M4NjBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0
NDQsNiArMTQ0NCw3IEBACiAJCTkzMjFENThBMUEzOEYxOTYwMDgwNTJCRSAvKiBXS0ltbWVkaWF0
ZUFjdGlvblR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzIxRDU4OTFBMzhGMTk2MDA4MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzMjM2
MTFFMUIwMTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMjM2MTFEMUIwMTVEQTgw
MEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzNERjgyRTFCM0JDMDkwMDBBRUE5RTMg
LyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzREY4MkQxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1h
Z2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJOTM0MUUzMTQyODEwOTVBOTAwMEY3
RDEzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDFFMzEyMjgxMDk1QTgwMDBGN0QxMyAvKiBQcm9jZXNzU3Rh
dGVNb25pdG9yLmggKi87IH07CiAJCTkzNDI1ODlBMjU1QjUzNUEwMDU5RUVERCAvKiBNZWRpYVBl
cm1pc3Npb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzNDI1ODk4MjU1QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGls
aXRpZXMuaCAqLzsgfTsKIAkJOTM0NjhFNkQyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJlZEZpbGVI
YW5kbGVDb2NvYS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ2OEU2QzI3MTRBRjg4MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZUNvY29hLmNw
cCAqLzsgfTsKIAkJOTM0QjcyNDQxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1U
eXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
QjcyNDMxOUY1QjlCRTAwQUU5NkQ2IC8qIFdLQWN0aW9uTWVudUl0ZW1UeXBlcy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00OTcyLDM3ICs0OTcz
LDE3IEBACiAJCTU3MERBQUM1MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRl
bGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzgyMzAzODVGRDAwRThG
QzA0IC8qIEN0YXBOZmNEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzBEQUFDOTIzMDM4NUZEMDBFOEZDMDQgLyog
Q3RhcE5mY0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQjkyNTM2QTA2RTAwMDU1MkIzIC8q
IEluZm8taU9TLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dC5wbGlzdDsgbmFtZSA9ICJJbmZvLWlPUy5wbGlzdCI7IHBhdGggPSAiV2Vi
QXV0aG5Qcm9jZXNzL0VudHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2Uv
SW5mby1pT1MucGxpc3QiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCTU3MkVCQkJB
MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLU9TWC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUgPSAiSW5mby1PU1gu
cGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZp
Y2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8tT1NYLnBsaXN0Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwogCQk1NzJFQkJCQjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJDMjUzNkE2MEEwMDA1
NTJCMyAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NN
ZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJCRDI1MzZBNjBB
MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJFMjUzNkE2MEEwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJFQkJDMzI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktpdC5X
ZWJBdXRoblByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktp
dC5XZWJBdXRoblByb2Nlc3Muc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVC
QkM1MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAvKiBX
ZWJBdXRoblByb2Nlc3NQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJBdXRoblByb2Nlc3NQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJF
QkJDQjI1MzZCMDRGMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlv
bkluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDEyNTM2Qzg4NTAw
MDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNTcyRUJCRDMyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDgy
NTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50
ZXJuYWxTb2Z0TGluay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5r
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJC
MyAvKiBBcHBBdHRlc3RTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJW
aWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1v
dmVUb1dpbmRvd09ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIx
NzkxMjQwMEUwOTgwMDJCMzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExvY2FsQXV0aGVudGljYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0IC8qIC54cGMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5j
bHVkZUluSW5kZXggPSAwOyBwYXRoID0gLnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RT
X0RJUjsgfTsKLQkJNTc0MkEzMDYyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJB
dXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTc0MkEzMDcyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJB
dXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1NzQyQTMwQTI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQy
QTMwQjI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEz
MEMyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxMzI1
MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTQyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vz
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nl
c3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxNTI1MzY0OEU0MDBC
N0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkF1dGhuUHJvY2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQy
QTMxQTI1MzY3NUU5MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzSU9TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk1NzQyQTMxQzI1MzY3NUY2MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxRDI1MzY3NUY2MDBCN0JBMTQgLyogY29tLmFwcGxl
LldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJB
dXRoblByb2Nlc3Muc2IuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFF
MjUzNjk0OTMwMEI3QkExNCAvKiBXZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV2ViQXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTc0NzI4Q0YyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMDIzNDU2RTk4MDAxNzAw
QUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3NDcyOEQzMjM0NTcwQUUwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVy
bmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjY1LDYgKzU2NDYsOCBAQAog
CQk5MzIzNjExRDFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS092ZXJsYXlTY3JvbGxiYXJTdHls
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNERjgyRDFCM0JDMDkwMDBBRUE5
RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzM0RGODJGMUIzQkMwQjQwMEFFQTlFMyAvKiBXS0ltYWdlUHJl
dmlld1ZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTM0MUUzMTEyODEwOTVBODAwMEY3RDEzIC8qIFByb2Nlc3NTdGF0ZU1vbml0
b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9jZXNzU3Rh
dGVNb25pdG9yLm1tOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDFFMzEyMjgxMDk1QTgwMDBGN0QxMyAvKiBQcm9jZXNz
U3RhdGVNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2Nlc3NT
dGF0ZU1vbml0b3IuaDsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODhGMjU1NURDQTUwMDU5RUVERCAvKiBNZWRpYVBl
cm1pc3Npb25VdGlsaXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZWRpYVBlcm1pc3Np
b25VdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDI1ODk4MjU1
QjUzNEIwMDU5RUVERCAvKiBNZWRpYVBlcm1pc3Npb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDY4RTZBMjcxNEFGNDcwMDk5ODNFMyAvKiBTaGFyZWRG
aWxlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJl
ZEZpbGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE2MCw2ICs5
MTQzLDggQEAKIAkJCQkwRkNCNEUzNjE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJ
T1MuaCAqLywKIAkJCQkwRkNCNEUzNzE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJ
T1MubW0gKi8sCiAJCQkJODZGOTUzNjIxOEZGNTUwQjAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRp
b25JT1MubW0gKi8sCisJCQkJOTM0MUUzMTIyODEwOTVBODAwMEY3RDEzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3IuaCAqLywKKwkJCQk5MzQxRTMxMTI4MTA5NUE4MDAwRjdEMTMgLyogUHJvY2Vzc1N0
YXRlTW9uaXRvci5tbSAqLywKIAkJCQkyREFGMDZENDE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRN
YWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTJEQUYwNkQ4MThCRDIzQkEwMDgxQ0VC
MSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1lc3NhZ2VzLmluICovLAogCQkJCTJE
QUYwNkQ1MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1t
ICovLApAQCAtMTQzNTgsNiArMTQzNDMsNyBAQAogCQkJCTVDQjkzMTA5MjZFODQzOUEwMDMyQjFD
MCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFhQQ1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNo
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNDFFMzE0MjgxMDk1QTkwMDBGN0QxMyAvKiBQcm9j
ZXNzU3RhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFFQjk0RUMwMDBB
Mjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTU0NjEsMjggKzE1NDQ3LDYgQEAKIAkJCXByb2R1Y3RS
ZWZlcmVuY2UgPSA1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CiAJ
CQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9OwotCQk1
NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0JCQlpc2EgPSBQQlhO
YXRpdmVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEz
RjAwQjdCQTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0
ICJXZWJBdXRobiIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQyQTJFQTI1MzU2MTNG
MDBCN0JBMTQgLyogU291cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyog
RnJhbWV3b3JrcyAqLywKLQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVzb3VyY2Vz
ICovLAotCQkJCTU3NDJBMkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sga2V5Y2hhaW4gKi8s
Ci0JCQkJNTc0MkEyRjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVudGljYXRp
b24gZW50aXRsZW1lbnRzICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5RkU0MCAvKiBDb3B5
IFhQQyBTZXJ2aWNlIHRvIFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMg
PSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2MjUzNTYxM0YwMEI3
QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4MjUzNTYxM0YwMEI3
QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJBdXRo
bjsKLQkJCXByb2R1Y3ROYW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1
NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNv
bS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOwotCQl9OwogCQk1QzE1NzlDQzI3MTY1
QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUMxNTc5RDYyNzE2NUIyRjAwRUQ1MjgwIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNoZCIg
Ki87Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458089</attachid>
            <date>2022-04-21 13:42:25 -0700</date>
            <delta_ts>2022-04-22 14:41:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220421134224.patch</filename>
            <type>text/plain</type>
            <size>37871</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDI5ZDVlNjk1ZDVmODNh
NDVlYjg1ZTQ0NDY2YTIxMWVmODE4NjEuLmExYTU2ZTMxZTBlMGI4OTA2MDQ5YTE4OTVmMjU2YzI2
ZGE3YzZlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDQtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBp
bnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlmaWNh
dGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAgICBh
biB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHByb2Nl
c3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vzc1N0
YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ug
b3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0
aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0aGUg
cnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW46CisgICAgICAgICogUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQ
SS5oOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9y
ZWdyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NUaHJvdHRsZXJDbGllbnQ6OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmguCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
UHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3RhdGVNb25pdG9yKToKKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3NlcnRpb25WYWxpZCk6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3VyZUFzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OnN0YXRlU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9u
aXRvcjo6c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vz
c1N0YXRlTW9uaXRvcjo6cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcpOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKToKKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6c2VuZFN1c3BlbmRNZXNzYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6Y2hlY2tSZW1haW5pbmdSdW5UaW1lKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMi0wNC0y
MCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtX
ZWJHUFVdIFdlYktpdCBhbmQgV2ViS2l0TGVnYWN5IHNob3VsZG4ndCBuZWVkIHRvIGtub3cgYWJv
dXQgV2ViR1BVLmZyYW1ld29yawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCA1MzBjYmNkNWEwNmUwNDJkYjY2NWE1MDhhMGM2YjBjZDRk
MTgxZjE5Li5hMzA5OTFjYmQ1NDI1OTRjOTBmZDkwOWI4YTYzOGIyMWMzNjllNGQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDU3
LDcgKzQ1Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVybiBOZXR3
b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQp
CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkKICAgICAgICAgc2Vzc2lvbi0+
c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAKQEAgLTIxNTIsNyArMjE1Miw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNp
b25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3Vz
cGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJsaWN9c2luIGJhY2tncm91bmQiLCB0
aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAi
IiA6ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKICAgICBsb3dNZW1vcnlI
YW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4g
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CkBAIC0yMTYwLDExICsyMTU5LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwKICAgICAgICAg
VU5VU0VEX1ZBUklBQkxFKHRoaXMpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
IH0pOwotICAgIAotI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQot
ICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dy
ZWdhdG9yXSB7IH0pOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6cHJlcGFyZUZvclByb2Nlc3NU
b1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAogICAgIGZvckVhY2hOZXR3b3Jr
U2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKICAgICAgICAgcGxhdGZvcm1GbHVzaENvb2tp
ZXMoc2Vzc2lvbi5zZXNzaW9uSUQoKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKQEAgLTIy
MDIsMjIgKzIxOTYsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZShi
b29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKICAgICBlbHNlCiAgICAgICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3Vt
ZSgpIGZvckZvcmVncm91bmRBY3Rpdml0eT0lZCBQcm9jZXNzIGhhcyBiZWVuIGluIGJhY2tncm91
bmQgZm9yICVmIHNlY29uZHMiLCB0aGlzLCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHksIChNb25vdG9u
aWNUaW1lOjpub3coKSAtIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wLnZhbHVlKCkpLnZhbHVl
KCkpOwogCi0gICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwotCiAgICAgZm9yIChhdXRvJiBjb25u
ZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCiAgICAgICAgIGNvbm5l
Y3Rpb24tPmVuZFN1c3BlbnNpb24oKTsKIAotI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQotICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1l
KCk7Ci0jZW5kaWYKLSAgICBQQ006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7Ci0KICAgICBm
b3JFYWNoTmV0d29ya1Nlc3Npb24oW10oYXV0byYgc2Vzc2lvbikgewogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKICAgICAgICAgaWYgKGF1dG8qIHN3U2VydmVyID0gc2Vzc2lvbi5zd1NlcnZl
cigpKQogICAgICAgICAgICAgc3dTZXJ2ZXItPmVuZFN1c3BlbnNpb24oKTsKICNlbmRpZgotICAg
ICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CiAgICAgfSk7CiB9CiAKQEAg
LTI3NjgsNCArMjc1NCwzMyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3VudE5vbkRlZmF1bHRT
ZXNzaW9uU2V0cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZQogICAgIGNvbXBsZXRp
b25IYW5kbGVyKHNlc3Npb24gPyBzZXNzaW9uLT5jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cygp
IDogMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3Vz
cGVuZGVkKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCA9PSBz
dXNwZW5kZWQpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOworCisgICAgUkVM
RUFTRV9MT0coU3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFByb2Nlc3NTdXNwZW5k
ZWQgc3VzcGVuZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKworICAgIG1fc3RvcmFnZU9wZXJh
dGlvblN1c3BlbmRlZCA9IHN1c3BlbmRlZDsKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9
IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkKSB7CisjaWYgRU5BQkxFKElOVEVM
TElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworI2VuZGlmCisg
ICAgICAgIFBDTTo6U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFja0Fn
Z3JlZ2F0b3JdIHsgfSk7CisgICAgICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8m
IHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5k
KFtjYWxsYmFja0FnZ3JlZ2F0b3JdKCkgeyB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNlIHsK
KyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKKyAgICAgICAgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKKyNlbmRpZgorICAgICAgICBQ
Q006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIGZvckVhY2hOZXR3b3JrU2Vz
c2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1h
bmFnZXIoKS5yZXN1bWUoKTsKKyAgICAgICAgfSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA4ZTkyZmMyYzEzNTcxNGExNmRm
YmM2MzVjNzUzOTMxYTY0YmFhOWVmLi4wNWUyOGFmNGFkOTg1YWIzNDNmZGY5MDE1NjA0N2ExNDA4
ZGM4NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCkBAIC0xNzgsNiArMTc4LDcgQEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNw
ZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJv
b2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
CiAgICAgQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU1vZGVs
OyB9CiAKQEAgLTUzMCw3ICs1MzEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
c3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxN
b25vdG9uaWNUaW1lPiBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcDsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDUzMWJjYmMzNTVjZmRmNTFkMGI0OTA0OGMyMTQ5ZDcwMzhkY2YxNWIuLjE4ODJl
ODJkNjkzMjNjNmZhZjhmMTBlNjY1ZGY4N2EwY2M4NDA5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
NzQsNiArNzQsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7
CiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKCkgLT4gKCkg
U3luY2hyb25vdXMKICAgICBQcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5l
bnQpIC0+ICgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0
eSkKKyAgICBTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCkgLT4g
KCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2Fy
ZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0Jv
YXJkU2VydmljZXNTUEkuaAppbmRleCA0MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJi
YTk4ODRkLi5lZWY2NzA4YjZiN2I2OTc5NTEwNTdhOWZlYjI5OTA1MjQ3YzhjMzg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNT
UEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaApAQCAtMTMxLDE0ICsxMzEsMjQgQEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vz
c1VwZGF0ZUhhbmRsZXIpKFJCU1Byb2Nlc3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEK
IAogQGludGVyZmFjZSBSQlNQcm9jZXNzTW9uaXRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiAr
IChpbnN0YW5jZXR5cGUpbW9uaXRvcldpdGhDb25maWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQ
cm9jZXNzTW9uaXRvckNvbmZpZ3VyYXRvcilibG9jazsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBl
bmQKIAogQGludGVyZmFjZSBSQlNQcm9jZXNzUHJlZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nl
c3NNYXRjaGluZz4KICsgKFJCU1Byb2Nlc3NQcmVkaWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hh
bmRsZTooUkJTUHJvY2Vzc0hhbmRsZSAqKXByb2Nlc3M7CiBAZW5kCit0eXBlZGVmIE5TX09QVElP
TlMoTlNVSW50ZWdlciwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVzKSB7CisgICAgUkJTUHJvY2Vzc1N0
YXRlVmFsdWVOb25lICAgICAgICAgICAgICAgICAgICA9IDAsCisgICAgUkJTUHJvY2Vzc1N0YXRl
VmFsdWVUYXNrU3RhdGUgICAgICAgICAgICAgICA9ICgxIDw8IDApLAorICAgIFJCU1Byb2Nlc3NT
dGF0ZVZhbHVlVGFncyAgICAgICAgICAgICAgICAgICAgPSAoMSA8PCAxKSwKKyAgICBSQlNQcm9j
ZXNzU3RhdGVWYWx1ZVRlcm1pbmF0aW9uUmVzaXN0YW5jZSAgID0gKDEgPDwgMiksCisgICAgUkJT
UHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lBc3NlcnRpb25zICAgICAgICA9ICgxIDw8IDMpLAorICAg
IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9kZXJuQXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCA0KSwK
K307CiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc1N0YXRlRGVzY3JpcHRvciA6IE5TT2JqZWN0IDxO
U0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpZGVzY3JpcHRvcjsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkd3JpdGUsIGFzc2lnbikgUkJTUHJvY2Vzc1N0YXRlVmFsdWVzIHZhbHVlczsKIEBw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIGNvcHksIG51bGxhYmxlKSBOU0FycmF5PE5T
U3RyaW5nICo+ICplbmRvd21lbnROYW1lc3BhY2VzOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKaW5kZXggNjhkYzc3MTkyMTE0OWQ2NTdmNTQ2Y2EyNzNmNGUzOTUzNzg0MGZhNi4uNDE5NDQ0
ZDNhYTdkMmZlZTlhZjI2YWZhM2VhYzFlYTNmNDI4NmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4
dApAQCAtNDg5LDYgKzQ4OSw3IEBAIFVJUHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25z
aXN0ZW5jeUVuZm9yY2VyLm1tCiBVSVByb2Nlc3MvaW9zL0lucHV0Vmlld1VwZGF0ZURlZmVycmVy
Lm1tCiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCiBVSVByb2Nlc3MvaW9zL1By
b2Nlc3NBc3NlcnRpb25JT1MubW0KK1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5t
bQogVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tCiBVSVByb2Nl
c3MvaW9zL1RleHRDaGVja2VySU9TLm1tCiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJv
bGxlcklPUy5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMzlmNmJlMmNiOTBkZTkyMjZkZjRiZmRjZGI5
MDA4OTI5NTNlYjQwOC4uNTQzMWIxMjM2MzMzMzgyYjZiNzFkZjYzM2ZlOGVhZjJlMGZkNWRlZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCkBAIC03OCw2ICs3OCw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgogI2luY2x1ZGUg
PHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgogI2VuZGlmCiAKQEAgLTEzOTIsNiArMTM5MywxNCBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJl
YXNvbiByZWFzb24pCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9j
ZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSks
IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhc3RBY3Rpdml0
aXkoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcHJvY2Vzc1N0YXRl
TW9uaXRvcikKKyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yLT5zdXNwZW5kUHJvY2Vzc0lm
UG9zc2libGUoKTsKKyNlbmRpZgorfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNo
Q29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwpAQCAtMTgyOCwxMSArMTgzNywyNCBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6Om5hdmlnYXRlU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghbV9wcm9j
ZXNzU3RhdGVNb25pdG9yKSB7CisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvciA9IG1ha2VV
bmlxdWU8UHJvY2Vzc1N0YXRlTW9uaXRvcj4oW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1d
KCkgLT4gSVBDOjpDb25uZWN0aW9uKiB7CisgICAgICAgICAgICByZXR1cm4gd2Vha1RoaXMgPyB3
ZWFrVGhpcy0+Y29ubmVjdGlvbigpIDogbnVsbHB0cjsKKyAgICAgICAgfSk7CisgICAgfQorI2Vu
ZGlmCisKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGlmIChtX3Byb2Nlc3NTdGF0ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRl
TW9uaXRvciA9IG51bGxwdHI7CisjZW5kaWYKKwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKaW5kZXggY2NmN2EyNjAxYjdhNjUxODVhNTA0YmY3ZjllMGExNzliODQ2M2EzZS4uNjJmZDM5
Y2RiZDUyNDllOWM0OTBhNjUyMWQyZWY2YWYzYjVkOGJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDYg
KzU1LDEwIEBACiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CkBAIC0y
NDIsNiArMjQ2LDcgQEAgcHVibGljOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAg
ICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAgICAgQVND
SUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTmV0d29ya1Byb2Nl
c3MiX3M7IH0KKyAgICB2b2lkIGRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKSBmaW5hbDsKICAgICAK
ICAgICBzdGF0aWMgdm9pZCBzZXRTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9vbCk7CiAg
ICAgdm9pZCBzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKQEAg
LTQyOCw2ICs0MzMsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
UmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8aWQ+IG1f
Zm9yZWdyb3VuZE9ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzU3RhdGVNb25p
dG9yPiBtX3Byb2Nlc3NTdGF0ZU1vbml0b3I7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggNDcxMmYyZWNmYmEyYzVhOTll
MmQ2YmFkNGYxZTA1YzU3ZGRlODZhNS4uZTUzMDMzMWUzM2UwM2E5NmFkN2NiZDM2M2NhZmZmMTI2
NDAzOGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5j
cHAKQEAgLTY4LDEyICs2OCwxOCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2
aXR5KEZvcmVncm91bmRBY3Rpdml0eSYgYWN0aXZpdHkpCiB7CiAgICAgbV9mb3JlZ3JvdW5kQWN0
aXZpdGllcy5yZW1vdmUoJmFjdGl2aXR5KTsKICAgICB1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCgp
OworCisgICAgaWYgKCFzaG91bGRCZVJ1bm5hYmxlKCkpCisgICAgICAgIG1fcHJvY2Vzcy5kaWRG
aW5pc2hMYXN0QWN0aXZpdGl5KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6cmVtb3Zl
QWN0aXZpdHkoQmFja2dyb3VuZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2JhY2tncm91
bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlvbklmTmVl
ZGVkKCk7CisKKyAgICBpZiAoIXNob3VsZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9wcm9jZXNz
LmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpp
bnZhbGlkYXRlQWxsQWN0aXZpdGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggZmM3N2JhOTUzMzlhNDZmODg3OTY2ZjhmY2Iz
MGE1OWRmZGVhYjQ2Ni4uYjQ4ZDFkOGRkZWJjYjA2NzBkOGEyNGUxODYxMTRiZGVkYWJlY2ExOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbmRQcm9jZXNz
RGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRBc3Nl
cnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSB7IH07CiAgICAgdmlydHVhbCBBU0NJSUxp
dGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TGFzdEFjdGl2aXRpeSgpIHsgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmQ1NjkyYzA3MTg1MThhODcyMGIwMmExOTA1NjRkZTkyNDI5NjA2OQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9y
LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8V2ViQ29yZS9UaW1lci5oPgorI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJCU1Byb2Nlc3NNb25pdG9yOworCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOworCitjbGFzcyBQcm9jZXNzU3RhdGVNb25pdG9yIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB1c2luZyBDb25uZWN0aW9uR2V0dGVyID0g
RnVuY3Rpb248SVBDOjpDb25uZWN0aW9uKigpPjsKKyAgICBQcm9jZXNzU3RhdGVNb25pdG9yKENv
bm5lY3Rpb25HZXR0ZXImJik7CisgICAgflByb2Nlc3NTdGF0ZU1vbml0b3IoKTsKKyAgICB2b2lk
IHN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSgpOworICAgIGVudW0gY2xhc3MgU3RhdGUgOiB1aW50
OF90IHsgVW5rbm93biwgUnVubmluZywgV2lsbFN1c3BlbmQsIFN1c3BlbmRlZCB9OworCitwcml2
YXRlOgorICAgIGJvb2wgaXNBc3NlcnRpb25WYWxpZCgpOworICAgIHZvaWQgZW5zdXJlQXNzZXJ0
aW9uKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUnVubmluZygpOworICAgIHZvaWQgcHJv
Y2Vzc1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzKTsKKyAgICB2b2lkIHNlbmRTdXNwZW5kTWVzc2Fn
ZSgpOworICAgIHZvaWQgY2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7CisKKyAgICBTdGF0ZSBtX3N0
YXRlIHsgU3RhdGU6OlVua25vd24gfTsKKyAgICBDb25uZWN0aW9uR2V0dGVyIG1fY29ubmVjdGlv
bkdldHRlcjsKKyAgICBXZWJDb3JlOjpUaW1lciBtX3N1c3BlbmRUaW1lcjsKKyAgICBSZWZQdHI8
UHJvY2Vzc0Fzc2VydGlvbj4gbV9hc3NlcnRpb247CisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7
CisgICAgUmV0YWluUHRyPFJCU1Byb2Nlc3NNb25pdG9yPiBtX3Jic01vbml0b3I7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRv
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA1MmEwMGVkYTg3YjFmOGRjMDg2OWNhMDQ2MjVkNDU4MzViZDgzYzYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRl
TW9uaXRvci5tbQpAQCAtMCwwICsxLDE2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorCisjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKworI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2ltcG9ydCAi
UHJvY2Vzc0Fzc2VydGlvbi5oIgorI2ltcG9ydCAiUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBwcmVwYXJl
Rm9yU3VzcGVuc2lvbkR1cmF0aW9uID0gIDVfczsKKworUHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJv
Y2Vzc1N0YXRlTW9uaXRvcihDb25uZWN0aW9uR2V0dGVyJiYgY29ubmVjdGlvbkdldHRlcikKKyAg
ICA6IG1fY29ubmVjdGlvbkdldHRlcihXVEZNb3ZlKGNvbm5lY3Rpb25HZXR0ZXIpKQorICAgICwg
bV9zdXNwZW5kVGltZXIoKnRoaXMsICZQcm9jZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1l
c3NhZ2UpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
bV9yYnNNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlv
bjpbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25m
aWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3Jp
cHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3Jd
OworICAgICAgICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdh
Y3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAg
ICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtj
b25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNo
aW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAg
W2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXShS
QlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2VzcywgUkJT
UHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFt3ZWFrVGhpc10geworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAg
ICAgICAgICAgICAgd2Vha1RoaXMtPmNoZWNrUmVtYWluaW5nUnVuVGltZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH1dOworICAgIH1dOworICAgIGNoZWNrUmVtYWluaW5nUnVuVGltZSgp
OworfQorCitQcm9jZXNzU3RhdGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcigpCit7Cisg
ICAgW21fcmJzTW9uaXRvci5nZXQoKSBpbnZhbGlkYXRlXTsKKyAgICBwcm9jZXNzRGlkQmVjb21l
UnVubmluZygpOworfQorCitib29sIFByb2Nlc3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFs
aWQoKQoreworICAgIHJldHVybiBtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxpZCgp
OworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3VyZUFzc2VydGlvbigpCit7Cisg
ICAgaWYgKG1fYXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25HZXR0ZXIoKTsKKyAg
ICBpZiAoIWNvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcGlkID0gY29u
bmVjdGlvbi0+cmVtb3RlUHJvY2Vzc0lEKCk7CisgICAgbV9hc3NlcnRpb24gPSBQcm9jZXNzQXNz
ZXJ0aW9uOjpjcmVhdGUocGlkLCAiUHJvY2Vzc1N0YXRlTW9uaXRvciBpcyBydW5uaW5nIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6RmluaXNoVGFza0ludGVycnVwdGFibGUsIFByb2Nlc3NBc3Nl
cnRpb246Ok1vZGU6OlN5bmMpOworfQorCitzdGF0aWMgU3RyaW5nIHN0YXRlU3RyaW5nKFByb2Nl
c3NTdGF0ZU1vbml0b3I6OlN0YXRlIHN0YXRlKQoreworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAg
ICBjYXNlIFByb2Nlc3NTdGF0ZU1vbml0b3I6OlN0YXRlOjpSdW5uaW5nOgorICAgICAgICByZXR1
cm4gIlJ1bm5pbmciX3M7CisgICAgY2FzZSBQcm9jZXNzU3RhdGVNb25pdG9yOjpTdGF0ZTo6V2ls
bFN1c3BlbmQ6CisgICAgICAgIHJldHVybiAiV2lsbCBTdXNwZW5kIl9zOworICAgIGNhc2UgUHJv
Y2Vzc1N0YXRlTW9uaXRvcjo6U3RhdGU6OlN1c3BlbmRlZDoKKyAgICAgICAgcmV0dXJuICJTdXNw
ZW5kZWQiX3M7CisgICAgfQorfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3BlbmRQ
cm9jZXNzSWZQb3NzaWJsZSgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OldpbGxTdXNw
ZW5kKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoaXNBc3NlcnRpb25WYWxpZCgpKTsK
KyAgICBpZiAoIW1fc3VzcGVuZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fc3VzcGVuZFRpbWVyLnN0b3AoKTsKKyAgICBzZW5kU3VzcGVuZE1lc3NhZ2UoKTsKK30K
Kwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzRGlkQmVjb21lUnVubmluZygpCit7
CisgICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGVuc3VyZUFzc2VydGlvbigpOworICAgIG1fc3VzcGVuZFRpbWVyLnN0b3AoKTsKKyAgICAr
K21fc2Vzc2lvbklEOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKyAgICBpZiAoYXV0
byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbkdldHRlcigpKQorICAgICAgICBjb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZChmYWxzZSksIFtdIHsgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0
YXRlTW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzIHJlbWFpbmluZ1J1blRp
bWUpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIHJldHVy
bjsKKworICAgIEFTU0VSVChpc0Fzc2VydGlvblZhbGlkKCkpOworICAgIEFTU0VSVCghbV9zdXNw
ZW5kVGltZXIuaXNBY3RpdmUoKSk7CisgICAgU2Vjb25kcyB0aW1lb3V0ID0gcmVtYWluaW5nUnVu
VGltZSA+IHByZXBhcmVGb3JTdXNwZW5zaW9uRHVyYXRpb24gPyByZW1haW5pbmdSdW5UaW1lIC0g
cHJlcGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA6IDBfczsKKyAgICBtX3N1c3BlbmRUaW1lci5z
dGFydE9uZVNob3QodGltZW91dCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpXaWxsU3VzcGVuZDsK
K30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UoKQorewor
ICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25HZXR0ZXIoKTsKKyAgICBpZiAoIWNv
bm5lY3Rpb24pIHsKKyAgICAgICAgbV9hc3NlcnRpb24gPSBudWxscHRyOworICAgICAgICBtX3N0
YXRlID0gU3RhdGU6OlN1c3BlbmRlZDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNv
bm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKHRydWUpLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgc2Vzc2lvbklEID0gbV9zZXNzaW9uSURdKCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgbV9zZXNzaW9uSUQgIT0gc2Vzc2lvbklEKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIG1fYXNzZXJ0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgbV9z
dGF0ZSA9IFN0YXRlOjpTdXNwZW5kZWQ7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRl
TW9uaXRvcjo6Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCkKK3sKKyAgICBkb3VibGUgcnVuVGltZSA9
IFtbW1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3NdIGFjdGl2ZUxpbWl0YXRpb25zXSBy
dW5UaW1lXTsKKyAgICBpZiAocnVuVGltZSA9PSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25l
KQorICAgICAgICByZXR1cm4gcHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKKworICAgIHByb2Nl
c3NXaWxsQmVTdXNwZW5kZWQoU2Vjb25kcyhydW5UaW1lKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWEzZTE3ZTJiNTRi
MDY4MTdhNWMwZDMyYmRmYzYwODkzZmI2NWIzYi4uNTE2ZmNhOTQ0OTU5MDk0Y2VmOTQ2NDlkYWRh
NDZmYmU1MTNjODYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNDQ0LDYgKzE0NDQsNyBAQAogCQk5MzIxRDU4QTFBMzhGMTk2MDA4
MDUyQkUgLyogV0tJbW1lZGlhdGVBY3Rpb25UeXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyMUQ1ODkxQTM4RjE5NjAwODA1MkJFIC8qIFdLSW1t
ZWRpYXRlQWN0aW9uVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5MzIzNjExRTFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9s
bGJhclN0eWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzIzNjExRDFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMzREY4
MkUxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzM0RGODJEMUIzQkMw
OTAwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggKi87IH07CisJCTkz
NDFFMzE0MjgxMDk1QTkwMDBGN0QxMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQxRTMxMjI4MTA5NUE4MDAw
RjdEMTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovOyB9OwogCQk5MzQyNTg5QTI1NUI1MzVB
MDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyog
TWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLmggKi87IH07CiAJCTkzNDY4RTZEMjcxNEFGODgwMDk5
ODNFMyAvKiBTaGFyZWRGaWxlSGFuZGxlQ29jb2EuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NjhFNkMyNzE0QUY4ODAwOTk4M0UzIC8qIFNoYXJl
ZEZpbGVIYW5kbGVDb2NvYS5jcHAgKi87IH07CiAJCTkzNEI3MjQ0MTlGNUI5QkUwMEFFOTZENiAv
KiBXS0FjdGlvbk1lbnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNEI3MjQzMTlGNUI5QkUwMEFFOTZENiAvKiBXS0FjdGlvbk1lbnVJ
dGVtVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtNDk3MiwzNyArNDk3MywxNyBAQAogCQk1NzBEQUFDNTIzMDM3RjdFMDBFOEZDMDQgLyog
V0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTkZS
ZWFkZXJTZXNzaW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3
MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEN0YXBOZmNEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzky
MzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3RhcE5mY0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkI5
MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUgPSAiSW5mby1pT1Mu
cGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZp
Y2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9S
T09UOyB9OwotCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1PU1gucGxpc3QgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0
OyBuYW1lID0gIkluZm8tT1NYLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRoblByb2Nlc3MvRW50cnlQ
b2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5wbGlzdCI7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTcyRUJCQkIyNTM2QTYwQTAwMDU1MkIzIC8q
IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzJFQkJCQzI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblBy
b2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzJFQkJCRTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzTWVzc2FnZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQzMyNTM2QUI4NDAwMDU1MkIzIC8q
IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1NzJFQkJDNTI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
UHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Q
cm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDNjI1
MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3MkVCQkQxMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJEMjI1MzZD
ODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQzMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNv
ZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGlu
ay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDkyNTM4RjZBMTAwMDU1
MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0
ZXN0SW50ZXJuYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJF
QkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFw
cEF0dGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJGRDQ0MTIyMjY1
Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxBdXRoZW50aWNh
dGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiAueHBj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAid3JhcHBl
ci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IC54cGM7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTU3NDJBMzA2MjUzNThBMDQwMEI3QkExNCAv
KiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzA3MjUzNThBMDQwMEI3QkExNCAvKiBXZWJB
dXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEEyNTM1OEVGRDAwQjdCQTE0IC8qIFdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3NDJBMzBDMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5tZXNz
YWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblByb2Nlc3MubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzE0MjUzNjQ4RTQwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQXV0aG5Qcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUEyNTM2NzVFOTAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vz
c0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0lPUy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUMyNTM2NzVGNjAwQjdCQTE0IC8qIFdl
YkF1dGhuUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vz
c01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUQyNTM2NzVGNjAw
QjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNv
bS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1NzQyQTMxRTI1MzY5NDkzMDBCN0JBMTQgLyogV2ViQXV0aG5TZXJ2aWNlRW50
cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuU2VydmljZUVudHJ5UG9p
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcyOENGMjM0NTZFOTgwMDE3
MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0
NzI4RDAyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMzIzNDU3MEFFMDAxNzAwQUYgLyogX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYkF1dGhl
bnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NTY2NSw2ICs1NjQ2LDggQEAKIAkJOTMyMzYxMUQxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJs
YXlTY3JvbGxiYXJTdHlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tP
dmVybGF5U2Nyb2xsYmFyU3R5bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMz
REY4MkQxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tJbWFnZVByZXZpZXdWaWV3Q29udHJv
bGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzNERjgyRjFCM0JDMEI0MDBB
RUE5RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDFFMzExMjgxMDk1QTgwMDBGN0QxMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvci5tbTsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVN
b25pdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzQxRTMxMjI4MTA5NUE4
MDAwRjdEMTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLmg7IHBhdGggPSBpb3MvUHJvY2Vzc1N0YXRl
TW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg4RjI1NTVEQ0E1
MDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gTWVkaWFQZXJtaXNzaW9uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzQyNTg5ODI1NUI1MzRCMDA1OUVFREQgLyogTWVkaWFQZXJtaXNzaW9uVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGVybWlzc2lvblV0
aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ2OEU2QTI3MTRBRjQ3
MDA5OTgzRTMgLyogU2hhcmVkRmlsZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTaGFyZWRGaWxlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTkxNjAsNiArOTE0Myw4IEBACiAJCQkJMEZDQjRFMzYxOEJCRTA0NDAwMEZDRkM5
IC8qIFBhZ2VDbGllbnRJbXBsSU9TLmggKi8sCiAJCQkJMEZDQjRFMzcxOEJCRTA0NDAwMEZDRkM5
IC8qIFBhZ2VDbGllbnRJbXBsSU9TLm1tICovLAogCQkJCTg2Rjk1MzYyMThGRjU1MEIwMDFEQjJF
RiAvKiBQcm9jZXNzQXNzZXJ0aW9uSU9TLm1tICovLAorCQkJCTkzNDFFMzEyMjgxMDk1QTgwMDBG
N0QxMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLmggKi8sCisJCQkJOTM0MUUzMTEyODEwOTVBODAw
MEY3RDEzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gKi8sCiAJCQkJMkRBRjA2RDQxOEJEMUE0
NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLywKIAkJCQkyREFG
MDZEODE4QkQyM0JBMDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQkyREFGMDZENTE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlci5tbSAqLywKQEAgLTE0MzU4LDYgKzE0MzQzLDcgQEAKIAkJCQk1Q0I5
MzEwOTI2RTg0MzlBMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRYUENVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9j
ZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcx
NjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzQxRTMxNDI4MTA5
NUE5MDAwRjdEMTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJv
dHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgzMiAvKiBQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE1NDYxLDI4ICsxNTQ0
Nyw2IEBACiAJCQlwcm9kdWN0UmVmZXJlbmNlID0gNTE3QjVGNUIyNzVBOEQzRTAwMkRDMjJEIC8q
IHdlYnB1c2h0b29sICovOwogCQkJcHJvZHVjdFR5cGUgPSAiY29tLmFwcGxlLnByb2R1Y3QtdHlw
ZS50b29sIjsKIAkJfTsKLQkJNTc0MkEyRTUyNTM1NjEzRjAwQjdCQTE0IC8qIFdlYkF1dGhuICov
ID0gewotCQkJaXNhID0gUEJYTmF0aXZlVGFyZ2V0OwotCQkJYnVpbGRDb25maWd1cmF0aW9uTGlz
dCA9IDU3NDJBMkYzMjUzNTYxM0YwMEI3QkExNCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3Qg
Zm9yIFBCWE5hdGl2ZVRhcmdldCAiV2ViQXV0aG4iICovOwotCQkJYnVpbGRQaGFzZXMgPSAoCi0J
CQkJNTc0MkEyRUEyNTM1NjEzRjAwQjdCQTE0IC8qIFNvdXJjZXMgKi8sCi0JCQkJNTc0MkEyRUQy
NTM1NjEzRjAwQjdCQTE0IC8qIEZyYW1ld29ya3MgKi8sCi0JCQkJNTc0MkEyRjAyNTM1NjEzRjAw
QjdCQTE0IC8qIFJlc291cmNlcyAqLywKLQkJCQk1NzQyQTJGMTI1MzU2MTNGMDBCN0JBMTQgLyog
VW5sb2NrIGtleWNoYWluICovLAotCQkJCTU3NDJBMkYyMjUzNTYxM0YwMEI3QkExNCAvKiBQcm9j
ZXNzIFdlYkF1dGhlbnRpY2F0aW9uIGVudGl0bGVtZW50cyAqLywKLQkJCQk2NTE3NTcyMzI3Q0ZD
MjRBMDBEOUZFNDAgLyogQ29weSBYUEMgU2VydmljZSB0byBTZWNvbmRhcnkgUGF0aCAqLywKLQkJ
CSk7Ci0JCQlidWlsZFJ1bGVzID0gKAotCQkJKTsKLQkJCWRlcGVuZGVuY2llcyA9ICgKLQkJCQk1
NzQyQTJFNjI1MzU2MTNGMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCQk1
NzQyQTJFODI1MzU2MTNGMDBCN0JBMTQgLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKLQkJCSk7
Ci0JCQluYW1lID0gV2ViQXV0aG47Ci0JCQlwcm9kdWN0TmFtZSA9IE5ldHdvcmtpbmc7Ci0JCQlw
cm9kdWN0UmVmZXJlbmNlID0gNTc0MkEyRjcyNTM1NjEzRjAwQjdCQTE0IC8qIC54cGMgKi87Ci0J
CQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnhwYy1zZXJ2aWNlIjsKLQkJ
fTsKIAkJNUMxNTc5Q0MyNzE2NUIyRjAwRUQ1MjgwIC8qIHdlYnB1c2hkICovID0gewogCQkJaXNh
ID0gUEJYTmF0aXZlVGFyZ2V0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDVDMTU3OUQ2
MjcxNjVCMkYwMEVENTI4MCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWE5hdGl2
ZVRhcmdldCAid2VicHVzaGQiICovOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458175</attachid>
            <date>2022-04-22 14:41:39 -0700</date>
            <delta_ts>2022-04-22 16:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220422144138.patch</filename>
            <type>text/plain</type>
            <size>50781</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjNjdkZTk0ZDQ4ZGE3ZTBj
NmMwNjY5ZmVlMTgxNmMyMjYwMzNjODYuLmE3MTQ0M2E4NzJhZmUyMGZhOWVlYjRjZDRiZDkzOGVm
NGEwYTUxZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBp
bnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlmaWNh
dGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAgICBh
biB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHByb2Nl
c3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vzc1N0
YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ug
b3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0
aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0aGUg
cnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLiBQcm9jZXNzU3RhdGVNb25pdG9yCisgICAg
ICAgIG1heSBzZW5kIHRoZSBzdXNwZW5kIG1lc3NhZ2UgZWFybGllciBpZiBQcm9jZXNzVGhyb3R0
bGVyIHNheXMgdGhlcmUgaXMgbm8gYWN0aXZpdHkgbGVmdC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpyZW1v
dmVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NT
dGF0ZU1vbml0b3IubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25p
dG9yOjpQcm9jZXNzU3RhdGVNb25pdG9yKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRl
TW9uaXRvcjo6flByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
U3RhdGVNb25pdG9yOjppc0Fzc2VydGlvblZhbGlkKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vz
c1N0YXRlTW9uaXRvcjo6ZW5zdXJlQXNzZXJ0aW9uKToKKyAgICAgICAgKFdlYktpdDo6c3RhdGVT
dHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpzdXNwZW5kUHJv
Y2Vzc0lmUG9zc2libGUpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpw
cm9jZXNzRGlkQmVjb21lUnVubmluZyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1v
bml0b3I6OnByb2Nlc3NXaWxsQmVTdXNwZW5kZWQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
U3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzU3RhdGVNb25pdG9yOjpjaGVja1JlbWFpbmluZ1J1blRpbWUpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmguCisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQ6On5Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMi0w
NC0yMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQSBzdXNw
ZW5kZWQgcmVtb3RlIHNoYXJlZCB3b3JrZXIgc2hvdWxkIHJlc3VtZSB3aGVuIGEgbmV3IFNoYXJl
ZFdvcmtlciBpcyBhZGRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA1MzBjYmNkNWEwNmUwNDJkYjY2NWE1MDhhMGM2YjBjZDRkMTgx
ZjE5Li41YmRkNTlhODdjYjgyYmMxOTBmYzU0MTRkNjAxMGI4MGNkNjFiODEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0
ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVybiBOZXR3b3Jr
U2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1ldGVy
cyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQpCisg
ICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkKICAgICAgICAgc2Vzc2lvbi0+c3Rv
cmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAKQEAgLTIxNTIsNyArMjE1Miw2IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVu
c2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJsaWN9c2luIGJhY2tncm91bmQiLCB0aGlz
LCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6
ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKICAgICBsb3dNZW1vcnlIYW5k
bGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4gY2Fs
bGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBA
IC0yMTYwLDExICsyMTU5LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVu
ZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwKICAgICAgICAgVU5V
U0VEX1ZBUklBQkxFKHRoaXMpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgIH0p
OwotICAgIAotI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAg
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7IH0pOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6cHJlcGFyZUZvclByb2Nlc3NUb1N1
c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAogICAgIGZvckVhY2hOZXR3b3JrU2Vz
c2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKICAgICAgICAgcGxhdGZvcm1GbHVzaENvb2tpZXMo
c2Vzc2lvbi5zZXNzaW9uSUQoKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKQEAgLTIxNzIs
NyArMjE2Niw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBp
c1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRvKiBz
d1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5zdGFy
dFN1c3BlbnNpb24oW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgotICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0p
OwogICAgIH0pOwogCiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29u
bmVjdGlvbnMudmFsdWVzKCkpCkBAIC0yMjAyLDIyICsyMTk1LDE0IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAgICAg
ZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29y
a1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5kQWN0aXZpdHk9JWQgUHJv
Y2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRzIiwgdGhpcywgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2VudGVyQmFja2dyb3Vu
ZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNTdXNwZW5kZWQgPSBmYWxz
ZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25z
LnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5zaW9uKCk7CiAKLSNpZiBF
TkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnJlc3VtZSgpOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6cHJv
Y2Vzc0RpZFJlc3VtZSgpOwotCiAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFtdKGF1dG8mIHNl
c3Npb24pIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgICAgIGlmIChhdXRvKiBz
d1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5lbmRT
dXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnJl
c3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzY4LDQgKzI3NTMsMzEgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+Y291
bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJh
Y2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0gc3Vz
cGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzczo6c2V0UHJvY2Vzc1N1c3BlbmRlZCBzdXNwZW5kZWQ9JWQiLCB0aGlz
LCBzdXNwZW5kZWQpOworICAgIG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCA9IHN1c3BlbmRl
ZDsKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkKSB7CisjaWYgRU5BQkxFKElO
VEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworI2VuZGlm
CisgICAgICAgIFBDTTo6U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFj
a0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1
dG8mIHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNw
ZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdKCkgeyB9KTsKKyAgICAgICAgfSk7CisgICAgfSBlbHNl
IHsKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKKyAgICAgICAg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKKyNlbmRpZgorICAgICAg
ICBQQ006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIGZvckVhY2hOZXR3b3Jr
U2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFn
ZU1hbmFnZXIoKS5yZXN1bWUoKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAppbmRleCA4ZTkyZmMyYzEzNTcxNGExNmRmYmM2MzVjNzUzOTMxYTY0YmFhOWVmLi4wNWUy
OGFmNGFkOTg1YWIzNDNmZGY5MDE1NjA0N2ExNDA4ZGM4NDUwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNzgsNiArMTc4LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5j
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5k
KGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KTsK
KyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgQ2FjaGVNb2RlbCBjYWNoZU1vZGVs
KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU1vZGVsOyB9CiAKQEAgLTUzMCw3ICs1MzEsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCB7IHRy
dWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCB7
IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBtX2VudGVyQmFja2dy
b3VuZFRpbWVzdGFtcDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDUzMWJjYmMzNTVjZmRmNTFk
MGI0OTA0OGMyMTQ5ZDcwMzhkY2YxNWIuLjE4ODJlODJkNjkzMjNjNmZhZjhmMTBlNjY1ZGY4N2Ew
Y2M4NDA5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzQsNiArNzQsNyBAQCBtZXNzYWdlcyAtPiBO
ZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseUZvclRlc3RpbmdTeW5jKCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBQcmVwYXJlVG9T
dXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJvY2Vzc0RpZFJl
c3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKKyAgICBTZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQ
YWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBT
dHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAppbmRleCA0MjUx
MzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi5lZWY2NzA4YjZiN2I2OTc5NTEw
NTdhOWZlYjI5OTA1MjQ3YzhjMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtMTMxLDE0ICsxMzEs
MjQgQEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vzc1VwZGF0ZUhhbmRsZXIpKFJCU1Byb2Nlc3NN
b25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEKIAogQGludGVyZmFjZSBSQlNQcm9jZXNzTW9u
aXRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpbW9uaXRvcldpdGhD
b25maWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQcm9jZXNzTW9uaXRvckNvbmZpZ3VyYXRvcili
bG9jazsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBSQlNQcm9jZXNz
UHJlZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nlc3NNYXRjaGluZz4KICsgKFJCU1Byb2Nlc3NQ
cmVkaWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTooUkJTUHJvY2Vzc0hhbmRsZSAqKXBy
b2Nlc3M7CiBAZW5kCit0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgUkJTUHJvY2Vzc1N0
YXRlVmFsdWVzKSB7CisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVOb25lICAgICAgICAgICAgICAg
ICAgICA9IDAsCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUYXNrU3RhdGUgICAgICAgICAgICAg
ICA9ICgxIDw8IDApLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGFncyAgICAgICAgICAgICAg
ICAgICAgPSAoMSA8PCAxKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRlcm1pbmF0aW9uUmVz
aXN0YW5jZSAgID0gKDEgPDwgMiksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lBc3Nl
cnRpb25zICAgICAgICA9ICgxIDw8IDMpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9kZXJu
QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCA0KSwKK307CiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vz
c1N0YXRlRGVzY3JpcHRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUp
ZGVzY3JpcHRvcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIGFzc2lnbikgUkJT
UHJvY2Vzc1N0YXRlVmFsdWVzIHZhbHVlczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3Jp
dGUsIGNvcHksIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICplbmRvd21lbnROYW1lc3Bh
Y2VzOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjhkYzc3MTkyMTE0OWQ2NTdm
NTQ2Y2EyNzNmNGUzOTUzNzg0MGZhNi4uNDE5NDQ0ZDNhYTdkMmZlZTlhZjI2YWZhM2VhYzFlYTNm
NDI4NmEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDg5LDYgKzQ4OSw3IEBAIFVJUHJv
Y2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tCiBVSVByb2Nl
c3MvaW9zL0lucHV0Vmlld1VwZGF0ZURlZmVycmVyLm1tCiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KK1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbQogVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyLm1tCiBVSVByb2Nlc3MvaW9zL1RleHRDaGVja2VySU9TLm1tCiBV
SVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5k
ZXggZTA5MzgwMzYxNDc5ODg1NjEyZjQ4YWZhZGIzYzc0YmFlMzU1MTE2MS4uY2EyMDQxNjViMmIw
YzljZTYzNmNiYjM2ZjU5MDQwNmI2YWViZGM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC03NTUsNiAr
NzU1LDEzIEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJz
aXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUt
PnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOwogfQogCistICh2b2lkKV9zZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVE
YXRhU3RvcmUtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNwZW5k
ZWQsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClf
c3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kCiB7CiAgICAgX3dlYnNp
dGVEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZChi
YWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDQ3MDE3OTJhZWE4ZTA4
ZTE5M2MwYmQ2NWY4OTAyZDZjNjY5ZTY2YmMuLmQwODM2ZjQ4NDU3ODY0ODgzZGQ1NGZkZmQzYjRm
MTc2MjY4ZmRjYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMTAxLDYgKzEwMSw3
IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0
Y2hPcHRpb25zKSB7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWlu
ZW50bHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQp
X3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjAp
LCBpb3MoMTUuMCkpOwogKyAodm9pZClfc2V0TmV0d29ya1Byb2Nlc3NTdXNwZW5zaW9uQWxsb3dl
ZEZvclRlc3Rpbmc6KEJPT0wpYWxsb3dlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNw
ZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3Vu
ZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CiAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUo
bWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiArICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNz
TGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1
LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDM5ZjZiZTJjYjkwZGU5MjI2ZGY0YmZkY2RiOTAwODky
OTUzZWI0MDguLjU1ZDhmNmViOTI1MDk4YWU3MTVmNzRkZDI2YWRiN2ViNjc3NzhiZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKICNpbmNsdWRlIDx3dGYv
c3BpL2Rhcndpbi9YUENTUEkuaD4KICNlbmRpZgogCkBAIC0xMzkyLDYgKzEzOTMsMjcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24g
cmVhc29uKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0Rp
ZFJlc3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsK
IH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkK
K3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Byb2Nlc3NTdGF0ZU1vbml0
b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvci0+c3VzcGVuZFByb2Nlc3NJZlBvc3Np
YmxlKCk7CisjZW5kaWYKK30KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2Uo
Ym9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChzdXNwZW5kZWQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKK3BpZF90IE5ldHdvcmtQcm9jZXNzUHJveHk6Om1vbml0b3Jl
ZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvY2Vzc0lkZW50aWZp
ZXIoKTsKK30KKworI2VuZGlmCisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Zmx1c2hDb29r
aWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CkBAIC0xODI4LDExICsxODUwLDIxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6bmF2aWdhdGVTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmQoKQogeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFtX3Byb2Nlc3NT
dGF0ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvciA9IG1ha2VVbmlxdWU8
UHJvY2Vzc1N0YXRlTW9uaXRvcj4oKnRoaXMpOworI2VuZGlmCisKICAgICBzZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKSwgMCk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Byb2Nlc3NTdGF0
ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvciA9IG51bGxwdHI7CisjZW5k
aWYKKwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxF
bnRlckZvcmVncm91bmQoKSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggY2NmN2EyNjAxYjdhNjUx
ODVhNTA0YmY3ZjllMGExNzliODQ2M2EzZS4uOTI4N2M5MGZjOGI0ZTBmNmYyYTg4NTY5NzhlZGJh
NDg3MTRlODY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXNSZXBsaWVzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Jlc291
cmNlTG9hZElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKKyNpbmNs
dWRlICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlci5oIgogI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCIKICNpbmNsdWRlICJR
dW90YUluY3JlYXNlUmVxdWVzdElkZW50aWZpZXIuaCIKQEAgLTU1LDYgKzU2LDEwIEBACiAjaW5j
bHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBJUEMgewogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CiB9CkBAIC0xMDUsNyArMTEwLDExIEBA
IHN0cnVjdCBXZWJQdXNoTWVzc2FnZTsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKIHN0cnVjdCBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIAotY2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eSBmaW5h
bCA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxl
ckNsaWVudCB7CitjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGls
aWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIHB1YmxpYyBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
CisjZW5kaWYKK3sKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB1
c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwpAQCAt
MjQyLDYgKzI1MSwxMyBAQCBwdWJsaWM6CiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAog
ICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbDsKICAgICBB
U0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJOZXR3b3JrUHJv
Y2VzcyJfczsgfQorICAgIHZvaWQgZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpIGZpbmFsOworCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAvLyBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
CisgICAgdm9pZCBzZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wg
c3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgIFByb2Nl
c3NJRCBtb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOworI2VuZGlmCiAg
ICAgCiAgICAgc3RhdGljIHZvaWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJvb2wp
OwogICAgIHZvaWQgc2VuZFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7
CkBAIC00MjgsNiArNDQ0LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlk
PiBtX2ZvcmVncm91bmRPYnNlcnZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1N0YXRl
TW9uaXRvcj4gbV9wcm9jZXNzU3RhdGVNb25pdG9yOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IDQ3MTJmMmVjZmJhMmM1
YTk5ZTJkNmJhZDRmMWUwNWM1N2RkZTg2YTUuLmU1MzAzMzFlMzNlMDNhOTZhZDdjYmQzNjNjYWZm
ZjEyNjQwMzhjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXIuY3BwCkBAIC02OCwxMiArNjgsMTggQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVB
Y3Rpdml0eShGb3JlZ3JvdW5kQWN0aXZpdHkmIGFjdGl2aXR5KQogewogICAgIG1fZm9yZWdyb3Vu
ZEFjdGl2aXRpZXMucmVtb3ZlKCZhY3Rpdml0eSk7CiAgICAgdXBkYXRlQXNzZXJ0aW9uSWZOZWVk
ZWQoKTsKKworICAgIGlmICghc2hvdWxkQmVSdW5uYWJsZSgpKQorICAgICAgICBtX3Byb2Nlc3Mu
ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnJl
bW92ZUFjdGl2aXR5KEJhY2tncm91bmRBY3Rpdml0eSYgYWN0aXZpdHkpCiB7CiAgICAgbV9iYWNr
Z3JvdW5kQWN0aXZpdGllcy5yZW1vdmUoJmFjdGl2aXR5KTsKICAgICB1cGRhdGVBc3NlcnRpb25J
Zk5lZWRlZCgpOworCisgICAgaWYgKCFzaG91bGRCZVJ1bm5hYmxlKCkpCisgICAgICAgIG1fcHJv
Y2Vzcy5kaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxl
cjo6aW52YWxpZGF0ZUFsbEFjdGl2aXRpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCmluZGV4IGZjNzdiYTk1MzM5YTQ2Zjg4Nzk2NmY4
ZmNiMzBhNTlkZmRlYWI0NjYuLmI0OGQxZDhkZGViY2IwNjcwZDhhMjRlMTg2MTE0YmRlZGFiZWNh
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50LmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJv
Y2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0
QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgeyB9OwogICAgIHZpcnR1YWwgQVND
SUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExhc3RBY3Rpdml0aXkoKSB7IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAKaW5kZXggY2I2MjNlNWUzNzQ1ZmRkOTFkMzE4NDRmYmQ5MzIwOTg4NmQwMGU2
ZS4uMjVlOTFjMDZhYThiOGM4Nzg2NTBjY2ZlNzM3NDcyZmE2OWYwYzcxOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5jcHAKQEAgLTE2MDgsNiArMTYwOCwxMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNlbmRO
ZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpCiAgICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vz
c0RpZFJlc3VtZShQcm9jZXNzVGhyb3R0bGVyQ2xpZW50OjpSZXN1bWVSZWFzb246OkZvcmVncm91
bmRBY3Rpdml0eSk7CiB9CiAKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJh
dGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5z
ZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKHN1c3BlbmRlZCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAppbmRleCBkOWQ2MjIzMGY5MDViNDlh
ZGNlYWNlYmY1OWViYTFhYWRhYmI3ZDhkLi40MjE0MTE1NzZlNDBjMTExM2Y3MmEwNzViOTc1MWFj
ZTQ4Y2YyMjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzUHJlcGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxT
dXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vz
c0RpZFJlc3VtZSgpOworICAgIHZvaWQgc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JU
ZXN0aW5nKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgbmV0d29ya1Byb2Nlc3NEaWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYpOwog
ICAgIHN0YXRpYyB2b2lkIG1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGlu
ZygpOwogICAgIHN0YXRpYyBib29sIHNob3VsZE1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hG
YWlsRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1Byb2Nlc3NTdGF0ZU1vbml0b3IuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjMzNWU3MjA1OGRiZjE0N2ZiZWYyYTZmYWE5
NWM0M2ZhYzMxZDVkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8V2Vi
Q29yZS9UaW1lci5oPgorI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJC
U1Byb2Nlc3NNb25pdG9yOworCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOworY2xhc3Mg
UHJvY2Vzc1Rocm90dGxlckNsaWVudDsKKworY2xhc3MgUHJvY2Vzc1N0YXRlTW9uaXRvciA6IHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxQcm9jZXNzU3RhdGVNb25pdG9yPiB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgUHJvY2Vzc1N0YXRlTW9uaXRvcihQcm9jZXNz
U3RhdGVNb25pdG9yQ2xpZW50Jik7CisgICAgflByb2Nlc3NTdGF0ZU1vbml0b3IoKTsKKyAgICB2
b2lkIHN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSgpOworICAgIGVudW0gY2xhc3MgU3RhdGUgOiB1
aW50OF90IHsgVW5rbm93biwgUnVubmluZywgV2lsbFN1c3BlbmQsIFN1c3BlbmRlZCB9OworCitw
cml2YXRlOgorICAgIGJvb2wgaXNBc3NlcnRpb25WYWxpZCgpOworICAgIHZvaWQgZW5zdXJlQXNz
ZXJ0aW9uKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUnVubmluZygpOworICAgIHZvaWQg
cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzKTsKKyAgICB2b2lkIHNlbmRTdXNwZW5kTWVz
c2FnZSgpOworICAgIHZvaWQgY2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7CisKKyAgICBTdGF0ZSBt
X3N0YXRlIHsgU3RhdGU6OlVua25vd24gfTsKKyAgICBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
JiBtX2NsaWVudDsKKyAgICBXZWJDb3JlOjpUaW1lciBtX3N1c3BlbmRUaW1lcjsKKyAgICBSZWZQ
dHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9hc3NlcnRpb247CisgICAgdWludDY0X3QgbV9zZXNzaW9u
SUQ7CisgICAgUmV0YWluUHRyPFJCU1Byb2Nlc3NNb25pdG9yPiBtX3Jic01vbml0b3I7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9u
aXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9y
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmFjODQwZjEzMTQ2ZmUxMGVlZmJlNzRlMGI1ZWY5Njk4YmVjZjdjMmEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0
YXRlTW9uaXRvci5tbQpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKworI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2ltcG9y
dCAiUHJvY2Vzc0Fzc2VydGlvbi5oIgorI2ltcG9ydCAiUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVu
dC5oIgorI2ltcG9ydCAiUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCIKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBwcmVwYXJlRm9yU3VzcGVuc2lvbkR1
cmF0aW9uID0gIDVfczsKKworUHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9uaXRv
cihQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50JiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGll
bnQpCisgICAgLCBtX3N1c3BlbmRUaW1lcigqdGhpcywgJlByb2Nlc3NTdGF0ZU1vbml0b3I6OnNl
bmRTdXNwZW5kTWVzc2FnZSkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7CisKKyAgICBtX3Jic01vbml0b3IgPSBbUkJTUHJvY2Vzc01vbml0b3IgbW9uaXRvcldpdGhD
b25maWd1cmF0aW9uOlt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShpZDxSQlNQcm9jZXNz
TW9uaXRvckNvbmZpZ3VyaW5nPiBjb25maWcpIG11dGFibGUgeworICAgICAgICBSQlNQcm9jZXNz
U3RhdGVEZXNjcmlwdG9yICpkZXNjcmlwdG9yID0gW1JCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3Ig
ZGVzY3JpcHRvcl07CisgICAgICAgIFtkZXNjcmlwdG9yIHNldFZhbHVlczpSQlNQcm9jZXNzU3Rh
dGVWYWx1ZUxlZ2FjeUFzc2VydGlvbnMgfCBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2Vy
dGlvbnNdOworICAgICAgICBbY29uZmlnIHNldFN0YXRlRGVzY3JpcHRvcjpkZXNjcmlwdG9yXTsK
KyAgICAgICAgW2NvbmZpZyBzZXRQcmVkaWNhdGVzOkBbW1JCU1Byb2Nlc3NQcmVkaWNhdGUgcHJl
ZGljYXRlTWF0Y2hpbmdIYW5kbGU6W1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3NdXV1d
OworICAgICAgICBbY29uZmlnIHNldFVwZGF0ZUhhbmRsZXI6W3dlYWtUaGlzID0gV1RGTW92ZSh3
ZWFrVGhpcyldKFJCU1Byb2Nlc3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGFuZGxlICpw
cm9jZXNzLCBSQlNQcm9jZXNzU3RhdGVVcGRhdGUgKnVwZGF0ZSkgeworICAgICAgICAgICAgY2Fs
bE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzXSB7CisgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlz
KQorICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfV07CisgICAgfV07CisgICAgY2hlY2tSZW1haW5p
bmdSdW5UaW1lKCk7Cit9CisKK1Byb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3RhdGVNb25p
dG9yKCkKK3sKKyAgICBbbV9yYnNNb25pdG9yLmdldCgpIGludmFsaWRhdGVdOworICAgIHByb2Nl
c3NEaWRCZWNvbWVSdW5uaW5nKCk7Cit9CisKK2Jvb2wgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNB
c3NlcnRpb25WYWxpZCgpCit7CisgICAgcmV0dXJuIG1fYXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9u
LT5pc1ZhbGlkKCk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6ZW5zdXJlQXNzZXJ0
aW9uKCkKK3sKKyAgICBpZiAobV9hc3NlcnRpb24gJiYgbV9hc3NlcnRpb24tPmlzVmFsaWQoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9hc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpj
cmVhdGUobV9jbGllbnQubW9uaXRvcmVkUHJvY2Vzc0lkZW50aWZpZXIoKSwgIlByb2Nlc3NTdGF0
ZU1vbml0b3IgaXMgcnVubmluZyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQs
IFByb2Nlc3NBc3NlcnRpb246Ok1vZGU6OlN5bmMpOworfQorCitzdGF0aWMgU3RyaW5nIHN0YXRl
U3RyaW5nKFByb2Nlc3NTdGF0ZU1vbml0b3I6OlN0YXRlIHN0YXRlKQoreworICAgIHN3aXRjaCAo
c3RhdGUpIHsKKyAgICBjYXNlIFByb2Nlc3NTdGF0ZU1vbml0b3I6OlN0YXRlOjpSdW5uaW5nOgor
ICAgICAgICByZXR1cm4gIlJ1bm5pbmciX3M7CisgICAgY2FzZSBQcm9jZXNzU3RhdGVNb25pdG9y
OjpTdGF0ZTo6V2lsbFN1c3BlbmQ6CisgICAgICAgIHJldHVybiAiV2lsbCBTdXNwZW5kIl9zOwor
ICAgIGNhc2UgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6U3RhdGU6OlN1c3BlbmRlZDoKKyAgICAgICAg
cmV0dXJuICJTdXNwZW5kZWQiX3M7CisgICAgY2FzZSBQcm9jZXNzU3RhdGVNb25pdG9yOjpTdGF0
ZTo6VW5rbm93bjoKKyAgICAgICAgcmV0dXJuICJVbmtub3duIl9zOworICAgIH0KK30KKwordm9p
ZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpzdXNwZW5kUHJvY2Vzc0lmUG9zc2libGUoKQoreworICAg
IGlmIChtX3N0YXRlICE9IFN0YXRlOjpXaWxsU3VzcGVuZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQoKSk7CisgICAgaWYgKCFtX3N1c3BlbmRUaW1lci5p
c0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7
CisgICAgc2VuZFN1c3BlbmRNZXNzYWdlKCk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRv
cjo6cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRl
OjpSdW5uaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBlbnN1cmVBc3NlcnRpb24oKTsKKyAg
ICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7CisgICAgKyttX3Nlc3Npb25JRDsKKyAgICBtX3N0YXRl
ID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgbV9jbGllbnQuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkTWVzc2FnZShmYWxzZSwgW10geyB9KTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVN
b25pdG9yOjpwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKFNlY29uZHMgcmVtYWluaW5nUnVuVGltZSkK
K3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQoKSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRU
aW1lci5pc0FjdGl2ZSgpKTsKKyAgICBTZWNvbmRzIHRpbWVvdXQgPSByZW1haW5pbmdSdW5UaW1l
ID4gcHJlcGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA/IHJlbWFpbmluZ1J1blRpbWUgLSBwcmVw
YXJlRm9yU3VzcGVuc2lvbkR1cmF0aW9uIDogMF9zOworICAgIG1fc3VzcGVuZFRpbWVyLnN0YXJ0
T25lU2hvdCh0aW1lb3V0KTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OldpbGxTdXNwZW5kOworfQor
Cit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSgpCit7CisgICAg
bV9jbGllbnQuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZSh0cnVlLCBb
dGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc2Vzc2lvbklEID0gbV9zZXNzaW9u
SURdKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zZXNzaW9uSUQgIT0g
c2Vzc2lvbklEKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fYXNzZXJ0aW9uID0g
bnVsbHB0cjsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdXNwZW5kZWQ7CisgICAgfSk7Cit9
CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCkKK3sK
KyAgICBkb3VibGUgcnVuVGltZSA9IFtbW1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3Nd
IGFjdGl2ZUxpbWl0YXRpb25zXSBydW5UaW1lXTsKKyAgICBpZiAocnVuVGltZSA9PSBSQlNQcm9j
ZXNzVGltZUxpbWl0YXRpb25Ob25lKQorICAgICAgICByZXR1cm4gcHJvY2Vzc0RpZEJlY29tZVJ1
bm5pbmcoKTsKKworICAgIHByb2Nlc3NXaWxsQmVTdXNwZW5kZWQoU2Vjb25kcyhydW5UaW1lKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NT
dGF0ZU1vbml0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
U3RhdGVNb25pdG9yQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZjZjQ5YzYwODgyMmNkN2FkZWNlZTdl
MGJiMmJlN2EwZmZjZWMzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgKQEAgLTAsMCArMSw0MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFBy
b2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQgeworcHVibGljOgorICAgIHZpcnR1YWwgflByb2Nlc3NT
dGF0ZU1vbml0b3JDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2VuZFNldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCBQcm9jZXNzSUQgbW9uaXRvcmVkUHJvY2Vz
c0lkZW50aWZpZXIoKSBjb25zdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDlhM2UxN2UyYjU0YjA2ODE3YTVjMGQzMmJkZmM2
MDg5M2ZiNjViM2IuLjg3YjNjYzhiOGJhMGRhNmY3NGZlNGM5MGJjM2UxM2RjYzQ2NzlkOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTQ1Nyw2ICsxNDU3LDkgQEAKIAkJOTM1QjU3OUEyNkY1MTkzMzAwOEI0OEFDIC8qIEZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNUI1Nzk4MjZGNTEyNzAwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZVJlZ2lzdHJ5LmggKi87IH07CiAJCTkzNUVFQjlCMTI3NzYxN0MwMDMzMjJCOCAv
KiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjk4MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5MzVFRUI5RjEyNzc2MUFDMDAzMzIyQjggLyogV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNUZF
NUI2MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVGRTVCMzI4MTM1NjI1MDBEMzU5
RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovOyB9OworCQk5MzVGRTVCNzI4MTM1NjI2MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUZFNUI0MjgxMzU2MjUwMEQzNTlFMyAvKiBQcm9jZXNz
U3RhdGVNb25pdG9yLm1tICovOyB9OworCQk5MzVGRTVCODI4MTM1NjI2MDBEMzU5RTMgLyogUHJv
Y2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM1RkU1QjUyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1v
bml0b3JDbGllbnQuaCAqLzsgfTsKIAkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJl
dmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlv
bkl0ZW1JbnRlcm5hbC5oICovOyB9OwogCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQ
cmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0Vs
ZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggKi87IH07CkBAIC00OTcyLDM3ICs0OTc1LDE3IEBACiAJCTU3MERB
QUM1MjMwMzdGN0UwMEU4RkMwNCAvKiBXS05GUmVhZGVyU2Vzc2lvbkRlbGVnYXRlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzgyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNE
cml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NzBEQUFDOTIzMDM4NUZEMDBFOEZDMDQgLyogQ3RhcE5mY0RyaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdGFwTmZjRHJpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQjkyNTM2QTA2RTAwMDU1MkIzIC8qIEluZm8taU9TLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5w
bGlzdDsgbmFtZSA9ICJJbmZvLWlPUy5wbGlzdCI7IHBhdGggPSAiV2ViQXV0aG5Qcm9jZXNzL0Vu
dHJ5UG9pbnQvQ29jb2EvWFBDU2VydmljZS9XZWJBdXRoblNlcnZpY2UvSW5mby1pT1MucGxpc3Qi
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07Ci0JCTU3MkVCQkJBMjUzNkEwNkUwMDA1NTJC
MyAvKiBJbmZvLU9TWC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUgPSAiSW5mby1PU1gucGxpc3QiOyBwYXRoID0g
IldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2
aWNlL0luZm8tT1NYLnBsaXN0Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQk1NzJF
QkJCQjI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJDMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJCRDI1MzZBNjBBMDAwNTUyQjMgLyogV2Vi
QXV0aG5Qcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkJFMjUzNkE2MEEwMDA1NTJCMyAvKiBXZWJBdXRo
blByb2Nlc3NNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJB
dXRoblByb2Nlc3NNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJF
QkJDMzI1MzZBQjg0MDAwNTUyQjMgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Mu
c2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nl
c3Muc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkM1MjUzNkFGRDUwMDA1
NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3MkVCQkM2MjUzNkFGRDUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NQ
cm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDQjI1MzZCMDRGMDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbkluZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDEyNTM2Qzg4NTAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTU3MkVCQkQyMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vz
c0Nvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCRDMyNTM2
Qzg4NTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDgyNTM4RjZBMTAwMDU1MkIz
IC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBB
cHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1NzJFQkJEOTI1MzhGNkExMDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MkZENDQxMjIyNjVDRTIwMEExRUNDMyAvKiBXZWJWaWV3RGlkTW92ZVRvV2lu
ZG93T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2Vy
dmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDIxNzkxMjQwMEUwOTgwMDJC
MzAzRCAvKiBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsQXV0
aGVudGljYXRpb25TUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0MkEyRjcy
NTM1NjEzRjAwQjdCQTE0IC8qIC54cGMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9ICJ3cmFwcGVyLnhwYy1zZXJ2aWNlIjsgaW5jbHVkZUluSW5kZXggPSAw
OyBwYXRoID0gLnhwYzsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKLQkJNTc0
MkEzMDYyNTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMDcy
NTM1OEEwNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMw
QTI1MzU4RUZEMDBCN0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMwQjI1MzU4RUZEMDBC
N0JBMTQgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEMyNTM1OEVGRDAwQjdC
QTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxMzI1MzY0OEU0MDBCN0JBMTQg
LyogV2ViQXV0aG5Qcm9jZXNzLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
YkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
NTc0MkEzMTQyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxNTI1MzY0OEU0MDBCN0JBMTQgLyogV2ViQXV0
aG5Qcm9jZXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJv
Y2Vzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxQTI1MzY3NUU5MDBC
N0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
QXV0aG5Qcm9jZXNzSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMx
QzI1MzY3NUY2MDBCN0JBMTQgLyogV2ViQXV0aG5Qcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1NzQyQTMxRDI1MzY3NUY2MDBCN0JBMTQgLyogY29tLmFwcGxlLldlYktpdC5XZWJBdXRo
blByb2Nlc3Muc2IuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFwcGxlLldlYktpdC5XZWJBdXRoblByb2Nlc3Muc2Iu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzFFMjUzNjk0OTMwMEI3QkEx
NCAvKiBXZWJBdXRoblNlcnZpY2VFbnRyeVBvaW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViQXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTc0NzI4Q0YyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMDIzNDU2RTk4MDAxNzAwQUYgLyogX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRp
Y2F0aW9uUGFuZWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcyOEQzMjM0
NTcwQUUwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01Njc4LDYgKzU2NjEsOSBAQAogCQk5MzVFRUI5NjEyNzc2
MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3RJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCMzI4
MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLmg7IHBhdGggPSBpb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCNDI4
MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3IubW07IHBhdGggPSBp
b3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTM1RkU1QjUyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVu
dC5oOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0Fj
dGlvbkl0ZW1JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1By
ZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9J
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1
MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC05MTYwLDYgKzkxNDYsOSBAQAogCQkJCTBGQ0I0RTM2MThCQkUw
NDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5oICovLAogCQkJCTBGQ0I0RTM3MThCQkUw
NDQwMDBGQ0ZDOSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSAqLywKIAkJCQk4NkY5NTM2MjE4RkY1
NTBCMDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSAqLywKKwkJCQk5MzVGRTVCMzI4
MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovLAorCQkJCTkzNUZFNUI0
MjgxMzU2MjUwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLm1tICovLAorCQkJCTkzNUZF
NUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8sCiAJ
CQkJMkRBRjA2RDQxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXIuaCAqLywKIAkJCQkyREFGMDZEODE4QkQyM0JBMDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0
aW9uQ29udHJvbGxlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkyREFGMDZENTE4QkQxQTQ3MDA4MUNF
QjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbSAqLywKQEAgLTE0MzU4LDYgKzE0
MzQ3LDggQEAKIAkJCQk1Q0I5MzEwOTI2RTg0MzlBMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRYUENVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4
RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFB
N0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5MzVGRTVCNjI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEy
OTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2
RTY3QTI1MTkxMEI5RDEwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTQ2MSwyOCArMTU0NTIsNiBAQAogCQkJcHJvZHVjdFJl
ZmVyZW5jZSA9IDUxN0I1RjVCMjc1QThEM0UwMDJEQzIyRCAvKiB3ZWJwdXNodG9vbCAqLzsKIAkJ
CXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0LXR5cGUudG9vbCI7CiAJCX07Ci0JCTU3
NDJBMkU1MjUzNTYxM0YwMEI3QkExNCAvKiBXZWJBdXRobiAqLyA9IHsKLQkJCWlzYSA9IFBCWE5h
dGl2ZVRhcmdldDsKLQkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1NzQyQTJGMzI1MzU2MTNG
MDBCN0JBMTQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQg
IldlYkF1dGhuIiAqLzsKLQkJCWJ1aWxkUGhhc2VzID0gKAotCQkJCTU3NDJBMkVBMjUzNTYxM0Yw
MEI3QkExNCAvKiBTb3VyY2VzICovLAotCQkJCTU3NDJBMkVEMjUzNTYxM0YwMEI3QkExNCAvKiBG
cmFtZXdvcmtzICovLAotCQkJCTU3NDJBMkYwMjUzNTYxM0YwMEI3QkExNCAvKiBSZXNvdXJjZXMg
Ki8sCi0JCQkJNTc0MkEyRjEyNTM1NjEzRjAwQjdCQTE0IC8qIFVubG9jayBrZXljaGFpbiAqLywK
LQkJCQk1NzQyQTJGMjI1MzU2MTNGMDBCN0JBMTQgLyogUHJvY2VzcyBXZWJBdXRoZW50aWNhdGlv
biBlbnRpdGxlbWVudHMgKi8sCi0JCQkJNjUxNzU3MjMyN0NGQzI0QTAwRDlGRTQwIC8qIENvcHkg
WFBDIFNlcnZpY2UgdG8gU2Vjb25kYXJ5IFBhdGggKi8sCi0JCQkpOwotCQkJYnVpbGRSdWxlcyA9
ICgKLQkJCSk7Ci0JCQlkZXBlbmRlbmNpZXMgPSAoCi0JCQkJNTc0MkEyRTYyNTM1NjEzRjAwQjdC
QTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkJNTc0MkEyRTgyNTM1NjEzRjAwQjdC
QTE0IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCi0JCQkpOwotCQkJbmFtZSA9IFdlYkF1dGhu
OwotCQkJcHJvZHVjdE5hbWUgPSBOZXR3b3JraW5nOwotCQkJcHJvZHVjdFJlZmVyZW5jZSA9IDU3
NDJBMkY3MjUzNTYxM0YwMEI3QkExNCAvKiAueHBjICovOwotCQkJcHJvZHVjdFR5cGUgPSAiY29t
LmFwcGxlLnByb2R1Y3QtdHlwZS54cGMtc2VydmljZSI7Ci0JCX07CiAJCTVDMTU3OUNDMjcxNjVC
MkYwMEVENTI4MCAvKiB3ZWJwdXNoZCAqLyA9IHsKIAkJCWlzYSA9IFBCWE5hdGl2ZVRhcmdldDsK
IAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1QzE1NzlENjI3MTY1QjJGMDBFRDUyODAgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhOYXRpdmVUYXJnZXQgIndlYnB1c2hkIiAq
LzsKQEAgLTE2NzgyLDYgKzE2NzUxLDcgQEAKIAkJCQkyRDkxMzQ0RDIxMkNGOUYwMDAxMjhBRkQg
LyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMTVDQkIzNzIzRjM3RUNCMDAz
MDBDQzcgLyogUHJlZmVyZW5jZU9ic2VydmVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ1NEMz
MUIyMTJGNERBNjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5MzVGRTVCNzI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTUxN0I1RjgyMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQXBwQnVu
ZGxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGN0IyNzVFOTdBOTAwMkRDMjJEIC8qIFB1
c2hDbGllbnRDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRUIzNkIxNjkyN0E3QjQ1
MDAwNTBFMDBEIC8qIFB1c2hTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGNlM2ViNTBhMjI1MTZhMmM0
ODk3OTdiMTZiYTAyZjkzNTI4M2EwMy4uMDc0MGVhZTljOGZhODJjNWY4NTA5Y2MwYzg4MzJmMTM2
YzViNzZlNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA0LTIyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gbmV0d29y
ayBwcm9jZXNzIGlzIGluIGJhY2tncm91bmQgYW5kIHdpbGwgYmUgc3VzcGVuZGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0MzIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW06CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5j
ZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTIxICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIERvbid0IGNsb3NlIGJ1
Z3MgYXNzb2NpYXRlZCB3aXRoIHRlc3QgZ2FyZGVuaW5nCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5k
SW1taW5lbnRseS5tbQppbmRleCA4Mzg4NTFiZmE4ODhhYzQwYWM3MWNlY2FlNTBhNDgzYWIxYjg1
ZjdhLi5mN2VlZGI0ZGY3MWJkZjE0YWYyM2FlNGUzZDU1MWViMTQ3MDVjZDQxIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJ
bW1pbmVudGx5Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KQEAgLTE2Myw4ICsxNjMsMTcgQEAgVEVTVChJ
bmRleGVkREIsIFN1c3BlbmRJbW1pbmVudGx5Rm9yVGhpcmRQYXJ0eURhdGFiYXNlcykKICAgICBb
d2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwogICAgIHJ1blRlc3RBbmRDaGVja1Jl
c3VsdChAImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eV07Ci0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdv
cmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBb
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJl
YWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWFkeVRvQ29udGludWUpOworCisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7Cisg
ICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJh
dGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOk5PIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAg
IHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcnVuVGVzdEFuZENoZWNrUmVzdWx0KEAi
dHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIik7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5j
ZS5tbQppbmRleCAwMjUyNDMwMmZiZGZjYTgzZGFlMmFhNGVlYWZkMzg5YWFhYzNiNjE5Li5jMjEw
MmYzZTBlMTA5MjYzZjU0NjJhMDZjYTczNjYxZjgwMTgxZDYxIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdl
UGVyc2lzdGVuY2UubW0KQEAgLTE3MCw3ICsxNzAsMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2Fs
U3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAidmFsdWUiLCBbbGFz
dFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0
ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5XTsKKyAg
ICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVT
IGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwog
CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2
YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgna2V5JywgJ25ld1ZhbHVlJyki
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3IgKikgewpAQCAtMTg1LDcgKzE4OSwxMSBA
QCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUHJvY2Vzc1N1c3BlbmRzKQogICAgIH1dOwog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKICAgICAKLSAg
ICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWVdOworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1
cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVu
ZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29u
dGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVh
ZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
</data>
<flag name="commit-queue"
          id="486989"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458176</attachid>
            <date>2022-04-22 15:15:06 -0700</date>
            <delta_ts>2022-04-22 15:33:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220422151505.patch</filename>
            <type>text/plain</type>
            <size>49951</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiOWRhNjE5NGVjNGJhMzZm
OGRhNTc4YjgxN2UyM2I1MGU5Yzc1MmQuLmMxOWZiMTNkOTM2YzdlMTU1YTI3OTMyMmRlMDExOTQ5
M2E1MjM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBp
bnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlmaWNh
dGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAgICBh
biB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHByb2Nl
c3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vzc1N0
YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ug
b3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0
aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0aGUg
cnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLiBQcm9jZXNzU3RhdGVNb25pdG9yCisgICAg
ICAgIG1heSBzZW5kIHRoZSBzdXNwZW5kIG1lc3NhZ2UgZWFybGllciBpZiBQcm9jZXNzVGhyb3R0
bGVyIHNheXMgdGhlcmUgaXMgbm8gYWN0aXZpdHkgbGVmdC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpyZW1v
dmVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1v
bml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3Rh
dGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzU3RhdGVNb25pdG9yOjplbnN1cmVBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpzdGF0
ZVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3BlbmRQ
cm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6
OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRl
TW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRvckNs
aWVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjItMDQtMjIgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIEFkZCBmaW5kIGludGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMmM4YjI0NTlj
YmIwNDA3MGQ2NWNmMzJhYzdhYTI1NDc1MTA3ZjgwOC4uMzNiZWYxNTYxMGU5M2FkNDczNDRhMTVm
MzAwNmNjNTZlMDI5MGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1Nyw3ICs0NTcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjphZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycwogICAgICAgICByZXR1cm4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywgcGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsK
IAotICAgIGlmIChtX2lzU3VzcGVuZGVkKQorICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNw
ZW5kZWQpCiAgICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0p
OwogfQogCkBAIC0yMTUyLDcgKzIxNTIsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogewog
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6
cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICV7
cHVibGljfXNpbiBiYWNrZ3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50
ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID8gIiIgOiAibm90ICIpOwogCi0gICAgbV9pc1N1c3BlbmRl
ZCA9IHRydWU7CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKIAogICAgIFJl
ZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtMjE2MCwxMSArMjE1OSw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwg
Q29tcGxldGlvbkhhbmRsCiAgICAgICAgIFVOVVNFRF9WQVJJQUJMRSh0aGlzKTsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKLSNlbmRpZgotICAgIFBDTTo6
U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CiAKICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAg
ICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFj
a0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC0yMTcyLDcgKzIxNjYsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbAogICAgICAgICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkp
CiAgICAgICAgICAgICBzd1NlcnZlci0+c3RhcnRTdXNwZW5zaW9uKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsgfSk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnN1c3Bl
bmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICB9KTsKIAogICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQpAQCAtMjIwMiwy
MiArMjE5NSwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5KQogICAgIGVsc2UKICAgICAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkIFByb2Nlc3MgaGFzIGJlZW4gaW4gYmFja2dyb3VuZCBm
b3IgJWYgc2Vjb25kcyIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSwgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSk7
CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7Ci0KICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rp
b24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlv
bi0+ZW5kU3VzcGVuc2lvbigpOwogCi0jaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCi0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsK
LSNlbmRpZgotICAgIFBDTTo6U3RvcmU6OnByb2Nlc3NEaWRSZXN1bWUoKTsKLQogICAgIGZvckVh
Y2hOZXR3b3JrU2Vzc2lvbihbXShhdXRvJiBzZXNzaW9uKSB7CiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogICAgICAgICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkp
CiAgICAgICAgICAgICBzd1NlcnZlci0+ZW5kU3VzcGVuc2lvbigpOwogI2VuZGlmCi0gICAgICAg
IHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5yZXN1bWUoKTsKICAgICB9KTsKIH0KIApAQCAtMjc2
OCw0ICsyNzUzLDMxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvdW50Tm9uRGVmYXVsdFNlc3Np
b25TZXRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoc2Vzc2lvbiA/IHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgOiAw
KTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVn
YXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAobV9zdG9y
YWdlT3BlcmF0aW9uU3VzcGVuZGVkID09IHN1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUkVMRUFTRV9MT0coU3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFByb2Nlc3NT
dXNwZW5kZWQgc3VzcGVuZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKyAgICBtX3N0b3JhZ2VP
cGVyYXRpb25TdXNwZW5kZWQgPSBzdXNwZW5kZWQ7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlv
blN1c3BlbmRlZCkgeworI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQorICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKKyNlbmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcmVwYXJl
Rm9yUHJvY2Vzc1RvU3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgICAgICBm
b3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSgpIHsg
fSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6cmVzdW1lKCk7CisjZW5kaWYKKyAgICAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3Vt
ZSgpOworICAgICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7
CisgICAgICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAg
IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggOGU5MmZjMmMxMzU3MTRhMTZk
ZmJjNjM1Yzc1MzkzMWE2NGJhYTllZi4uMDVlMjhhZjRhZDk4NWFiMzQzZmRmOTAxNTYwNDdhMTQw
OGRjODQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTc4LDYgKzE3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2Nlc3NXaWxsU3Vz
cGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShi
b29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2Rl
bDsgfQogCkBAIC01MzAsNyArNTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2Z0cEVuYWJsZWQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
TW9ub3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA1MzFiY2JjMzU1Y2ZkZjUxZDBiNDkwNDhjMjE0OWQ3MDM4ZGNmMTViLi4xODgy
ZTgyZDY5MzIzYzZmYWY4ZjEwZTY2NWRmODdhMGNjODQwOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+ICgp
IFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWlu
ZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCisgICAgU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpIC0+
ICgpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9h
cmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIxNWYwNDMyY2Yy
YmE5ODg0ZC4uZWVmNjcwOGI2YjdiNjk3OTUxMDU3YTlmZWIyOTkwNTI0N2M4YzM4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2Vz
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNl
cnZpY2VzU1BJLmgKQEAgLTEzMSwxNCArMTMxLDI0IEBAIHR5cGVkZWYgdm9pZCAoXlJCU1Byb2Nl
c3NVcGRhdGVIYW5kbGVyKShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hh
CiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc01vbml0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgog
KyAoaW5zdGFuY2V0eXBlKW1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjooTlNfTk9FU0NBUEUgUkJT
UHJvY2Vzc01vbml0b3JDb25maWd1cmF0b3IpYmxvY2s7CistICh2b2lkKWludmFsaWRhdGU7CiBA
ZW5kCiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc1ByZWRpY2F0ZSA6IE5TT2JqZWN0IDxSQlNQcm9j
ZXNzTWF0Y2hpbmc+CiArIChSQlNQcm9jZXNzUHJlZGljYXRlICopcHJlZGljYXRlTWF0Y2hpbmdI
YW5kbGU6KFJCU1Byb2Nlc3NIYW5kbGUgKilwcm9jZXNzOwogQGVuZAordHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcykgeworICAgIFJCU1Byb2Nlc3NT
dGF0ZVZhbHVlTm9uZSAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIFJCU1Byb2Nlc3NTdGF0
ZVZhbHVlVGFza1N0YXRlICAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKKyAgICBSQlNQcm9jZXNz
U3RhdGVWYWx1ZVRhZ3MgICAgICAgICAgICAgICAgICAgID0gKDEgPDwgMSksCisgICAgUkJTUHJv
Y2Vzc1N0YXRlVmFsdWVUZXJtaW5hdGlvblJlc2lzdGFuY2UgICA9ICgxIDw8IDIpLAorICAgIFJC
U1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCAzKSwKKyAg
ICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgNCks
Cit9OwogCiBAaW50ZXJmYWNlIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBOU09iamVjdCA8
TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZHdyaXRlLCBhc3NpZ24pIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2YWx1ZXM7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkgTlNBcnJheTxO
U1N0cmluZyAqPiAqZW5kb3dtZW50TmFtZXNwYWNlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CmluZGV4IDY4ZGM3NzE5MjExNDlkNjU3ZjU0NmNhMjczZjRlMzk1Mzc4NDBmYTYuLjQxOTQ0
NGQzYWE3ZDJmZWU5YWYyNmFmYTNlYWMxZWEzZjQyODZhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKQEAgLTQ4OSw2ICs0ODksNyBAQCBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlci5tbQogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdVcGRhdGVEZWZlcnJl
ci5tbQogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCitVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3Iu
bW0KIFVJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbQogVUlQcm9j
ZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUwOTM4MDM2MTQ3OTg4NTYxMmY0OGFmYWRi
M2M3NGJhZTM1NTExNjEuLmNhMjA0MTY1YjJiMGM5Y2U2MzZjYmIzNmY1OTA0MDZiNmFlYmRjNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU1LDYgKzc1NSwxMyBAQCBzdGF0aWMgVmVjdG9yPFdlYktp
dDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFS
ZWNvcgogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUo
KTsKIH0KIAorLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5n
OihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0
aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJP
T0wpYmFja2dyb3VuZAogewogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2Vzcygp
LnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaAppbmRleCA0NzAxNzkyYWVhOGUwOGUxOTNjMGJkNjVmODkwMmQ2YzY2OWU2NmJjLi5k
MDgzNmY0ODQ1Nzg2NDg4M2RkNTRmZGZkM2I0ZjE3NjI2OGZkY2MzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmVQcml2YXRlLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfc2VuZE5l
dHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX3NldE5l
dHdvcmtQcm9jZXNzU3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nOihCT09MKWFsbG93ZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNwZW5k
ZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNz
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAo
dm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzOWY2
YmUyY2I5MGRlOTIyNmRmNGJmZGNkYjkwMDg5Mjk1M2ViNDA4Li41NWQ4ZjZlYjkyNTA5OGFlNzE1
Zjc0ZGQyNmFkYjdlYjY3Nzc4YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJQcm9jZXNzU3Rh
dGVNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjZW5kaWYK
IApAQCAtMTM5Miw2ICsxMzkzLDI3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFBy
b2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAgICAgc2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJlc3VtZVJlYXNv
bjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1v
bml0b3ItPnN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSgpOworI2VuZGlmCit9CisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoc3VzcGVuZGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCitwaWRfdCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMo
c2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTgyOCwxMSArMTg1
MCwyMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om5hdmlnYXRlU2VydmljZVdvcmtlckNs
aWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIGlmICghbV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nl
c3NTdGF0ZU1vbml0b3IgPSBtYWtlVW5pcXVlPFByb2Nlc3NTdGF0ZU1vbml0b3I+KCp0aGlzKTsK
KyNlbmRpZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKCksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NT
dGF0ZU1vbml0b3IgPSBudWxscHRyOworI2VuZGlmCisKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCmluZGV4IGNjZjdhMjYwMWI3YTY1MTg1YTUwNGJmN2Y5ZTBhMTc5Yjg0NjNhM2UuLjAz
YjI0MjRmYmEyMDE1MjlmZGQ1MTEwMTBkOTg4ODNhNDZjOGIzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01
NSw2ICs1NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIK
KyNpbmNsdWRlICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTEwNSw3ICsxMTAsMTEg
QEAgc3RydWN0IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZp
bmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0
bGVyQ2xpZW50IHsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICwgcHVibGljIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CkBA
IC0yNDIsNiArMjUxLDEzIEBAIHB1YmxpYzoKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
CiAgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsOwogICAg
IEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQ
cm9jZXNzIl9zOyB9CisgICAgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgZmluYWw7CisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQKKyAgICB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9v
bCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgUHJv
Y2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisjZW5kaWYK
ICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9v
bCk7CiAgICAgdm9pZCBzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KTsKQEAgLTQyOCw2ICs0NDQsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8
aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzU3Rh
dGVNb25pdG9yPiBtX3Byb2Nlc3NTdGF0ZU1vbml0b3I7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggNDcxMmYyZWNmYmEy
YzVhOTllMmQ2YmFkNGYxZTA1YzU3ZGRlODZhNS4uZTUzMDMzMWUzM2UwM2E5NmFkN2NiZDM2M2Nh
ZmZmMTI2NDAzOGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlci5jcHAKQEAgLTY4LDEyICs2OCwxOCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnJlbW92
ZUFjdGl2aXR5KEZvcmVncm91bmRBY3Rpdml0eSYgYWN0aXZpdHkpCiB7CiAgICAgbV9mb3JlZ3Jv
dW5kQWN0aXZpdGllcy5yZW1vdmUoJmFjdGl2aXR5KTsKICAgICB1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCgpOworCisgICAgaWYgKCFzaG91bGRCZVJ1bm5hYmxlKCkpCisgICAgICAgIG1fcHJvY2Vz
cy5kaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6
cmVtb3ZlQWN0aXZpdHkoQmFja2dyb3VuZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2Jh
Y2tncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlv
bklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3VsZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9w
cm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0
bGVyOjppbnZhbGlkYXRlQWxsQWN0aXZpdGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggZmM3N2JhOTUzMzlhNDZmODg3OTY2
ZjhmY2IzMGE1OWRmZGVhYjQ2Ni4uYjQ4ZDFkOGRkZWJjYjA2NzBkOGEyNGUxODYxMTRiZGVkYWJl
Y2ExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJD
bGllbnQuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbmRQ
cm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSB7IH07CiAgICAgdmlydHVhbCBB
U0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSgpIHsgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCBjYjYyM2U1ZTM3NDVmZGQ5MWQzMTg0NGZiZDkzMjA5ODg2ZDAw
ZTZlLi4yNWU5MWMwNmFhOGI4Yzg3ODY1MGNjZmU3Mzc0NzJmYTY5ZjBjNzE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtMTYwOCw2ICsxNjA4LDExIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2Vu
ZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRQcm9j
ZXNzRGlkUmVzdW1lKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6Rm9yZWdy
b3VuZEFjdGl2aXR5KTsKIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBuZXR3b3JrUHJvY2Vzcygp
LnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2Uoc3VzcGVuZGVkLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAogewogI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGQ5ZDYyMjMwZjkwNWI0
OWFkY2VhY2ViZjU5ZWJhMWFhZGFiYjdkOGQuLjQyMTQxMTU3NmU0MGMxMTEzZjcyYTA3NWI5NzUx
YWNlNDhjZjIyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9TdXNwZW5kRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9j
ZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZv
clRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7
CiAgICAgc3RhdGljIHZvaWQgbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0
aW5nKCk7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5j
aEZhaWxGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1By
b2Nlc3NTdGF0ZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MDViNmZhMDkwYmEzMTBiM2JkOWRhNjc3
ZTVhYmM2MzRhZDVmYWM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxX
ZWJDb3JlL1RpbWVyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1Mg
UkJTUHJvY2Vzc01vbml0b3I7CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFByb2Nlc3NBc3NlcnRpb247CitjbGFz
cyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50OworCitjbGFzcyBQcm9jZXNzU3RhdGVNb25pdG9yIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBQcm9jZXNzU3RhdGVNb25pdG9yKFByb2Nl
c3NTdGF0ZU1vbml0b3JDbGllbnQmKTsKKyAgICB+UHJvY2Vzc1N0YXRlTW9uaXRvcigpOworICAg
IHZvaWQgc3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCk7CisKK3ByaXZhdGU6CisgICAgYm9vbCBp
c0Fzc2VydGlvblZhbGlkKCk7CisgICAgdm9pZCBlbnN1cmVBc3NlcnRpb24oKTsKKyAgICB2b2lk
IHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisgICAgdm9pZCBwcm9jZXNzV2lsbEJlU3VzcGVu
ZGVkKFNlY29uZHMpOworICAgIHZvaWQgc2VuZFN1c3BlbmRNZXNzYWdlKCk7CisgICAgdm9pZCBj
aGVja1JlbWFpbmluZ1J1blRpbWUoKTsKKworICAgIGVudW0gY2xhc3MgU3RhdGUgOiB1aW50OF90
IHsgVW5rbm93biwgUnVubmluZywgV2lsbFN1c3BlbmQsIFN1c3BlbmRlZCB9OworICAgIFN0YXRl
IG1fc3RhdGUgeyBTdGF0ZTo6VW5rbm93biB9OworICAgIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQmIG1fY2xpZW50OworICAgIFdlYkNvcmU6OlRpbWVyIG1fc3VzcGVuZFRpbWVyOworICAgIFJl
ZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICB1aW50NjRfdCBtX3Nlc3Np
b25JRDsKKyAgICBSZXRhaW5QdHI8UkJTUHJvY2Vzc01vbml0b3I+IG1fcmJzTW9uaXRvcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVN
b25pdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0
b3IubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWU1YjIzZTNiODVhNzllMTAyOWFmNDA0ZGM2N2RhMGM1ODY2YzNj
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
U3RhdGVNb25pdG9yLm1tCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW1w
b3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xp
ZW50LmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHByZXBhcmVGb3JTdXNwZW5zaW9u
RHVyYXRpb24gPSAgNV9zOworCitQcm9jZXNzU3RhdGVNb25pdG9yOjpQcm9jZXNzU3RhdGVNb25p
dG9yKFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQmIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNs
aWVudCkKKyAgICAsIG1fc3VzcGVuZFRpbWVyKCp0aGlzLCAmUHJvY2Vzc1N0YXRlTW9uaXRvcjo6
c2VuZFN1c3BlbmRNZXNzYWdlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFp
bigpKTsKKworICAgIG1fcmJzTW9uaXRvciA9IFtSQlNQcm9jZXNzTW9uaXRvciBtb25pdG9yV2l0
aENvbmZpZ3VyYXRpb246W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGlkPFJCU1Byb2Nl
c3NNb25pdG9yQ29uZmlndXJpbmc+IGNvbmZpZykgbXV0YWJsZSB7CisgICAgICAgIFJCU1Byb2Nl
c3NTdGF0ZURlc2NyaXB0b3IgKmRlc2NyaXB0b3IgPSBbUkJTUHJvY2Vzc1N0YXRlRGVzY3JpcHRv
ciBkZXNjcmlwdG9yXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0VmFsdWVzOlJCU1Byb2Nlc3NT
dGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyB8IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9kZXJuQXNz
ZXJ0aW9uc107CisgICAgICAgIFtjb25maWcgc2V0U3RhdGVEZXNjcmlwdG9yOmRlc2NyaXB0b3Jd
OworICAgICAgICBbY29uZmlnIHNldFByZWRpY2F0ZXM6QFtbUkJTUHJvY2Vzc1ByZWRpY2F0ZSBw
cmVkaWNhdGVNYXRjaGluZ0hhbmRsZTpbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50UHJvY2Vzc11d
XV07CisgICAgICAgIFtjb25maWcgc2V0VXBkYXRlSGFuZGxlcjpbd2Vha1RoaXMgPSBXVEZNb3Zl
KHdlYWtUaGlzKV0oUkJTUHJvY2Vzc01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYW5kbGUg
KnByb2Nlc3MsIFJCU1Byb2Nlc3NTdGF0ZVVwZGF0ZSAqdXBkYXRlKSB7CisgICAgICAgICAgICBj
YWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXNdIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vha1Ro
aXMpCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jaGVja1JlbWFpbmluZ1J1blRpbWUo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9XTsKKyAgICB9XTsKKyAgICBjaGVja1JlbWFp
bmluZ1J1blRpbWUoKTsKK30KKworUHJvY2Vzc1N0YXRlTW9uaXRvcjo6flByb2Nlc3NTdGF0ZU1v
bml0b3IoKQoreworICAgIFttX3Jic01vbml0b3IuZ2V0KCkgaW52YWxpZGF0ZV07CisgICAgcHJv
Y2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKK30KKworYm9vbCBQcm9jZXNzU3RhdGVNb25pdG9yOjpp
c0Fzc2VydGlvblZhbGlkKCkKK3sKKyAgICByZXR1cm4gbV9hc3NlcnRpb24gJiYgbV9hc3NlcnRp
b24tPmlzVmFsaWQoKTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjplbnN1cmVBc3Nl
cnRpb24oKQoreworICAgIGlmIChtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxpZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Fzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246
OmNyZWF0ZShtX2NsaWVudC5tb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpLCAiUHJvY2Vzc1N0
YXRlTW9uaXRvciBpcyBydW5uaW5nIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dyb3Vu
ZCwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRl
TW9uaXRvcjo6c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCkKK3sKKyAgICBpZiAobV9zdGF0ZSAh
PSBTdGF0ZTo6V2lsbFN1c3BlbmQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChpc0Fz
c2VydGlvblZhbGlkKCkpOworICAgIGlmICghbV9zdXNwZW5kVGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kVGltZXIuc3RvcCgpOworICAgIHNlbmRTdXNw
ZW5kTWVzc2FnZSgpOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NEaWRC
ZWNvbWVSdW5uaW5nKCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6UnVubmluZykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlQXNzZXJ0aW9uKCk7CisgICAgbV9zdXNwZW5kVGlt
ZXIuc3RvcCgpOworICAgICsrbV9zZXNzaW9uSUQ7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpSdW5u
aW5nOworICAgIG1fY2xpZW50LnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3Nh
Z2UoZmFsc2UsIFtdIHsgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJvY2Vz
c1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzIHJlbWFpbmluZ1J1blRpbWUpCit7CisgICAgaWYgKG1f
c3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChp
c0Fzc2VydGlvblZhbGlkKCkpOworICAgIEFTU0VSVCghbV9zdXNwZW5kVGltZXIuaXNBY3RpdmUo
KSk7CisgICAgU2Vjb25kcyB0aW1lb3V0ID0gcmVtYWluaW5nUnVuVGltZSA+IHByZXBhcmVGb3JT
dXNwZW5zaW9uRHVyYXRpb24gPyByZW1haW5pbmdSdW5UaW1lIC0gcHJlcGFyZUZvclN1c3BlbnNp
b25EdXJhdGlvbiA6IDBfczsKKyAgICBtX3N1c3BlbmRUaW1lci5zdGFydE9uZVNob3QodGltZW91
dCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpXaWxsU3VzcGVuZDsKK30KKwordm9pZCBQcm9jZXNz
U3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UoKQoreworICAgIG1fY2xpZW50LnNlbmRT
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UodHJ1ZSwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNlc3Npb25JRCA9IG1fc2Vzc2lvbklEXSgpIG11dGFibGUg
eworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1fc2Vzc2lvbklEICE9IHNlc3Npb25JRCkKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2Fzc2VydGlvbiA9IG51bGxwdHI7CisgICAg
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3VzcGVuZGVkOworICAgIH0pOworfQorCit2b2lkIFByb2Nl
c3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSgpCit7CisgICAgZG91YmxlIHJ1
blRpbWUgPSBbW1tSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXSBhY3RpdmVMaW1pdGF0
aW9uc10gcnVuVGltZV07CisgICAgaWYgKHJ1blRpbWUgPT0gUkJTUHJvY2Vzc1RpbWVMaW1pdGF0
aW9uTm9uZSkKKyAgICAgICAgcmV0dXJuIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisKKyAg
ICBwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKFNlY29uZHMocnVuVGltZSkpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvckNs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY2Y2Y0OWM2MDg4MjJjZDdhZGVjZWU3ZTBiYjJiZTdhMGZmY2Vj
MzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvckNsaWVudC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzU3RhdGVNb25p
dG9yQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Qcm9jZXNzU3RhdGVNb25pdG9yQ2xp
ZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3Bl
bmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
PSAwOworICAgIHZpcnR1YWwgUHJvY2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkg
Y29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2ODczMjRmMmE0YzJiMDAwOTI2OWMwYTEwZWU0NjMxMWZjZmUwMTI0Li44
NmFmMzA4YTljOGUwNmRhNzU0ZWNkNjExYmFiMDk2MzUwODVmZGFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NTgsNiArMTQ1OCw5
IEBACiAJCTkzNUI1NzlBMjZGNTE5MzMwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdp
c3RyeS5oICovOyB9OwogCQk5MzVFRUI5QjEyNzc2MTdDMDAzMzIyQjggLyogV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3RJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJOTM1RUVCOUYxMjc3NjFBQzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5NjEy
Nzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzVGRTVCNjI4MTM1NjI2MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NT
dGF0ZU1vbml0b3IuaCAqLzsgfTsKKwkJOTM1RkU1QjcyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nl
c3NTdGF0ZU1vbml0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzVGRTVCNDI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5t
bSAqLzsgfTsKKwkJOTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0
b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmgg
Ki87IH07CiAJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVt
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwu
aCAqLzsgfTsKIAkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJ
bmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmggKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdv
cmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oICovOyB9OwpAQCAtNDk3NCwzNyArNDk3NywxNyBAQAogCQk1NzBEQUFDNTIzMDM3RjdFMDBF
OEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTU3MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEN0YXBOZmNEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTcwREFBQzkyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3RhcE5mY0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3MkVCQkI5MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUgPSAi
SW5mby1pT1MucGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0NvY29h
L1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0Ijsgc291cmNlVHJlZSA9
IFNPVVJDRV9ST09UOyB9OwotCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1PU1gu
cGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0OyBuYW1lID0gIkluZm8tT1NYLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRoblByb2Nl
c3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9TWC5w
bGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTcyRUJCQkIyNTM2QTYwQTAw
MDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzJFQkJCQzI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
QXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzJFQkJCRTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVzc2Fn
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzTWVz
c2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQzMyNTM2QUI4NDAw
MDU1MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDNTI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
NzJFQkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTU3MkVCQkQxMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25u
ZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dGhu
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJF
QkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQzMjUzNkM4ODUwMDA1NTJCMyAv
KiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRlc3RJ
bnRlcm5hbFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXBwQXR0ZXN0SW50ZXJu
YWxTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDkyNTM4
RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFwcEF0dGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJG
RDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9jYWxB
dXRoZW50aWNhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEF1dGhlbnRpY2F0aW9uU1BJ
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMkY3MjUzNTYxM0YwMEI3QkEx
NCAvKiAueHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSAid3JhcHBlci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IC54cGM7
IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTU3NDJBMzA2MjUzNThBMDQw
MEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzA3MjUzNThBMDQwMEI3QkEx
NCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEEyNTM1OEVGRDAwQjdC
QTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBDMjUzNThFRkQwMEI3QkExNCAvKiBXZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJv
Y2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblByb2Nlc3Mu
bWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzE0MjUzNjQ4
RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3MuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUEyNTM2NzVFOTAwQjdCQTE0IC8qIFdlYkF1
dGhuUHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0lP
Uy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUMyNTM2NzVGNjAwQjdC
QTE0IC8qIFdlYkF1dGhuUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1
dGhuUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUQy
NTM2NzVGNjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxRTI1MzY5NDkzMDBCN0JBMTQgLyogV2ViQXV0aG5T
ZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuU2Vydmlj
ZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcyOENGMjM0
NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTc0NzI4RDAyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMzIzNDU3MEFFMDAxNzAwQUYg
LyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTY4MCw2ICs1NjYzLDkgQEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8q
IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNr
Rm9yd2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVC
OTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUz
IC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gUHJvY2Vzc1N0YXRlTW9uaXRvci5oOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjQyODEzNTYyNTAwRDM1OUUz
IC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLm1tOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0
ZU1vbml0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNUZFNUI1MjgxMzU2
MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgcGF0aCA9IGlv
cy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRl
bUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTEwNzRFMUJGNkJD
NjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdl
YkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtOTE2Myw2ICs5MTQ5LDkgQEAKIAkJCQkwRkNCNEUzNjE4QkJFMDQ0MDAwRkNGQzkgLyog
UGFnZUNsaWVudEltcGxJT1MuaCAqLywKIAkJCQkwRkNCNEUzNzE4QkJFMDQ0MDAwRkNGQzkgLyog
UGFnZUNsaWVudEltcGxJT1MubW0gKi8sCiAJCQkJODZGOTUzNjIxOEZGNTUwQjAwMURCMkVGIC8q
IFByb2Nlc3NBc3NlcnRpb25JT1MubW0gKi8sCisJCQkJOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUz
IC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLywKKwkJCQk5MzVGRTVCNDI4MTM1NjI1MDBEMzU5
RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLywKKwkJCQk5MzVGRTVCNTI4MTM1NjI2MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oICovLAogCQkJCTJEQUYwNkQ0MThC
RDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmggKi8sCiAJCQkJ
MkRBRjA2RDgxOEJEMjNCQTAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIu
bWVzc2FnZXMuaW4gKi8sCiAJCQkJMkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFn
bmlmaWNhdGlvbkNvbnRyb2xsZXIubW0gKi8sCkBAIC0xNDM2Miw2ICsxNDM1MSw4IEBACiAJCQkJ
NUNCOTMxMDkyNkU4NDM5QTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50WFBDVXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyog
UHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAw
RkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1RkU1QjYy
ODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCBpbiBIZWFkZXJzICovLAor
CQkJCTkzNUZFNUI4MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vz
c1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkU2N0EyNTE5MTBCOUQx
MDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDhB
RTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTU0NjUsMjggKzE1NDU2LDYgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1MTdC
NUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CiAJCQlwcm9kdWN0VHlwZSA9
ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9OwotCQk1NzQyQTJFNTI1MzU2MTNG
MDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7Ci0J
CQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEzRjAwQjdCQTE0IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJBdXRobiIgKi87
Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyogU291
cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAqLywK
LQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVzb3VyY2VzICovLAotCQkJCTU3NDJB
MkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sga2V5Y2hhaW4gKi8sCi0JCQkJNTc0MkEyRjIy
NTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVudGljYXRpb24gZW50aXRsZW1lbnRz
ICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5RkU0MCAvKiBDb3B5IFhQQyBTZXJ2aWNlIHRv
IFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMgPSAoCi0JCQkpOwotCQkJ
ZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJBdXRobjsKLQkJCXByb2R1Y3RO
YW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1NzQyQTJGNzI1MzU2MTNG
MDBCN0JBMTQgLyogLnhwYyAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9kdWN0
LXR5cGUueHBjLXNlcnZpY2UiOwotCQl9OwogCQk1QzE1NzlDQzI3MTY1QjJGMDBFRDUyODAgLyog
d2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENvbmZp
Z3VyYXRpb25MaXN0ID0gNUMxNTc5RDYyNzE2NUIyRjAwRUQ1MjgwIC8qIEJ1aWxkIGNvbmZpZ3Vy
YXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNoZCIgKi87CkBAIC0xNjc4Niw2
ICsxNjc1NSw3IEBACiAJCQkJMkQ5MTM0NEQyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpblZpZXcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFByZWZl
cmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5
QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM1RkU1Qjcy
ODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MTdCNUY4MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVj
dGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUVCMzZCMTY5MjdBN0I0NTAwMDUwRTAwRCAvKiBQ
dXNoU2VydmljZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRiNTY4ZTI2OTQ5YmE4MDJmODRjZTA1NTA2ZGRmNmVi
MjEzMzhlY2MuLjEyZjgyMjExZWVkOWM2Y2RjMzcyMGU4ZjAwNGI5ZGExNzU3NTMzOWUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAyMi0wNC0yMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAg
ICAgICBTdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBp
biBiYWNrZ3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRlZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW06CisgICAgICAg
IChURVNUKToKKwogMjAyMi0wNC0yMiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5j
b20+CiAKICAgICAgICAgW2lPU10gQWRkIGZpbmQgaW50ZXJhY3Rpb24gQVBJIHRvIFdLV2ViVmll
dwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRl
eGVkREJTdXNwZW5kSW1taW5lbnRseS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KaW5kZXggODM4ODUxYmZhODg4
YWM0MGFjNzFjZWNhZTUwYTQ4M2FiMWI4NWY3YS4uZjdlZWRiNGRmNzFiZGYxNGFmMjNhZTRlM2Q1
NTFlYjE0NzA1Y2Q0MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tCkBA
IC0xNjMsOCArMTYzLDE3IEBAIFRFU1QoSW5kZXhlZERCLCBTdXNwZW5kSW1taW5lbnRseUZvclRo
aXJkUGFydHlEYXRhYmFzZXMpCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1l
U3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJd
XTsKICAgICBydW5UZXN0QW5kQ2hlY2tSZXN1bHQoQCJkYXRhYmFzZSBpcyBjcmVhdGVkIik7CiAK
LSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1By
b2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHldOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlU
b0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFT
dG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0
aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJl
YWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21w
bGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAg
IHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAInRyYW5zYWN0aW9uIGlzIGNvbXBsZXRlZCIpOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0
b3JhZ2VQZXJzaXN0ZW5jZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KaW5kZXggMDI1MjQzMDJmYmRmY2E4M2RhZTJh
YTRlZWFmZDM4OWFhYWMzYjYxOS4uYzIxMDJmM2UwZTEwOTI2M2Y1NDYyYTA2Y2E3MzY2MWY4MDE4
MWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9M
b2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCkBAIC0xNzAsNyArMTcwLDEx
IEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMpCiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVD
VF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKIAotICAgIFtj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dp
bGxTdXNwZW5kSW1taW5lbnRseV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAg
W2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlv
bnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICBy
ZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwog
ICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdlLnNl
dEl0ZW0oJ2tleScsICduZXdWYWx1ZScpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vycm9y
ICopIHsKQEAgLTE4NSw3ICsxODksMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVBy
b2Nlc3NTdXNwZW5kcykKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
YWR5VG9Db250aW51ZSk7CiAgICAgCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGlu
dWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9z
ZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Tk8gY29tcGxldGlvbkhhbmRs
ZXI6XnsKKyAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWNlaXZlZFNj
cmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7Cg==
</data>
<flag name="commit-queue"
          id="486984"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458177</attachid>
            <date>2022-04-22 15:29:05 -0700</date>
            <delta_ts>2022-04-22 15:49:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220422152904.patch</filename>
            <type>text/plain</type>
            <size>49954</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiOWRhNjE5NGVjNGJhMzZm
OGRhNTc4YjgxN2UyM2I1MGU5Yzc1MmQuLmMxOWZiMTNkOTM2YzdlMTU1YTI3OTMyMmRlMDExOTQ5
M2E1MjM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBp
bnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlmaWNh
dGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAgICBh
biB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHByb2Nl
c3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vzc1N0
YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ug
b3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0
aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0aGUg
cnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLiBQcm9jZXNzU3RhdGVNb25pdG9yCisgICAg
ICAgIG1heSBzZW5kIHRoZSBzdXNwZW5kIG1lc3NhZ2UgZWFybGllciBpZiBQcm9jZXNzVGhyb3R0
bGVyIHNheXMgdGhlcmUgaXMgbm8gYWN0aXZpdHkgbGVmdC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpyZW1v
dmVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1v
bml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3Rh
dGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzU3RhdGVNb25pdG9yOjplbnN1cmVBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpzdGF0
ZVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3BlbmRQ
cm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6
OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRl
TW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRvckNs
aWVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjItMDQtMjIgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIEFkZCBmaW5kIGludGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMmM4YjI0NTlj
YmIwNDA3MGQ2NWNmMzJhYzdhYTI1NDc1MTA3ZjgwOC4uMzNiZWYxNTYxMGU5M2FkNDczNDRhMTVm
MzAwNmNjNTZlMDI5MGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1Nyw3ICs0NTcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjphZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycwogICAgICAgICByZXR1cm4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywgcGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsK
IAotICAgIGlmIChtX2lzU3VzcGVuZGVkKQorICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNw
ZW5kZWQpCiAgICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0p
OwogfQogCkBAIC0yMTUyLDcgKzIxNTIsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogewog
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6
cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICV7
cHVibGljfXNpbiBiYWNrZ3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50
ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID8gIiIgOiAibm90ICIpOwogCi0gICAgbV9pc1N1c3BlbmRl
ZCA9IHRydWU7CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKIAogICAgIFJl
ZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtMjE2MCwxMSArMjE1OSw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwg
Q29tcGxldGlvbkhhbmRsCiAgICAgICAgIFVOVVNFRF9WQVJJQUJMRSh0aGlzKTsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKLSNlbmRpZgotICAgIFBDTTo6
U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CiAKICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAg
ICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFj
a0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC0yMTcyLDcgKzIxNjYsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbAogICAgICAgICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkp
CiAgICAgICAgICAgICBzd1NlcnZlci0+c3RhcnRTdXNwZW5zaW9uKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsgfSk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnN1c3Bl
bmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICB9KTsKIAogICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQpAQCAtMjIwMiwy
MiArMjE5NSwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5KQogICAgIGVsc2UKICAgICAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkIFByb2Nlc3MgaGFzIGJlZW4gaW4gYmFja2dyb3VuZCBm
b3IgJWYgc2Vjb25kcyIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSwgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSk7
CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7Ci0KICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rp
b24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlv
bi0+ZW5kU3VzcGVuc2lvbigpOwogCi0jaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCi0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsK
LSNlbmRpZgotICAgIFBDTTo6U3RvcmU6OnByb2Nlc3NEaWRSZXN1bWUoKTsKLQogICAgIGZvckVh
Y2hOZXR3b3JrU2Vzc2lvbihbXShhdXRvJiBzZXNzaW9uKSB7CiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogICAgICAgICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkp
CiAgICAgICAgICAgICBzd1NlcnZlci0+ZW5kU3VzcGVuc2lvbigpOwogI2VuZGlmCi0gICAgICAg
IHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5yZXN1bWUoKTsKICAgICB9KTsKIH0KIApAQCAtMjc2
OCw0ICsyNzUzLDMxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvdW50Tm9uRGVmYXVsdFNlc3Np
b25TZXRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoc2Vzc2lvbiA/IHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgOiAw
KTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVn
YXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAobV9zdG9y
YWdlT3BlcmF0aW9uU3VzcGVuZGVkID09IHN1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUkVMRUFTRV9MT0coU3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFByb2Nlc3NT
dXNwZW5kZWQgc3VzcGVuZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKyAgICBtX3N0b3JhZ2VP
cGVyYXRpb25TdXNwZW5kZWQgPSBzdXNwZW5kZWQ7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlv
blN1c3BlbmRlZCkgeworI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQorICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKKyNlbmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcmVwYXJl
Rm9yUHJvY2Vzc1RvU3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgICAgICBm
b3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSgpIHsg
fSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6cmVzdW1lKCk7CisjZW5kaWYKKyAgICAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3Vt
ZSgpOworICAgICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7
CisgICAgICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAg
IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggOGU5MmZjMmMxMzU3MTRhMTZk
ZmJjNjM1Yzc1MzkzMWE2NGJhYTllZi4uMDVlMjhhZjRhZDk4NWFiMzQzZmRmOTAxNTYwNDdhMTQw
OGRjODQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTc4LDYgKzE3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2Nlc3NXaWxsU3Vz
cGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShi
b29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2Rl
bDsgfQogCkBAIC01MzAsNyArNTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2Z0cEVuYWJsZWQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
TW9ub3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA1MzFiY2JjMzU1Y2ZkZjUxZDBiNDkwNDhjMjE0OWQ3MDM4ZGNmMTViLi4xODgy
ZTgyZDY5MzIzYzZmYWY4ZjEwZTY2NWRmODdhMGNjODQwOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+ICgp
IFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWlu
ZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCisgICAgU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpIC0+
ICgpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9h
cmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIxNWYwNDMyY2Yy
YmE5ODg0ZC4uZWVmNjcwOGI2YjdiNjk3OTUxMDU3YTlmZWIyOTkwNTI0N2M4YzM4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2Vz
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNl
cnZpY2VzU1BJLmgKQEAgLTEzMSwxNCArMTMxLDI0IEBAIHR5cGVkZWYgdm9pZCAoXlJCU1Byb2Nl
c3NVcGRhdGVIYW5kbGVyKShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hh
CiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc01vbml0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgog
KyAoaW5zdGFuY2V0eXBlKW1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjooTlNfTk9FU0NBUEUgUkJT
UHJvY2Vzc01vbml0b3JDb25maWd1cmF0b3IpYmxvY2s7CistICh2b2lkKWludmFsaWRhdGU7CiBA
ZW5kCiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc1ByZWRpY2F0ZSA6IE5TT2JqZWN0IDxSQlNQcm9j
ZXNzTWF0Y2hpbmc+CiArIChSQlNQcm9jZXNzUHJlZGljYXRlICopcHJlZGljYXRlTWF0Y2hpbmdI
YW5kbGU6KFJCU1Byb2Nlc3NIYW5kbGUgKilwcm9jZXNzOwogQGVuZAordHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcykgeworICAgIFJCU1Byb2Nlc3NT
dGF0ZVZhbHVlTm9uZSAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIFJCU1Byb2Nlc3NTdGF0
ZVZhbHVlVGFza1N0YXRlICAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKKyAgICBSQlNQcm9jZXNz
U3RhdGVWYWx1ZVRhZ3MgICAgICAgICAgICAgICAgICAgID0gKDEgPDwgMSksCisgICAgUkJTUHJv
Y2Vzc1N0YXRlVmFsdWVUZXJtaW5hdGlvblJlc2lzdGFuY2UgICA9ICgxIDw8IDIpLAorICAgIFJC
U1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCAzKSwKKyAg
ICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgNCks
Cit9OwogCiBAaW50ZXJmYWNlIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBOU09iamVjdCA8
TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZHdyaXRlLCBhc3NpZ24pIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2YWx1ZXM7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkgTlNBcnJheTxO
U1N0cmluZyAqPiAqZW5kb3dtZW50TmFtZXNwYWNlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CmluZGV4IDY4ZGM3NzE5MjExNDlkNjU3ZjU0NmNhMjczZjRlMzk1Mzc4NDBmYTYuLjQxOTQ0
NGQzYWE3ZDJmZWU5YWYyNmFmYTNlYWMxZWEzZjQyODZhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKQEAgLTQ4OSw2ICs0ODksNyBAQCBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlci5tbQogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdVcGRhdGVEZWZlcnJl
ci5tbQogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCitVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3Iu
bW0KIFVJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbQogVUlQcm9j
ZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUwOTM4MDM2MTQ3OTg4NTYxMmY0OGFmYWRi
M2M3NGJhZTM1NTExNjEuLmNhMjA0MTY1YjJiMGM5Y2U2MzZjYmIzNmY1OTA0MDZiNmFlYmRjNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU1LDYgKzc1NSwxMyBAQCBzdGF0aWMgVmVjdG9yPFdlYktp
dDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFS
ZWNvcgogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUo
KTsKIH0KIAorLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5n
OihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0
aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJP
T0wpYmFja2dyb3VuZAogewogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2Vzcygp
LnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaAppbmRleCA0NzAxNzkyYWVhOGUwOGUxOTNjMGJkNjVmODkwMmQ2YzY2OWU2NmJjLi5k
MDgzNmY0ODQ1Nzg2NDg4M2RkNTRmZGZkM2I0ZjE3NjI2OGZkY2MzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmVQcml2YXRlLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfc2VuZE5l
dHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX3NldE5l
dHdvcmtQcm9jZXNzU3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nOihCT09MKWFsbG93ZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNwZW5k
ZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNz
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAo
dm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzOWY2
YmUyY2I5MGRlOTIyNmRmNGJmZGNkYjkwMDg5Mjk1M2ViNDA4Li41NWQ4ZjZlYjkyNTA5OGFlNzE1
Zjc0ZGQyNmFkYjdlYjY3Nzc4YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJQcm9jZXNzU3Rh
dGVNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjZW5kaWYK
IApAQCAtMTM5Miw2ICsxMzkzLDI3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFBy
b2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAgICAgc2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJlc3VtZVJlYXNv
bjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1v
bml0b3ItPnN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSgpOworI2VuZGlmCit9CisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoc3VzcGVuZGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCitwaWRfdCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMo
c2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTgyOCwxMSArMTg1
MCwyMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om5hdmlnYXRlU2VydmljZVdvcmtlckNs
aWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIGlmICghbV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nl
c3NTdGF0ZU1vbml0b3IgPSBtYWtlVW5pcXVlPFByb2Nlc3NTdGF0ZU1vbml0b3I+KCp0aGlzKTsK
KyNlbmRpZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKCksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NT
dGF0ZU1vbml0b3IgPSBudWxscHRyOworI2VuZGlmCisKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCmluZGV4IGNjZjdhMjYwMWI3YTY1MTg1YTUwNGJmN2Y5ZTBhMTc5Yjg0NjNhM2UuLjAz
YjI0MjRmYmEyMDE1MjlmZGQ1MTEwMTBkOTg4ODNhNDZjOGIzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01
NSw2ICs1NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIK
KyNpbmNsdWRlICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTEwNSw3ICsxMTAsMTEg
QEAgc3RydWN0IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZp
bmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0
bGVyQ2xpZW50IHsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICwgcHVibGljIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CkBA
IC0yNDIsNiArMjUxLDEzIEBAIHB1YmxpYzoKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
CiAgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsOwogICAg
IEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQ
cm9jZXNzIl9zOyB9CisgICAgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgZmluYWw7CisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQKKyAgICB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9v
bCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgUHJv
Y2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisjZW5kaWYK
ICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9v
bCk7CiAgICAgdm9pZCBzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KTsKQEAgLTQyOCw2ICs0NDQsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8
aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzU3Rh
dGVNb25pdG9yPiBtX3Byb2Nlc3NTdGF0ZU1vbml0b3I7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggNDcxMmYyZWNmYmEy
YzVhOTllMmQ2YmFkNGYxZTA1YzU3ZGRlODZhNS4uZTUzMDMzMWUzM2UwM2E5NmFkN2NiZDM2M2Nh
ZmZmMTI2NDAzOGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlci5jcHAKQEAgLTY4LDEyICs2OCwxOCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnJlbW92
ZUFjdGl2aXR5KEZvcmVncm91bmRBY3Rpdml0eSYgYWN0aXZpdHkpCiB7CiAgICAgbV9mb3JlZ3Jv
dW5kQWN0aXZpdGllcy5yZW1vdmUoJmFjdGl2aXR5KTsKICAgICB1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCgpOworCisgICAgaWYgKCFzaG91bGRCZVJ1bm5hYmxlKCkpCisgICAgICAgIG1fcHJvY2Vz
cy5kaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6
cmVtb3ZlQWN0aXZpdHkoQmFja2dyb3VuZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2Jh
Y2tncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlv
bklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3VsZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9w
cm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0
bGVyOjppbnZhbGlkYXRlQWxsQWN0aXZpdGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggZmM3N2JhOTUzMzlhNDZmODg3OTY2
ZjhmY2IzMGE1OWRmZGVhYjQ2Ni4uYjQ4ZDFkOGRkZWJjYjA2NzBkOGEyNGUxODYxMTRiZGVkYWJl
Y2ExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJD
bGllbnQuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbmRQ
cm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSB7IH07CiAgICAgdmlydHVhbCBB
U0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSgpIHsgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCBjYjYyM2U1ZTM3NDVmZGQ5MWQzMTg0NGZiZDkzMjA5ODg2ZDAw
ZTZlLi4yNWU5MWMwNmFhOGI4Yzg3ODY1MGNjZmU3Mzc0NzJmYTY5ZjBjNzE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtMTYwOCw2ICsxNjA4LDExIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2Vu
ZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRQcm9j
ZXNzRGlkUmVzdW1lKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6Rm9yZWdy
b3VuZEFjdGl2aXR5KTsKIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBuZXR3b3JrUHJvY2Vzcygp
LnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2Uoc3VzcGVuZGVkLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAogewogI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGQ5ZDYyMjMwZjkwNWI0
OWFkY2VhY2ViZjU5ZWJhMWFhZGFiYjdkOGQuLjQyMTQxMTU3NmU0MGMxMTEzZjcyYTA3NWI5NzUx
YWNlNDhjZjIyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9TdXNwZW5kRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9j
ZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZv
clRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7
CiAgICAgc3RhdGljIHZvaWQgbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0
aW5nKCk7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5j
aEZhaWxGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1By
b2Nlc3NTdGF0ZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDg0ZWVlZjhlOTk2MTZjZTllYzc5MDNi
YmEwZGE1YjJlZGE4ODMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxX
ZWJDb3JlL1RpbWVyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1Mg
UkJTUHJvY2Vzc01vbml0b3I7CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFByb2Nlc3NBc3NlcnRpb247CitjbGFz
cyBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50OworCitjbGFzcyBQcm9jZXNzU3RhdGVNb25pdG9y
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBQcm9jZXNzU3RhdGVNb25pdG9yKFBy
b2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQmKTsKKyAgICB+UHJvY2Vzc1N0YXRlTW9uaXRvcigpOwor
ICAgIHZvaWQgc3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCk7CisKK3ByaXZhdGU6CisgICAgYm9v
bCBpc0Fzc2VydGlvblZhbGlkKCk7CisgICAgdm9pZCBlbnN1cmVBc3NlcnRpb24oKTsKKyAgICB2
b2lkIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisgICAgdm9pZCBwcm9jZXNzV2lsbEJlU3Vz
cGVuZGVkKFNlY29uZHMpOworICAgIHZvaWQgc2VuZFN1c3BlbmRNZXNzYWdlKCk7CisgICAgdm9p
ZCBjaGVja1JlbWFpbmluZ1J1blRpbWUoKTsKKworICAgIGVudW0gY2xhc3MgU3RhdGUgOiB1aW50
OF90IHsgVW5rbm93biwgUnVubmluZywgV2lsbFN1c3BlbmQsIFN1c3BlbmRlZCB9OworICAgIFN0
YXRlIG1fc3RhdGUgeyBTdGF0ZTo6VW5rbm93biB9OworICAgIFByb2Nlc3NTdGF0ZU1vbml0b3JD
bGllbnQmIG1fY2xpZW50OworICAgIFdlYkNvcmU6OlRpbWVyIG1fc3VzcGVuZFRpbWVyOworICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICB1aW50NjRfdCBtX3Nl
c3Npb25JRDsKKyAgICBSZXRhaW5QdHI8UkJTUHJvY2Vzc01vbml0b3I+IG1fcmJzTW9uaXRvcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3Rh
dGVNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1v
bml0b3IubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU1YjIzZTNiODVhNzllMTAyOWFmNDA0ZGM2N2RhMGM1ODY2
YzNjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLm1tCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJQcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50LmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHByZXBhcmVGb3JTdXNwZW5z
aW9uRHVyYXRpb24gPSAgNV9zOworCitQcm9jZXNzU3RhdGVNb25pdG9yOjpQcm9jZXNzU3RhdGVN
b25pdG9yKFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQmIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICAsIG1fc3VzcGVuZFRpbWVyKCp0aGlzLCAmUHJvY2Vzc1N0YXRlTW9uaXRv
cjo6c2VuZFN1c3BlbmRNZXNzYWdlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIG1fcmJzTW9uaXRvciA9IFtSQlNQcm9jZXNzTW9uaXRvciBtb25pdG9y
V2l0aENvbmZpZ3VyYXRpb246W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGlkPFJCU1By
b2Nlc3NNb25pdG9yQ29uZmlndXJpbmc+IGNvbmZpZykgbXV0YWJsZSB7CisgICAgICAgIFJCU1By
b2Nlc3NTdGF0ZURlc2NyaXB0b3IgKmRlc2NyaXB0b3IgPSBbUkJTUHJvY2Vzc1N0YXRlRGVzY3Jp
cHRvciBkZXNjcmlwdG9yXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0VmFsdWVzOlJCU1Byb2Nl
c3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyB8IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9kZXJu
QXNzZXJ0aW9uc107CisgICAgICAgIFtjb25maWcgc2V0U3RhdGVEZXNjcmlwdG9yOmRlc2NyaXB0
b3JdOworICAgICAgICBbY29uZmlnIHNldFByZWRpY2F0ZXM6QFtbUkJTUHJvY2Vzc1ByZWRpY2F0
ZSBwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTpbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50UHJvY2Vz
c11dXV07CisgICAgICAgIFtjb25maWcgc2V0VXBkYXRlSGFuZGxlcjpbd2Vha1RoaXMgPSBXVEZN
b3ZlKHdlYWtUaGlzKV0oUkJTUHJvY2Vzc01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYW5k
bGUgKnByb2Nlc3MsIFJCU1Byb2Nlc3NTdGF0ZVVwZGF0ZSAqdXBkYXRlKSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXNdIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jaGVja1JlbWFpbmluZ1J1blRp
bWUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9XTsKKyAgICB9XTsKKyAgICBjaGVja1Jl
bWFpbmluZ1J1blRpbWUoKTsKK30KKworUHJvY2Vzc1N0YXRlTW9uaXRvcjo6flByb2Nlc3NTdGF0
ZU1vbml0b3IoKQoreworICAgIFttX3Jic01vbml0b3IuZ2V0KCkgaW52YWxpZGF0ZV07CisgICAg
cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKK30KKworYm9vbCBQcm9jZXNzU3RhdGVNb25pdG9y
Ojppc0Fzc2VydGlvblZhbGlkKCkKK3sKKyAgICByZXR1cm4gbV9hc3NlcnRpb24gJiYgbV9hc3Nl
cnRpb24tPmlzVmFsaWQoKTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjplbnN1cmVB
c3NlcnRpb24oKQoreworICAgIGlmIChtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Fzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZShtX2NsaWVudC5tb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpLCAiUHJvY2Vz
c1N0YXRlTW9uaXRvciBpcyBydW5uaW5nIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dy
b3VuZCwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0
YXRlTW9uaXRvcjo6c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCkKK3sKKyAgICBpZiAobV9zdGF0
ZSAhPSBTdGF0ZTo6V2lsbFN1c3BlbmQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChp
c0Fzc2VydGlvblZhbGlkKCkpOworICAgIGlmICghbV9zdXNwZW5kVGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kVGltZXIuc3RvcCgpOworICAgIHNlbmRT
dXNwZW5kTWVzc2FnZSgpOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NE
aWRCZWNvbWVSdW5uaW5nKCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6UnVubmluZykK
KyAgICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlQXNzZXJ0aW9uKCk7CisgICAgbV9zdXNwZW5k
VGltZXIuc3RvcCgpOworICAgICsrbV9zZXNzaW9uSUQ7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpS
dW5uaW5nOworICAgIG1fY2xpZW50LnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1l
c3NhZ2UoZmFsc2UsIFtdIHsgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJv
Y2Vzc1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzIHJlbWFpbmluZ1J1blRpbWUpCit7CisgICAgaWYg
KG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VS
VChpc0Fzc2VydGlvblZhbGlkKCkpOworICAgIEFTU0VSVCghbV9zdXNwZW5kVGltZXIuaXNBY3Rp
dmUoKSk7CisgICAgU2Vjb25kcyB0aW1lb3V0ID0gcmVtYWluaW5nUnVuVGltZSA+IHByZXBhcmVG
b3JTdXNwZW5zaW9uRHVyYXRpb24gPyByZW1haW5pbmdSdW5UaW1lIC0gcHJlcGFyZUZvclN1c3Bl
bnNpb25EdXJhdGlvbiA6IDBfczsKKyAgICBtX3N1c3BlbmRUaW1lci5zdGFydE9uZVNob3QodGlt
ZW91dCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpXaWxsU3VzcGVuZDsKK30KKwordm9pZCBQcm9j
ZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UoKQoreworICAgIG1fY2xpZW50LnNl
bmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UodHJ1ZSwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNlc3Npb25JRCA9IG1fc2Vzc2lvbklEXSgpIG11dGFi
bGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1fc2Vzc2lvbklEICE9IHNlc3Npb25JRCkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2Fzc2VydGlvbiA9IG51bGxwdHI7Cisg
ICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3VzcGVuZGVkOworICAgIH0pOworfQorCit2b2lkIFBy
b2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSgpCit7CisgICAgZG91Ymxl
IHJ1blRpbWUgPSBbW1tSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXSBhY3RpdmVMaW1p
dGF0aW9uc10gcnVuVGltZV07CisgICAgaWYgKHJ1blRpbWUgPT0gUkJTUHJvY2Vzc1RpbWVMaW1p
dGF0aW9uTm9uZSkKKyAgICAgICAgcmV0dXJuIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisK
KyAgICBwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKFNlY29uZHMocnVuVGltZSkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Y2Y0OWM2MDg4MjJjZDdhZGVjZWU3ZTBiYjJiZTdhMGZm
Y2VjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJv
Y2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzU3RhdGVN
b25pdG9yQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Qcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1
c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgPSAwOworICAgIHZpcnR1YWwgUHJvY2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVy
KCkgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2ODczMjRmMmE0YzJiMDAwOTI2OWMwYTEwZWU0NjMxMWZjZmUwMTI0
Li44NmFmMzA4YTljOGUwNmRhNzU0ZWNkNjExYmFiMDk2MzUwODVmZGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NTgsNiArMTQ1
OCw5IEBACiAJCTkzNUI1NzlBMjZGNTE5MzMwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeS5oICovOyB9OwogCQk5MzVFRUI5QjEyNzc2MTdDMDAzMzIyQjggLyogV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTM1RUVCOUYxMjc3NjFBQzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5
NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzVGRTVCNjI4MTM1NjI2
MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nl
c3NTdGF0ZU1vbml0b3IuaCAqLzsgfTsKKwkJOTM1RkU1QjcyODEzNTYyNjAwRDM1OUUzIC8qIFBy
b2Nlc3NTdGF0ZU1vbml0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzVGRTVCNDI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRv
ci5tbSAqLzsgfTsKKwkJOTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1v
bml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
LmggKi87IH07CiAJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25J
dGVtSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1l
bnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0lu
dGVybmFsLmggKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oICovOyB9OwpAQCAtNDk3NCwzNyArNDk3NywxNyBAQAogCQk1NzBEQUFDNTIzMDM3RjdF
MDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU3MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZjRHJpdmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEN0YXBOZmNEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTcwREFBQzkyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTU3MkVCQkI5MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlzdCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3Q7IG5hbWUg
PSAiSW5mby1pT1MucGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9FbnRyeVBvaW50L0Nv
Y29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0Ijsgc291cmNlVHJl
ZSA9IFNPVVJDRV9ST09UOyB9OwotCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUyQjMgLyogSW5mby1P
U1gucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnBsaXN0OyBuYW1lID0gIkluZm8tT1NYLnBsaXN0IjsgcGF0aCA9ICJXZWJBdXRoblBy
b2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2VydmljZS9JbmZvLU9T
WC5wbGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTcyRUJCQkIyNTM2QTYw
QTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJFQkJCQzI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vz
c01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJFQkJCRTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzTWVz
c2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNz
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQzMyNTM2QUI4
NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDNTI1MzZBRkQ1MDAwNTUyQjMgLyogV2Vi
QXV0aG5Qcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1NzJFQkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQ0IyNTM2QjA0RjAwMDU1MkIzIC8qIFdl
YkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3MkVCQkQxMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3ND
b25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
NzJFQkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQzMjUzNkM4ODUwMDA1NTJC
MyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJCMyAvKiBBcHBBdHRl
c3RJbnRlcm5hbFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXBwQXR0ZXN0SW50
ZXJuYWxTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCRDky
NTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFwcEF0dGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dpbmRvd09ic2VydmVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQyMTc5MTI0MDBFMDk4MDAyQjMwM0QgLyogTG9j
YWxBdXRoZW50aWNhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEF1dGhlbnRpY2F0aW9u
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMkY3MjUzNTYxM0YwMEI3
QkExNCAvKiAueHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5
cGUgPSAid3JhcHBlci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IC54
cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTU3NDJBMzA2MjUzNThB
MDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzA3MjUzNThBMDQwMEI3
QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEEyNTM1OEVGRDAw
QjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEIyNTM1OEVGRDAwQjdCQTE0IC8qIFdl
YkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBDMjUzNThFRkQwMEI3QkExNCAvKiBXZWJB
dXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhu
UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRoblByb2Nl
c3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzE0MjUz
NjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nlc3MuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUEyNTM2NzVFOTAwQjdCQTE0IC8qIFdl
YkF1dGhuUHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vz
c0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUMyNTM2NzVGNjAw
QjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkF1dGhuUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEz
MUQyNTM2NzVGNjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNi
LmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNiLmluOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxRTI1MzY5NDkzMDBCN0JBMTQgLyogV2ViQXV0
aG5TZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dGhuU2Vy
dmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDcyOENG
MjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTc0NzI4RDAyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMzIzNDU3MEFFMDAxNzAw
QUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNTY4MCw2ICs1NjYzLDkgQEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4
IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzNUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlz
dEl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1
RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjMyODEzNTYyNTAwRDM1
OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvci5oOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjQyODEzNTYyNTAwRDM1
OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLm1tOyBwYXRoID0gaW9zL1Byb2Nlc3NT
dGF0ZU1vbml0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNUZFNUI1Mjgx
MzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgcGF0aCA9
IGlvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9u
SXRlbUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTEwNzRFMUJG
NkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8q
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtOTE2Myw2ICs5MTQ5LDkgQEAKIAkJCQkwRkNCNEUzNjE4QkJFMDQ0MDAwRkNGQzkg
LyogUGFnZUNsaWVudEltcGxJT1MuaCAqLywKIAkJCQkwRkNCNEUzNzE4QkJFMDQ0MDAwRkNGQzkg
LyogUGFnZUNsaWVudEltcGxJT1MubW0gKi8sCiAJCQkJODZGOTUzNjIxOEZGNTUwQjAwMURCMkVG
IC8qIFByb2Nlc3NBc3NlcnRpb25JT1MubW0gKi8sCisJCQkJOTM1RkU1QjMyODEzNTYyNTAwRDM1
OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLywKKwkJCQk5MzVGRTVCNDI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLywKKwkJCQk5MzVGRTVCNTI4MTM1NjI2
MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oICovLAogCQkJCTJEQUYwNkQ0
MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmggKi8sCiAJ
CQkJMkRBRjA2RDgxOEJEMjNCQTAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xs
ZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0
TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0gKi8sCkBAIC0xNDM2Miw2ICsxNDM1MSw4IEBACiAJ
CQkJNUNCOTMxMDkyNkU4NDM5QTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50WFBD
VXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYg
LyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5
QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1RkU1
QjYyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCTkzNUZFNUI4MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJv
Y2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkU2N0EyNTE5MTBC
OUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMw
NDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMTU0NjUsMjggKzE1NDU2LDYgQEAKIAkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1
MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CiAJCQlwcm9kdWN0VHlw
ZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9OwotCQk1NzQyQTJFNTI1MzU2
MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0JCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7
Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEzRjAwQjdCQTE0IC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJXZWJBdXRobiIg
Ki87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQyQTJFQTI1MzU2MTNGMDBCN0JBMTQgLyog
U291cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyogRnJhbWV3b3JrcyAq
LywKLQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVzb3VyY2VzICovLAotCQkJCTU3
NDJBMkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sga2V5Y2hhaW4gKi8sCi0JCQkJNTc0MkEy
RjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVudGljYXRpb24gZW50aXRsZW1l
bnRzICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5RkU0MCAvKiBDb3B5IFhQQyBTZXJ2aWNl
IHRvIFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMgPSAoCi0JCQkpOwot
CQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4MjUzNTYxM0YwMEI3QkExNCAvKiBQQlhU
YXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJBdXRobjsKLQkJCXByb2R1
Y3ROYW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1NzQyQTJGNzI1MzU2
MTNGMDBCN0JBMTQgLyogLnhwYyAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNvbS5hcHBsZS5wcm9k
dWN0LXR5cGUueHBjLXNlcnZpY2UiOwotCQl9OwogCQk1QzE1NzlDQzI3MTY1QjJGMDBFRDUyODAg
Lyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7CiAJCQlidWlsZENv
bmZpZ3VyYXRpb25MaXN0ID0gNUMxNTc5RDYyNzE2NUIyRjAwRUQ1MjgwIC8qIEJ1aWxkIGNvbmZp
Z3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNoZCIgKi87CkBAIC0xNjc4
Niw2ICsxNjc1NSw3IEBACiAJCQkJMkQ5MTM0NEQyMTJDRjlGMDAwMTI4QUZEIC8qIFBsdWdpblZp
ZXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzE1Q0JCMzcyM0YzN0VDQjAwMzAwQ0M3IC8qIFBy
ZWZlcmVuY2VPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYw
MDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTM1RkU1
QjcyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1MTdCNUY4MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29u
bmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCUVCMzZCMTY5MjdBN0I0NTAwMDUwRTAwRCAv
KiBQdXNoU2VydmljZS5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRiNTY4ZTI2OTQ5YmE4MDJmODRjZTA1NTA2ZGRm
NmViMjEzMzhlY2MuLjEyZjgyMjExZWVkOWM2Y2RjMzcyMGU4ZjAwNGI5ZGExNzU3NTMzOWUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMi0wNC0yMiAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBp
cyBpbiBiYWNrZ3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW06CisgICAg
ICAgIChURVNUKToKKwogMjAyMi0wNC0yMiAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIGZpbmQgaW50ZXJhY3Rpb24gQVBJIHRvIFdLV2Vi
VmlldwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9J
bmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KaW5kZXggODM4ODUxYmZh
ODg4YWM0MGFjNzFjZWNhZTUwYTQ4M2FiMWI4NWY3YS4uZjdlZWRiNGRmNzFiZGYxNGFmMjNhZTRl
M2Q1NTFlYjE0NzA1Y2Q0MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1t
CkBAIC0xNjMsOCArMTYzLDE3IEBAIFRFU1QoSW5kZXhlZERCLCBTdXNwZW5kSW1taW5lbnRseUZv
clRoaXJkUGFydHlEYXRhYmFzZXMpCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZy
YW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9y
ZyJdXTsKICAgICBydW5UZXN0QW5kQ2hlY2tSZXN1bHQoQCJkYXRhYmFzZSBpcyBjcmVhdGVkIik7
CiAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29y
a1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHldOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVh
ZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21w
bGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAg
IHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBj
b21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAog
ICAgIHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAInRyYW5zYWN0aW9uIGlzIGNvbXBsZXRlZCIpOwog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2Nh
bFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KaW5kZXggMDI1MjQzMDJmYmRmY2E4M2Rh
ZTJhYTRlZWFmZDM4OWFhYWMzYjYxOS4uYzIxMDJmM2UwZTEwOTI2M2Y1NDYyYTA2Y2E3MzY2MWY4
MDE4MWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCkBAIC0xNzAsNyArMTcw
LDExIEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMpCiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVY
UEVDVF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKIAotICAg
IFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vz
c1dpbGxTdXNwZW5kSW1taW5lbnRseV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7Cisg
ICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJh
dGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAg
ICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNl
OwogICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdl
LnNldEl0ZW0oJ2tleScsICduZXdWYWx1ZScpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vy
cm9yICopIHsKQEAgLTE4NSw3ICsxODksMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFn
ZVByb2Nlc3NTdXNwZW5kcykKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlYWR5VG9Db250aW51ZSk7CiAgICAgCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0
ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29u
dGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3Jl
IF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Tk8gY29tcGxldGlvbkhh
bmRsZXI6XnsKKyAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7Cg==
</data>
<flag name="commit-queue"
          id="486988"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458181</attachid>
            <date>2022-04-22 15:46:35 -0700</date>
            <delta_ts>2022-04-25 14:08:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220422154634.patch</filename>
            <type>text/plain</type>
            <size>49299</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMjU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiOWRhNjE5NGVjNGJhMzZm
OGRhNTc4YjgxN2UyM2I1MGU5Yzc1MmQuLmMxOWZiMTNkOTM2YzdlMTU1YTI3OTMyMmRlMDExOTQ5
M2E1MjM3MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjIgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNzLiAK
KyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpbmdhbCwgYmVj
YXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2VzcyAK
KyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUgYXNz
ZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28gbGF0
ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRvIGJl
IGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhhdCBu
ZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBleGlz
dGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRjaCBp
bnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlmaWNh
dGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAgICBh
biB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHByb2Nl
c3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vzc1N0
YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ug
b3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0
aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0aGUg
cnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLiBQcm9jZXNzU3RhdGVNb25pdG9yCisgICAg
ICAgIG1heSBzZW5kIHRoZSBzdXNwZW5kIG1lc3NhZ2UgZWFybGllciBpZiBQcm9jZXNzVGhyb3R0
bGVyIHNheXMgdGhlcmUgaXMgbm8gYWN0aXZpdHkgbGVmdC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN0
b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpjb21wbGV0
aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpyZW1v
dmVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1v
bml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3Rh
dGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzU3RhdGVNb25pdG9yOjplbnN1cmVBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpzdGF0
ZVN0cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3BlbmRQ
cm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6
OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRl
TW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nl
c3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRvckNs
aWVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIw
MjItMDQtMjIgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIEFkZCBmaW5kIGludGVyYWN0aW9uIEFQSSB0byBXS1dlYlZpZXcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMmM4YjI0NTlj
YmIwNDA3MGQ2NWNmMzJhYzdhYTI1NDc1MTA3ZjgwOC4uMzNiZWYxNTYxMGU5M2FkNDczNDRhMTVm
MzAwNmNjNTZlMDI5MGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1Nyw3ICs0NTcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
OjphZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1l
dGVycwogICAgICAgICByZXR1cm4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywgcGFyYW1l
dGVycy5uZXR3b3JrU2Vzc2lvblBhcmFtZXRlcnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsK
IAotICAgIGlmIChtX2lzU3VzcGVuZGVkKQorICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNw
ZW5kZWQpCiAgICAgICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0p
OwogfQogCkBAIC0yMTUyLDcgKzIxNTIsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogewog
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6
cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICV7
cHVibGljfXNpbiBiYWNrZ3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50
ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID8gIiIgOiAibm90ICIpOwogCi0gICAgbV9pc1N1c3BlbmRl
ZCA9IHRydWU7CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKIAogICAgIFJl
ZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdn
cmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewpAQCAtMjE2MCwxMSArMjE1OSw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwg
Q29tcGxldGlvbkhhbmRsCiAgICAgICAgIFVOVVNFRF9WQVJJQUJMRSh0aGlzKTsKICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKICAgICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoSU5URUxMSUdF
TlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKLSNlbmRpZgotICAgIFBDTTo6
U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CiAKICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAg
ICAgICAgIHBsYXRmb3JtRmx1c2hDb29raWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFj
a0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC0yMTcyLDcgKzIxNjYsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbAogICAgICAgICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkp
CiAgICAgICAgICAgICBzd1NlcnZlci0+c3RhcnRTdXNwZW5zaW9uKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsgfSk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnN1c3Bl
bmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICAgICB9KTsKIAogICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQpAQCAtMjIwMiwy
MiArMjE5NSwxNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5KQogICAgIGVsc2UKICAgICAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkIFByb2Nlc3MgaGFzIGJlZW4gaW4gYmFja2dyb3VuZCBm
b3IgJWYgc2Vjb25kcyIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSwgKE1vbm90b25pY1Rp
bWU6Om5vdygpIC0gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSk7
CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gZmFsc2U7Ci0KICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rp
b24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlv
bi0+ZW5kU3VzcGVuc2lvbigpOwogCi0jaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCi0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsK
LSNlbmRpZgotICAgIFBDTTo6U3RvcmU6OnByb2Nlc3NEaWRSZXN1bWUoKTsKLQogICAgIGZvckVh
Y2hOZXR3b3JrU2Vzc2lvbihbXShhdXRvJiBzZXNzaW9uKSB7CiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogICAgICAgICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkp
CiAgICAgICAgICAgICBzd1NlcnZlci0+ZW5kU3VzcGVuc2lvbigpOwogI2VuZGlmCi0gICAgICAg
IHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5yZXN1bWUoKTsKICAgICB9KTsKIH0KIApAQCAtMjc2
OCw0ICsyNzUzLDMxIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvdW50Tm9uRGVmYXVsdFNlc3Np
b25TZXRzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoc2Vzc2lvbiA/IHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgOiAw
KTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVn
YXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAobV9zdG9y
YWdlT3BlcmF0aW9uU3VzcGVuZGVkID09IHN1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUkVMRUFTRV9MT0coU3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFByb2Nlc3NT
dXNwZW5kZWQgc3VzcGVuZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKyAgICBtX3N0b3JhZ2VP
cGVyYXRpb25TdXNwZW5kZWQgPSBzdXNwZW5kZWQ7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlv
blN1c3BlbmRlZCkgeworI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQorICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxi
YWNrQWdncmVnYXRvcl0geyB9KTsKKyNlbmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcmVwYXJl
Rm9yUHJvY2Vzc1RvU3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgICAgICBm
b3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSgpIHsg
fSk7CisgICAgICAgIH0pOworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RS
QUNLSU5HX1BSRVZFTlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6cmVzdW1lKCk7CisjZW5kaWYKKyAgICAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3Vt
ZSgpOworICAgICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7
CisgICAgICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAg
IH0pOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggOGU5MmZjMmMxMzU3MTRhMTZk
ZmJjNjM1Yzc1MzkzMWE2NGJhYTllZi4uMDVlMjhhZjRhZDk4NWFiMzQzZmRmOTAxNTYwNDdhMTQw
OGRjODQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtMTc4LDYgKzE3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2Nlc3NXaWxsU3Vz
cGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShi
b29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
IAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2Rl
bDsgfQogCkBAIC01MzAsNyArNTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2Z0cEVuYWJsZWQg
eyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8
TW9ub3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA1MzFiY2JjMzU1Y2ZkZjUxZDBiNDkwNDhjMjE0OWQ3MDM4ZGNmMTViLi4xODgy
ZTgyZDY5MzIzYzZmYWY4ZjEwZTY2NWRmODdhMGNjODQwOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+ICgp
IFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWlu
ZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCisgICAgU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpIC0+
ICgpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9h
cmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIxNWYwNDMyY2Yy
YmE5ODg0ZC4uZWVmNjcwOGI2YjdiNjk3OTUxMDU3YTlmZWIyOTkwNTI0N2M4YzM4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2Vz
U1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNl
cnZpY2VzU1BJLmgKQEAgLTEzMSwxNCArMTMxLDI0IEBAIHR5cGVkZWYgdm9pZCAoXlJCU1Byb2Nl
c3NVcGRhdGVIYW5kbGVyKShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hh
CiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc01vbml0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgog
KyAoaW5zdGFuY2V0eXBlKW1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjooTlNfTk9FU0NBUEUgUkJT
UHJvY2Vzc01vbml0b3JDb25maWd1cmF0b3IpYmxvY2s7CistICh2b2lkKWludmFsaWRhdGU7CiBA
ZW5kCiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc1ByZWRpY2F0ZSA6IE5TT2JqZWN0IDxSQlNQcm9j
ZXNzTWF0Y2hpbmc+CiArIChSQlNQcm9jZXNzUHJlZGljYXRlICopcHJlZGljYXRlTWF0Y2hpbmdI
YW5kbGU6KFJCU1Byb2Nlc3NIYW5kbGUgKilwcm9jZXNzOwogQGVuZAordHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcykgeworICAgIFJCU1Byb2Nlc3NT
dGF0ZVZhbHVlTm9uZSAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIFJCU1Byb2Nlc3NTdGF0
ZVZhbHVlVGFza1N0YXRlICAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKKyAgICBSQlNQcm9jZXNz
U3RhdGVWYWx1ZVRhZ3MgICAgICAgICAgICAgICAgICAgID0gKDEgPDwgMSksCisgICAgUkJTUHJv
Y2Vzc1N0YXRlVmFsdWVUZXJtaW5hdGlvblJlc2lzdGFuY2UgICA9ICgxIDw8IDIpLAorICAgIFJC
U1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCAzKSwKKyAg
ICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgNCks
Cit9OwogCiBAaW50ZXJmYWNlIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBOU09iamVjdCA8
TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZHdyaXRlLCBhc3NpZ24pIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2YWx1ZXM7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkgTlNBcnJheTxO
U1N0cmluZyAqPiAqZW5kb3dtZW50TmFtZXNwYWNlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CmluZGV4IDY4ZGM3NzE5MjExNDlkNjU3ZjU0NmNhMjczZjRlMzk1Mzc4NDBmYTYuLjQxOTQ0
NGQzYWE3ZDJmZWU5YWYyNmFmYTNlYWMxZWEzZjQyODZhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQKQEAgLTQ4OSw2ICs0ODksNyBAQCBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29u
c2lzdGVuY3lFbmZvcmNlci5tbQogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdVcGRhdGVEZWZlcnJl
ci5tbQogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCitVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3Iu
bW0KIFVJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbQogVUlQcm9j
ZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGUwOTM4MDM2MTQ3OTg4NTYxMmY0OGFmYWRi
M2M3NGJhZTM1NTExNjEuLmNhMjA0MTY1YjJiMGM5Y2U2MzZjYmIzNmY1OTA0MDZiNmFlYmRjNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU1LDYgKzc1NSwxMyBAQCBzdGF0aWMgVmVjdG9yPFdlYktp
dDo6V2Vic2l0ZURhdGFSZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFS
ZWNvcgogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUo
KTsKIH0KIAorLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5n
OihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0
aW9uSGFuZGxlcgoreworICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CisgICAgfSk7Cit9CisKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJP
T0wpYmFja2dyb3VuZAogewogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2Vzcygp
LnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVBy
aXZhdGUuaAppbmRleCA0NzAxNzkyYWVhOGUwOGUxOTNjMGJkNjVmODkwMmQ2YzY2OWU2NmJjLi5k
MDgzNmY0ODQ1Nzg2NDg4M2RkNTRmZGZkM2I0ZjE3NjI2OGZkY2MzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmVQcml2YXRlLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50
ZWdlciwgX1dLV2Vic2l0ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfc2VuZE5l
dHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX3NldE5l
dHdvcmtQcm9jZXNzU3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nOihCT09MKWFsbG93ZWQgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNwZW5k
ZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZv
aWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNz
SWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAo
dm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzOWY2
YmUyY2I5MGRlOTIyNmRmNGJmZGNkYjkwMDg5Mjk1M2ViNDA4Li41NWQ4ZjZlYjkyNTA5OGFlNzE1
Zjc0ZGQyNmFkYjdlYjY3Nzc4YmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJQcm9jZXNzU3Rh
dGVNb25pdG9yLmgiCiAjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjZW5kaWYK
IApAQCAtMTM5Miw2ICsxMzkzLDI3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFBy
b2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAgICAgc2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJlc3VtZVJlYXNv
bjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1v
bml0b3ItPnN1c3BlbmRQcm9jZXNzSWZQb3NzaWJsZSgpOworI2VuZGlmCit9CisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoc3VzcGVuZGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCitwaWRfdCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMo
c2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTgyOCwxMSArMTg1
MCwyMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om5hdmlnYXRlU2VydmljZVdvcmtlckNs
aWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIGlmICghbV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nl
c3NTdGF0ZU1vbml0b3IgPSBtYWtlVW5pcXVlPFByb2Nlc3NTdGF0ZU1vbml0b3I+KCp0aGlzKTsK
KyNlbmRpZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9u
RGlkRW50ZXJCYWNrZ3JvdW5kKCksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NT
dGF0ZU1vbml0b3IgPSBudWxscHRyOworI2VuZGlmCisKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCmluZGV4IGNjZjdhMjYwMWI3YTY1MTg1YTUwNGJmN2Y5ZTBhMTc5Yjg0NjNhM2UuLjAz
YjI0MjRmYmEyMDE1MjlmZGQ1MTEwMTBkOTg4ODNhNDZjOGIzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01
NSw2ICs1NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIK
KyNpbmNsdWRlICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIElQQyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTEwNSw3ICsxMTAsMTEg
QEAgc3RydWN0IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZp
bmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0
bGVyQ2xpZW50IHsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICwgcHVibGljIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CkBA
IC0yNDIsNiArMjUxLDEzIEBAIHB1YmxpYzoKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
CiAgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsOwogICAg
IEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQ
cm9jZXNzIl9zOyB9CisgICAgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgZmluYWw7CisK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQKKyAgICB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9v
bCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgUHJv
Y2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisjZW5kaWYK
ICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9v
bCk7CiAgICAgdm9pZCBzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KTsKQEAgLTQyOCw2ICs0NDQsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZlcjsKICAgICBSZXRhaW5QdHI8
aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzU3Rh
dGVNb25pdG9yPiBtX3Byb2Nlc3NTdGF0ZU1vbml0b3I7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggNDcxMmYyZWNmYmEy
YzVhOTllMmQ2YmFkNGYxZTA1YzU3ZGRlODZhNS4uZTUzMDMzMWUzM2UwM2E5NmFkN2NiZDM2M2Nh
ZmZmMTI2NDAzOGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlci5jcHAKQEAgLTY4LDEyICs2OCwxOCBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnJlbW92
ZUFjdGl2aXR5KEZvcmVncm91bmRBY3Rpdml0eSYgYWN0aXZpdHkpCiB7CiAgICAgbV9mb3JlZ3Jv
dW5kQWN0aXZpdGllcy5yZW1vdmUoJmFjdGl2aXR5KTsKICAgICB1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCgpOworCisgICAgaWYgKCFzaG91bGRCZVJ1bm5hYmxlKCkpCisgICAgICAgIG1fcHJvY2Vz
cy5kaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6
cmVtb3ZlQWN0aXZpdHkoQmFja2dyb3VuZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2Jh
Y2tncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlv
bklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3VsZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9w
cm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0
bGVyOjppbnZhbGlkYXRlQWxsQWN0aXZpdGllcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggZmM3N2JhOTUzMzlhNDZmODg3OTY2
ZjhmY2IzMGE1OWRmZGVhYjQ2Ni4uYjQ4ZDFkOGRkZWJjYjA2NzBkOGEyNGUxODYxMTRiZGVkYWJl
Y2ExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJD
bGllbnQuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNlbmRQ
cm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSB7IH07CiAgICAgdmlydHVhbCBB
U0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTGFzdEFjdGl2aXRpeSgpIHsgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCBjYjYyM2U1ZTM3NDVmZGQ5MWQzMTg0NGZiZDkzMjA5ODg2ZDAw
ZTZlLi4yNWU5MWMwNmFhOGI4Yzg3ODY1MGNjZmU3Mzc0NzJmYTY5ZjBjNzE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtMTYwOCw2ICsxNjA4LDExIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2Vu
ZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKICAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRQcm9j
ZXNzRGlkUmVzdW1lKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6Rm9yZWdy
b3VuZEFjdGl2aXR5KTsKIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBuZXR3b3JrUHJvY2Vzcygp
LnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2Uoc3VzcGVuZGVkLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAogewogI2lmIEVOQUJMRShJTlRFTExJ
R0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGQ5ZDYyMjMwZjkwNWI0
OWFkY2VhY2ViZjU5ZWJhMWFhZGFiYjdkOGQuLjQyMTQxMTU3NmU0MGMxMTEzZjcyYTA3NWI5NzUx
YWNlNDhjZjIyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Myw2ICsxNDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9TdXNwZW5kRm9yVGVzdGluZyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9j
ZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZv
clRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7
CiAgICAgc3RhdGljIHZvaWQgbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0
aW5nKCk7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5j
aEZhaWxGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1By
b2Nlc3NTdGF0ZU1vbml0b3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDg0ZWVlZjhlOTk2MTZjZTllYzc5MDNi
YmEwZGE1YjJlZGE4ODMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0IDxX
ZWJDb3JlL1RpbWVyLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1Mg
UkJTUHJvY2Vzc01vbml0b3I7CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFByb2Nlc3NBc3NlcnRpb247CitjbGFz
cyBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50OworCitjbGFzcyBQcm9jZXNzU3RhdGVNb25pdG9y
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IHsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBQcm9jZXNzU3RhdGVNb25pdG9yKFBy
b2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQmKTsKKyAgICB+UHJvY2Vzc1N0YXRlTW9uaXRvcigpOwor
ICAgIHZvaWQgc3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCk7CisKK3ByaXZhdGU6CisgICAgYm9v
bCBpc0Fzc2VydGlvblZhbGlkKCk7CisgICAgdm9pZCBlbnN1cmVBc3NlcnRpb24oKTsKKyAgICB2
b2lkIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisgICAgdm9pZCBwcm9jZXNzV2lsbEJlU3Vz
cGVuZGVkKFNlY29uZHMpOworICAgIHZvaWQgc2VuZFN1c3BlbmRNZXNzYWdlKCk7CisgICAgdm9p
ZCBjaGVja1JlbWFpbmluZ1J1blRpbWUoKTsKKworICAgIGVudW0gY2xhc3MgU3RhdGUgOiB1aW50
OF90IHsgVW5rbm93biwgUnVubmluZywgV2lsbFN1c3BlbmQsIFN1c3BlbmRlZCB9OworICAgIFN0
YXRlIG1fc3RhdGUgeyBTdGF0ZTo6VW5rbm93biB9OworICAgIFByb2Nlc3NTdGF0ZU1vbml0b3JD
bGllbnQmIG1fY2xpZW50OworICAgIFdlYkNvcmU6OlRpbWVyIG1fc3VzcGVuZFRpbWVyOworICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICB1aW50NjRfdCBtX3Nl
c3Npb25JRDsKKyAgICBSZXRhaW5QdHI8UkJTUHJvY2Vzc01vbml0b3I+IG1fcmJzTW9uaXRvcjsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3Rh
dGVNb25pdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1v
bml0b3IubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNWU1YjIzZTNiODVhNzllMTAyOWFmNDA0ZGM2N2RhMGM1ODY2
YzNjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzU3RhdGVNb25pdG9yLm1tCkBAIC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCisjaW1wb3J0ICJQcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50LmgiCisjaW1wb3J0ICJSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHByZXBhcmVGb3JTdXNwZW5z
aW9uRHVyYXRpb24gPSAgNV9zOworCitQcm9jZXNzU3RhdGVNb25pdG9yOjpQcm9jZXNzU3RhdGVN
b25pdG9yKFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQmIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICAsIG1fc3VzcGVuZFRpbWVyKCp0aGlzLCAmUHJvY2Vzc1N0YXRlTW9uaXRv
cjo6c2VuZFN1c3BlbmRNZXNzYWdlKQoreworICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6Omlz
TWFpbigpKTsKKworICAgIG1fcmJzTW9uaXRvciA9IFtSQlNQcm9jZXNzTW9uaXRvciBtb25pdG9y
V2l0aENvbmZpZ3VyYXRpb246W3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGlkPFJCU1By
b2Nlc3NNb25pdG9yQ29uZmlndXJpbmc+IGNvbmZpZykgbXV0YWJsZSB7CisgICAgICAgIFJCU1By
b2Nlc3NTdGF0ZURlc2NyaXB0b3IgKmRlc2NyaXB0b3IgPSBbUkJTUHJvY2Vzc1N0YXRlRGVzY3Jp
cHRvciBkZXNjcmlwdG9yXTsKKyAgICAgICAgW2Rlc2NyaXB0b3Igc2V0VmFsdWVzOlJCU1Byb2Nl
c3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyB8IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9kZXJu
QXNzZXJ0aW9uc107CisgICAgICAgIFtjb25maWcgc2V0U3RhdGVEZXNjcmlwdG9yOmRlc2NyaXB0
b3JdOworICAgICAgICBbY29uZmlnIHNldFByZWRpY2F0ZXM6QFtbUkJTUHJvY2Vzc1ByZWRpY2F0
ZSBwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTpbUkJTUHJvY2Vzc0hhbmRsZSBjdXJyZW50UHJvY2Vz
c11dXV07CisgICAgICAgIFtjb25maWcgc2V0VXBkYXRlSGFuZGxlcjpbd2Vha1RoaXMgPSBXVEZN
b3ZlKHdlYWtUaGlzKV0oUkJTUHJvY2Vzc01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYW5k
bGUgKnByb2Nlc3MsIFJCU1Byb2Nlc3NTdGF0ZVVwZGF0ZSAqdXBkYXRlKSB7CisgICAgICAgICAg
ICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXNdIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5jaGVja1JlbWFpbmluZ1J1blRp
bWUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9XTsKKyAgICB9XTsKKyAgICBjaGVja1Jl
bWFpbmluZ1J1blRpbWUoKTsKK30KKworUHJvY2Vzc1N0YXRlTW9uaXRvcjo6flByb2Nlc3NTdGF0
ZU1vbml0b3IoKQoreworICAgIFttX3Jic01vbml0b3IuZ2V0KCkgaW52YWxpZGF0ZV07CisgICAg
cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKK30KKworYm9vbCBQcm9jZXNzU3RhdGVNb25pdG9y
Ojppc0Fzc2VydGlvblZhbGlkKCkKK3sKKyAgICByZXR1cm4gbV9hc3NlcnRpb24gJiYgbV9hc3Nl
cnRpb24tPmlzVmFsaWQoKTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjplbnN1cmVB
c3NlcnRpb24oKQoreworICAgIGlmIChtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxp
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2Fzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZShtX2NsaWVudC5tb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpLCAiUHJvY2Vz
c1N0YXRlTW9uaXRvciBpcyBydW5uaW5nIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6QmFja2dy
b3VuZCwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0
YXRlTW9uaXRvcjo6c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKCkKK3sKKyAgICBpZiAobV9zdGF0
ZSAhPSBTdGF0ZTo6V2lsbFN1c3BlbmQpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChp
c0Fzc2VydGlvblZhbGlkKCkpOworICAgIGlmICghbV9zdXNwZW5kVGltZXIuaXNBY3RpdmUoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9zdXNwZW5kVGltZXIuc3RvcCgpOworICAgIHNlbmRT
dXNwZW5kTWVzc2FnZSgpOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NE
aWRCZWNvbWVSdW5uaW5nKCkKK3sKKyAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6UnVubmluZykK
KyAgICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlQXNzZXJ0aW9uKCk7CisgICAgbV9zdXNwZW5k
VGltZXIuc3RvcCgpOworICAgICsrbV9zZXNzaW9uSUQ7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpS
dW5uaW5nOworICAgIG1fY2xpZW50LnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1l
c3NhZ2UoZmFsc2UsIFtdIHsgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJv
Y2Vzc1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzIHJlbWFpbmluZ1J1blRpbWUpCit7CisgICAgaWYg
KG1fc3RhdGUgIT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VS
VChpc0Fzc2VydGlvblZhbGlkKCkpOworICAgIEFTU0VSVCghbV9zdXNwZW5kVGltZXIuaXNBY3Rp
dmUoKSk7CisgICAgU2Vjb25kcyB0aW1lb3V0ID0gcmVtYWluaW5nUnVuVGltZSA+IHByZXBhcmVG
b3JTdXNwZW5zaW9uRHVyYXRpb24gPyByZW1haW5pbmdSdW5UaW1lIC0gcHJlcGFyZUZvclN1c3Bl
bnNpb25EdXJhdGlvbiA6IDBfczsKKyAgICBtX3N1c3BlbmRUaW1lci5zdGFydE9uZVNob3QodGlt
ZW91dCk7CisgICAgbV9zdGF0ZSA9IFN0YXRlOjpXaWxsU3VzcGVuZDsKK30KKwordm9pZCBQcm9j
ZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UoKQoreworICAgIG1fY2xpZW50LnNl
bmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UodHJ1ZSwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHNlc3Npb25JRCA9IG1fc2Vzc2lvbklEXSgpIG11dGFi
bGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1fc2Vzc2lvbklEICE9IHNlc3Npb25JRCkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2Fzc2VydGlvbiA9IG51bGxwdHI7Cisg
ICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6U3VzcGVuZGVkOworICAgIH0pOworfQorCit2b2lkIFBy
b2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSgpCit7CisgICAgZG91Ymxl
IHJ1blRpbWUgPSBbW1tSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXSBhY3RpdmVMaW1p
dGF0aW9uc10gcnVuVGltZV07CisgICAgaWYgKHJ1blRpbWUgPT0gUkJTUHJvY2Vzc1RpbWVMaW1p
dGF0aW9uTm9uZSkKKyAgICAgICAgcmV0dXJuIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKCk7CisK
KyAgICBwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKFNlY29uZHMocnVuVGltZSkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Y2Y0OWM2MDg4MjJjZDdhZGVjZWU3ZTBiYjJiZTdhMGZm
Y2VjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJv
Y2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzU3RhdGVN
b25pdG9yQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Qcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1
c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgPSAwOworICAgIHZpcnR1YWwgUHJvY2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVy
KCkgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA2ODczMjRmMmE0YzJiMDAwOTI2OWMwYTEwZWU0NjMxMWZjZmUwMTI0
Li4yN2E5YjYxYmFhZGRmYzlkNjA2YWJlOGI4NDM5MmRkYzIxNjM4MzkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NTgsNiArMTQ1
OCw4IEBACiAJCTkzNUI1NzlBMjZGNTE5MzMwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVS
ZWdpc3RyeS5oICovOyB9OwogCQk5MzVFRUI5QjEyNzc2MTdDMDAzMzIyQjggLyogV0tCdW5kbGVC
YWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2Fy
ZExpc3RJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJOTM1RUVCOUYxMjc3NjFBQzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5
NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzVGRTVCNjI4MTM1NjI2
MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nl
c3NTdGF0ZU1vbml0b3IuaCAqLzsgfTsKKwkJOTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFBy
b2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVN
b25pdG9yQ2xpZW50LmggKi87IH07CiAJCTkzNzM1RUJCMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1By
ZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rp
b25JdGVtSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdF
bGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAv
KiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwpAQCAtNDk3NCwzNyArNDk3NiwxNyBAQAogCQk1NzBE
QUFDNTIzMDM3RjdFMDBFOEZDMDQgLyogV0tORlJlYWRlclNlc3Npb25EZWxlZ2F0ZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFdLTkZSZWFkZXJTZXNzaW9uRGVsZWdhdGUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MERBQUM4MjMwMzg1RkQwMEU4RkMwNCAvKiBDdGFwTmZj
RHJpdmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN0YXBOZmNEcml2ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTcwREFBQzkyMzAzODVGRDAwRThGQzA0IC8qIEN0YXBOZmNEcml2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3RhcE5mY0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTU3MkVCQkI5MjUzNkEwNkUwMDA1NTJCMyAvKiBJbmZvLWlPUy5wbGlz
dCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
cGxpc3Q7IG5hbWUgPSAiSW5mby1pT1MucGxpc3QiOyBwYXRoID0gIldlYkF1dGhuUHJvY2Vzcy9F
bnRyeVBvaW50L0NvY29hL1hQQ1NlcnZpY2UvV2ViQXV0aG5TZXJ2aWNlL0luZm8taU9TLnBsaXN0
Ijsgc291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwotCQk1NzJFQkJCQTI1MzZBMDZFMDAwNTUy
QjMgLyogSW5mby1PU1gucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0OyBuYW1lID0gIkluZm8tT1NYLnBsaXN0IjsgcGF0aCA9
ICJXZWJBdXRoblByb2Nlc3MvRW50cnlQb2ludC9Db2NvYS9YUENTZXJ2aWNlL1dlYkF1dGhuU2Vy
dmljZS9JbmZvLU9TWC5wbGlzdCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJNTcy
RUJCQkIyNTM2QTYwQTAwMDU1MkIzIC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01l
c3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJCQzI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0
aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcyRUJCQkQyNTM2QTYwQTAwMDU1MkIzIC8qIFdl
YkF1dGhuUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBdXRoblByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJCRTI1MzZBNjBBMDAwNTUyQjMgLyogV2ViQXV0
aG5Qcm9jZXNzTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
QXV0aG5Qcm9jZXNzTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcy
RUJCQzMyNTM2QUI4NDAwMDU1MkIzIC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNz
LnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9j
ZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzJFQkJDNTI1MzZBRkQ1MDAw
NTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1NzJFQkJDNjI1MzZBRkQ1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNz
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNz
UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTcyRUJCQ0IyNTM2QjA0RjAw
MDU1MkIzIC8qIFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQxMjUzNkM4ODUwMDA1NTJCMyAvKiBXZWJB
dXRoblByb2Nlc3NDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk1NzJFQkJEMjI1MzZDODg1MDAwNTUyQjMgLyogV2ViQXV0aG5Qcm9jZXNzQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblByb2Nl
c3NDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MkVCQkQzMjUz
NkM4ODUwMDA1NTJCMyAvKiBXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MkVCQkQ4MjUzOEY2QTEwMDA1NTJC
MyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTcyRUJCRDkyNTM4RjZBMTAwMDU1MkIzIC8qIEFwcEF0dGVzdEludGVybmFsU29mdExpbmsu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0
U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcEF0dGVzdFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzJGRDQ0MTIyMjY1Q0UyMDBBMUVDQzMgLyogV2ViVmlld0RpZE1vdmVUb1dp
bmRvd09ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNl
cnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQyMTc5MTI0MDBFMDk4MDAy
QjMwM0QgLyogTG9jYWxBdXRoZW50aWNhdGlvblNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbEF1
dGhlbnRpY2F0aW9uU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NDJBMkY3
MjUzNTYxM0YwMEI3QkExNCAvKiAueHBjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSAid3JhcHBlci54cGMtc2VydmljZSI7IGluY2x1ZGVJbkluZGV4ID0g
MDsgcGF0aCA9IC54cGM7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07Ci0JCTU3
NDJBMzA2MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzA3
MjUzNThBMDQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEz
MEEyNTM1OEVGRDAwQjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMEIyNTM1OEVGRDAw
QjdCQTE0IC8qIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3NDJBMzBDMjUzNThFRkQwMEI3
QkExNCAvKiBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTMyNTM2NDhFNDAwQjdCQTE0
IC8qIFdlYkF1dGhuUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJBdXRoblByb2Nlc3MubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTU3NDJBMzE0MjUzNjQ4RTQwMEI3QkExNCAvKiBXZWJBdXRoblByb2Nlc3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0aG5Qcm9jZXNzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMTUyNTM2NDhFNDAwQjdCQTE0IC8qIFdlYkF1
dGhuUHJvY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRoblBy
b2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEzMUEyNTM2NzVFOTAw
QjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc0lPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YkF1dGhuUHJvY2Vzc0lPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTc0MkEz
MUMyNTM2NzVGNjAwQjdCQTE0IC8qIFdlYkF1dGhuUHJvY2Vzc01hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkF1dGhuUHJvY2Vzc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNTc0MkEzMUQyNTM2NzVGNjAwQjdCQTE0IC8qIGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0
aG5Qcm9jZXNzLnNiLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5hcHBsZS5XZWJLaXQuV2ViQXV0aG5Qcm9jZXNzLnNi
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzQyQTMxRTI1MzY5NDkzMDBCN0JB
MTQgLyogV2ViQXV0aG5TZXJ2aWNlRW50cnlQb2ludC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdlYkF1dGhuU2VydmljZUVudHJ5UG9pbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU3NDcyOENGMjM0NTZFOTgwMDE3MDBBRiAvKiBfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc0NzI4RDAyMzQ1NkU5ODAwMTcwMEFGIC8qIF9XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tXZWJBdXRoZW50
aWNhdGlvblBhbmVsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzQ3MjhEMzIz
NDU3MEFFMDAxNzAwQUYgLyogX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbEludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IF9XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWxJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTY4MCw2ICs1NjYyLDkgQEAKIAkJOTM1RUVCOTYxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk3MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjMy
ODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvci5oOyBwYXRoID0gaW9zL1Byb2Nl
c3NTdGF0ZU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjQy
ODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLm1tOyBwYXRoID0g
aW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQuaDsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQ
cmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZv
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUYyODMxMjFCMzhG
NTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtOTE2Myw2ICs5MTQ4LDkgQEAKIAkJCQkwRkNCNEUzNjE4QkJF
MDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MuaCAqLywKIAkJCQkwRkNCNEUzNzE4QkJF
MDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MubW0gKi8sCiAJCQkJODZGOTUzNjIxOEZG
NTUwQjAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb25JT1MubW0gKi8sCisJCQkJOTM1RkU1QjMy
ODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLywKKwkJCQk5MzVGRTVC
NDI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLywKKwkJCQk5MzVG
RTVCNTI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oICovLAog
CQkJCTJEQUYwNkQ0MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9s
bGVyLmggKi8sCiAJCQkJMkRBRjA2RDgxOEJEMjNCQTAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNh
dGlvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkRBRjA2RDUxOEJEMUE0NzAwODFD
RUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0gKi8sCkBAIC0xNDM2Miw2ICsx
NDM1MCw4IEBACiAJCQkJNUNCOTMxMDkyNkU4NDM5QTAwMzJCMUMwIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50WFBDVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1
OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
QTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTM1RkU1QjYyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTkzNUZFNUI4MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3Rh
dGVNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFFQjk0RUMwMDBB
Mjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTU0NjUsMjggKzE1NDU1LDYgQEAKIAkJCXByb2R1Y3RS
ZWZlcmVuY2UgPSA1MTdCNUY1QjI3NUE4RDNFMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi87CiAJ
CQlwcm9kdWN0VHlwZSA9ICJjb20uYXBwbGUucHJvZHVjdC10eXBlLnRvb2wiOwogCQl9OwotCQk1
NzQyQTJFNTI1MzU2MTNGMDBCN0JBMTQgLyogV2ViQXV0aG4gKi8gPSB7Ci0JCQlpc2EgPSBQQlhO
YXRpdmVUYXJnZXQ7Ci0JCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNTc0MkEyRjMyNTM1NjEz
RjAwQjdCQTE0IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0
ICJXZWJBdXRobiIgKi87Ci0JCQlidWlsZFBoYXNlcyA9ICgKLQkJCQk1NzQyQTJFQTI1MzU2MTNG
MDBCN0JBMTQgLyogU291cmNlcyAqLywKLQkJCQk1NzQyQTJFRDI1MzU2MTNGMDBCN0JBMTQgLyog
RnJhbWV3b3JrcyAqLywKLQkJCQk1NzQyQTJGMDI1MzU2MTNGMDBCN0JBMTQgLyogUmVzb3VyY2Vz
ICovLAotCQkJCTU3NDJBMkYxMjUzNTYxM0YwMEI3QkExNCAvKiBVbmxvY2sga2V5Y2hhaW4gKi8s
Ci0JCQkJNTc0MkEyRjIyNTM1NjEzRjAwQjdCQTE0IC8qIFByb2Nlc3MgV2ViQXV0aGVudGljYXRp
b24gZW50aXRsZW1lbnRzICovLAotCQkJCTY1MTc1NzIzMjdDRkMyNEEwMEQ5RkU0MCAvKiBDb3B5
IFhQQyBTZXJ2aWNlIHRvIFNlY29uZGFyeSBQYXRoICovLAotCQkJKTsKLQkJCWJ1aWxkUnVsZXMg
PSAoCi0JCQkpOwotCQkJZGVwZW5kZW5jaWVzID0gKAotCQkJCTU3NDJBMkU2MjUzNTYxM0YwMEI3
QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJCTU3NDJBMkU4MjUzNTYxM0YwMEI3
QkExNCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAotCQkJKTsKLQkJCW5hbWUgPSBXZWJBdXRo
bjsKLQkJCXByb2R1Y3ROYW1lID0gTmV0d29ya2luZzsKLQkJCXByb2R1Y3RSZWZlcmVuY2UgPSA1
NzQyQTJGNzI1MzU2MTNGMDBCN0JBMTQgLyogLnhwYyAqLzsKLQkJCXByb2R1Y3RUeXBlID0gImNv
bS5hcHBsZS5wcm9kdWN0LXR5cGUueHBjLXNlcnZpY2UiOwotCQl9OwogCQk1QzE1NzlDQzI3MTY1
QjJGMDBFRDUyODAgLyogd2VicHVzaGQgKi8gPSB7CiAJCQlpc2EgPSBQQlhOYXRpdmVUYXJnZXQ7
CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUMxNTc5RDYyNzE2NUIyRjAwRUQ1MjgwIC8q
IEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYTmF0aXZlVGFyZ2V0ICJ3ZWJwdXNoZCIg
Ki87CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXgg
ZGI1NjhlMjY5NDliYTgwMmY4NGNlMDU1MDZkZGY2ZWIyMTMzOGVjYy4uMTJmODIyMTFlZWQ5YzZj
ZGMzNzIwZThmMDA0YjlkYTE3NTc1MzM5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisr
KyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA0LTIyICBTaWh1aSBM
aXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVy
YXRpb25zIHdoZW4gbmV0d29yayBwcm9jZXNzIGlzIGluIGJhY2tncm91bmQgYW5kIHdpbGwgYmUg
c3VzcGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzk0MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWlu
ZW50bHkubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2Nh
bFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTIyICBB
ZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQg
ZmluZCBpbnRlcmFjdGlvbiBBUEkgdG8gV0tXZWJWaWV3CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5k
SW1taW5lbnRseS5tbQppbmRleCA4Mzg4NTFiZmE4ODhhYzQwYWM3MWNlY2FlNTBhNDgzYWIxYjg1
ZjdhLi5mN2VlZGI0ZGY3MWJkZjE0YWYyM2FlNGUzZDU1MWViMTQ3MDVjZDQxIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJ
bW1pbmVudGx5Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KQEAgLTE2Myw4ICsxNjMsMTcgQEAgVEVTVChJ
bmRleGVkREIsIFN1c3BlbmRJbW1pbmVudGx5Rm9yVGhpcmRQYXJ0eURhdGFiYXNlcykKICAgICBb
d2ViVmlldyBsb2FkSFRNTFN0cmluZzptYWluRnJhbWVTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJM
V2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOwogICAgIHJ1blRlc3RBbmRDaGVja1Jl
c3VsdChAImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRs
eV07Ci0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdv
cmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBb
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJl
YWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWFkeVRvQ29udGludWUpOworCisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7Cisg
ICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJh
dGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOk5PIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAg
IHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcnVuVGVzdEFuZENoZWNrUmVzdWx0KEAi
dHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIik7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5j
ZS5tbQppbmRleCAwMjUyNDMwMmZiZGZjYTgzZGFlMmFhNGVlYWZkMzg5YWFhYzNiNjE5Li5jMjEw
MmYzZTBlMTA5MjYzZjU0NjJhMDZjYTczNjYxZjgwMTgxZDYxIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdl
UGVyc2lzdGVuY2UubW0KQEAgLTE3MCw3ICsxNzAsMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2Fs
U3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKEAidmFsdWUiLCBbbGFz
dFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0
ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5XTsKKyAg
ICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVT
IGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwog
CiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2
YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgna2V5JywgJ25ld1ZhbHVlJyki
IGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3IgKikgewpAQCAtMTg1LDcgKzE4OSwxMSBA
QCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUHJvY2Vzc1N1c3BlbmRzKQogICAgIH1dOwog
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKICAgICAKLSAg
ICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nl
c3NEaWRSZXN1bWVdOworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1
cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVu
ZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29u
dGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVh
ZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458297</attachid>
            <date>2022-04-25 14:08:46 -0700</date>
            <delta_ts>2022-04-25 15:47:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220425140845.patch</filename>
            <type>text/plain</type>
            <size>41599</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1OWZkM2VmMGFlZDhhMmY5
MTI5YzVmMjAwNzRkMzUzYmVmODQ4YTYuLmI3NWNkOTZhODhiNWY1NTgzNWI2ZGM1ZjI4Yjc4MWI3
ZTUxNmMzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJy
ZW50bHkgc3VzcGVuZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVU
b1N1c3BlbmQgbWVzc2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlz
IGlzIG5vdCBhIHZlcnkgcmVsaWFibGUgc2luZ2FsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5v
dCBzZW5kIHRoZSBtZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChl
LmcuIFVJIHByb2Nlc3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdo
ZW4gaXQgYWNxdWlyZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2Vz
cyBhY3Rpdml0eSBjb3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9j
ZXNzIHNlbmQgdGhlIG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nl
c3MgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRp
ZXMuIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJT
UHJvY2Vzc01vbml0b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBh
c3NlcnRpb25zLiBXaGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRl
TW9uaXRvciBjaGVjayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGF0IG1vc3QgYmVm
b3JlIHN1c3BlbnNpb24uIAorICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHNlbmRzIG1lc3Nh
Z2UgdG8gYSBwcm9jZXNzIHRvIHN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gdGhlIHJ1
bm5pbmcgdGltZSBsZWZ0IGlzIGxlc3MgCisgICAgICAgIHRoYW4gNSBzZWNvbmRzLCBhbmQgc2Vu
ZHMgbWVzc2FnZSB0byByZXN1bWUgdGhlbSB3aGVuIHRoZSBydW5uaW5nIHRpbWUgYmVjb21lcyB1
bmxpbWl0ZWQuIFByb2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3Bl
bmQgbWVzc2FnZSBlYXJsaWVyIGlmIFByb2Nlc3NUaHJvdHRsZXIgc2F5cyB0aGVyZSBpcyBubyBh
Y3Rpdml0eSBsZWZ0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
UGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9w
ZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Om1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2aXR5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9y
VGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9u
aXRvcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3Rh
dGVNb25pdG9yKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3Nl
cnRpb25WYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3Vy
ZUFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3Bl
bmRQcm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0
b3I6OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0
YXRlTW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjItMDQtMjUgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR0xJQl0gRGVmYXVsdC1oYW5kbGUgcmVjZW50bHktYWRkZWQgUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCA0NzFiMWQyM2UyYWQ5ZmI5ODVkOTBlMzM0OTg0MmUwNWJi
ODllMTdkLi4wMTA0OTk2NjA5ZGJlZmY4OTNhNzI2MmMzNGMxOWMxZjhlYzBiYjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDU4
LDcgKzQ1OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVybiBOZXR3
b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQp
CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkKICAgICAgICAgc2Vzc2lvbi0+
c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAKQEAgLTIxNTMsNyArMjE1Myw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNp
b25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3Vz
cGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJsaWN9c2luIGJhY2tncm91bmQiLCB0
aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAi
IiA6ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKICAgICBsb3dNZW1vcnlI
YW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRyPENhbGxiYWNrQWdncmVnYXRvcj4g
Y2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoW3RoaXMsIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
CkBAIC0yMTYxLDExICsyMTYwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3Vz
cGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwKICAgICAgICAg
VU5VU0VEX1ZBUklBQkxFKHRoaXMpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAg
IH0pOwotICAgIAotI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQot
ICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dy
ZWdhdG9yXSB7IH0pOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6cHJlcGFyZUZvclByb2Nlc3NU
b1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAogICAgIGZvckVhY2hOZXR3b3Jr
U2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKICAgICAgICAgcGxhdGZvcm1GbHVzaENvb2tp
ZXMoc2Vzc2lvbi5zZXNzaW9uSUQoKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKQEAgLTIx
NzMsNyArMjE2Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9v
bCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5z
dGFydFN1c3BlbnNpb24oW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICNlbmRpZgotICAgICAg
ICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7
IH0pOwogICAgIH0pOwogCiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNz
Q29ubmVjdGlvbnMudmFsdWVzKCkpCkBAIC0yMjAzLDIyICsyMTk2LDE0IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAg
ICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5kQWN0aXZpdHk9JWQg
UHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRzIiwgdGhpcywgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2VudGVyQmFja2dy
b3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAgIG1faXNTdXNwZW5kZWQgPSBm
YWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRTdXNwZW5zaW9uKCk7CiAKLSNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc3VtZSgpOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6
cHJvY2Vzc0RpZFJlc3VtZSgpOwotCiAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFtdKGF1dG8m
IHNlc3Npb24pIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgICAgIGlmIChhdXRv
KiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAgICAgICAgIHN3U2VydmVyLT5l
bmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigp
LnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzY5LDQgKzI3NTQsMzEgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihzZXNzaW9uID8gc2Vzc2lvbi0+
Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2Fs
bGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPT0g
c3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAi
JXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0UHJvY2Vzc1N1c3BlbmRlZCBzdXNwZW5kZWQ9JWQiLCB0
aGlzLCBzdXNwZW5kZWQpOworICAgIG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCA9IHN1c3Bl
bmRlZDsKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkKSB7CisjaWYgRU5BQkxF
KElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCisgICAgICAgIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworI2Vu
ZGlmCisgICAgICAgIFBDTTo6U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0g
KGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5z
dXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdKCkgeyB9KTsKKyAgICAgICAgfSk7CisgICAgfSBl
bHNlIHsKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKKyAgICAg
ICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKKyNlbmRpZgorICAg
ICAgICBQQ006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIGZvckVhY2hOZXR3
b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24uc3Rv
cmFnZU1hbmFnZXIoKS5yZXN1bWUoKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCA0Y2I5ZGIwMDlhODllNmU3OGVjZjk1NWI0NzkyYjczNmMyMmJhMWJhLi5j
ODIwZGQyODEzMGI4MjdlZGMyMjNlYmMyNTY2NmY3ZjFhNWE5OWVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xNzgsNiArMTc4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdT
eW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNw
ZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5
KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVk
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgQ2FjaGVNb2RlbCBjYWNoZU1v
ZGVsKCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZU1vZGVsOyB9CiAKQEAgLTUzMCw3ICs1MzEsNyBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCB7
IHRydWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lz
U3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRl
ZCB7IGZhbHNlIH07CiAgICAgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBtX2VudGVyQmFj
a2dyb3VuZFRpbWVzdGFtcDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDMyMDZkY2I5NzU5OWNl
NDQ1YTczYzk2NjdhZjdkMjFjNjFmN2M4NzAuLjI5MzI5YjhmNzcyMjY0MTRiOWEwMmYxNTk1OTE2
ZTVmOWE1MmIyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzQsNiArNzQsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseUZvclRlc3RpbmdTeW5jKCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBQcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJvY2Vzc0Rp
ZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKKyAgICBTZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3
ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJs
LCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFs
PFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
IGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAppbmRleCA0
MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi5lZWY2NzA4YjZiN2I2OTc5
NTEwNTdhOWZlYjI5OTA1MjQ3YzhjMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtMTMxLDE0ICsx
MzEsMjQgQEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vzc1VwZGF0ZUhhbmRsZXIpKFJCU1Byb2Nl
c3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEKIAogQGludGVyZmFjZSBSQlNQcm9jZXNz
TW9uaXRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpbW9uaXRvcldp
dGhDb25maWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQcm9jZXNzTW9uaXRvckNvbmZpZ3VyYXRv
cilibG9jazsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBSQlNQcm9j
ZXNzUHJlZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nlc3NNYXRjaGluZz4KICsgKFJCU1Byb2Nl
c3NQcmVkaWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTooUkJTUHJvY2Vzc0hhbmRsZSAq
KXByb2Nlc3M7CiBAZW5kCit0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgUkJTUHJvY2Vz
c1N0YXRlVmFsdWVzKSB7CisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVOb25lICAgICAgICAgICAg
ICAgICAgICA9IDAsCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUYXNrU3RhdGUgICAgICAgICAg
ICAgICA9ICgxIDw8IDApLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGFncyAgICAgICAgICAg
ICAgICAgICAgPSAoMSA8PCAxKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRlcm1pbmF0aW9u
UmVzaXN0YW5jZSAgID0gKDEgPDwgMiksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lB
c3NlcnRpb25zICAgICAgICA9ICgxIDw8IDMpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9k
ZXJuQXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCA0KSwKK307CiAKIEBpbnRlcmZhY2UgUkJTUHJv
Y2Vzc1N0YXRlRGVzY3JpcHRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5
cGUpZGVzY3JpcHRvcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIGFzc2lnbikg
UkJTUHJvY2Vzc1N0YXRlVmFsdWVzIHZhbHVlczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
d3JpdGUsIGNvcHksIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICplbmRvd21lbnROYW1l
c3BhY2VzOwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMTdjMTBmOWY0ZTg4MTRi
ZTgwOGMwOWMwZGUzZTg1MWQwNDRhNjFiZi4uMmZjNzFhOGJiYTY5YTkxOTU4NzM1ZWNiODY2ZGI2
MzhhYTY1OGM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDkwLDYgKzQ5MCw3IEBAIFVJ
UHJvY2Vzcy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tCiBVSVBy
b2Nlc3MvaW9zL0lucHV0Vmlld1VwZGF0ZURlZmVycmVyLm1tCiBVSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KK1VJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbQogVUlQcm9jZXNzL2lvcy9TbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLm1tCiBVSVByb2Nlc3MvaW9zL1RleHRDaGVja2VySU9TLm1t
CiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0K
aW5kZXggZTZmMmZjZjAyYjI0ZmExNjAyMWMzYmU4M2Y2MTE2Zjk4OTYxMDAyNy4uNzg0N2RkYzNh
NjI4ZWFiZDQ3NzllYTUyNjRjNWRjMzhmZjg2OTVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC03NTYs
NiArNzU2LDEzIEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9X
ZWJzaXRlRGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgX3dlYnNpdGVEYXRhU3Rv
cmUtPnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOwogfQogCistICh2b2lkKV9zZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNp
dGVEYXRhU3RvcmUtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNw
ZW5kZWQsIFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxl
cildIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9p
ZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kCiB7CiAgICAgX3dl
YnNpdGVEYXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuc3ludGhlc2l6ZUFwcElzQmFja2dyb3Vu
ZChiYWNrZ3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDMxNmIzMjlhNWY2
YzNhNWFmN2U3ZTI5NDlmODdmMzdkZjcyZTczNjIuLjFhY2E3NTExOTNhODQyYjQ3MzM5MzEzMmQy
ZTgwYWI3YTJjYmZiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMTAxLDYgKzEw
MSw3IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3Jl
RmV0Y2hPcHRpb25zKSB7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZElt
bWluZW50bHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZv
aWQpX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClfc2V0TmV0d29ya1Byb2Nlc3NTdXNwZW5zaW9uQWxs
b3dlZEZvclRlc3Rpbmc6KEJPT0wpYWxsb3dlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dy
b3VuZDooQk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiArICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9j
ZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9z
KDE1LjApKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDFmYjQyZDMzM2QzODE5YWQ5YTczY2Y1ZTc0Yzdl
N2UyYzMyMDdiYzMuLmY1NWUxYjZkN2NlYWU4NjNmMjk5NTgxYWQyMjgyYjI1Mzk3YmQyMmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKICNpbmNsdWRlIDx3
dGYvc3BpL2Rhcndpbi9YUENTUEkuaD4KICNlbmRpZgogCkBAIC0xMzkyLDYgKzEzOTMsMjcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFz
b24gcmVhc29uKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vz
c0RpZFJlc3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAw
KTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5
KCkKK3sKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Byb2Nlc3NTdGF0ZU1v
bml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvci0+c3VzcGVuZFByb2Nlc3NJZlBv
c3NpYmxlKCk7CisjZW5kaWYKK30KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCit2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3Nh
Z2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChzdXNwZW5kZWQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3BpZF90IE5ldHdvcmtQcm9jZXNzUHJveHk6Om1vbml0
b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcHJvY2Vzc0lkZW50
aWZpZXIoKTsKK30KKworI2VuZGlmCisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Zmx1c2hD
b29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CkBAIC0xODI5LDExICsxODUxLDIxIEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6bmF2aWdhdGVTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciBmCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKQogeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKCFtX3Byb2Nl
c3NTdGF0ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvciA9IG1ha2VVbmlx
dWU8UHJvY2Vzc1N0YXRlTW9uaXRvcj4oKnRoaXMpOworI2VuZGlmCisKICAgICBzZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKSwgMCk7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3Jl
Z3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Byb2Nlc3NT
dGF0ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvciA9IG51bGxwdHI7Cisj
ZW5kaWYKKwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTIyOGU0YzJhNDI4
M2MxMmQ0OGI5YTllNWQ0OGYxMzFiOGMwZTc0Zi4uNTA1YTNmYWFhOWQ0N2YwY2M3MzgyMGRjMmYy
NTliNzAzNjIwMTBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDYgKzU1LDExIEBACiAjaW5jbHVkZSA8
d3RmL09TT2JqZWN0UHRyLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisj
aW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1v
bml0b3JDbGllbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIEZvcm1EYXRh
UmVmZXJlbmNlOwogfQpAQCAtMTA1LDcgKzExMCwxMSBAQCBzdHJ1Y3QgV2ViUHVzaE1lc3NhZ2U7
CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7
CiAKLWNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgeworY2xhc3MgTmV0d29y
a1Byb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzUHJveHksIHByaXZh
dGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
LCBwdWJsaWMgUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudAorI2VuZGlmCit7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21haW4g
PSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKQEAgLTI0Miw2ICsyNTEsMTMgQEAgcHVibGlj
OgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiTmV0d29ya1Byb2Nlc3MiX3M7IH0KKyAgICB2b2lkIGRp
ZEZpbmlzaExhc3RBY3Rpdml0aXkoKSBmaW5hbDsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLy8gUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudAorICAgIHZvaWQgc2VuZFNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICBQcm9jZXNzSUQgbW9uaXRvcmVkUHJvY2Vzc0lk
ZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKyNlbmRpZgogICAgIAogICAgIHN0YXRpYyB2b2lkIHNl
dFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNlbmRQcm9jZXNz
V2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwpAQCAtNDI4LDYgKzQ0NCw3IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8aWQ+IG1fYmFj
a2dyb3VuZE9ic2VydmVyOwogICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7
CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IG1fcHJvY2Vzc1N0YXRl
TW9uaXRvcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNz
VGhyb3R0bGVyLmNwcAppbmRleCA0NzEyZjJlY2ZiYTJjNWE5OWUyZDZiYWQ0ZjFlMDVjNTdkZGU4
NmE1Li5lNTMwMzMxZTMzZTAzYTk2YWQ3Y2JkMzYzY2FmZmYxMjY0MDM4Yzg4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtNjgsMTIgKzY4LDE4
IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkoRm9yZWdyb3VuZEFjdGl2
aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0
aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3Vs
ZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXko
KTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eShCYWNrZ3JvdW5k
QWN0aXZpdHkmIGFjdGl2aXR5KQogewogICAgIG1fYmFja2dyb3VuZEFjdGl2aXRpZXMucmVtb3Zl
KCZhY3Rpdml0eSk7CiAgICAgdXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKKworICAgIGlmICgh
c2hvdWxkQmVSdW5uYWJsZSgpKQorICAgICAgICBtX3Byb2Nlc3MuZGlkRmluaXNoTGFzdEFjdGl2
aXRpeSgpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OmludmFsaWRhdGVBbGxBY3Rpdml0
aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGll
bnQuaAppbmRleCBmYzc3YmE5NTMzOWE0NmY4ODc5NjZmOGZjYjMwYTU5ZGZkZWFiNDY2Li5iNDhk
MWQ4ZGRlYmNiMDY3MGQ4YTI0ZTE4NjExNGJkZWRhYmVjYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVh
c29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fz
c2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgeyB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IGNiNjIz
ZTVlMzc0NWZkZDkxZDMxODQ0ZmJkOTMyMDk4ODZkMDBlNmUuLjI1ZTkxYzA2YWE4YjhjODc4NjUw
Y2NmZTczNzQ3MmZhNjlmMGM3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjA4LDYgKzE2MDgs
MTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUo
KQogICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJvY2Vzc1Rocm90
dGxlckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQogCit2b2lk
IFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGlu
Zyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkTWVzc2FnZShzdXNwZW5kZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
K30KKwogYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxl
ZCgpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmgKaW5kZXggZDlkNjIyMzBmOTA1YjQ5YWRjZWFjZWJmNTllYmExYWFkYWJiN2Q4
ZC4uNDIxNDExNTc2ZTQwYzExMTNmNzJhMDc1Yjk3NTFhY2U0OGNmMjIzYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
aApAQCAtMTQzLDYgKzE0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vz
c1ByZXBhcmVUb1N1c3BlbmRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0
aW5nKCk7CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsKKyAgICB2b2lk
IHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlk
VGVybWluYXRlKE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKICAgICBzdGF0aWMgdm9pZCBtYWtlTmV4
dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcoKTsKICAgICBzdGF0aWMgYm9vbCBz
aG91bGRNYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmUwODRlZWVmOGU5OTYxNmNlOWVjNzkwM2JiYTBkYTViMmVkYTg4MzMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRv
ci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgPFdlYkNvcmUvVGltZXIuaD4KKyNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBSQlNQcm9jZXNzTW9uaXRvcjsKKworbmFt
ZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbjsKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGll
bnQ7CisKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3IgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHJvY2Vzc1N0YXRlTW9uaXRvcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IoUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCYp
OworICAgIH5Qcm9jZXNzU3RhdGVNb25pdG9yKCk7CisgICAgdm9pZCBzdXNwZW5kUHJvY2Vzc0lm
UG9zc2libGUoKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzQXNzZXJ0aW9uVmFsaWQoKTsKKyAg
ICB2b2lkIGVuc3VyZUFzc2VydGlvbigpOworICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJ1bm5p
bmcoKTsKKyAgICB2b2lkIHByb2Nlc3NXaWxsQmVTdXNwZW5kZWQoU2Vjb25kcyk7CisgICAgdm9p
ZCBzZW5kU3VzcGVuZE1lc3NhZ2UoKTsKKyAgICB2b2lkIGNoZWNrUmVtYWluaW5nUnVuVGltZSgp
OworCisgICAgZW51bSBjbGFzcyBTdGF0ZSA6IHVpbnQ4X3QgeyBVbmtub3duLCBSdW5uaW5nLCBX
aWxsU3VzcGVuZCwgU3VzcGVuZGVkIH07CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpVbmtu
b3duIH07CisgICAgUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCYgbV9jbGllbnQ7CisgICAgV2Vi
Q29yZTo6VGltZXIgbV9zdXNwZW5kVGltZXI7CisgICAgUmVmUHRyPFByb2Nlc3NBc3NlcnRpb24+
IG1fYXNzZXJ0aW9uOworICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIFJldGFpblB0cjxS
QlNQcm9jZXNzTW9uaXRvcj4gbV9yYnNNb25pdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTVi
MjNlM2I4NWE3OWUxMDI5YWY0MDRkYzY3ZGEwYzU4NjZjM2NmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0KQEAgLTAs
MCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlBy
b2Nlc3NTdGF0ZU1vbml0b3IuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBv
cnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbXBvcnQgIlByb2Nlc3NBc3NlcnRpb24u
aCIKKyNpbXBvcnQgIlByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCIKKyNpbXBvcnQgIlJ1bm5p
bmdCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgY29u
c3RleHByIFNlY29uZHMgcHJlcGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA9ICA1X3M7CisKK1By
b2Nlc3NTdGF0ZU1vbml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IoUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudCYgY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9zdXNwZW5k
VGltZXIoKnRoaXMsICZQcm9jZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UpCit7
CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgbV9yYnNNb25p
dG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjpbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25maWd1cmluZz4g
Y29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3JpcHRvciAqZGVz
Y3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3JdOworICAgICAg
ICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lBc3NlcnRp
b25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAgICAgICAgW2Nv
bmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtjb25maWcgc2V0
UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNoaW5nSGFuZGxl
OltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAgW2NvbmZpZyBz
ZXRVcGRhdGVIYW5kbGVyOlt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXShSQlNQcm9jZXNz
TW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2VzcywgUkJTUHJvY2Vzc1N0
YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFr
VGhpc10geworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAg
ICAgd2Vha1RoaXMtPmNoZWNrUmVtYWluaW5nUnVuVGltZSgpOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH1dOworICAgIH1dOworICAgIGNoZWNrUmVtYWluaW5nUnVuVGltZSgpOworfQorCitQ
cm9jZXNzU3RhdGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcigpCit7CisgICAgW21fcmJz
TW9uaXRvci5nZXQoKSBpbnZhbGlkYXRlXTsKKyAgICBwcm9jZXNzRGlkQmVjb21lUnVubmluZygp
OworfQorCitib29sIFByb2Nlc3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQoKQorewor
ICAgIHJldHVybiBtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxpZCgpOworfQorCit2
b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3VyZUFzc2VydGlvbigpCit7CisgICAgaWYgKG1f
YXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fYXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKG1fY2xpZW50Lm1vbml0
b3JlZFByb2Nlc3NJZGVudGlmaWVyKCksICJQcm9jZXNzU3RhdGVNb25pdG9yIGlzIHJ1bm5pbmci
X3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpCYWNrZ3JvdW5kLCBQcm9jZXNzQXNzZXJ0aW9uOjpN
b2RlOjpTeW5jKTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpzdXNwZW5kUHJvY2Vz
c0lmUG9zc2libGUoKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpXaWxsU3VzcGVuZCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQoKSk7CisgICAg
aWYgKCFtX3N1c3BlbmRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3N1c3BlbmRUaW1lci5zdG9wKCk7CisgICAgc2VuZFN1c3BlbmRNZXNzYWdlKCk7Cit9CisKK3Zv
aWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKQoreworICAg
IGlmIChtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBl
bnN1cmVBc3NlcnRpb24oKTsKKyAgICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7CisgICAgKyttX3Nl
c3Npb25JRDsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgbV9jbGllbnQuc2Vu
ZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShmYWxzZSwgW10geyB9KTsKK30K
Kwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKFNlY29u
ZHMgcmVtYWluaW5nUnVuVGltZSkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmlu
ZykKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQoKSk7Cisg
ICAgQVNTRVJUKCFtX3N1c3BlbmRUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBTZWNvbmRzIHRpbWVv
dXQgPSByZW1haW5pbmdSdW5UaW1lID4gcHJlcGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA/IHJl
bWFpbmluZ1J1blRpbWUgLSBwcmVwYXJlRm9yU3VzcGVuc2lvbkR1cmF0aW9uIDogMF9zOworICAg
IG1fc3VzcGVuZFRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKyAgICBtX3N0YXRlID0gU3Rh
dGU6OldpbGxTdXNwZW5kOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNw
ZW5kTWVzc2FnZSgpCit7CisgICAgbV9jbGllbnQuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3Vz
cGVuZGVkTWVzc2FnZSh0cnVlLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
c2Vzc2lvbklEID0gbV9zZXNzaW9uSURdKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMgfHwgbV9zZXNzaW9uSUQgIT0gc2Vzc2lvbklEKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIG1fYXNzZXJ0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpT
dXNwZW5kZWQ7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6Y2hlY2tS
ZW1haW5pbmdSdW5UaW1lKCkKK3sKKyAgICBkb3VibGUgcnVuVGltZSA9IFtbW1JCU1Byb2Nlc3NI
YW5kbGUgY3VycmVudFByb2Nlc3NdIGFjdGl2ZUxpbWl0YXRpb25zXSBydW5UaW1lXTsKKyAgICBp
ZiAocnVuVGltZSA9PSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25lKQorICAgICAgICByZXR1
cm4gcHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKKworICAgIHByb2Nlc3NXaWxsQmVTdXNwZW5k
ZWQoU2Vjb25kcyhydW5UaW1lKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZj
ZjQ5YzYwODgyMmNkN2FkZWNlZTdlMGJiMmJlN2EwZmZjZWMzNwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgK
QEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8
d3RmL1Byb2Nlc3NJRC5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQgeworcHVibGljOgor
ICAgIHZpcnR1YWwgflByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQoKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3Bl
bmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmlydHVhbCBQcm9j
ZXNzSUQgbW9uaXRvcmVkUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhhODE3Njdl
NGU3ZWU1MmU4NjAxN2NhMWNmMDg4YzNiNDRiZGE2MDUuLmZiMTQyNWUzZmQ5ZDkxNjllZjMwNGQ1
NWFmOGYzNmM0NWVlMDA0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTQ3NSw2ICsxNDc1LDggQEAKIAkJOTM1QjU3OUEyNkY1MTkz
MzAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUI1Nzk4MjZGNTEyNzAwMDhC
NDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmggKi87IH07CiAJCTkzNUVF
QjlCMTI3NzYxN0MwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjk4MTI3NzYx
NkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVFRUI5RjEyNzc2MUFDMDAz
MzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTkzNUZFNUI2MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVN
b25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzVGRTVCMzI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovOyB9Owor
CQk5MzVGRTVCODI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkU1QjUy
ODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAqLzsgfTsKIAkJ
OTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM3MzVFQkEx
QzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5oICovOyB9Owog
CQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5MTA3
NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsg
fTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTFG
MjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi87IH07
CkBAIC01NzIyLDYgKzU3MjQsOSBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tC
dW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM1RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzVFRUI5ODEy
Nzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCMzI4MTM1NjI1MDBEMzU5RTMgLyog
UHJvY2Vzc1N0YXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQ
cm9jZXNzU3RhdGVNb25pdG9yLmg7IHBhdGggPSBpb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCNDI4MTM1NjI1MDBEMzU5RTMgLyog
UHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3IubW07IHBhdGggPSBpb3MvUHJvY2Vzc1N0YXRlTW9u
aXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjUyODEzNTYyNjAw
RDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oOyBwYXRoID0gaW9zL1By
b2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rpb25JdGVtSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MTA3NEUxQkY2QkM2NTAw
OEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC05MjE0LDYgKzkyMTksOSBAQAogCQkJCTBGQ0I0RTM2MThCQkUwNDQwMDBGQ0ZDOSAvKiBQYWdl
Q2xpZW50SW1wbElPUy5oICovLAogCQkJCTBGQ0I0RTM3MThCQkUwNDQwMDBGQ0ZDOSAvKiBQYWdl
Q2xpZW50SW1wbElPUy5tbSAqLywKIAkJCQk4NkY5NTM2MjE4RkY1NTBCMDAxREIyRUYgLyogUHJv
Y2Vzc0Fzc2VydGlvbklPUy5tbSAqLywKKwkJCQk5MzVGRTVCMzI4MTM1NjI1MDBEMzU5RTMgLyog
UHJvY2Vzc1N0YXRlTW9uaXRvci5oICovLAorCQkJCTkzNUZFNUI0MjgxMzU2MjUwMEQzNTlFMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yLm1tICovLAorCQkJCTkzNUZFNUI1MjgxMzU2MjYwMEQzNTlF
MyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8sCiAJCQkJMkRBRjA2RDQxOEJEMUE0
NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLywKIAkJCQkyREFG
MDZEODE4QkQyM0JBMDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQkyREFGMDZENTE4QkQxQTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZp
Y2F0aW9uQ29udHJvbGxlci5tbSAqLywKQEAgLTE0NDkxLDYgKzE0NDk5LDggQEAKIAkJCQk1Q0I5
MzEwOTI2RTg0MzlBMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRYUENVdGlsaXRp
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9j
ZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcx
NjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzVGRTVCNjI4MTM1
NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVy
bWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTY3QTI1MTkxMEI5RDEwMDAw
NEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzA0OEFFNjFB
Q0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xNDgyNCw3ICsxNDgzNCw2IEBACiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAwMEI5OEVCIC8q
IFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUREQTBBMkI1MjdFNTVFNEUwMDVF
MDg2RSAvKiBXZWJGb3JtRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUREQTBBMzAxMjdF
NTVFNEUwMDVFMDg2RSAvKiBXZWJGb3JtRGVsZWdhdGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQk1MTlERkJFNzI4MTM4N0MxMDAzRkY2QUQgLyogV0tOb3RpZmljYXRpb25Qcml2YXRlTWFj
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTIyN0Q4NDI3
QTExMjYxMDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUU1NUNGRDRFMjc5RDMxRTUwMDJGMTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNvbnRyb2xsZXIu
aCBpbiBIZWFkZXJzICovLApAQCAtMTUzMTMsNiArMTUzMjIsNyBAQAogCQkJCTMxOEJFMTc5MTQ3
NDNFNkYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE4
QkUxNzExNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFBMkVDNzQxNDhENTlDQTAwODEwRDcxIC8qIFdLTm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxOURGQkU3MjgxMzg3QzEwMDNG
RjZBRCAvKiBXS05vdGlmaWNhdGlvblByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCTMx
MkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkzN0M0QzA5NDE4MTRCM0FGMDAzNjg4QjkgLyogV0tOU0FycmF5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkzNzNDRUFENjE4NTQxN0FFMDA4QzM2M0QgLyogV0tOU0RhdGEuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDY2NzI2OTM1YTQ5NWM0YTczMDI5MWVjYmQzNzI4YzhlMzQ2NTZkZjIuLjc5MTNj
NWU3ZmIzMTlhN2IzZDlmZTcwNDVmZTI1M2NlMjUyZjdiODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0y
NSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIHN0
b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGFu
ZCB3aWxsIGJlIHN1c3BlbmRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjM5NDMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MjIyODE5MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW06Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJz
aXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTIxICBKb25hdGhhbiBCZWRh
cmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkLndlYmtpdC5vcmdd
IFN1cHBvcnQgYWx0ZXJuYXRpdmUgcmVtb3RlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbSBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWlu
ZW50bHkubW0KaW5kZXggODM4ODUxYmZhODg4YWM0MGFjNzFjZWNhZTUwYTQ4M2FiMWI4NWY3YS4u
ZjdlZWRiNGRmNzFiZGYxNGFmMjNhZTRlM2Q1NTFlYjE0NzA1Y2Q0MSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5l
bnRseS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4
ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tCkBAIC0xNjMsOCArMTYzLDE3IEBAIFRFU1QoSW5kZXhl
ZERCLCBTdXNwZW5kSW1taW5lbnRseUZvclRoaXJkUGFydHlEYXRhYmFzZXMpCiAgICAgW3dlYlZp
ZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKICAgICBydW5UZXN0QW5kQ2hlY2tSZXN1bHQo
QCJkYXRhYmFzZSBpcyBjcmVhdGVkIik7CiAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJz
aXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHldOwot
ICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJv
Y2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZp
Z3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNw
ZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRv
Q29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFk
eVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAInRyYW5z
YWN0aW9uIGlzIGNvbXBsZXRlZCIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0K
aW5kZXggMDI1MjQzMDJmYmRmY2E4M2RhZTJhYTRlZWFmZDM4OWFhYWMzYjYxOS4uYzIxMDJmM2Uw
ZTEwOTI2M2Y1NDYyYTA2Y2E3MzY2MWY4MDE4MWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNp
c3RlbmNlLm1tCkBAIC0xNzAsNyArMTcwLDExIEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3Jh
Z2VQcm9jZXNzU3VzcGVuZHMpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVDVF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RTY3Jp
cHRNZXNzYWdlIGJvZHldKTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRh
U3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseV07CisgICAgcmVh
ZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURh
dGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21w
bGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAg
IHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2tleScsICduZXdWYWx1ZScpIiBjb21w
bGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vycm9yICopIHsKQEAgLTE4NSw3ICsxODksMTEgQEAgVEVT
VChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICB9XTsKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAgICAgCi0gICAgW2Nv
bmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzRGlk
UmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlv
bi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZv
clRlc3Rpbmc6Tk8gY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgcmVhZHlUb0NvbnRpbnVl
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9D
b250aW51ZSk7CiAKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cg==
</data>
<flag name="commit-queue"
          id="487141"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458302</attachid>
            <date>2022-04-25 15:14:05 -0700</date>
            <delta_ts>2022-04-27 17:29:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220425151404.patch</filename>
            <type>text/plain</type>
            <size>42406</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMzMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE1OWZkM2VmMGFlZDhhMmY5
MTI5YzVmMjAwNzRkMzUzYmVmODQ4YTYuLmI3NWNkOTZhODhiNWY1NTgzNWI2ZGM1ZjI4Yjc4MWI3
ZTUxNmMzMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjUgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJy
ZW50bHkgc3VzcGVuZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVU
b1N1c3BlbmQgbWVzc2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlz
IGlzIG5vdCBhIHZlcnkgcmVsaWFibGUgc2luZ2FsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5v
dCBzZW5kIHRoZSBtZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChl
LmcuIFVJIHByb2Nlc3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdo
ZW4gaXQgYWNxdWlyZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2Vz
cyBhY3Rpdml0eSBjb3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9j
ZXNzIHNlbmQgdGhlIG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nl
c3MgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRp
ZXMuIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJT
UHJvY2Vzc01vbml0b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBh
c3NlcnRpb25zLiBXaGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRl
TW9uaXRvciBjaGVjayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGF0IG1vc3QgYmVm
b3JlIHN1c3BlbnNpb24uIAorICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHNlbmRzIG1lc3Nh
Z2UgdG8gYSBwcm9jZXNzIHRvIHN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gdGhlIHJ1
bm5pbmcgdGltZSBsZWZ0IGlzIGxlc3MgCisgICAgICAgIHRoYW4gNSBzZWNvbmRzLCBhbmQgc2Vu
ZHMgbWVzc2FnZSB0byByZXN1bWUgdGhlbSB3aGVuIHRoZSBydW5uaW5nIHRpbWUgYmVjb21lcyB1
bmxpbWl0ZWQuIFByb2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3Bl
bmQgbWVzc2FnZSBlYXJsaWVyIGlmIFByb2Nlc3NUaHJvdHRsZXIgc2F5cyB0aGVyZSBpcyBubyBh
Y3Rpdml0eSBsZWZ0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
UGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9w
ZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Om1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2aXR5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9y
VGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9u
aXRvcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3Rh
dGVNb25pdG9yKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3Nl
cnRpb25WYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3Vy
ZUFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3Bl
bmRQcm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0
b3I6OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0
YXRlTW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjItMDQtMjUgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR0xJQl0gRGVmYXVsdC1oYW5kbGUgcmVjZW50bHktYWRkZWQgUHJvY2Vzc1Rlcm1p
bmF0aW9uUmVhc29uIHZhbHVlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCA0NzFiMWQyM2UyYWQ5ZmI5ODVkOTBlMzM0OTg0MmUwNWJi
ODllMTdkLi5lNmM0ZGM2Mjc3Y2NmZWZkNGVlN2U4MmVmZDM3ODA1NjdjZWZmNGM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDU4
LDcgKzQ1OCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAgICAgICAgIHJldHVybiBOZXR3
b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5ldHdvcmtTZXNzaW9uUGFyYW1l
dGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAgaWYgKG1faXNTdXNwZW5kZWQp
CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkKICAgICAgICAgc2Vzc2lvbi0+
c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAKQEAgLTE1MzMsNyArMTUzMywx
MCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaQogICAgICAgICBzZXNzaW9uLT5lbnN1cmVTV1Nl
cnZlcigpLmNsZWFyQWxsKFtjbGVhclRhc2tzSGFuZGxlcl0geyB9KTsKIAogI2lmIEVOQUJMRShC
VUlMVF9JTl9OT1RJRklDQVRJT05TKQotICAgICAgICBzZXNzaW9uLT5ub3RpZmljYXRpb25NYW5h
Z2VyKCkucmVtb3ZlQWxsUHVzaFN1YnNjcmlwdGlvbnMoW2NsZWFyVGFza3NIYW5kbGVyXShhdXRv
JiYpIHsgfSk7CisgICAgICAgIFdURkxvZ0Fsd2F5cygic2lodWlsOiBbJXBdTmV0d29ya1Byb2Nl
c3M6OmRlbGV0ZVdlYnNpdGVEYXRhIHdpbGwgcmVtb3ZlQWxsUHVzaFN1YnNjcmlwdGlvbnMgc2Vz
c2lvblslbGx1XSIsIHRoaXMsIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKKyAgICAgICAgc2Vzc2lv
bi0+bm90aWZpY2F0aW9uTWFuYWdlcigpLnJlbW92ZUFsbFB1c2hTdWJzY3JpcHRpb25zKFtjbGVh
clRhc2tzSGFuZGxlcl0oYXV0byYmKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoInNpaHVp
bDogTmV0d29ya1Byb2Nlc3M6OmRlbGV0ZVdlYnNpdGVEYXRhIHdpbGwgcmVtb3ZlQWxsUHVzaFN1
YnNjcmlwdGlvbnMgRE9ORSIpOworICAgICAgICB9KTsKICNlbmRpZgogICAgIH0KICNlbmRpZgpA
QCAtMjE1Myw3ICsyMTU2LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVu
ZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwKIHsKICAgICBSRUxF
QVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQgUHJvY2VzcyBpcyAle3B1YmxpY31z
aW4gYmFja2dyb3VuZCIsIHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBtX2VudGVyQmFja2dy
b3VuZFRpbWVzdGFtcCA/ICIiIDogIm5vdCAiKTsKIAotICAgIG1faXNTdXNwZW5kZWQgPSB0cnVl
OwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olllcyk7CiAKICAgICBSZWZQdHI8Q2Fs
bGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6
OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0oKSBtdXRhYmxlIHsKQEAgLTIxNjEsMTEgKzIxNjMsNiBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbAogICAgICAgICBVTlVTRURfVkFSSUFCTEUodGhpcyk7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAgICAgfSk7Ci0gICAgCi0jaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNL
SU5HX1BSRVZFTlRJT04pCi0gICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNw
ZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7Ci0jZW5kaWYKLSAgICBQQ006OlN0b3JlOjpw
cmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogCiAg
ICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0byYgc2Vzc2lvbikgewogICAgICAgICBw
bGF0Zm9ybUZsdXNoQ29va2llcyhzZXNzaW9uLnNlc3Npb25JRCgpLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7IH0pOwpAQCAtMjE3Myw3ICsyMTcwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwK
ICAgICAgICAgaWYgKGF1dG8qIHN3U2VydmVyID0gc2Vzc2lvbi5zd1NlcnZlcigpKQogICAgICAg
ICAgICAgc3dTZXJ2ZXItPnN0YXJ0U3VzcGVuc2lvbihbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0p
OwogI2VuZGlmCi0gICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgfSk7CiAKICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rp
b24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKQEAgLTIyMDMsMjIgKzIxOTks
MTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVn
cm91bmRBY3Rpdml0eSkKICAgICBlbHNlCiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVn
cm91bmRBY3Rpdml0eT0lZCBQcm9jZXNzIGhhcyBiZWVuIGluIGJhY2tncm91bmQgZm9yICVmIHNl
Y29uZHMiLCB0aGlzLCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHksIChNb25vdG9uaWNUaW1lOjpub3co
KSAtIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wLnZhbHVlKCkpLnZhbHVlKCkpOwogCi0gICAg
bV9pc1N1c3BlbmRlZCA9IGZhbHNlOwotCiAgICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93
ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCiAgICAgICAgIGNvbm5lY3Rpb24tPmVuZFN1
c3BlbnNpb24oKTsKIAotI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9O
KQotICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCk7Ci0jZW5kaWYK
LSAgICBQQ006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7Ci0KICAgICBmb3JFYWNoTmV0d29y
a1Nlc3Npb24oW10oYXV0byYgc2Vzc2lvbikgewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
ICAgICAgICAgaWYgKGF1dG8qIHN3U2VydmVyID0gc2Vzc2lvbi5zd1NlcnZlcigpKQogICAgICAg
ICAgICAgc3dTZXJ2ZXItPmVuZFN1c3BlbnNpb24oKTsKICNlbmRpZgotICAgICAgICBzZXNzaW9u
LnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CiAgICAgfSk7CiB9CiAKQEAgLTI3NjksNCArMjc1
NywzMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZQogICAgIGNvbXBsZXRpb25IYW5kbGVyKHNl
c3Npb24gPyBzZXNzaW9uLT5jb3VudE5vbkRlZmF1bHRTZXNzaW9uU2V0cygpIDogMCk7CiB9CiAK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wg
c3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNy
ZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJh
dGlvblN1c3BlbmRlZCA9PSBzdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFJFTEVB
U0VfTE9HKFN0b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpzZXRQcm9jZXNzU3VzcGVuZGVk
IHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7CisgICAgbV9zdG9yYWdlT3BlcmF0aW9u
U3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5k
ZWQpIHsKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKKyAgICAg
ICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKFtjYWxsYmFja0FnZ3Jl
Z2F0b3JdIHsgfSk7CisjZW5kaWYKKyAgICAgICAgUENNOjpTdG9yZTo6cHJlcGFyZUZvclByb2Nl
c3NUb1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKKyAgICAgICAgZm9yRWFjaE5l
dHdvcmtTZXNzaW9uKFsmXSAoYXV0byYgc2Vzc2lvbikgeworICAgICAgICAgICAgc2Vzc2lvbi5z
dG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0oKSB7IH0pOworICAg
ICAgICB9KTsKKyAgICB9IGVsc2UgeworI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQorICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc3Vt
ZSgpOworI2VuZGlmCisgICAgICAgIFBDTTo6U3RvcmU6OnByb2Nlc3NEaWRSZXN1bWUoKTsKKyAg
ICAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0byYgc2Vzc2lvbikgeworICAgICAg
ICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnJlc3VtZSgpOworICAgICAgICB9KTsKKyAg
ICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDRjYjlkYjAwOWE4OWU2ZTc4ZWNmOTU1YjQ3
OTJiNzM2YzIyYmExYmEuLmM4MjBkZDI4MTMwYjgyN2VkYzIyM2ViYzI1NjY2ZjdmMWE1YTk5ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTE3OCw2ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwcm9jZXNzV2lsbFN1c3BlbmRJbW1p
bmVudGx5Rm9yVGVzdGluZ1N5bmMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JG
b3JlZ3JvdW5kQWN0aXZpdHkpOworICAgIHZvaWQgc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBD
YWNoZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KIApA
QCAtNTMwLDcgKzUzMSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdG9yYWdl
T3BlcmF0aW9uU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90b25p
Y1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggMzIwNmRjYjk3NTk5Y2U0NDVhNzNjOTY2N2FmN2QyMWM2MWY3Yzg3MC4uMjkzMjliOGY3NzIy
NjQxNGI5YTAyZjE1OTU5MTZlNWY5YTUyYjIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NCw2ICs3
NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQ
cm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJv
bm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4g
KCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQorICAg
IFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKSAtPiAoKQogCiAg
ICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3
ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpi
b29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNO
YXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRp
b25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2
aWNlc1NQSS5oCmluZGV4IDQyNTEzMmZlOTBjZmJlYzM3NmYzNjkyMTVmMDQzMmNmMmJhOTg4NGQu
LmVlZjY3MDhiNmI3YjY5Nzk1MTA1N2E5ZmViMjk5MDUyNDdjOGMzODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQ
SS5oCkBAIC0xMzEsMTQgKzEzMSwyNCBAQCB0eXBlZGVmIHZvaWQgKF5SQlNQcm9jZXNzVXBkYXRl
SGFuZGxlcikoUkJTUHJvY2Vzc01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYQogCiBAaW50
ZXJmYWNlIFJCU1Byb2Nlc3NNb25pdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4KICsgKGluc3Rh
bmNldHlwZSltb25pdG9yV2l0aENvbmZpZ3VyYXRpb246KE5TX05PRVNDQVBFIFJCU1Byb2Nlc3NN
b25pdG9yQ29uZmlndXJhdG9yKWJsb2NrOworLSAodm9pZClpbnZhbGlkYXRlOwogQGVuZAogCiBA
aW50ZXJmYWNlIFJCU1Byb2Nlc3NQcmVkaWNhdGUgOiBOU09iamVjdCA8UkJTUHJvY2Vzc01hdGNo
aW5nPgogKyAoUkJTUHJvY2Vzc1ByZWRpY2F0ZSAqKXByZWRpY2F0ZU1hdGNoaW5nSGFuZGxlOihS
QlNQcm9jZXNzSGFuZGxlICopcHJvY2VzczsKIEBlbmQKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJ
bnRlZ2VyLCBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMpIHsKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1
ZU5vbmUgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRh
c2tTdGF0ZSAgICAgICAgICAgICAgID0gKDEgPDwgMCksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFs
dWVUYWdzICAgICAgICAgICAgICAgICAgICA9ICgxIDw8IDEpLAorICAgIFJCU1Byb2Nlc3NTdGF0
ZVZhbHVlVGVybWluYXRpb25SZXNpc3RhbmNlICAgPSAoMSA8PCAyKSwKKyAgICBSQlNQcm9jZXNz
U3RhdGVWYWx1ZUxlZ2FjeUFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgMyksCisgICAgUkJTUHJv
Y2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zICAgICAgICA9ICgxIDw8IDQpLAorfTsKIAog
QGludGVyZmFjZSBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIDogTlNPYmplY3QgPE5TQ29weWlu
Zz4KICsgKGluc3RhbmNldHlwZSlkZXNjcmlwdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWR3cml0ZSwgYXNzaWduKSBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMgdmFsdWVzOwogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWR3cml0ZSwgY29weSwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKmVuZG93bWVudE5hbWVzcGFjZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRl
eCAxN2MxMGY5ZjRlODgxNGJlODA4YzA5YzBkZTNlODUxZDA0NGE2MWJmLi4yZmM3MWE4YmJhNjlh
OTE5NTg3MzVlY2I4NjZkYjYzOGFhNjU4YzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00
OTAsNiArNDkwLDcgQEAgVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5
RW5mb3JjZXIubW0KIFVJUHJvY2Vzcy9pb3MvSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIubW0KIFVJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fz
c2VydGlvbklPUy5tbQorVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tCiBVSVBy
b2Nlc3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9pb3Mv
VGV4dENoZWNrZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9T
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJz
aXRlRGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQppbmRleCBlNmYyZmNmMDJiMjRmYTE2MDIxYzNiZTgzZjYxMTZmOTg5
NjEwMDI3Li43ODQ3ZGRjM2E2MjhlYWJkNDc3OWVhNTI2NGM1ZGMzOGZmODY5NWNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0KQEAgLTc1Niw2ICs3NTYsMTMgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNp
dGVEYXRhUmVjb3JkPiB0b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAg
ICBfd2Vic2l0ZURhdGFTdG9yZS0+c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CiB9CiAK
Ky0gKHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClz
dXNwZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRs
ZXIKK3sKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nKHN1c3BlbmRlZCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRy
KGNvbXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAg
IH0pOworfQorCiAtICh2b2lkKV9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tn
cm91bmQKIHsKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5zeW50aGVz
aXplQXBwSXNCYWNrZ3JvdW5kKGJhY2tncm91bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgK
aW5kZXggMzE2YjMyOWE1ZjZjM2E1YWY3ZTdlMjk0OWY4N2YzN2RmNzJlNzM2Mi4uMWFjYTc1MTE5
M2E4NDJiNDczMzkzMTMyZDJlODBhYjdhMmNiZmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0
ZS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9X
S1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKIC0gKHZvaWQpX3NlbmROZXR3b3JrUHJv
Y2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiArICh2b2lkKV9zZXROZXR3b3JrUHJv
Y2Vzc1N1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZzooQk9PTClhbGxvd2VkIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRT
dG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBs
ZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zeW50
aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZp
ZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX21h
a2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMWZiNDJkMzMzZDM4
MTlhZDlhNzNjZjVlNzRjN2U3ZTJjMzIwN2JjMy4uOGFjZjAzZTZkODVhMmJkOTIxMjVmZThmYWYz
Yzc3NDBiY2U4MTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC03OCw2ICs3OCw3IEBACiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRv
ci5oIgogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgogI2VuZGlmCiAKQEAgLTEz
OTIsNiArMTM5MywyOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlk
UmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBSZXN1bWVSZWFzb246OkZvcmVn
cm91bmRBY3Rpdml0eSksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZp
bmlzaExhc3RBY3Rpdml0aXkoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYg
KG1fcHJvY2Vzc1N0YXRlTW9uaXRvcikKKyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yLT5z
dXNwZW5kUHJvY2Vzc0lmUG9zc2libGUoKTsKKyNlbmRpZgorfQorCit2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBz
dXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRT
dG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChzdXNwZW5kZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitwaWRfdCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lv
bklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTgyOSwxMSArMTg1MiwyMSBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om5hdmlnYXRlU2VydmljZVdvcmtlckNsaWVudChX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGlmICghbV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0
ZU1vbml0b3IgPSBtYWtlVW5pcXVlPFByb2Nlc3NTdGF0ZU1vbml0b3I+KCp0aGlzKTsKKyNlbmRp
ZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uRGlkRW50
ZXJCYWNrZ3JvdW5kKCksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxp
Y2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1v
bml0b3IgPSBudWxscHRyOworI2VuZGlmCisKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CmluZGV4IGEyMjhlNGMyYTQyODNjMTJkNDhiOWE5ZTVkNDhmMTMxYjhjMGU3NGYuLjVhNTQ0MDBi
MDk3MzEyZjEwMWE1ZWY4MjRjYWU1MmU0NGMzYjUzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01NSw2ICs1
NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKKyNpbmNs
dWRlICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIElQ
QyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTEwNSw3ICsxMTAsMTEgQEAgc3Ry
dWN0IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdlYnNpdGVE
YXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZpbmFsIDog
cHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50IHsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5
UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorICAgICwgcHVibGljIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQKKyNl
bmRpZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHVzaW5n
IFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CkBAIC0yNDIs
NiArMjUxLDE1IEBAIHB1YmxpYzoKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CiAgICAg
dm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsOwogICAgIEFTQ0lJ
TGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQcm9jZXNz
Il9zOyB9CisgICAgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgZmluYWw7CisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgIC8vIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQKKyAg
ICB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNw
ZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgUHJvY2Vzc0lE
IG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisjZWxzZQorICAgIHZv
aWQgc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyNlbmRpZgogICAgIAogICAgIHN0YXRp
YyB2b2lkIHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNl
bmRQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwpAQCAtNDI4LDYgKzQ0
Niw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8
aWQ+IG1fYmFja2dyb3VuZE9ic2VydmVyOwogICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5k
T2JzZXJ2ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IG1fcHJv
Y2Vzc1N0YXRlTW9uaXRvcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCA0NzEyZjJlY2ZiYTJjNWE5OWUyZDZiYWQ0ZjFl
MDVjNTdkZGU4NmE1Li5lNTMwMzMxZTMzZTAzYTk2YWQ3Y2JkMzYzY2FmZmYxMjY0MDM4Yzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtNjgs
MTIgKzY4LDE4IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkoRm9yZWdy
b3VuZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnJl
bW92ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCk7CisKKyAgICBp
ZiAoIXNob3VsZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLmRpZEZpbmlzaExhc3RB
Y3Rpdml0aXkoKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eShC
YWNrZ3JvdW5kQWN0aXZpdHkmIGFjdGl2aXR5KQogewogICAgIG1fYmFja2dyb3VuZEFjdGl2aXRp
ZXMucmVtb3ZlKCZhY3Rpdml0eSk7CiAgICAgdXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKKwor
ICAgIGlmICghc2hvdWxkQmVSdW5uYWJsZSgpKQorICAgICAgICBtX3Byb2Nlc3MuZGlkRmluaXNo
TGFzdEFjdGl2aXRpeSgpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OmludmFsaWRhdGVB
bGxBY3Rpdml0aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXJDbGllbnQuaAppbmRleCBmYzc3YmE5NTMzOWE0NmY4ODc5NjZmOGZjYjMwYTU5ZGZkZWFi
NDY2Li5iNDhkMWQ4ZGRlYmNiMDY3MGQ4YTI0ZTE4NjExNGJkZWRhYmVjYTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC00MSw2
ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
UmVzdW1lUmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUo
UHJvY2Vzc0Fzc2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJhbCBjbGll
bnROYW1lKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZp
dGl5KCkgeyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmlu
ZGV4IGNiNjIzZTVlMzc0NWZkZDkxZDMxODQ0ZmJkOTMyMDk4ODZkMDBlNmUuLjI1ZTkxYzA2YWE4
YjhjODc4NjUwY2NmZTczNzQ3MmZhNjlmMGM3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjA4
LDYgKzE2MDgsMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NE
aWRSZXN1bWUoKQogICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJv
Y2Vzc1Rocm90dGxlckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwog
fQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVk
Rm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFNldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShzdXNwZW5kZWQsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKK30KKwogYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRW5hYmxlZCgpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BS
RVZFTlRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZDlkNjIyMzBmOTA1YjQ5YWRjZWFjZWJmNTllYmEx
YWFkYWJiN2Q4ZC4uNDIxNDExNTc2ZTQwYzExMTNmNzJhMDc1Yjk3NTFhY2U0OGNmMjIzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtMTQzLDYgKzE0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmROZXR3
b3JrUHJvY2Vzc1ByZXBhcmVUb1N1c3BlbmRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHlGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsK
KyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1
c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkVGVybWluYXRlKE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKICAgICBzdGF0aWMgdm9p
ZCBtYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcoKTsKICAgICBzdGF0
aWMgYm9vbCBzaG91bGRNYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3Rpbmco
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVN
b25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRv
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUwODRlZWVmOGU5OTYxNmNlOWVjNzkwM2JiYTBkYTViMmVkYTg4MzMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0
YXRlTW9uaXRvci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgPFdlYkNvcmUvVGltZXIuaD4K
KyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBSQlNQcm9jZXNzTW9uaXRv
cjsKKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbjsKK2NsYXNzIFByb2Nlc3NTdGF0ZU1v
bml0b3JDbGllbnQ7CisKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3IgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8UHJvY2Vzc1N0YXRlTW9uaXRvcj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IoUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudCYpOworICAgIH5Qcm9jZXNzU3RhdGVNb25pdG9yKCk7CisgICAgdm9pZCBzdXNwZW5k
UHJvY2Vzc0lmUG9zc2libGUoKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzQXNzZXJ0aW9uVmFs
aWQoKTsKKyAgICB2b2lkIGVuc3VyZUFzc2VydGlvbigpOworICAgIHZvaWQgcHJvY2Vzc0RpZEJl
Y29tZVJ1bm5pbmcoKTsKKyAgICB2b2lkIHByb2Nlc3NXaWxsQmVTdXNwZW5kZWQoU2Vjb25kcyk7
CisgICAgdm9pZCBzZW5kU3VzcGVuZE1lc3NhZ2UoKTsKKyAgICB2b2lkIGNoZWNrUmVtYWluaW5n
UnVuVGltZSgpOworCisgICAgZW51bSBjbGFzcyBTdGF0ZSA6IHVpbnQ4X3QgeyBVbmtub3duLCBS
dW5uaW5nLCBXaWxsU3VzcGVuZCwgU3VzcGVuZGVkIH07CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0
YXRlOjpVbmtub3duIH07CisgICAgUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCYgbV9jbGllbnQ7
CisgICAgV2ViQ29yZTo6VGltZXIgbV9zdXNwZW5kVGltZXI7CisgICAgUmVmUHRyPFByb2Nlc3NB
c3NlcnRpb24+IG1fYXNzZXJ0aW9uOworICAgIHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIFJl
dGFpblB0cjxSQlNQcm9jZXNzTW9uaXRvcj4gbV9yYnNNb25pdG9yOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZTViMjNlM2I4NWE3OWUxMDI5YWY0MDRkYzY3ZGEwYzU4NjZjM2NmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3Iu
bW0KQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbXBvcnQgIlByb2Nlc3NB
c3NlcnRpb24uaCIKKyNpbXBvcnQgIlByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCIKKyNpbXBv
cnQgIlJ1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitz
dGF0aWMgY29uc3RleHByIFNlY29uZHMgcHJlcGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA9ICA1
X3M7CisKK1Byb2Nlc3NTdGF0ZU1vbml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IoUHJvY2Vzc1N0
YXRlTW9uaXRvckNsaWVudCYgY2xpZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwg
bV9zdXNwZW5kVGltZXIoKnRoaXMsICZQcm9jZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1l
c3NhZ2UpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAg
bV9yYnNNb25pdG9yID0gW1JCU1Byb2Nlc3NNb25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlv
bjpbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25m
aWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsKKyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3Jp
cHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3Jd
OworICAgICAgICBbZGVzY3JpcHRvciBzZXRWYWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdh
Y3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAg
ICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2NyaXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtj
b25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQcm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNo
aW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxlIGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAg
W2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXShS
QlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2VzcywgUkJT
UHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUpIHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5M
b29wKFt3ZWFrVGhpc10geworICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAg
ICAgICAgICAgICAgd2Vha1RoaXMtPmNoZWNrUmVtYWluaW5nUnVuVGltZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH1dOworICAgIH1dOworICAgIGNoZWNrUmVtYWluaW5nUnVuVGltZSgp
OworfQorCitQcm9jZXNzU3RhdGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcigpCit7Cisg
ICAgW21fcmJzTW9uaXRvci5nZXQoKSBpbnZhbGlkYXRlXTsKKyAgICBwcm9jZXNzRGlkQmVjb21l
UnVubmluZygpOworfQorCitib29sIFByb2Nlc3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFs
aWQoKQoreworICAgIHJldHVybiBtX2Fzc2VydGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxpZCgp
OworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3VyZUFzc2VydGlvbigpCit7Cisg
ICAgaWYgKG1fYXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fYXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKG1fY2xp
ZW50Lm1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCksICJQcm9jZXNzU3RhdGVNb25pdG9yIGlz
IHJ1bm5pbmciX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpCYWNrZ3JvdW5kLCBQcm9jZXNzQXNz
ZXJ0aW9uOjpNb2RlOjpTeW5jKTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpzdXNw
ZW5kUHJvY2Vzc0lmUG9zc2libGUoKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpXaWxs
U3VzcGVuZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQo
KSk7CisgICAgaWYgKCFtX3N1c3BlbmRUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7CisgICAgc2VuZFN1c3BlbmRNZXNzYWdlKCk7
Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmco
KQoreworICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpSdW5uaW5nKQorICAgICAgICByZXR1cm47
CisKKyAgICBlbnN1cmVBc3NlcnRpb24oKTsKKyAgICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7Cisg
ICAgKyttX3Nlc3Npb25JRDsKKyAgICBtX3N0YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgbV9j
bGllbnQuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShmYWxzZSwgW10g
eyB9KTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzV2lsbEJlU3VzcGVu
ZGVkKFNlY29uZHMgcmVtYWluaW5nUnVuVGltZSkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0
ZTo6UnVubmluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFs
aWQoKSk7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBTZWNv
bmRzIHRpbWVvdXQgPSByZW1haW5pbmdSdW5UaW1lID4gcHJlcGFyZUZvclN1c3BlbnNpb25EdXJh
dGlvbiA/IHJlbWFpbmluZ1J1blRpbWUgLSBwcmVwYXJlRm9yU3VzcGVuc2lvbkR1cmF0aW9uIDog
MF9zOworICAgIG1fc3VzcGVuZFRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKyAgICBtX3N0
YXRlID0gU3RhdGU6OldpbGxTdXNwZW5kOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6
OnNlbmRTdXNwZW5kTWVzc2FnZSgpCit7CisgICAgbV9jbGllbnQuc2VuZFNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkTWVzc2FnZSh0cnVlLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgc2Vzc2lvbklEID0gbV9zZXNzaW9uSURdKCkgbXV0YWJsZSB7CisgICAgICAgIGlm
ICghd2Vha1RoaXMgfHwgbV9zZXNzaW9uSUQgIT0gc2Vzc2lvbklEKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIG1fYXNzZXJ0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgbV9zdGF0ZSA9
IFN0YXRlOjpTdXNwZW5kZWQ7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRv
cjo6Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCkKK3sKKyAgICBkb3VibGUgcnVuVGltZSA9IFtbW1JC
U1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3NdIGFjdGl2ZUxpbWl0YXRpb25zXSBydW5UaW1l
XTsKKyAgICBpZiAocnVuVGltZSA9PSBSQlNQcm9jZXNzVGltZUxpbWl0YXRpb25Ob25lKQorICAg
ICAgICByZXR1cm4gcHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKKworICAgIHByb2Nlc3NXaWxs
QmVTdXNwZW5kZWQoU2Vjb25kcyhydW5UaW1lKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjZjZjQ5YzYwODgyMmNkN2FkZWNlZTdlMGJiMmJlN2EwZmZjZWMzNwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9y
Q2xpZW50LmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQgewor
cHVibGljOgorICAgIHZpcnR1YWwgflByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQoKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShi
b29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CisgICAgdmly
dHVhbCBQcm9jZXNzSUQgbW9uaXRvcmVkUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhhODE3NjdlNGU3ZWU1MmU4NjAxN2NhMWNmMDg4YzNiNDRiZGE2MDUuLmZiMTQyNWUzZmQ5ZDkx
NjllZjMwNGQ1NWFmOGYzNmM0NWVlMDA0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ3NSw2ICsxNDc1LDggQEAKIAkJOTM1QjU3
OUEyNkY1MTkzMzAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUI1Nzk4MjZG
NTEyNzAwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmggKi87IH07
CiAJCTkzNUVFQjlCMTI3NzYxN0MwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVF
Qjk4MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVFRUI5RjEy
Nzc2MUFDMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjk2MTI3NzYxNkQwMDMzMjJC
OCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNUZFNUI2MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9j
ZXNzU3RhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzVGRTVCMzI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5o
ICovOyB9OworCQk5MzVGRTVCODI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM1RkU1QjUyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAq
LzsgfTsKIAkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
ICovOyB9OwogCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudElu
Zm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggKi87IH07CkBAIC01NzIyLDYgKzU3MjQsOSBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIy
QjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM1RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCMzI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLmg7IHBhdGggPSBpb3MvUHJvY2Vzc1N0YXRlTW9u
aXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCNDI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3IubW07IHBhdGggPSBpb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjUy
ODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oOyBwYXRo
ID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rp
b25JdGVtSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MTA3NEUx
QkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTgg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MjE0LDYgKzkyMTksOSBAQAogCQkJCTBGQ0I0RTM2MThCQkUwNDQwMDBGQ0ZD
OSAvKiBQYWdlQ2xpZW50SW1wbElPUy5oICovLAogCQkJCTBGQ0I0RTM3MThCQkUwNDQwMDBGQ0ZD
OSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSAqLywKIAkJCQk4NkY5NTM2MjE4RkY1NTBCMDAxREIy
RUYgLyogUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSAqLywKKwkJCQk5MzVGRTVCMzI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovLAorCQkJCTkzNUZFNUI0MjgxMzU2MjUw
MEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLm1tICovLAorCQkJCTkzNUZFNUI1MjgxMzU2
MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8sCiAJCQkJMkRBRjA2
RDQxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLywK
IAkJCQkyREFGMDZEODE4QkQyM0JBMDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkyREFGMDZENTE4QkQxQTQ3MDA4MUNFQjEgLyogU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbSAqLywKQEAgLTE0NDkxLDYgKzE0NDk5LDggQEAK
IAkJCQk1Q0I5MzEwOTI2RTg0MzlBMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRY
UENVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJF
RiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZF
MTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzVG
RTVCNjI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTY3QTI1MTkx
MEI5RDEwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xNDgyNCw3ICsxNDgzNCw2IEBACiAJCQkJQkNFNDY5NTQxMjE0RTZDQjAw
MEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUREQTBBMkI1MjdF
NTVFNEUwMDVFMDg2RSAvKiBXZWJGb3JtRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCURE
QTBBMzAxMjdFNTVFNEUwMDVFMDg2RSAvKiBXZWJGb3JtRGVsZWdhdGVQcml2YXRlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1MTlERkJFNzI4MTM4N0MxMDAzRkY2QUQgLyogV0tOb3RpZmljYXRpb25Q
cml2YXRlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U0Njk1NjEyMTRFNkNCMDAwQjk4RUIg
LyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlF
NTIyN0Q4NDI3QTExMjYxMDA4RUFCNTcgLyogV2ViRm91bmRUZXh0UmFuZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU1NUNGRDRFMjc5RDMxRTUwMDJGMTAyMCAvKiBXZWJGb3VuZFRleHRSYW5nZUNv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTUzMTMsNiArMTUzMjIsNyBAQAogCQkJCTMx
OEJFMTc5MTQ3NDNFNkYwMEE4RkJCMiAvKiBXS05vdGlmaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE4QkUxNzExNDc0M0RCMTAwQThGQkIyIC8qIFdLTm90aWZpY2F0aW9uTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNzQxNDhENTlDQTAwODEwRDcxIC8qIFdLTm90aWZp
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxOURGQkU3Mjgx
Mzg3QzEwMDNGRjZBRCAvKiBXS05vdGlmaWNhdGlvblByaXZhdGVNYWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M0QzA5NDE4MTRCM0FGMDAzNjg4QjkgLyogV0tOU0Fy
cmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzNDRUFENjE4NTQxN0FFMDA4QzM2M0QgLyogV0tO
U0RhdGEuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDY2NzI2OTM1YTQ5NWM0YTczMDI5MWVjYmQzNzI4YzhlMzQ2NTZk
ZjIuLjc5MTNjNWU3ZmIzMTlhN2IzZDlmZTcwNDVmZTI1M2NlMjUyZjdiODUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMi0wNC0yNSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBT
dXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNr
Z3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MjIy
ODE5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50
bHkubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0
b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTIxICBKb25h
dGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbZXdzLWJ1aWxkLndl
YmtpdC5vcmddIFN1cHBvcnQgYWx0ZXJuYXRpdmUgcmVtb3RlcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRs
eS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3Vz
cGVuZEltbWluZW50bHkubW0KaW5kZXggODM4ODUxYmZhODg4YWM0MGFjNzFjZWNhZTUwYTQ4M2Fi
MWI4NWY3YS4uZjdlZWRiNGRmNzFiZGYxNGFmMjNhZTRlM2Q1NTFlYjE0NzA1Y2Q0MSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNw
ZW5kSW1taW5lbnRseS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tCkBAIC0xNjMsOCArMTYzLDE3IEBAIFRF
U1QoSW5kZXhlZERCLCBTdXNwZW5kSW1taW5lbnRseUZvclRoaXJkUGFydHlEYXRhYmFzZXMpCiAg
ICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKICAgICBydW5UZXN0QW5kQ2hl
Y2tSZXN1bHQoQCJkYXRhYmFzZSBpcyBjcmVhdGVkIik7CiAKLSAgICBbY29uZmlndXJhdGlvbi5n
ZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWlu
ZW50bHldOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmRO
ZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7Cisg
ICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJh
dGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAg
ICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNl
OworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAg
ICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJ1blRlc3RBbmRDaGVja1Jlc3Vs
dChAInRyYW5zYWN0aW9uIGlzIGNvbXBsZXRlZCIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lz
dGVuY2UubW0KaW5kZXggMDI1MjQzMDJmYmRmY2E4M2RhZTJhYTRlZWFmZDM4OWFhYWMzYjYxOS4u
YzIxMDJmM2UwZTEwOTI2M2Y1NDYyYTA2Y2E3MzY2MWY4MDE4MWQ2MSAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5j
ZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3Rv
cmFnZVBlcnNpc3RlbmNlLm1tCkBAIC0xNzAsNyArMTcwLDExIEBAIFRFU1QoV0tXZWJWaWV3LCBM
b2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgIEVYUEVDVF9XS19TVFJFUShAInZhbHVlIiwg
W2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseV07
CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5n
OllFUyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVl
KTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOwogICAgIFt3ZWJWaWV3MSBldmFsdWF0
ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2tleScsICduZXdWYWx1
ZScpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlkLCBOU0Vycm9yICopIHsKQEAgLTE4NSw3ICsxODks
MTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICB9
XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAgICAg
Ci0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQ
cm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29u
ZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1
c3BlbmRlZEZvclRlc3Rpbmc6Tk8gY29tcGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgcmVhZHlU
b0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlYWR5VG9Db250aW51ZSk7CiAKICAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsK
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458483</attachid>
            <date>2022-04-27 17:29:47 -0700</date>
            <delta_ts>2022-04-29 10:56:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220427172946.patch</filename>
            <type>text/plain</type>
            <size>44203</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM1MjA2ZWFhNmZiZWMxMzcx
MjU5M2E0MzExMzBmZWM5Zjk4YzYyOGEuLjJmMWE5MDZkZjczNzc3YTJjNzBjOTMxNzYyMmU2YzQ3
MmFjYzYzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjcgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJy
ZW50bHkgc3VzcGVuZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVU
b1N1c3BlbmQgbWVzc2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlz
IGlzIG5vdCBhIHZlcnkgcmVsaWFibGUgc2lnbmFsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5v
dCBzZW5kIHRoZSBtZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChl
LmcuIFVJIHByb2Nlc3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdo
ZW4gaXQgYWNxdWlyZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2Vz
cyBhY3Rpdml0eSBjb3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9j
ZXNzIHNlbmQgdGhlIG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nl
c3MgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRp
ZXMuIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJT
UHJvY2Vzc01vbml0b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBh
c3NlcnRpb25zLiBXaGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRl
TW9uaXRvciBjaGVjayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGF0IG1vc3QgYmVm
b3JlIHN1c3BlbnNpb24uIAorICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHNlbmRzIG1lc3Nh
Z2UgdG8gYSBwcm9jZXNzIHRvIHN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gdGhlIHJ1
bm5pbmcgdGltZSBsZWZ0IGlzIGxlc3MgCisgICAgICAgIHRoYW4gNSBzZWNvbmRzLCBhbmQgc2Vu
ZHMgbWVzc2FnZSB0byByZXN1bWUgdGhlbSB3aGVuIHRoZSBydW5uaW5nIHRpbWUgYmVjb21lcyB1
bmxpbWl0ZWQuIFByb2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3Bl
bmQgbWVzc2FnZSBlYXJsaWVyIGlmIFByb2Nlc3NUaHJvdHRsZXIgc2F5cyB0aGVyZSBpcyBubyBh
Y3Rpdml0eSBsZWZ0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9y
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICog
UGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIFNv
dXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVE
YXRhU3RvcmUubW06CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9w
ZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Om1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2aXR5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9y
VGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9u
aXRvcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3Rh
dGVNb25pdG9yKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3Nl
cnRpb25WYWxpZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3Vy
ZUFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3Bl
bmRQcm9jZXNzSWZQb3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0
b3I6OnByb2Nlc3NEaWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0
YXRlTW9uaXRvcjo6cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjItMDQtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgQXZvaWQgc2VuZGluZyBhIGZsdXNoIElQQyB0byB0aGUgR1BVIHByb2Nlc3Mgd2hlbiBk
ZXN0cm95aW5nIGEgUmVtb3RlSW1hZ2VCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTJmZjJhY2U1MjUyMDg5M2IwMjgzMjgw
NmQ2NGU3N2NlMDhjM2FlYS4uMzg0YzBmMTg3NTA4MDIyY2UxMDI0YWQxYzI0NDQ5OWIzZWNkMjlh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0
YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycwogICAgICAgICBy
ZXR1cm4gTmV0d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywgcGFyYW1ldGVycy5uZXR3b3JrU2Vz
c2lvblBhcmFtZXRlcnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGlmIChtX2lz
U3VzcGVuZGVkKQorICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQpCiAgICAgICAg
IHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0pOwogfQogCkBAIC0yMTYw
LDcgKzIxNjAsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wg
aXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogewogICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVu
ZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICV7cHVibGljfXNpbiBiYWNr
Z3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50ZXJCYWNrZ3JvdW5kVGlt
ZXN0YW1wID8gIiIgOiAibm90ICIpOwogCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7CiAgICAg
bG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKIAogICAgIFJlZlB0cjxDYWxsYmFja0Fn
Z3JlZ2F0b3I+IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRl
KFt0aGlzLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgp
IG11dGFibGUgewpAQCAtMjE2OCwxMSArMjE2Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBy
ZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRs
CiAgICAgICAgIFVOVVNFRF9WQVJJQUJMRSh0aGlzKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKICAgICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJF
VkVOVElPTikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2Nh
bGxiYWNrQWdncmVnYXRvcl0geyB9KTsKLSNlbmRpZgotICAgIFBDTTo6U3RvcmU6OnByZXBhcmVG
b3JQcm9jZXNzVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAKICAgICBmb3JF
YWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAgICAgICAgIHBsYXRmb3Jt
Rmx1c2hDb29raWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CkBAIC0yMTgwLDcgKzIxNzQsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9T
dXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAg
ICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkpCiAgICAgICAgICAgICBz
d1NlcnZlci0+c3RhcnRTdXNwZW5zaW9uKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAjZW5k
aWYKLSAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW2NhbGxiYWNrQWdn
cmVnYXRvcl0geyB9KTsKICAgICB9KTsKIAogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQpAQCAtMjIxMCwyMiArMjIwMywxNCBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5KQogICAgIGVsc2UKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5PSVkIFByb2Nlc3MgaGFzIGJlZW4gaW4gYmFja2dyb3VuZCBmb3IgJWYgc2Vjb25kcyIs
IHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9l
bnRlckJhY2tncm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSk7CiAKLSAgICBtX2lzU3Vz
cGVuZGVkID0gZmFsc2U7Ci0KICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlByb2Nl
c3NDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZW5kU3VzcGVuc2lv
bigpOwogCi0jaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKLSNlbmRpZgotICAgIFBD
TTo6U3RvcmU6OnByb2Nlc3NEaWRSZXN1bWUoKTsKLQogICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lv
bihbXShhdXRvJiBzZXNzaW9uKSB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICAg
ICBpZiAoYXV0byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkpCiAgICAgICAgICAgICBz
d1NlcnZlci0+ZW5kU3VzcGVuc2lvbigpOwogI2VuZGlmCi0gICAgICAgIHNlc3Npb24uc3RvcmFn
ZU1hbmFnZXIoKS5yZXN1bWUoKTsKICAgICB9KTsKIH0KIApAQCAtMjc3Niw0ICsyNzYxLDMxIEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc2Vzc2lvbiA/
IHNlc3Npb24tPmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgOiAwKTsKIH0KIAordm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5k
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3Vz
cGVuZGVkID09IHN1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9MT0co
U3RvcmFnZSwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFByb2Nlc3NTdXNwZW5kZWQgc3VzcGVu
ZGVkPSVkIiwgdGhpcywgc3VzcGVuZGVkKTsKKyAgICBtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5k
ZWQgPSBzdXNwZW5kZWQ7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkgewor
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQorICAgICAgICBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0g
eyB9KTsKKyNlbmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1RvU3Vz
cGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgICAgICBmb3JFYWNoTmV0d29ya1Nl
c3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBzZXNzaW9uLnN0b3JhZ2VN
YW5hZ2VyKCkuc3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSgpIHsgfSk7CisgICAgICAgIH0p
OworICAgIH0gZWxzZSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJ
T04pCisgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCk7Cisj
ZW5kaWYKKyAgICAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3VtZSgpOworICAgICAgICBm
b3JFYWNoTmV0d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBz
ZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgIH0pOworICAgIH0KK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNGNiOWRiMDA5YTg5ZTZlNzhlY2Y5NTViNDc5MmI3MzZj
MjJiYTFiYS4uYzgyMGRkMjgxMzBiODI3ZWRjMjIzZWJjMjU2NjZmN2YxYTVhOTllYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc4LDYg
KzE3OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlG
b3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJl
cGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91
bmRBY3Rpdml0eSk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29s
IHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIENhY2hlTW9k
ZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MzAs
NyArNTMxLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2Z0cEVuYWJsZWQgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N0b3JhZ2VPcGVyYXRp
b25TdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4g
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzMjA2
ZGNiOTc1OTljZTQ0NWE3M2M5NjY3YWY3ZDIxYzYxZjdjODcwLi4yOTMyOWI4Zjc3MjI2NDE0Yjlh
MDJmMTU5NTkxNmU1ZjlhNTJiMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc0LDYgKzc0LDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFByb2Nlc3NX
aWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCiAg
ICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKQogICAg
IFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCisgICAgU2V0U3Rv
cmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQpIC0+ICgpCiAKICAgICBQcmVj
b25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OldlYlBhZ2VQcm94eUlk
ZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJ
RCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBlbnVtOmJvb2wgc3Rk
OjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0TmF2aWdhdGlvbldhc0Fw
cEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5o
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJ
LmgKaW5kZXggNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIxNWYwNDMyY2YyYmE5ODg0ZC4uZWVmNjcw
OGI2YjdiNjk3OTUxMDU3YTlmZWIyOTkwNTI0N2M4YzM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKQEAg
LTEzMSwxNCArMTMxLDI0IEBAIHR5cGVkZWYgdm9pZCAoXlJCU1Byb2Nlc3NVcGRhdGVIYW5kbGVy
KShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJTUHJvY2Vzc0hhCiAKIEBpbnRlcmZhY2Ug
UkJTUHJvY2Vzc01vbml0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0eXBl
KW1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjooTlNfTk9FU0NBUEUgUkJTUHJvY2Vzc01vbml0b3JD
b25maWd1cmF0b3IpYmxvY2s7CistICh2b2lkKWludmFsaWRhdGU7CiBAZW5kCiAKIEBpbnRlcmZh
Y2UgUkJTUHJvY2Vzc1ByZWRpY2F0ZSA6IE5TT2JqZWN0IDxSQlNQcm9jZXNzTWF0Y2hpbmc+CiAr
IChSQlNQcm9jZXNzUHJlZGljYXRlICopcHJlZGljYXRlTWF0Y2hpbmdIYW5kbGU6KFJCU1Byb2Nl
c3NIYW5kbGUgKilwcm9jZXNzOwogQGVuZAordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIs
IFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcykgeworICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTm9uZSAg
ICAgICAgICAgICAgICAgICAgPSAwLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGFza1N0YXRl
ICAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhZ3Mg
ICAgICAgICAgICAgICAgICAgID0gKDEgPDwgMSksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVU
ZXJtaW5hdGlvblJlc2lzdGFuY2UgICA9ICgxIDw8IDIpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZh
bHVlTGVnYWN5QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8PCAzKSwKKyAgICBSQlNQcm9jZXNzU3Rh
dGVWYWx1ZU1vZGVybkFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgNCksCit9OwogCiBAaW50ZXJm
YWNlIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBOU09iamVjdCA8TlNDb3B5aW5nPgogKyAo
aW5zdGFuY2V0eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRl
LCBhc3NpZ24pIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2YWx1ZXM7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqZW5k
b3dtZW50TmFtZXNwYWNlczsKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDE3YzEw
ZjlmNGU4ODE0YmU4MDhjMDljMGRlM2U4NTFkMDQ0YTYxYmYuLjJmYzcxYThiYmE2OWE5MTk1ODcz
NWVjYjg2NmRiNjM4YWE2NThjNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ5MCw2ICs0
OTAsNyBAQCBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNl
ci5tbQogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdVcGRhdGVEZWZlcnJlci5tbQogVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9u
SU9TLm1tCitVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0KIFVJUHJvY2Vzcy9p
b3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbQogVUlQcm9jZXNzL2lvcy9UZXh0Q2hl
Y2tlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
U3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0
YVN0b3JlLm1tCmluZGV4IGU2ZjJmY2YwMmIyNGZhMTYwMjFjM2JlODNmNjExNmY5ODk2MTAwMjcu
Ljc4NDdkZGMzYTYyOGVhYmQ0Nzc5ZWE1MjY0YzVkYzM4ZmY4Njk1Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5t
bQpAQCAtNzU2LDYgKzc1NiwxMyBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFS
ZWNvcmQ+IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIF93ZWJz
aXRlRGF0YVN0b3JlLT5zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsKIH0KIAorLSAodm9p
ZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRl
ZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgorewor
ICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmcoc3VzcGVuZGVkLCBbY29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxl
dGlvbkhhbmRsZXIpXSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgfSk7Cit9
CisKIC0gKHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZAog
ewogICAgIF93ZWJzaXRlRGF0YVN0b3JlLT5uZXR3b3JrUHJvY2VzcygpLnN5bnRoZXNpemVBcHBJ
c0JhY2tncm91bmQoYmFja2dyb3VuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAppbmRleCAz
MTZiMzI5YTVmNmMzYTVhZjdlN2UyOTQ5Zjg3ZjM3ZGY3MmU3MzYyLi4xYWNhNzUxMTkzYTg0MmI0
NzMzOTMxMzJkMmU4MGFiN2EyY2JmYmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKQEAg
LTEwMSw2ICsxMDEsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLV2Vic2l0
ZURhdGFTdG9yZUZldGNoT3B0aW9ucykgewogLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX3NldE5ldHdvcmtQcm9jZXNzU3Vz
cGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nOihCT09MKWFsbG93ZWQgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3NldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNwZW5kZWQgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3N5bnRoZXNpemVB
cHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEy
LjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25ldHdvcmtQcm9jZXNzSWRlbnRpZmllciBXS19B
UElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogKyAodm9pZClfbWFrZU5leHRO
ZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAxZmI0MmQzMzNkMzgxOWFkOWE3
M2NmNWU3NGM3ZTdlMmMzMjA3YmMzLi44YWNmMDNlNmQ4NWEyYmQ5MjEyNWZlOGZhZjNjNzc0MGJj
ZTgxNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTc4LDYgKzc4LDcgQEAKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCiAj
aW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CiAjZW5kaWYKIApAQCAtMTM5Miw2ICsx
MzkzLDI4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUo
UmVzdW1lUmVhc29uIHJlYXNvbikKICAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFj
dGl2aXR5KSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSgpCit7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9wcm9j
ZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1vbml0b3ItPnN1c3BlbmRQ
cm9jZXNzSWZQb3NzaWJsZSgpOworI2VuZGlmCit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFN0b3JhZ2VP
cGVyYXRpb25zU3VzcGVuZGVkKHN1c3BlbmRlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKK30KKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK3BpZF90IE5ldHdvcmtQcm9jZXNz
UHJveHk6Om1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
cHJvY2Vzc0lkZW50aWZpZXIoKTsKK30KKworI2VuZGlmCisKIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6Zmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkZsdXNoQ29va2llcyhzZXNzaW9uSUQpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CkBAIC0xODI5LDExICsxODUyLDIxIEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6bmF2aWdhdGVTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRp
b25EaWRFbnRlckJhY2tncm91bmQoKQogeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAg
aWYgKCFtX3Byb2Nlc3NTdGF0ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRv
ciA9IG1ha2VVbmlxdWU8UHJvY2Vzc1N0YXRlTW9uaXRvcj4oKnRoaXMpOworI2VuZGlmCisKICAg
ICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmQoKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlm
IChtX3Byb2Nlc3NTdGF0ZU1vbml0b3IpCisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvciA9
IG51bGxwdHI7CisjZW5kaWYKKwogICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpB
cHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
YTIyOGU0YzJhNDI4M2MxMmQ0OGI5YTllNWQ0OGYxMzFiOGMwZTc0Zi4uNWE1NDQwMGIwOTczMTJm
MTAxYTVlZjgyNGNhZTUyZTQ0YzNiNTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDYgKzU1LDExIEBA
CiAjaW5jbHVkZSA8d3RmL09TT2JqZWN0UHRyLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorI2luY2x1ZGUgIlBy
b2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgSVBDIHsKIGNs
YXNzIEZvcm1EYXRhUmVmZXJlbmNlOwogfQpAQCAtMTA1LDcgKzExMCwxMSBAQCBzdHJ1Y3QgV2Vi
UHVzaE1lc3NhZ2U7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9y
ZVBhcmFtZXRlcnM7CiAKLWNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMg
QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQgewor
Y2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNz
UHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudAorI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCisgICAgLCBwdWJsaWMgUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudAorI2VuZGlmCit7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgdXNpbmcgUmVnaXN0
cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjsKQEAgLTI0Miw2ICsyNTEs
MTUgQEAgcHVibGljOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lkIHNl
bmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFs
IGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTmV0d29ya1Byb2Nlc3MiX3M7IH0K
KyAgICB2b2lkIGRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKSBmaW5hbDsKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgLy8gUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudAorICAgIHZvaWQg
c2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICBQcm9jZXNzSUQgbW9uaXRv
cmVkUHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKKyNlbHNlCisgICAgdm9pZCBzZW5k
U2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3VzcGVuZGVkLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworI2VuZGlmCiAgICAgCiAgICAgc3RhdGljIHZvaWQg
c2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJvb2wpOwogICAgIHZvaWQgc2VuZFByb2Nl
c3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CkBAIC00MjgsNiArNDQ2LDcgQEAg
cHJpdmF0ZToKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxpZD4gbV9i
YWNrZ3JvdW5kT2JzZXJ2ZXI7CiAgICAgUmV0YWluUHRyPGlkPiBtX2ZvcmVncm91bmRPYnNlcnZl
cjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1N0YXRlTW9uaXRvcj4gbV9wcm9jZXNzU3Rh
dGVNb25pdG9yOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwCmluZGV4IDQ3MTJmMmVjZmJhMmM1YTk5ZTJkNmJhZDRmMWUwNWM1N2Rk
ZTg2YTUuLmU1MzAzMzFlMzNlMDNhOTZhZDdjYmQzNjNjYWZmZjEyNjQwMzhjODggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC02OCwxMiArNjgs
MTggQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eShGb3JlZ3JvdW5kQWN0
aXZpdHkmIGFjdGl2aXR5KQogewogICAgIG1fZm9yZWdyb3VuZEFjdGl2aXRpZXMucmVtb3ZlKCZh
Y3Rpdml0eSk7CiAgICAgdXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKKworICAgIGlmICghc2hv
dWxkQmVSdW5uYWJsZSgpKQorICAgICAgICBtX3Byb2Nlc3MuZGlkRmluaXNoTGFzdEFjdGl2aXRp
eSgpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2aXR5KEJhY2tncm91
bmRBY3Rpdml0eSYgYWN0aXZpdHkpCiB7CiAgICAgbV9iYWNrZ3JvdW5kQWN0aXZpdGllcy5yZW1v
dmUoJmFjdGl2aXR5KTsKICAgICB1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCgpOworCisgICAgaWYg
KCFzaG91bGRCZVJ1bm5hYmxlKCkpCisgICAgICAgIG1fcHJvY2Vzcy5kaWRGaW5pc2hMYXN0QWN0
aXZpdGl5KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6aW52YWxpZGF0ZUFsbEFjdGl2
aXRpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNs
aWVudC5oCmluZGV4IGZjNzdiYTk1MzM5YTQ2Zjg4Nzk2NmY4ZmNiMzBhNTlkZmRlYWI0NjYuLmI0
OGQxZDhkZGViY2IwNjcwZDhhMjRlMTg2MTE0YmRlZGFiZWNhMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKQEAgLTQxLDYgKzQxLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVS
ZWFzb24pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNz
QXNzZXJ0aW9uVHlwZSkgeyB9OwogICAgIHZpcnR1YWwgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUo
KSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKSB7
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggMTYz
NjQzMzlhYmY5OTUzM2JhMmZmYzc4NGVmMjYyODZlMGFjYWMyYS4uZmRmNjc4OWQ0ZWQ0MmFmOTVk
MjQ4ODQ1MTAwMGIzMDcwZDE1Y2QyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE2MTAsNiArMTYx
MCwxMSBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3Vt
ZSgpCiAgICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZShQcm9jZXNzVGhy
b3R0bGVyQ2xpZW50OjpSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSk7CiB9CiAKK3Zv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0
aW5nKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kU2V0U3RvcmFnZU9wZXJhdGlv
bnNTdXNwZW5kZWRNZXNzYWdlKHN1c3BlbmRlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCiBib29sIFdlYnNpdGVEYXRhU3RvcmU6OnJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFi
bGVkKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaAppbmRleCBkOWQ2MjIzMGY5MDViNDlhZGNlYWNlYmY1OWViYTFhYWRhYmI3
ZDhkLi40MjE0MTE1NzZlNDBjMTExM2Y3MmEwNzViOTc1MWFjZTQ4Y2YyMjNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZE5ldHdvcmtQcm9j
ZXNzUHJlcGFyZVRvU3VzcGVuZEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRl
c3RpbmcoKTsKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIHZv
aWQgc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKGJvb2wgc3VzcGVuZGVk
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NE
aWRUZXJtaW5hdGUoTmV0d29ya1Byb2Nlc3NQcm94eSYpOwogICAgIHN0YXRpYyB2b2lkIG1ha2VO
ZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwogICAgIHN0YXRpYyBib29s
IHNob3VsZE1ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3Iu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTA4NGVlZWY4ZTk5NjE2Y2U5ZWM3OTAzYmJhMGRhNWIyZWRhODgzMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25p
dG9yLmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9ydCA8V2ViQ29yZS9UaW1lci5oPgorI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFJCU1Byb2Nlc3NNb25pdG9yOworCitu
YW1lc3BhY2UgSVBDIHsKK2NsYXNzIENvbm5lY3Rpb247Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOworY2xhc3MgUHJvY2Vzc1N0YXRlTW9uaXRvckNs
aWVudDsKKworY2xhc3MgUHJvY2Vzc1N0YXRlTW9uaXRvciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxQcm9jZXNzU3RhdGVNb25pdG9yPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgUHJvY2Vzc1N0YXRlTW9uaXRvcihQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
Jik7CisgICAgflByb2Nlc3NTdGF0ZU1vbml0b3IoKTsKKyAgICB2b2lkIHN1c3BlbmRQcm9jZXNz
SWZQb3NzaWJsZSgpOworCitwcml2YXRlOgorICAgIGJvb2wgaXNBc3NlcnRpb25WYWxpZCgpOwor
ICAgIHZvaWQgZW5zdXJlQXNzZXJ0aW9uKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkQmVjb21lUnVu
bmluZygpOworICAgIHZvaWQgcHJvY2Vzc1dpbGxCZVN1c3BlbmRlZChTZWNvbmRzKTsKKyAgICB2
b2lkIHNlbmRTdXNwZW5kTWVzc2FnZSgpOworICAgIHZvaWQgY2hlY2tSZW1haW5pbmdSdW5UaW1l
KCk7CisKKyAgICBlbnVtIGNsYXNzIFN0YXRlIDogdWludDhfdCB7IFVua25vd24sIFJ1bm5pbmcs
IFdpbGxTdXNwZW5kLCBTdXNwZW5kZWQgfTsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgU3RhdGU6OlVu
a25vd24gfTsKKyAgICBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50JiBtX2NsaWVudDsKKyAgICBX
ZWJDb3JlOjpUaW1lciBtX3N1c3BlbmRUaW1lcjsKKyAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlv
bj4gbV9hc3NlcnRpb247CisgICAgdWludDY0X3QgbV9zZXNzaW9uSUQ7CisgICAgUmV0YWluUHRy
PFJCU1Byb2Nlc3NNb25pdG9yPiBtX3Jic01vbml0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVl
NWIyM2UzYjg1YTc5ZTEwMjlhZjQwNGRjNjdkYTBjNTg2NmMzY2YKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbQpAQCAt
MCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
UHJvY2Vzc1N0YXRlTW9uaXRvci5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lt
cG9ydCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2ltcG9ydCAiUHJvY2Vzc0Fzc2VydGlv
bi5oIgorI2ltcG9ydCAiUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oIgorI2ltcG9ydCAiUnVu
bmluZ0JvYXJkU2VydmljZXNTUEkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyBj
b25zdGV4cHIgU2Vjb25kcyBwcmVwYXJlRm9yU3VzcGVuc2lvbkR1cmF0aW9uID0gIDVfczsKKwor
UHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9uaXRvcihQcm9jZXNzU3RhdGVNb25p
dG9yQ2xpZW50JiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3N1c3Bl
bmRUaW1lcigqdGhpcywgJlByb2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSkK
K3sKKyAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICBtX3Jic01v
bml0b3IgPSBbUkJTUHJvY2Vzc01vbml0b3IgbW9uaXRvcldpdGhDb25maWd1cmF0aW9uOlt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShpZDxSQlNQcm9jZXNzTW9uaXRvckNvbmZpZ3VyaW5n
PiBjb25maWcpIG11dGFibGUgeworICAgICAgICBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yICpk
ZXNjcmlwdG9yID0gW1JCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgZGVzY3JpcHRvcl07CisgICAg
ICAgIFtkZXNjcmlwdG9yIHNldFZhbHVlczpSQlNQcm9jZXNzU3RhdGVWYWx1ZUxlZ2FjeUFzc2Vy
dGlvbnMgfCBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2VydGlvbnNdOworICAgICAgICBb
Y29uZmlnIHNldFN0YXRlRGVzY3JpcHRvcjpkZXNjcmlwdG9yXTsKKyAgICAgICAgW2NvbmZpZyBz
ZXRQcmVkaWNhdGVzOkBbW1JCU1Byb2Nlc3NQcmVkaWNhdGUgcHJlZGljYXRlTWF0Y2hpbmdIYW5k
bGU6W1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nlc3NdXV1dOworICAgICAgICBbY29uZmln
IHNldFVwZGF0ZUhhbmRsZXI6W3dlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldKFJCU1Byb2Nl
c3NNb25pdG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGFuZGxlICpwcm9jZXNzLCBSQlNQcm9jZXNz
U3RhdGVVcGRhdGUgKnVwZGF0ZSkgeworICAgICAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dl
YWtUaGlzXSB7CisgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAg
ICAgICB3ZWFrVGhpcy0+Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfV07CisgICAgfV07CisgICAgY2hlY2tSZW1haW5pbmdSdW5UaW1lKCk7Cit9CisK
K1Byb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3RhdGVNb25pdG9yKCkKK3sKKyAgICBbbV9y
YnNNb25pdG9yLmdldCgpIGludmFsaWRhdGVdOworICAgIHByb2Nlc3NEaWRCZWNvbWVSdW5uaW5n
KCk7Cit9CisKK2Jvb2wgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3NlcnRpb25WYWxpZCgpCit7
CisgICAgcmV0dXJuIG1fYXNzZXJ0aW9uICYmIG1fYXNzZXJ0aW9uLT5pc1ZhbGlkKCk7Cit9CisK
K3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6ZW5zdXJlQXNzZXJ0aW9uKCkKK3sKKyAgICBpZiAo
bV9hc3NlcnRpb24gJiYgbV9hc3NlcnRpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9hc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUobV9jbGllbnQubW9u
aXRvcmVkUHJvY2Vzc0lkZW50aWZpZXIoKSwgIlByb2Nlc3NTdGF0ZU1vbml0b3IgaXMgcnVubmlu
ZyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQsIFByb2Nlc3NBc3NlcnRpb246
Ok1vZGU6OlN5bmMpOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3BlbmRQcm9j
ZXNzSWZQb3NzaWJsZSgpCit7CisgICAgaWYgKG1fc3RhdGUgIT0gU3RhdGU6OldpbGxTdXNwZW5k
KQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoaXNBc3NlcnRpb25WYWxpZCgpKTsKKyAg
ICBpZiAoIW1fc3VzcGVuZFRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc3VzcGVuZFRpbWVyLnN0b3AoKTsKKyAgICBzZW5kU3VzcGVuZE1lc3NhZ2UoKTsKK30KKwor
dm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzRGlkQmVjb21lUnVubmluZygpCit7Cisg
ICAgaWYgKG1fc3RhdGUgPT0gU3RhdGU6OlJ1bm5pbmcpCisgICAgICAgIHJldHVybjsKKworICAg
IGVuc3VyZUFzc2VydGlvbigpOworICAgIG1fc3VzcGVuZFRpbWVyLnN0b3AoKTsKKyAgICArK21f
c2Vzc2lvbklEOworICAgIG1fc3RhdGUgPSBTdGF0ZTo6UnVubmluZzsKKyAgICBtX2NsaWVudC5z
ZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGZhbHNlLCBbXSB7IH0pOwor
fQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NXaWxsQmVTdXNwZW5kZWQoU2Vj
b25kcyByZW1haW5pbmdSdW5UaW1lKQoreworICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpSdW5u
aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoaXNBc3NlcnRpb25WYWxpZCgpKTsK
KyAgICBBU1NFUlQoIW1fc3VzcGVuZFRpbWVyLmlzQWN0aXZlKCkpOworICAgIFNlY29uZHMgdGlt
ZW91dCA9IHJlbWFpbmluZ1J1blRpbWUgPiBwcmVwYXJlRm9yU3VzcGVuc2lvbkR1cmF0aW9uID8g
cmVtYWluaW5nUnVuVGltZSAtIHByZXBhcmVGb3JTdXNwZW5zaW9uRHVyYXRpb24gOiAwX3M7Cisg
ICAgbV9zdXNwZW5kVGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQpOworICAgIG1fc3RhdGUgPSBT
dGF0ZTo6V2lsbFN1c3BlbmQ7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6c2VuZFN1
c3BlbmRNZXNzYWdlKCkKK3sKKyAgICBtX2NsaWVudC5zZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWRNZXNzYWdlKHRydWUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCBzZXNzaW9uSUQgPSBtX3Nlc3Npb25JRF0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCBtX3Nlc3Npb25JRCAhPSBzZXNzaW9uSUQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgbV9hc3NlcnRpb24gPSBudWxscHRyOworICAgICAgICBtX3N0YXRlID0gU3RhdGU6
OlN1c3BlbmRlZDsKKyAgICB9KTsKK30KKwordm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpjaGVj
a1JlbWFpbmluZ1J1blRpbWUoKQoreworICAgIGRvdWJsZSBydW5UaW1lID0gW1tbUkJTUHJvY2Vz
c0hhbmRsZSBjdXJyZW50UHJvY2Vzc10gYWN0aXZlTGltaXRhdGlvbnNdIHJ1blRpbWVdOworICAg
IGlmIChydW5UaW1lID09IFJCU1Byb2Nlc3NUaW1lTGltaXRhdGlvbk5vbmUpCisgICAgICAgIHJl
dHVybiBwcm9jZXNzRGlkQmVjb21lUnVubmluZygpOworCisgICAgcHJvY2Vzc1dpbGxCZVN1c3Bl
bmRlZChTZWNvbmRzKHJ1blRpbWUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
NmNmNDljNjA4ODIyY2Q3YWRlY2VlN2UwYmIyYmU3YTBmZmNlYzM3Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQu
aApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvUHJvY2Vzc0lELmg+CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+UHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCgpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3Vz
cGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKKyAgICB2aXJ0dWFsIFBy
b2Nlc3NJRCBtb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0OworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2M3OGJi
MDA2ZTg0NTZkNTgwMjQ5MjM2MTg2OTA4Y2Y5NDRjNzAwNS4uYWE5ZDFmODVmNDc0ZDA5ODI3Y2Q0
MzRjNzNkZmY4NjUyYTk1YTM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDc0LDYgKzE0NzQsOCBAQAogCQk5MzVCNTc5QTI2RjUx
OTMzMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QjU3OTgyNkY1MTI3MDAw
OEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCAqLzsgfTsKIAkJOTM1
RUVCOUIxMjc3NjE3QzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTgxMjc3
NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNUVFQjlGMTI3NzYxQUMw
MDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTM1RkU1QjYyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNUZFNUIzMjgxMzU2MjUwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLmggKi87IH07
CisJCTkzNUZFNUI4MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVGRTVC
NTI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oICovOyB9Owog
CQk5MzczNUVCQjFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzczNUVC
QTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmggKi87IH07
CiAJCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzkx
MDc0RTFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICov
OyB9OwogCQk5MzkxRjJDQjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5
MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCAqLzsg
fTsKQEAgLTU3NDQsNiArNTc0Niw5IEBACiAJCTkzNUVFQjk2MTI3NzYxNkQwMDMzMjJCOCAvKiBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzVFRUI5NzEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlQmFja0Zv
cndhcmRMaXN0SXRlbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk4
MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNUZFNUIzMjgxMzU2MjUwMEQzNTlFMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFByb2Nlc3NTdGF0ZU1vbml0b3IuaDsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNUZFNUI0MjgxMzU2MjUwMEQzNTlFMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvci5tbTsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVN
b25pdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCNTI4MTM1NjI2
MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg7IHBhdGggPSBpb3Mv
UHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzczNUVCQTFDOTI5ODYzMDAzMzZGQTcgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxMDc0RTFCRjZCQzY1
MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTkyMzYsNiArOTI0MSw5IEBACiAJCQkJMEZDQjRFMzYxOEJCRTA0NDAwMEZDRkM5IC8qIFBh
Z2VDbGllbnRJbXBsSU9TLmggKi8sCiAJCQkJMEZDQjRFMzcxOEJCRTA0NDAwMEZDRkM5IC8qIFBh
Z2VDbGllbnRJbXBsSU9TLm1tICovLAogCQkJCTg2Rjk1MzYyMThGRjU1MEIwMDFEQjJFRiAvKiBQ
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tICovLAorCQkJCTkzNUZFNUIzMjgxMzU2MjUwMEQzNTlFMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yLmggKi8sCisJCQkJOTM1RkU1QjQyODEzNTYyNTAwRDM1OUUz
IC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IubW0gKi8sCisJCQkJOTM1RkU1QjUyODEzNTYyNjAwRDM1
OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAqLywKIAkJCQkyREFGMDZENDE4QkQx
QTQ3MDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5oICovLAogCQkJCTJE
QUYwNkQ4MThCRDIzQkEwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1l
c3NhZ2VzLmluICovLAogCQkJCTJEQUYwNkQ1MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25p
ZmljYXRpb25Db250cm9sbGVyLm1tICovLApAQCAtMTM5OTIsMTMgKzE0MDAwLDcgQEAKIAkJCQky
REQ5RUIyRDFBNkYwMTI1MDBCQjEyNjcgLyogQVBJTmF2aWdhdGlvbkNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNGNjlGQTIxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRh
LmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5RUVFRTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2
aWdhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKLQkJCQlERDREQjc4ODI4MEY5NDcxMDAx
NzAwRDQgLyogRW50ZXJGdWxsc2NyZWVuLmpzIGluIEhlYWRlcnMgKi8sCi0JCQkJREQ0REI3ODky
ODBGOTQ3MTAwMTcwMEQ0IC8qIEZpbmROb2Rlcy5qcyBpbiBIZWFkZXJzICovLAotCQkJCURENERC
NzhBMjgwRjk0NzEwMDE3MDBENCAvKiBGb3JtRWxlbWVudENsZWFyLmpzIGluIEhlYWRlcnMgKi8s
Ci0JCQkJREQ0REI3OEIyODBGOTQ3MTAwMTcwMEQ0IC8qIEZvcm1TdWJtaXQuanMgaW4gSGVhZGVy
cyAqLywKIAkJCQk3QTFFMkE4NTFFRUZFODkyMDAzN0EwRTAgLyogQVBJTm90aWZpY2F0aW9uUHJv
dmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCURENERCNzg3MjgwRjk0NUUwMDE3MDBENCAvKiBF
bGVtZW50RGlzcGxheWVkLmpzIGluIEhlYWRlcnMgKi8sCi0JCQkJREQ0REI3ODYyODBGOTQ1QTAw
MTcwMEQ0IC8qIEVsZW1lbnRBdHRyaWJ1dGUuanMgaW4gSGVhZGVycyAqLywKIAkJCQlCQzMzREQ2
ODEyMzg0NjQ2MDAzNjBGM0YgLyogQVBJTnVtYmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg1
N0ZCNTEyQjgzMEU2MDBFREVCMkUgLyogQVBJT3BlblBhbmVsUGFyYW1ldGVycy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M4OUQyOTgxQTY3NTNCMjAwM0E1RkRFIC8qIEFQSVBhZ2VDb25maWd1cmF0
aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTE0MjY2LDggKzE0MjY4LDExIEBACiAJCQkJMkRBNjcz
MUEyMEM3NTRCMTAwM0NCNDAxIC8qIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUUxMDVGRTU0MThEN0I5REUwMDhGNTdBOCAvKiBFZGl0aW5nUmFuZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQTQxQUI1MTJDMDJFQzQwMDJCRTY3QiAvKiBFZGl0b3JTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJREQ0REI3ODYyODBGOTQ1QTAwMTcwMEQ0IC8qIEVsZW1l
bnRBdHRyaWJ1dGUuanMgaW4gSGVhZGVycyAqLywKKwkJCQlERDREQjc4NzI4MEY5NDVFMDAxNzAw
RDQgLyogRWxlbWVudERpc3BsYXllZC5qcyBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREE4MTBG
NDM3RDEwMDU4QzE1QSAvKiBFbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRENEQzk5RDI0
OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLmggaW4gSGVhZGVycyAqLywK
KwkJCQlERDREQjc4ODI4MEY5NDcxMDAxNzAwRDQgLyogRW50ZXJGdWxsc2NyZWVuLmpzIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTFCMTVBODUxMzg0M0EzOTAwMzIxQUQ4IC8qIEVudmlyb25tZW50VXRp
bGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUE1NzVGQjE0OTZCNTI2MDBBNEVFMDYgLyog
RXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzJFQkJENzI1MzdFQkFFMDAw
NTUyQjMgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEkuaCBpbiBIZWFkZXJzICovLApAQCAt
MTQyNzgsOSArMTQyODMsMTIgQEAKIAkJCQk5MzEyQkFENTI2RjMzQzI2MDBGRERGNUYgLyogRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwMEI5NjYxQTE4RTI1
QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MEMxRjQx
MjY0RkQ3MTAwM0U0NEQ0IC8qIEZpbmRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlE
RDREQjc4OTI4MEY5NDcxMDAxNzAwRDQgLyogRmluZE5vZGVzLmpzIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQzU5QzRBNTkxOEI4MTE3NDAwN0JEQ0I2IC8qIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTgxRDhEMTMxOUY3RUYwMDI0MTkxMCAvKiBGb250SW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJEOEFCNEEyNTgyMEU1MzAwNTM4NkY4IC8qIEZvbnRS
ZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCURENERCNzhBMjgwRjk0NzEwMDE3MDBENCAv
KiBGb3JtRWxlbWVudENsZWFyLmpzIGluIEhlYWRlcnMgKi8sCisJCQkJREQ0REI3OEIyODBGOTQ3
MTAwMTcwMEQ0IC8qIEZvcm1TdWJtaXQuanMgaW4gSGVhZGVycyAqLywKIAkJCQkxQTE0RjhFMjFE
NzRDODM0MDA2Q0JFQzYgLyogRnJhbWVJbmZvRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFF
MDBENjExODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1lTG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1QzEyMUU4NDI0MTAyMDhEMDA0ODZGOUIgLyogRnJhbWVUcmVlTm9kZURhdGEuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTQ1MTgsNiArMTQ1MjYsOCBAQAogCQkJCTVDQjkzMTA5MjZFODQzOUEw
MDMyQjFDMCAvKiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudFhQQ1V0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNz
TGF1bmNoZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNUZFNUI2MjgxMzU2MjYwMEQzNTlFMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzVGRTVCODI4MTM1
NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nl
c3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgz
MiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTE0ODUxLDcg
KzE0ODYxLDYgQEAKIAkJCQlCQ0U0Njk1NDEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRERBMEEyQjUyN0U1NUU0RTAwNUUwODZFIC8qIFdlYkZv
cm1EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRERBMEEzMDEyN0U1NUU0RTAwNUUwODZF
IC8qIFdlYkZvcm1EZWxlZ2F0ZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxOURGQkU3
MjgxMzg3QzEwMDNGRjZBRCAvKiBXS05vdGlmaWNhdGlvblByaXZhdGVNYWMuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRTQ2OTU2MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1MjI3RDg0MjdBMTEyNjEwMDhFQUI1
NyAvKiBXZWJGb3VuZFRleHRSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU1Q0ZENEUyNzlE
MzFFNTAwMkYxMDIwIC8qIFdlYkZvdW5kVGV4dFJhbmdlQ29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xNTM0MCw2ICsxNTM0OSw3IEBACiAJCQkJMzE4QkUxNzkxNDc0M0U2RjAwQThGQkIy
IC8qIFdLTm90aWZpY2F0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMThCRTE3MTE0NzQzREIx
MDBBOEZCQjIgLyogV0tOb3RpZmljYXRpb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkz
MUEyRUM3NDE0OEQ1OUNBMDA4MTBENzEgLyogV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE5REZCRTcyODEzODdDMTAwM0ZGNkFEIC8qIFdLTm90
aWZpY2F0aW9uUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzEyQzBDNEExNDZEREM4
QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTM3QzRDMDk0MTgxNEIzQUYwMDM2ODhCOSAvKiBXS05TQXJyYXkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTM3M0NFQUQ2MTg1NDE3QUUwMDhDMzYzRCAvKiBXS05TRGF0YS5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTNl
MmU0ZGRkYzI3NmUwYmM5NzZhNmQ4MjQzNzllZDc5YWYzODE5Ni4uZTU3YTFlMDEwZWVhYWM5ZmI3
OWFiYjc0YjhhMjBlYmVhYzQzNmViNSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTA0LTI3ICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVyYXRp
b25zIHdoZW4gbmV0d29yayBwcm9jZXNzIGlzIGluIGJhY2tncm91bmQgYW5kIHdpbGwgYmUgc3Vz
cGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzk0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkyMjI4MTkwPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbToKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tOgor
ICAgICAgICAoVEVTVCk6CisKIDIwMjItMDQtMjcgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRA
YXBwbGUuY29tPgogCiAgICAgICAgIFtnaXQtd2Via2l0XSBDbGVhbnVwIFBScyBvbiBhbHRlcm5h
dGUgcmVtb3RlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KaW5kZXggODM4
ODUxYmZhODg4YWM0MGFjNzFjZWNhZTUwYTQ4M2FiMWI4NWY3YS4uZjdlZWRiNGRmNzFiZGYxNGFm
MjNhZTRlM2Q1NTFlYjE0NzA1Y2Q0MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVu
dGx5Lm1tCkBAIC0xNjMsOCArMTYzLDE3IEBAIFRFU1QoSW5kZXhlZERCLCBTdXNwZW5kSW1taW5l
bnRseUZvclRoaXJkUGFydHlEYXRhYmFzZXMpCiAgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6
bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Vi
a2l0Lm9yZyJdXTsKICAgICBydW5UZXN0QW5kQ2hlY2tSZXN1bHQoQCJkYXRhYmFzZSBpcyBjcmVh
dGVkIik7CiAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5k
TmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHldOwotICAgIFtjb25maWd1cmF0aW9u
LmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07Cisg
ICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vi
c2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllF
UyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOwor
ICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsK
KworICAgIHJlYWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgp
LndlYnNpdGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGlu
ZzpOTyBjb21wbGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVl
OworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVl
KTsKIAogICAgIHJ1blRlc3RBbmRDaGVja1Jlc3VsdChAInRyYW5zYWN0aW9uIGlzIGNvbXBsZXRl
ZCIpOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KaW5kZXggMDI1MjQzMDJmYmRm
Y2E4M2RhZTJhYTRlZWFmZDM4OWFhYWMzYjYxOS4uYzIxMDJmM2UwZTEwOTI2M2Y1NDYyYTA2Y2E3
MzY2MWY4MDE4MWQ2MSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCkBAIC0xNzAs
NyArMTcwLDExIEBAIFRFU1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMp
CiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwog
ICAgIEVYUEVDVF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHldKTsK
IAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3Jr
UHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFs
c2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9uSGFuZGxlcjpeewor
ICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlYWR5VG9Db250aW51ZSA9
IGZhbHNlOwogICAgIFt3ZWJWaWV3MSBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cubG9jYWxT
dG9yYWdlLnNldEl0ZW0oJ2tleScsICduZXdWYWx1ZScpIiBjb21wbGV0aW9uSGFuZGxlcjpeKGlk
LCBOU0Vycm9yICopIHsKQEAgLTE4NSw3ICsxODksMTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2Fs
U3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICB9XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAgICAgCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCku
d2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lXTsKKyAgICByZWFk
eVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0
YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6Tk8gY29tcGxl
dGlvbkhhbmRsZXI6XnsKKyAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAKICAgICBy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458596</attachid>
            <date>2022-04-29 10:56:15 -0700</date>
            <delta_ts>2022-04-29 11:02:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220429105614.patch</filename>
            <type>text/plain</type>
            <size>51663</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDIzYWJlMjBmOWEyNzQ2MDJm
MDUwYzkyNjVlOGY5NWE3OGM2MmUwMmEuLjRlY2E0ZDM5NGEwMjU3OGNmMGZmZjI5YWFkOTc0ZDkx
YjFjYjQwNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJy
ZW50bHkgc3VzcGVuZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVU
b1N1c3BlbmQgbWVzc2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlz
IGlzIG5vdCBhIHZlcnkgcmVsaWFibGUgc2lnbmFsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5v
dCBzZW5kIHRoZSBtZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChl
LmcuIFVJIHByb2Nlc3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdo
ZW4gaXQgYWNxdWlyZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2Vz
cyBhY3Rpdml0eSBjb3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9j
ZXNzIHNlbmQgdGhlIG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nl
c3MgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRp
ZXMuIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJT
UHJvY2Vzc01vbml0b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBh
c3NlcnRpb25zLiBXaGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRl
TW9uaXRvciBjaGVjayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGJlZm9yZSBzdXNw
ZW5zaW9uLiBQcm9jZXNzU3RhdGVNb25pdG9yIAorICAgICAgICBzZW5kcyBtZXNzYWdlIHRvIGEg
cHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRp
bWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3Nh
Z2UgdG8gcmVzdW1lIHRoZW0gd2hlbiBydW5uaW5nIHRpbWUgYmVjb21lcyB1bmxpbWl0ZWQuIFBy
b2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3BlbmQgbWVzc2FnZSBz
b29uZXIgaWYgUHJvY2Vzc1Rocm90dGxlciBzYXlzIHRoZXJlIGlzIG5vIGFjdGl2aXR5IGxlZnQu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b25uZWN0VG9TdG9yYWdlQXJlYVN5bmMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yYWdl
T3BlcmF0aW9uU3VzcGVuZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWFPbk1haW5UaHJlYWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyk6
IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1J1bm5p
bmdCb2FyZFNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bW9uaXRvcmVkUHJvY2Vz
c0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Ro
cm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6
OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFw
OjpzZW5kQ29ubmVjdE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6
ZGlkQ29ubmVjdCk6CisKIDIwMjItMDQtMjggIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBNYWtlIFdlYkltYWdlIGJlIGJhY2tlZCBi
eSBJbWFnZUJ1ZmZlcgpAQCAtMjkwLDYgKzM1Miw2OCBAQAogICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmVmZmVjdGl2ZUNvbnRlbnRNb2RlQWZ0ZXJBZGp1c3RpbmdQb2xpY2llcyk6CiAg
ICAgICAgIChXZWJLaXQ6OmRlc2t0b3BDbGFzc0Jyb3dzaW5nUmVjb21tZW5kZWQpOiBEZWxldGVk
LgogCisyMDIyLTA0LTI3ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAg
ICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gbmV0d29yayBwcm9jZXNzIGlzIGlu
IGJhY2tncm91bmQgYW5kIHdpbGwgYmUgc3VzcGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzkyMjI4MTkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE5ldHdvcmsgcHJvY2Nlc3MgY3VycmVudGx5IHN1c3BlbmRzIHN0b3JhZ2Ugb3BlcmF0aW9u
cyB3aGVuIHJlY2VpdmluZyBQcmVwYXJlVG9TdXNwZW5kIG1lc3NhZ2UgZnJvbSBVSSBwcm9jZXNz
LiAKKyAgICAgICAgSG93ZXZlciwgdGhpcyBpcyBub3QgYSB2ZXJ5IHJlbGlhYmxlIHNpZ25hbCwg
YmVjYXVzZSBVSSBwcm9jZXNzIG1heSBub3Qgc2VuZCB0aGUgbWVzc2FnZSBiZWZvcmUgcHJvY2Vz
cyAKKyAgICAgICAgc3VzcGVuc2lvbiAoZS5nLiBVSSBwcm9jZXNzIHdpbGwgbm90IHJlY2VpdmUg
YXNzZXJ0aW9uIGludmFsaWRhdGlvbiB3aGVuIGl0IGFjcXVpcmVzIGFuIGFzc2VydGlvbiB0b28g
bGF0ZSBhbmQgCisgICAgICAgIHByb2Nlc3MgYWN0aXZpdHkgY291bnRkb3duIGlzIGFib3V0IHRv
IGJlIGZpbmlzaGVkKSwgb3IgVUkgcHJvY2VzcyBzZW5kIHRoZSBtZXNzYWdlIHNvIGxhdGUgdGhh
dCBuZXR3b3JrIAorICAgICAgICBwcm9jZXNzIGRvZXMgbm90IGhhdmUgdGltZSB0byBhYm9ydCBl
eGlzdGluZyBkYXRhYmFzZSBhY3Rpdml0aWVzLiBUbyBmaXggdGhpcyBpc3N1ZSwgdGhpcyBwYXRj
aCBpbnRyb2R1Y2VzCisgICAgICAgIFByb2Nlc3NTdGF0ZU1vbml0b3IuCisKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvciB1c2VzIFJCU1Byb2Nlc3NNb25pdG9yIHRvIHJlY2VpdmVzIG5vdGlm
aWNhdGlvbiBhYm91dCB1cGRhdGUgb24gYXNzZXJ0aW9ucy4gV2hlbiB0aGVyZSBpcworICAgICAg
ICBhbiB1cGRhdGUsIFByb2Nlc3NTdGF0ZU1vbml0b3IgY2hlY2sgaG93IG11Y2ggdGltZSBhIHBy
b2Nlc3MgY2FuIHJ1biBhdCBtb3N0IGJlZm9yZSBzdXNwZW5zaW9uLiAKKyAgICAgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvciBzZW5kcyBtZXNzYWdlIHRvIGEgcHJvY2VzcyB0byBzdXNwZW5kIHN0b3Jh
Z2Ugb3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRpbWUgbGVmdCBpcyBsZXNzIAorICAgICAg
ICB0aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3NhZ2UgdG8gcmVzdW1lIHRoZW0gd2hlbiB0
aGUgcnVubmluZyB0aW1lIGJlY29tZXMgdW5saW1pdGVkLiBQcm9jZXNzU3RhdGVNb25pdG9yCisg
ICAgICAgIG1heSBzZW5kIHRoZSBzdXNwZW5kIG1lc3NhZ2UgZWFybGllciBpZiBQcm9jZXNzVGhy
b3R0bGVyIHNheXMgdGhlcmUgaXMgbm8gYWN0aXZpdHkgbGVmdC4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmFkZFdlYnNpdGVEYXRhU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6cHJlcGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Ojpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vy
dmljZXNTUEkuaDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tOgorICAgICAgICAoLVtXS1dlYnNp
dGVEYXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6
ZGlkRmluaXNoTGFzdEFjdGl2aXRpeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmll
ciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0
aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpy
ZW1vdmVBY3Rpdml0eSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGll
bnQuaDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6ZGlkRmluaXNo
TGFzdEFjdGl2aXRpeSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzU3RhdGVNb25pdG9yLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJv
Y2Vzc1N0YXRlTW9uaXRvci5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0
ZU1vbml0b3I6OlByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
U3RhdGVNb25pdG9yOjp+UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAgICAgIChXZWJLaXQ6OlBy
b2Nlc3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQpOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzU3RhdGVNb25pdG9yOjplbnN1cmVBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzU3RhdGVNb25pdG9yOjpzdXNwZW5kUHJvY2Vzc0lmUG9zc2libGUpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzRGlkQmVjb21lUnVubmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NXaWxsQmVTdXNwZW5k
ZWQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1l
c3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpjaGVja1JlbWFp
bmluZ1J1blRpbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvckNs
aWVudDo6flByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQpOgorICAgICAgICAqIFdlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTA0LTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1v
bi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEF2b2lkIHNlbmRpbmcgYSBmbHVzaCBJUEMg
dG8gdGhlIEdQVSBwcm9jZXNzIHdoZW4gZGVzdHJveWluZyBhIFJlbW90ZUltYWdlQnVmZmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDYxYTYwOWI2ZjkzOTRkNTNmNjEwYzdlOTY3
M2FkYTNmMWU1ZGEwZGUuLjJkMDAyZmFmZmI2M2Q2MWExODc5YzlkNjUwMDE0ZDc2MTUwMjFlOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xNDM0LDYgKzE0MzQsMjAgQEAgUmVm
UHRyPE5ldHdvcmtSZXNvdXJjZUxvYWRlcj4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnRha2VOZXR3b3JrUmVzb3VyY2UKICAgICByZXR1cm4gbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJz
LnRha2UocmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U3RvcmFnZVR5
cGUgdHlwZSwgU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0b3Jh
Z2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBcmVh
SWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAobV9uZXR3b3JrUHJvY2Vzcy0+c3RvcmFnZU9wZXJhdGlv
blN1c3BlbmRlZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKFN0b3JhZ2UsICIlcCAtIE5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMgZmFpbGVk
IGJlY2F1c2Ugc3RvcmFnZSB0aHJlYWQgaXMgc3VzcGVuZGVkIiwgdGhpcyk7CisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQXJlYUlkZW50aWZpZXIgeyB9LCBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiB7IH0sIDApOworICAgIH0KKworICAgIGF1dG8qIHNlc3Npb24gPSBt
X25ldHdvcmtQcm9jZXNzLT5uZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOworICAgIGlmICghc2Vz
c2lvbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBcmVhSWRlbnRp
ZmllciB7IH0sIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHsgfSwgMCk7CisKKyAgICBzZXNzaW9u
LT5zdG9yYWdlTWFuYWdlcigpLmNvbm5lY3RUb1N0b3JhZ2VBcmVhT25NYWluVGhyZWFkKGNvbm5l
Y3Rpb24sIHR5cGUsIHNvdXJjZUlkZW50aWZpZXIsIG5hbWVzcGFjZUlkZW50aWZpZXIsIG9yaWdp
biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCiAjaWYgRU5BQkxFKENPTlRFTlRf
RklMVEVSSU5HX0lOX05FVFdPUktJTkdfUFJPQ0VTUykKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6Omluc3RhbGxNb2NrQ29udGVudEZpbHRlcihXZWJDb3JlOjpNb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzJiYgc2V0dGluZ3MpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5k
ZXggMDJmYmVkNzY2NTI5ZGNhMWMwNDc4MzJkZmM4NWY5NTA2Y2E4ZjZjZC4uODJiNGM5ZmMxZmMx
MzdmNTBhMmY1ZWVkNmZhMWZlMjhlMjk0ZTEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApA
QCAtMzYsNiArMzYsOSBAQAogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaCIKICNp
bmNsdWRlICJQb2xpY3lEZWNpc2lvbi5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIK
KyNpbmNsdWRlICJTdG9yYWdlQXJlYUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlQXJl
YU1hcElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZE9ic2VydmVy
LmgiCkBAIC01MSw2ICs1NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUlRDRGF0YUNoYW5uZWxJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWdpc3RyYWJsZURvbWFpbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3Rv
cmFnZVR5cGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlNvY2tldElkZW50aWZpZXIuaD4KICNp
bmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAg
LTM3Miw2ICszNzYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTY2hl
ZHVsaW5nTW9kZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6TG9hZFNjaGVkdWxp
bmdNb2RlKTsKICAgICB2b2lkIHByaW9yaXRpemVSZXNvdXJjZUxvYWRzKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXI+Jik7CisgICAgdm9pZCBjb25uZWN0VG9T
dG9yYWdlQXJlYVN5bmMoSVBDOjpDb25uZWN0aW9uJiwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6
OlN0b3JhZ2VUeXBlLCBTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIHVp
bnQ2NF90KT4mJik7CiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFTU9URV9VSSkKICAgICBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eSYgcGF5bWVudENvb3JkaW5hdG9yKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhMjYyOWU0ZWRiMjE0YjNkMjZh
Y2E3OGRhODQ1YzY1ZDBlNWFhMzQxLi4yMjM5N2QyMTMzYmIzNDgyYWQ3NjliNDlkODQxYTc5OGM5
YjcwY2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTExMyw2ICsxMTMsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKICAgICBTZXRSZXNvdXJjZUxvYWRTY2hlZHVsaW5n
TW9kZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGVudW06dWludDhfdCBXZWJD
b3JlOjpMb2FkU2NoZWR1bGluZ01vZGUgbW9kZSkKICAgICBQcmlvcml0aXplUmVzb3VyY2VMb2Fk
cyhWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyPiBsb2FkSWRlbnRpZmll
cnMpCisgICAgQ29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElkZW50
aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmll
ciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdp
bikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hNYXA8
U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgU3luY2hy
b25vdXMgV2FudHNDb25uZWN0aW9uCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkdfSU5f
TkVUV09SS0lOR19QUk9DRVNTKQogICAgIEluc3RhbGxNb2NrQ29udGVudEZpbHRlcihXZWJDb3Jl
OjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzIHNldHRpbmdzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAxMmZmMmFjZTUyNTIwODkz
YjAyODMyODA2ZDY0ZTc3Y2UwOGMzYWVhLi4zODRjMGYxODc1MDgwMjJjZTEwMjRhZDFjMjQ0NDk5
YjNlY2QyOWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcApAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZFdl
YnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzCiAg
ICAgICAgIHJldHVybiBOZXR3b3JrU2Vzc2lvbjo6Y3JlYXRlKCp0aGlzLCBwYXJhbWV0ZXJzLm5l
dHdvcmtTZXNzaW9uUGFyYW1ldGVycyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogCi0gICAg
aWYgKG1faXNTdXNwZW5kZWQpCisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkK
ICAgICAgICAgc2Vzc2lvbi0+c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtdIHsgfSk7CiB9CiAK
QEAgLTIxNjAsNyArMjE2MCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3Bl
bmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiB7CiAgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXtwdWJsaWN9
c2luIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCwgbV9lbnRlckJhY2tn
cm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QgIik7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0gdHJ1
ZTsKICAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZZXMpOwogCiAgICAgUmVmUHRyPENh
bGxiYWNrQWdncmVnYXRvcj4gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9y
OjpjcmVhdGUoW3RoaXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcildKCkgbXV0YWJsZSB7CkBAIC0yMTY4LDExICsyMTY3LDYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0
aW9uSGFuZGwKICAgICAgICAgVU5VU0VEX1ZBUklBQkxFKHRoaXMpOwogICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogICAgIH0pOwotICAgIAotI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFD
S0lOR19QUkVWRU5USU9OKQotICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3Vz
cGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwotI2VuZGlmCi0gICAgUENNOjpTdG9yZTo6
cHJlcGFyZUZvclByb2Nlc3NUb1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIAog
ICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKICAgICAgICAg
cGxhdGZvcm1GbHVzaENvb2tpZXMoc2Vzc2lvbi5zZXNzaW9uSUQoKSwgW2NhbGxiYWNrQWdncmVn
YXRvcl0geyB9KTsKQEAgLTIxODAsNyArMjE3NCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnBy
ZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRs
CiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAg
ICAgICAgIHN3U2VydmVyLT5zdGFydFN1c3BlbnNpb24oW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9
KTsKICNlbmRpZgotICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIH0pOwogCiAgICAgZm9yIChhdXRvJiBjb25uZWN0
aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCkBAIC0yMjEwLDIyICsyMjAz
LDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3Jl
Z3JvdW5kQWN0aXZpdHkpCiAgICAgZWxzZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3Jl
Z3JvdW5kQWN0aXZpdHk9JWQgUHJvY2VzcyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBz
ZWNvbmRzIiwgdGhpcywgZm9yRm9yZWdyb3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsKIAotICAg
IG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKLQogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1f
d2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5lbmRT
dXNwZW5zaW9uKCk7CiAKLSNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElP
TikKLSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlc3VtZSgpOwotI2VuZGlm
Ci0gICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3VtZSgpOwotCiAgICAgZm9yRWFjaE5ldHdv
cmtTZXNzaW9uKFtdKGF1dG8mIHNlc3Npb24pIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgICAgIGlmIChhdXRvKiBzd1NlcnZlciA9IHNlc3Npb24uc3dTZXJ2ZXIoKSkKICAgICAg
ICAgICAgIHN3U2VydmVyLT5lbmRTdXNwZW5zaW9uKCk7CiAjZW5kaWYKLSAgICAgICAgc2Vzc2lv
bi5zdG9yYWdlTWFuYWdlcigpLnJlc3VtZSgpOwogICAgIH0pOwogfQogCkBAIC0yNzc2LDQgKzI3
NjEsMzEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGUKICAgICBjb21wbGV0aW9uSGFuZGxlcihz
ZXNzaW9uID8gc2Vzc2lvbi0+Y291bnROb25EZWZhdWx0U2Vzc2lvblNldHMoKSA6IDApOwogfQog
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29s
IHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpj
cmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIGlmIChtX3N0b3JhZ2VPcGVy
YXRpb25TdXNwZW5kZWQgPT0gc3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBSRUxF
QVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6c2V0UHJvY2Vzc1N1c3BlbmRl
ZCBzdXNwZW5kZWQ9JWQiLCB0aGlzLCBzdXNwZW5kZWQpOworICAgIG1fc3RvcmFnZU9wZXJhdGlv
blN1c3BlbmRlZCA9IHN1c3BlbmRlZDsKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVu
ZGVkKSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCisgICAg
ICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c3VzcGVuZChbY2FsbGJhY2tBZ2dy
ZWdhdG9yXSB7IH0pOworI2VuZGlmCisgICAgICAgIFBDTTo6U3RvcmU6OnByZXBhcmVGb3JQcm9j
ZXNzVG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisgICAgICAgIGZvckVhY2hO
ZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAgICAgICAgIHNlc3Npb24u
c3RvcmFnZU1hbmFnZXIoKS5zdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdKCkgeyB9KTsKKyAg
ICAgICAgfSk7CisgICAgfSBlbHNlIHsKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdf
UFJFVkVOVElPTikKKyAgICAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1
bWUoKTsKKyNlbmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7Cisg
ICAgICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbJl0gKGF1dG8mIHNlc3Npb24pIHsKKyAgICAg
ICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIoKS5yZXN1bWUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA0Y2I5ZGIwMDlhODllNmU3OGVjZjk1NWI0
NzkyYjczNmMyMmJhMWJhLi4yNTJmNDVjOGI1N2IwYmIwZTlhMjQ1N2Y2MDExZDU4MDBiYTVmZmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBA
IC0xNzgsNiArMTc4LDggQEAgcHVibGljOgogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVu
ZGVkKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIGJv
b2wgc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZU9w
ZXJhdGlvblN1c3BlbmRlZDsgfQogCiAgICAgQ2FjaGVNb2RlbCBjYWNoZU1vZGVsKCkgY29uc3Qg
eyByZXR1cm4gbV9jYWNoZU1vZGVsOyB9CiAKQEAgLTUzMCw3ICs1MzIsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX3ByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCB7IHRydWUgfTsKICAg
ICBib29sIG1fZnRwRW5hYmxlZCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCB7IGZhbHNlIH07
CiAgICAgc3RkOjpvcHRpb25hbDxNb25vdG9uaWNUaW1lPiBtX2VudGVyQmFja2dyb3VuZFRpbWVz
dGFtcDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDMyMDZkY2I5NzU5OWNlNDQ1YTczYzk2Njdh
ZjdkMjFjNjFmN2M4NzAuLjI5MzI5YjhmNzcyMjY0MTRiOWEwMmYxNTk1OTE2ZTVmOWE1MmIyMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzQsNiArNzQsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJv
Y2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZv
clRlc3RpbmdTeW5jKCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBQcmVwYXJlVG9TdXNwZW5kKGJv
b2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZShib29s
IGZvckZvcmVncm91bmRBY3Rpdml0eSkKKyAgICBTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRl
ZChib29sIHN1c3BlbmRlZCkgLT4gKCkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNl
ckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVu
dW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBm
OWJiMjg1YzJlNDFhNGQxODhlMDUwNDdmOGU3MzAyMGMwZThmMjdjLi5iNTRhMTM0ZTMxOTdmZGQ4
YmYyNGRmZjk2ODczZGM1OTcyNWExMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApA
QCAtNzg5LDkgKzc4OSwxNSBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRv
U3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZQogICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHRJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiB7IH0sIFN0b3JhZ2VBcmVhQmFzZTo6bmV4dE1lc3NhZ2VJZGVudGlmaWVyKCkpOwogfQogCi12
b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgU3RvcmFn
ZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVu
dGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYg
b3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0VG9TdG9yYWdlQXJlYU9uTWFpblRocmVh
ZChJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUs
IFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNw
YWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mIG9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQXJlYUlkZW50aWZp
ZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgY29ubmVjdFRvU3RvcmFnZUFyZWEoY29ubmVjdGlvbiwgdHlwZSwgc291cmNl
SWRlbnRpZmllciwgbmFtZXNwYWNlSWRlbnRpZmllciwgb3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBwcm90ZWN0ZWRDb25uZWN0aW9uID0gUmVmIHsgY29ubmVjdGlvbiB9
LCB0eXBlLCBzb3VyY2VJZGVudGlmaWVyLCBuYW1lc3BhY2VJZGVudGlmaWVyLCBvcmlnaW4gPSBj
cm9zc1RocmVhZENvcHkob3JpZ2luKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgY29ubmVjdFRvU3RvcmFnZUFyZWEo
cHJvdGVjdGVkQ29ubmVjdGlvbi5nZXQoKSwgdHlwZSwgc291cmNlSWRlbnRpZmllciwgbmFtZXNw
YWNlSWRlbnRpZmllciwgb3JpZ2luLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oYXV0byBzdG9yYWdlQXJlYUlkZW50aWZpZXIsIGF1dG8gaXRlbXMsIGF1
dG8gbWVzc2FnZUlkZW50aWZpZXIpIG11dGFibGUgeworICAgICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzdG9yYWdlQXJlYUlkZW50aWZpZXIsIGl0ZW1zID0gY3Jvc3NUaHJlYWRDb3B5KGl0ZW1z
KSwgbWVzc2FnZUlkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoc3RvcmFnZUFyZWFJZGVudGlmaWVyLCBpdGVtcywgbWVzc2FnZUlkZW50aWZp
ZXIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0pOwogfQogCiB2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2FuY2VsQ29ubmVjdFRvU3RvcmFnZUFyZWEoSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBTdG9yYWdlTmFt
ZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGll
bnRPcmlnaW4mIG9yaWdpbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCAxMWFkMjg4MjBm
MmVmYmJhMjEwNzEyODM2NzExOTk1ZjJmN2I0YmVjLi40NjBlMTQ0ZTBkMTBlMmNkZDg3ZTI5MDVh
YzViZGM3ZTU5N2YwN2QyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC05NSw2ICs5NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlcXVlc3RTcGFjZShjb25zdCBXZWJDb3JlOjpDbGllbnRP
cmlnaW4mLCB1aW50NjRfdCBzaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
ICAgICB2b2lkIHJlc2V0UXVvdGFGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZXNldFF1b3RhVXBkYXRlZEJhc2VkT25Vc2FnZUZvclRlc3RpbmcoV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiYpOworICAgIHZvaWQgY29ubmVjdFRvU3RvcmFnZUFyZWFPbk1h
aW5UaHJlYWQoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VB
cmVhTWFwSWRlbnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVu
dGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgdWludDY0X3QpPiYmKTsKIAogcHJpdmF0
ZToKICAgICBOZXR3b3JrU3RvcmFnZU1hbmFnZXIoUEFMOjpTZXNzaW9uSUQsIElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBjdXN0b21M
b2NhbFN0b3JhZ2VQYXRoLCBjb25zdCBTdHJpbmcmIGN1c3RvbUlEQlN0b3JhZ2VQYXRoLCBjb25z
dCBTdHJpbmcmIGN1c3RvbUNhY2hlU3RvcmFnZVBhdGgsIHVpbnQ2NF90IGRlZmF1bHRPcmlnaW5R
dW90YSwgdWludDY0X3QgZGVmYXVsdFRoaXJkUGFydHlPcmlnaW5RdW90YSwgYm9vbCBzaG91bGRV
c2VDdXN0b21QYXRocyk7CkBAIC0xMTEsNyArMTEyLDYgQEAgcHJpdmF0ZToKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIChpbXBsZW1lbnRlZCBieSBnZW5lcmF0ZWQgY29kZSkKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwot
ICAgIGJvb2wgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIFVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpOwogCiAgICAgLy8g
TWVzc2FnZSBoYW5kbGVycyBmb3IgRmlsZVN5c3RlbS4KICAgICB2b2lkIHBlcnNpc3RlZChjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKQEAgLTEzMyw3ICsxMzMsNiBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIE1lc3NhZ2UgaGFu
ZGxlcnMgZm9yIFdlYlN0b3JhZ2UuCiAgICAgdm9pZCBjb25uZWN0VG9TdG9yYWdlQXJlYShJUEM6
OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTdG9yYWdlVHlwZSwgU3RvcmFnZUFyZWFNYXBJZGVudGlm
aWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQXJlYUlkZW50aWZpZXIsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwotICAgIHZvaWQgY29ubmVjdFRvU3Rv
cmFnZUFyZWFTeW5jKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBTdG9y
YWdlQXJlYU1hcElkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBcmVh
SWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90KT4mJik7CiAgICAg
dm9pZCBjYW5jZWxDb25uZWN0VG9TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3Jl
OjpTdG9yYWdlVHlwZSwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYpOwogICAgIHZvaWQgZGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShJUEM6
OkNvbm5lY3Rpb24mLCBTdG9yYWdlQXJlYUlkZW50aWZpZXIpOwogICAgIHZvaWQgY2xvbmVTZXNz
aW9uU3RvcmFnZU5hbWVzcGFjZShJUEM6OkNvbm5lY3Rpb24mLCBTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggN2Q5YjczOTM1N2E0MzhjNDcyYjQ0MDA4Yzkz
ZjQ3YTUzNDhiNjA0NC4uOTA4ZmQ3NzUyMWY4OTBhNzA5NjJmN2FjODU1MjY5ZTc4YTAxZGQ5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC00MSw3ICs0
MSw2IEBACiAgICAgR2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFN0cmluZyBuYW1lKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIFdhbnRzQ29ubmVjdGlvbgogCiAgICAgQ29ubmVjdFRvU3RvcmFn
ZUFyZWEoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9y
aWdpbikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgV2Fu
dHNDb25uZWN0aW9uCi0gICAgQ29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jKFdlYkNvcmU6OlN0b3Jh
Z2VUeXBlIHR5cGUsIFdlYktpdDo6U3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBp
dGVtcywgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXIpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVj
dGlvbgogICAgIENhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKFdlYkNvcmU6OlN0b3JhZ2VUeXBl
IHR5cGUsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIFdhbnRzQ29ubmVjdGlv
bgogICAgIERpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50
aWZpZXIgaWRlbnRpZmllcikgV2FudHNDb25uZWN0aW9uCiAgICAgQ2xvbmVTZXNzaW9uU3RvcmFn
ZU5hbWVzcGFjZShXZWJLaXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIGZyb21TdG9yYWdl
TmFtZXNwYWNlSUQsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgdG9TdG9yYWdl
TmFtZXNwYWNlSUQpIFdhbnRzQ29ubmVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAppbmRleCA0MjUxMzJm
ZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkLi5lZWY2NzA4YjZiN2I2OTc5NTEwNTdh
OWZlYjI5OTA1MjQ3YzhjMzg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtMTMxLDE0ICsxMzEsMjQg
QEAgdHlwZWRlZiB2b2lkICheUkJTUHJvY2Vzc1VwZGF0ZUhhbmRsZXIpKFJCU1Byb2Nlc3NNb25p
dG9yICptb25pdG9yLCBSQlNQcm9jZXNzSGEKIAogQGludGVyZmFjZSBSQlNQcm9jZXNzTW9uaXRv
ciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpbW9uaXRvcldpdGhDb25m
aWd1cmF0aW9uOihOU19OT0VTQ0FQRSBSQlNQcm9jZXNzTW9uaXRvckNvbmZpZ3VyYXRvcilibG9j
azsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAogQGludGVyZmFjZSBSQlNQcm9jZXNzUHJl
ZGljYXRlIDogTlNPYmplY3QgPFJCU1Byb2Nlc3NNYXRjaGluZz4KICsgKFJCU1Byb2Nlc3NQcmVk
aWNhdGUgKilwcmVkaWNhdGVNYXRjaGluZ0hhbmRsZTooUkJTUHJvY2Vzc0hhbmRsZSAqKXByb2Nl
c3M7CiBAZW5kCit0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgUkJTUHJvY2Vzc1N0YXRl
VmFsdWVzKSB7CisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVOb25lICAgICAgICAgICAgICAgICAg
ICA9IDAsCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUYXNrU3RhdGUgICAgICAgICAgICAgICA9
ICgxIDw8IDApLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlVGFncyAgICAgICAgICAgICAgICAg
ICAgPSAoMSA8PCAxKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRlcm1pbmF0aW9uUmVzaXN0
YW5jZSAgID0gKDEgPDwgMiksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lBc3NlcnRp
b25zICAgICAgICA9ICgxIDw8IDMpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTW9kZXJuQXNz
ZXJ0aW9ucyAgICAgICAgPSAoMSA8PCA0KSwKK307CiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc1N0
YXRlRGVzY3JpcHRvciA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CiArIChpbnN0YW5jZXR5cGUpZGVz
Y3JpcHRvcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIGFzc2lnbikgUkJTUHJv
Y2Vzc1N0YXRlVmFsdWVzIHZhbHVlczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUs
IGNvcHksIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICplbmRvd21lbnROYW1lc3BhY2Vz
OwogQGVuZAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMTdjMTBmOWY0ZTg4MTRiZTgwOGMw
OWMwZGUzZTg1MWQwNDRhNjFiZi4uMmZjNzFhOGJiYTY5YTkxOTU4NzM1ZWNiODY2ZGI2MzhhYTY1
OGM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNDkwLDYgKzQ5MCw3IEBAIFVJUHJvY2Vz
cy9pb3MvR2VzdHVyZVJlY29nbml6ZXJDb25zaXN0ZW5jeUVuZm9yY2VyLm1tCiBVSVByb2Nlc3Mv
aW9zL0lucHV0Vmlld1VwZGF0ZURlZmVycmVyLm1tCiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KK1VJUHJvY2Vz
cy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5tbQogVUlQcm9jZXNzL2lvcy9TbWFydE1hZ25pZmlj
YXRpb25Db250cm9sbGVyLm1tCiBVSVByb2Nlc3MvaW9zL1RleHRDaGVja2VySU9TLm1tCiBVSVBy
b2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KaW5kZXgg
ZTZmMmZjZjAyYjI0ZmExNjAyMWMzYmU4M2Y2MTE2Zjk4OTYxMDAyNy4uNzg0N2RkYzNhNjI4ZWFi
ZDQ3NzllYTUyNjRjNWRjMzhmZjg2OTVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCkBAIC03NTYsNiArNzU2
LDEzIEBAIHN0YXRpYyBWZWN0b3I8V2ViS2l0OjpXZWJzaXRlRGF0YVJlY29yZD4gdG9XZWJzaXRl
RGF0YVJlY29yZHMoTlNBcnJheSAqZGF0YVJlY29yCiAgICAgX3dlYnNpdGVEYXRhU3RvcmUtPnNl
bmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpOwogfQogCistICh2b2lkKV9zZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3dlYnNpdGVEYXRh
U3RvcmUtPnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhzdXNwZW5kZWQs
IFtjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildIHsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKyAgICB9KTsKK30KKwogLSAodm9pZClfc3lu
dGhlc2l6ZUFwcElzQmFja2dyb3VuZDooQk9PTCliYWNrZ3JvdW5kCiB7CiAgICAgX3dlYnNpdGVE
YXRhU3RvcmUtPm5ldHdvcmtQcm9jZXNzKCkuc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZChiYWNr
Z3JvdW5kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCmluZGV4IDMxNmIzMjlhNWY2YzNhNWFm
N2U3ZTI5NDlmODdmMzdkZjcyZTczNjIuLjFhY2E3NTExOTNhODQyYjQ3MzM5MzEzMmQyZTgwYWI3
YTJjYmZiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaApAQCAtMTAxLDYgKzEwMSw3IEBA
IHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hP
cHRpb25zKSB7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHkgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX3Nl
bmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogKyAodm9pZClfc2V0TmV0d29ya1Byb2Nlc3NTdXNwZW5zaW9uQWxsb3dlZEZv
clRlc3Rpbmc6KEJPT0wpYWxsb3dlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWRGb3JUZXN0aW5nOihCT09MKXN1c3BlbmRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2
b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogLSAodm9pZClfc3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZDoo
Qk9PTCliYWNrZ3JvdW5kIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7
CiAtIChwaWRfdClfbmV0d29ya1Byb2Nlc3NJZGVudGlmaWVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTIuMCksIGlvcygxNS4wKSk7CiArICh2b2lkKV9tYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1
bmNoRmFpbEZvclRlc3RpbmcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjAp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IDcwMjFjYzQxMmI2NGQ3NzNjMWQ2ZDg0MTRhOTFhMWRlZjU4
MWUyZGQuLmYyNGVhNjBmMDc2ZmJlZTM5MzdhODYwNWZjNjc1NDM5ODljMDU2OGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKICNpbmNsdWRlIDx3dGYvc3Bp
L2Rhcndpbi9YUENTUEkuaD4KICNlbmRpZgogCkBAIC0xMzgzLDYgKzEzODQsMjggQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24gcmVh
c29uKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJl
c3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsKIH0K
IAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkKK3sK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmIChtX3Byb2Nlc3NTdGF0ZU1vbml0b3Ip
CisgICAgICAgIG1fcHJvY2Vzc1N0YXRlTW9uaXRvci0+c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxl
KCk7CisjZW5kaWYKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFn
ZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5k
ZWQoc3VzcGVuZGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKworcGlkX3QgTmV0d29ya1Byb2Nlc3NQcm94eTo6bW9uaXRvcmVk
UHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdAoreworICAgIHJldHVybiBwcm9jZXNzSWRlbnRpZmll
cigpOworfQorCisjZW5kaWYKKwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tp
ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6Rmx1c2hDb29raWVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKQEAgLTE4MjAsMTEgKzE4NDMsMjEgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpuYXZpZ2F0ZVNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVy
IGYKIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dy
b3VuZCgpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAoIW1fcHJvY2Vzc1N0
YXRlTW9uaXRvcikKKyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yID0gbWFrZVVuaXF1ZTxQ
cm9jZXNzU3RhdGVNb25pdG9yPigqdGhpcyk7CisjZW5kaWYKKwogICAgIHNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpLCAwKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQoKQogeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcHJvY2Vzc1N0YXRl
TW9uaXRvcikKKyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yID0gbnVsbHB0cjsKKyNlbmRp
ZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uV2lsbEVu
dGVyRm9yZWdyb3VuZCgpLCAwKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBhMjI4ZTRjMmE0MjgzYzEy
ZDQ4YjlhOWU1ZDQ4ZjEzMWI4YzBlNzRmLi41YTU0NDAwYjA5NzMxMmYxMDFhNWVmODI0Y2FlNTJl
NDRjM2I1M2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNTUsNiArNTUsMTEgQEAKICNpbmNsdWRlIDx3dGYv
T1NPYmplY3RQdHIuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNs
dWRlICJQcm9jZXNzU3RhdGVNb25pdG9yLmgiCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRm9ybURhdGFSZWZl
cmVuY2U7CiB9CkBAIC0xMDUsNyArMTEwLDExIEBAIHN0cnVjdCBXZWJQdXNoTWVzc2FnZTsKIHN0
cnVjdCBXZWJzaXRlRGF0YTsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIAot
Y2xhc3MgTmV0d29ya1Byb2Nlc3NQcm94eSBmaW5hbCA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNz
UHJveHksIHByaXZhdGUgUHJvY2Vzc1Rocm90dGxlckNsaWVudCB7CitjbGFzcyBOZXR3b3JrUHJv
Y2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQ
cm9jZXNzVGhyb3R0bGVyQ2xpZW50CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAsIHB1
YmxpYyBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50CisjZW5kaWYKK3sKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB1c2luZyBSZWdpc3RyYWJsZURvbWFpbiA9IFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOwpAQCAtMjQyLDYgKzI1MSwxNSBAQCBwdWJsaWM6CiAg
ICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAogICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1
bWUoUmVzdW1lUmVhc29uKSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQorICAgIHZvaWQgZGlkRmlu
aXNoTGFzdEFjdGl2aXRpeSgpIGZpbmFsOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAvLyBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50CisgICAgdm9pZCBzZW5kU2V0U3RvcmFnZU9w
ZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdlKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpIGZpbmFsOworICAgIFByb2Nlc3NJRCBtb25pdG9yZWRQcm9jZXNzSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsOworI2Vsc2UKKyAgICB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisjZW5kaWYKICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRTdXNwZW5zaW9uQWxs
b3dlZEZvclRlc3RpbmcoYm9vbCk7CiAgICAgdm9pZCBzZW5kUHJvY2Vzc1dpbGxTdXNwZW5kSW1t
aW5lbnRseUZvclRlc3RpbmcoKTsKQEAgLTQyOCw2ICs0NDYsNyBAQCBwcml2YXRlOgogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZl
cjsKICAgICBSZXRhaW5QdHI8aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxQcm9jZXNzU3RhdGVNb25pdG9yPiBtX3Byb2Nlc3NTdGF0ZU1vbml0b3I7CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAK
aW5kZXggNDcxMmYyZWNmYmEyYzVhOTllMmQ2YmFkNGYxZTA1YzU3ZGRlODZhNS4uZTUzMDMzMWUz
M2UwM2E5NmFkN2NiZDM2M2NhZmZmMTI2NDAzOGM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTY4LDEyICs2OCwxOCBAQCB2b2lkIFByb2Nl
c3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2aXR5KEZvcmVncm91bmRBY3Rpdml0eSYgYWN0aXZpdHkp
CiB7CiAgICAgbV9mb3JlZ3JvdW5kQWN0aXZpdGllcy5yZW1vdmUoJmFjdGl2aXR5KTsKICAgICB1
cGRhdGVBc3NlcnRpb25JZk5lZWRlZCgpOworCisgICAgaWYgKCFzaG91bGRCZVJ1bm5hYmxlKCkp
CisgICAgICAgIG1fcHJvY2Vzcy5kaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCk7CiB9CiAKIHZvaWQg
UHJvY2Vzc1Rocm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkoQmFja2dyb3VuZEFjdGl2aXR5JiBhY3Rp
dml0eSkKIHsKICAgICBtX2JhY2tncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0aXZpdHkpOwog
ICAgIHVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3VsZEJlUnVubmFi
bGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKTsKIH0KIAog
dm9pZCBQcm9jZXNzVGhyb3R0bGVyOjppbnZhbGlkYXRlQWxsQWN0aXZpdGllcygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggZmM3
N2JhOTUzMzlhNDZmODg3OTY2ZjhmY2IzMGE1OWRmZGVhYjQ2Ni4uYjQ4ZDFkOGRkZWJjYjA2NzBk
OGEyNGUxODYxMTRiZGVkYWJlY2ExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSB7
IH07CiAgICAgdmlydHVhbCBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpIHsgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAxNjM2NDMzOWFiZjk5NTMzYmEy
ZmZjNzg0ZWYyNjI4NmUwYWNhYzJhLi5mZGY2Nzg5ZDRlZDQyYWY5NWQyNDg4NDUxMDAwYjMwNzBk
MTVjZDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTYxMCw2ICsxNjEwLDExIEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKICAgICBuZXR3b3Jr
UHJvY2VzcygpLnNlbmRQcm9jZXNzRGlkUmVzdW1lKFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJl
c3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KTsKIH0KIAordm9pZCBXZWJzaXRlRGF0YVN0
b3JlOjpzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5k
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAg
ICBuZXR3b3JrUHJvY2VzcygpLnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3Nh
Z2Uoc3VzcGVuZGVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAogewog
I2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmlu
ZGV4IGQ5ZDYyMjMwZjkwNWI0OWFkY2VhY2ViZjU5ZWJhMWFhZGFiYjdkOGQuLjQyMTQxMTU3NmU0
MGMxMTEzZjcyYTA3NWI5NzUxYWNlNDhjZjIyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTE0Myw2ICsx
NDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9TdXNw
ZW5kRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2Vu
ZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwogICAgIHZv
aWQgc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZEZvclRlc3RpbmcoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0RpZFRlcm1pbmF0ZShOZXR3
b3JrUHJvY2Vzc1Byb3h5Jik7CiAgICAgc3RhdGljIHZvaWQgbWFrZU5leHROZXR3b3JrUHJvY2Vz
c0xhdW5jaEZhaWxGb3JUZXN0aW5nKCk7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTWFrZU5leHRO
ZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMDMzN2RiNTg3ZTBjOWY4MzBk
ZDQ3Zjg0MGE3ZWRlNmEzODg2NDdiLi5iNjNiYjNjOTk1YzQ3YjQ0ZTQyMWEyYTNhYmFmMjlhOWYw
Njk5MWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE0NzYsNiArMTQ3Niw4IEBACiAJCTkzNUI1NzlBMjZGNTE5MzMwMDhCNDhBQyAv
KiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oICovOyB9OwogCQk5MzVFRUI5QjEyNzc2MTdD
MDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjgg
LyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM1RUVCOUYxMjc3NjFBQzAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9y
d2FyZExpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk5MzVGRTVCNjI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkU1QjMyODEz
NTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLzsgfTsKKwkJOTM1RkU1Qjgy
ODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUZFNUI1MjgxMzU2MjYwMEQz
NTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi87IH07CiAJCTkzNzM1RUJCMUM5
Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzM1RUJBMUM5Mjk4NjMwMDMz
NkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MTA3NEYx
QkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTEwNzRFMUJGNkJDNjUw
MDhDMTdBRCAvKiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCTkzOTFG
MkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1
MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwpAQCAtNTc0OSw2
ICs1NzUxLDkgQEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0Zv
cndhcmRMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk3MTI3
NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVt
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTgxMjc3NjE2RDAwMzMy
MkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRl
TW9uaXRvci5oOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjQyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9j
ZXNzU3RhdGVNb25pdG9yLm1tOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQ
cm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVN
b25pdG9yQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNzM1RUJBMUM5
Mjk4NjMwMDMzNkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBX
S1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTI0NCw2ICs5
MjQ5LDkgQEAKIAkJCQkwRkNCNEUzNjE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJ
T1MuaCAqLywKIAkJCQkwRkNCNEUzNzE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJ
T1MubW0gKi8sCiAJCQkJODZGOTUzNjIxOEZGNTUwQjAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRp
b25JT1MubW0gKi8sCisJCQkJOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3IuaCAqLywKKwkJCQk5MzVGRTVCNDI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0
YXRlTW9uaXRvci5tbSAqLywKKwkJCQk5MzVGRTVCNTI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vz
c1N0YXRlTW9uaXRvckNsaWVudC5oICovLAogCQkJCTJEQUYwNkQ0MThCRDFBNDcwMDgxQ0VCMSAv
KiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLmggKi8sCiAJCQkJMkRBRjA2RDgxOEJEMjNC
QTAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4gKi8s
CiAJCQkJMkRBRjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRy
b2xsZXIubW0gKi8sCkBAIC0xNDAwMCwxMyArMTQwMDgsNyBAQAogCQkJCTJERDlFQjJEMUE2RjAx
MjUwMEJCMTI2NyAvKiBBUElOYXZpZ2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0Y2OUZBMjExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdhdGlvbkRhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJERjlFRUVFMUE3ODZFQUQwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uUmVzcG9u
c2UuaCBpbiBIZWFkZXJzICovLAotCQkJCURENERCNzg4MjgwRjk0NzEwMDE3MDBENCAvKiBFbnRl
ckZ1bGxzY3JlZW4uanMgaW4gSGVhZGVycyAqLywKLQkJCQlERDREQjc4OTI4MEY5NDcxMDAxNzAw
RDQgLyogRmluZE5vZGVzLmpzIGluIEhlYWRlcnMgKi8sCi0JCQkJREQ0REI3OEEyODBGOTQ3MTAw
MTcwMEQ0IC8qIEZvcm1FbGVtZW50Q2xlYXIuanMgaW4gSGVhZGVycyAqLywKLQkJCQlERDREQjc4
QjI4MEY5NDcxMDAxNzAwRDQgLyogRm9ybVN1Ym1pdC5qcyBpbiBIZWFkZXJzICovLAogCQkJCTdB
MUUyQTg1MUVFRkU4OTIwMDM3QTBFMCAvKiBBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIGluIEhl
YWRlcnMgKi8sCi0JCQkJREQ0REI3ODcyODBGOTQ1RTAwMTcwMEQ0IC8qIEVsZW1lbnREaXNwbGF5
ZWQuanMgaW4gSGVhZGVycyAqLywKLQkJCQlERDREQjc4NjI4MEY5NDVBMDAxNzAwRDQgLyogRWxl
bWVudEF0dHJpYnV0ZS5qcyBpbiBIZWFkZXJzICovLAogCQkJCUJDMzNERDY4MTIzODQ2NDYwMDM2
MEYzRiAvKiBBUElOdW1iZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODU3RkI1MTJCODMwRTYw
MEVERUIyRSAvKiBBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzg5RDI5ODFBNjc1M0IyMDAzQTVGREUgLyogQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCBpbiBIZWFk
ZXJzICovLApAQCAtMTQyNzQsOCArMTQyNzYsMTEgQEAKIAkJCQkyREE2NzMxQTIwQzc1NEIxMDAz
Q0I0MDEgLyogRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTEwNUZFNTQxOEQ3QjlERTAwOEY1N0E4IC8qIEVkaXRpbmdSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFBNDFBQjUxMkMwMkVDNDAwMkJFNjdCIC8qIEVkaXRvclN0YXRlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlERDREQjc4NjI4MEY5NDVBMDAxNzAwRDQgLyogRWxlbWVudEF0dHJpYnV0ZS5q
cyBpbiBIZWFkZXJzICovLAorCQkJCURENERCNzg3MjgwRjk0NUUwMDE3MDBENCAvKiBFbGVtZW50
RGlzcGxheWVkLmpzIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQTgxMEY0MzdEMTAwNThDMTVB
IC8qIEVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQ0RDOTlEMjQ4RkU4REEwMEE2OTUy
MiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCURENERCNzg4
MjgwRjk0NzEwMDE3MDBENCAvKiBFbnRlckZ1bGxzY3JlZW4uanMgaW4gSGVhZGVycyAqLywKIAkJ
CQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNo
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRy
YVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDI4Niw5ICsxNDI5
MSwxMiBAQAogCQkJCTkzMTJCQUQ1MjZGMzNDMjYwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFn
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTAwQjk2NjFBMThFMjVBRTEwMENFMUY4OCAv
KiBGaW5kQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkwQzFGNDEyNjRGRDcxMDAzRTQ0
RDQgLyogRmluZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCURENERCNzg5MjgwRjk0
NzEwMDE3MDBENCAvKiBGaW5kTm9kZXMuanMgaW4gSGVhZGVycyAqLywKIAkJCQlDNTlDNEE1OTE4
QjgxMTc0MDA3QkRDQjYgLyogRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFODFEOEQxMzE5RjdFRjAwMjQxOTEwIC8qIEZvbnRJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5QkQ4QUI0QTI1ODIwRTUzMDA1Mzg2RjggLyogRm9udFJlZmVyZW5jZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJREQ0REI3OEEyODBGOTQ3MTAwMTcwMEQ0IC8qIEZvcm1FbGVtZW50
Q2xlYXIuanMgaW4gSGVhZGVycyAqLywKKwkJCQlERDREQjc4QjI4MEY5NDcxMDAxNzAwRDQgLyog
Rm9ybVN1Ym1pdC5qcyBpbiBIZWFkZXJzICovLAogCQkJCTFBMTRGOEUyMUQ3NEM4MzQwMDZDQkVD
NiAvKiBGcmFtZUluZm9EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUUwMEQ2MTE4MzE3OTIx
MDAwODdERDcgLyogRnJhbWVMb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTIxRTg0
MjQxMDIwOEQwMDQ4NkY5QiAvKiBGcmFtZVRyZWVOb2RlRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xNDUyOCw2ICsxNDUzNiw4IEBACiAJCQkJNUNCOTMxMDkyNkU4NDM5QTAwMzJCMUMwIC8qIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50WFBDVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJOTM1RkU1QjYyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0
ZU1vbml0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNUZFNUI4MjgxMzU2MjYwMEQzNTlFMyAv
KiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4
MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NU
aHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ4NjEsNyArMTQ4NzEsNiBAQAog
CQkJCUJDRTQ2OTU0MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlEREEwQTJCNTI3RTU1RTRFMDA1RTA4NkUgLyogV2ViRm9ybURlbGVnYXRlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlEREEwQTMwMTI3RTU1RTRFMDA1RTA4NkUgLyogV2ViRm9ybURl
bGVnYXRlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE5REZCRTcyODEzODdDMTAwM0ZG
NkFEIC8qIFdLTm90aWZpY2F0aW9uUHJpdmF0ZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
NDY5NTYxMjE0RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTUyMjdEODQyN0ExMTI2MTAwOEVBQjU3IC8qIFdlYkZvdW5k
VGV4dFJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTVDRkQ0RTI3OUQzMUU1MDAyRjEwMjAg
LyogV2ViRm91bmRUZXh0UmFuZ2VDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTE1MzUw
LDYgKzE1MzU5LDcgQEAKIAkJCQkzMThCRTE3OTE0NzQzRTZGMDBBOEZCQjIgLyogV0tOb3RpZmlj
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTMxOEJFMTcxMTQ3NDNEQjEwMEE4RkJCMiAvKiBX
S05vdGlmaWNhdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTJFQzc0MTQ4RDU5
Q0EwMDgxMEQ3MSAvKiBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MTlERkJFNzI4MTM4N0MxMDAzRkY2QUQgLyogV0tOb3RpZmljYXRpb25Qcml2
YXRlTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTJDMEM0QTE0NkREQzhBMDAxNkM5MTEgLyog
V0tOb3RpZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDNEMwOTQxODE0
QjNBRjAwMzY4OEI5IC8qIFdLTlNBcnJheS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzczQ0VBRDYx
ODU0MTdBRTAwOEMzNjNEIC8qIFdLTlNEYXRhLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcApp
bmRleCBkNGNmNmFjYTc4MTkyYzczNTBmYTNjODY5Zjk5NGViMDA2ZWI3ZTM4Li5iNmM0NTM4Y2I0
OTk2ZDExNGUxMjBmMWY0NGY2NTllNzg1YWRkZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXAuaCIKIAogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKKyNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGwuaCIKQEAg
LTM1MSw3ICszNTIsNyBAQCB2b2lkIFN0b3JhZ2VBcmVhTWFwOjpzZW5kQ29ubmVjdE1lc3NhZ2Uo
U2VuZE1vZGUgbW9kZSkKICAgICAgICAgU3RvcmFnZUFyZWFJZGVudGlmaWVyIHJlbW90ZUFyZWFJ
ZGVudGlmaWVyOwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBpdGVtczsKICAgICAg
ICAgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXI7Ci0gICAgICAgIGlwY0Nvbm5lY3Rpb24uc2Vu
ZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q29ubmVjdFRvU3RvcmFnZUFy
ZWFTeW5jKHR5cGUsIG1faWRlbnRpZmllciwgbmFtZXNwYWNlSWRlbnRpZmllciwgb3JpZ2luKSwg
TWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q29ubmVjdFRvU3RvcmFnZUFyZWFTeW5j
OjpSZXBseShyZW1vdGVBcmVhSWRlbnRpZmllciwgaXRlbXMsIG1lc3NhZ2VJZGVudGlmaWVyKSwg
MCk7CisgICAgICAgIGlwY0Nvbm5lY3Rpb24uc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpDb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMobV9uYW1lc3BhY2Uu
c2Vzc2lvbklEKCksIHR5cGUsIG1faWRlbnRpZmllciwgbmFtZXNwYWNlSWRlbnRpZmllciwgb3Jp
Z2luKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDb25uZWN0VG9T
dG9yYWdlQXJlYVN5bmM6OlJlcGx5KHJlbW90ZUFyZWFJZGVudGlmaWVyLCBpdGVtcywgbWVzc2Fn
ZUlkZW50aWZpZXIpLCAwKTsKICAgICAgICAgZGlkQ29ubmVjdChyZW1vdGVBcmVhSWRlbnRpZmll
ciwgV1RGTW92ZShpdGVtcyksIG1lc3NhZ2VJZGVudGlmaWVyKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KQEAgLTM4MywxMiArMzg0LDE3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmNvbm5lY3Qo
KQogdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlkQ29ubmVjdChTdG9yYWdlQXJlYUlkZW50aWZpZXIg
cmVtb3RlQXJlYUlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYgaXRlbXMsIHVp
bnQ2NF90IG1lc3NhZ2VJZGVudGlmaWVyKQogewogICAgIG1faXNXYWl0aW5nRm9yQ29ubmVjdFJl
cGx5ID0gZmFsc2U7Ci0gICAgaWYgKG1lc3NhZ2VJZGVudGlmaWVyIDwgbV9sYXN0SGFuZGxlZE1l
c3NhZ2VJZGVudGlmaWVyKQorICAgIGlmIChtZXNzYWdlSWRlbnRpZmllciA8IG1fbGFzdEhhbmRs
ZWRNZXNzYWdlSWRlbnRpZmllcikgeworICAgICAgICBpZiAoIW1lc3NhZ2VJZGVudGlmaWVyKQor
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU3RvcmFnZSwgIiVwIC0gU3RvcmFnZUFyZWFN
YXA6OmRpZENvbm5lY3QgZmFpbGVkIGJlY2F1c2UgbWVzc2FnZUlkZW50aWZpZXIgaXMgMCIsIHRo
aXMpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgbV9sYXN0SGFuZGxlZE1lc3NhZ2VJ
ZGVudGlmaWVyID0gbWVzc2FnZUlkZW50aWZpZXI7Ci0gICAgaWYgKCFyZW1vdGVBcmVhSWRlbnRp
Zmllci5pc1ZhbGlkKCkpCisgICAgaWYgKCFyZW1vdGVBcmVhSWRlbnRpZmllci5pc1ZhbGlkKCkp
IHsKKyAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoU3RvcmFnZSwgIiVwIC0gU3RvcmFnZUFyZWFN
YXA6OmRpZENvbm5lY3QgZmFpbGVkIGJlY2F1c2UgcmVtb3RlQXJlYUlkZW50aWZpZXIgaXMgaW52
YWxpZCIsIHRoaXMpOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgbV9yZW1vdGVBcmVh
SWRlbnRpZmllciA9IHJlbW90ZUFyZWFJZGVudGlmaWVyOwogICAgIG1fbWFwID0gbWFrZVVuaXF1
ZTxTdG9yYWdlTWFwPihtX3F1b3RhSW5CeXRlcyk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWM3ZmFjZDUwNTdhZTAxYmU0ZGNlMjEwOGQxYTYy
ZDRiYTI4Yjg5MS4uM2U0YzQ4M2RmY2Q5Y2Q3Y2UyNDUzZTRiNzIzODBmNzQ3NzU2MTA5OCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIyLTA0LTI5ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisg
ICAgICAgIFN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gbmV0d29yayBwcm9jZXNzIGlz
IGluIGJhY2tncm91bmQgYW5kIHdpbGwgYmUgc3VzcGVuZGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzk0MzIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzkyMjI4MTkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5k
SW1taW5lbnRseS5tbToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjItMDQt
MjggIEFuZ2Vsb3MgT2lrb25vbW9wb3Vsb3MgIDxhbmdlbG9zQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0c10gRml4IHVzZXItZmFjaW5nIGFjY291bnRpbmcK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhl
ZERCU3VzcGVuZEltbWluZW50bHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tCmluZGV4IDQ4ZGE1YzUyZDBkMDlk
ZGFiNTJkODE3YzQzOTVhOWYzYmFkMTUzM2YuLjM0ZWE4NDAyMmYxZTBiNjM5MGQxNmE5ZjY1NzUw
N2UyZTQwYWVkMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQpAQCAt
MTYzLDggKzE2MywxNyBAQCBURVNUKEluZGV4ZWREQiwgU3VzcGVuZEltbWluZW50bHlGb3JUaGly
ZFBhcnR5RGF0YWJhc2VzKQogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0
cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07
CiAgICAgcnVuVW50aWxNZXNzYWdlUmVjZWl2ZWQoQCJkYXRhYmFzZSBpcyBjcmVhdGVkIik7CiAK
LSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1By
b2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHldOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndl
YnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlU
b0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFT
dG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0
aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJl
YWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21w
bGV0aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1d
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAg
IHJ1blVudGlsTWVzc2FnZVJlY2VpdmVkKEAidHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIik7CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2Fs
U3RvcmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQppbmRleCAwMjUyNDMwMmZiZGZjYTgzZGFl
MmFhNGVlYWZkMzg5YWFhYzNiNjE5Li5jMjEwMmYzZTBlMTA5MjYzZjU0NjJhMDZjYTczNjYxZjgw
MTgxZDYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KQEAgLTE3MCw3ICsxNzAs
MTEgQEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQ
RUNUX1dLX1NUUkVRKEAidmFsdWUiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCi0gICAg
W2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNz
V2lsbFN1c3BlbmRJbW1pbmVudGx5XTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAg
ICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAg
IHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7
CiAgICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2Uu
c2V0SXRlbSgna2V5JywgJ25ld1ZhbHVlJykiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJy
b3IgKikgewpAQCAtMTg1LDcgKzE4OSwxMSBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdl
UHJvY2Vzc1N1c3BlbmRzKQogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVhZHlUb0NvbnRpbnVlKTsKICAgICAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRl
RGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWVdOworICAgIHJlYWR5VG9Db250
aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUg
X3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFu
ZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlY2VpdmVk
U2NyaXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458597</attachid>
            <date>2022-04-29 11:02:07 -0700</date>
            <delta_ts>2022-04-29 11:44:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220429110206.patch</filename>
            <type>text/plain</type>
            <size>48212</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA2MWMwZWZiMDFjYTUwZDkx
ZGE5ZDAwNWQyOWVjODE0Mjc1M2ZlYzUuLjdjY2IxZTc5ZTViNjVmNGMzYzUwYTcxNDU2ZjFmNTc4
YTVkZWMyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDQtMjkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJy
ZW50bHkgc3VzcGVuZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVU
b1N1c3BlbmQgbWVzc2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlz
IGlzIG5vdCBhIHZlcnkgcmVsaWFibGUgc2lnbmFsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5v
dCBzZW5kIHRoZSBtZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChl
LmcuIFVJIHByb2Nlc3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdo
ZW4gaXQgYWNxdWlyZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2Vz
cyBhY3Rpdml0eSBjb3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9j
ZXNzIHNlbmQgdGhlIG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nl
c3MgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRp
ZXMuIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJT
UHJvY2Vzc01vbml0b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBh
c3NlcnRpb25zLiBXaGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRl
TW9uaXRvciBjaGVjayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGJlZm9yZSBzdXNw
ZW5zaW9uLiBQcm9jZXNzU3RhdGVNb25pdG9yIAorICAgICAgICBzZW5kcyBtZXNzYWdlIHRvIGEg
cHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRp
bWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3Nh
Z2UgdG8gcmVzdW1lIHRoZW0gd2hlbiBydW5uaW5nIHRpbWUgYmVjb21lcyB1bmxpbWl0ZWQuIFBy
b2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3BlbmQgbWVzc2FnZSBz
b29uZXIgaWYgUHJvY2Vzc1Rocm90dGxlciBzYXlzIHRoZXJlIGlzIG5vIGFjdGl2aXR5IGxlZnQu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b25uZWN0VG9TdG9yYWdlQXJlYVN5bmMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yYWdl
T3BlcmF0aW9uU3VzcGVuZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWFPbk1haW5UaHJlYWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyk6
IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1J1bm5p
bmdCb2FyZFNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bW9uaXRvcmVkUHJvY2Vz
c0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Ro
cm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6
OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViU3Rv
cmFnZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFw
OjpzZW5kQ29ubmVjdE1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6
ZGlkQ29ubmVjdCk6CisKIDIwMjItMDQtMjkgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBGaXggQVNBTiBidWlsZCBhZnRlciAiSVBDIHRlc3RpbmcgQVBJ
IHNob3VsZCBoYXZlIHRoZSBhYmlsaXR5IHRvIHRlc3QgSVBDOjpDb25uZWN0aW9uIHNlbmQgYW5k
IHJlY2VpdmUgdGhyb3VnaCBJUEM6OkNvbm5lY3Rpb24iCkBAIC00NDgsNiArNTEwLDY4IEBACiAg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZWZmZWN0aXZlQ29udGVudE1vZGVBZnRlckFk
anVzdGluZ1BvbGljaWVzKToKICAgICAgICAgKFdlYktpdDo6ZGVza3RvcENsYXNzQnJvd3NpbmdS
ZWNvbW1lbmRlZCk6IERlbGV0ZWQuCiAKKzIwMjItMDQtMjcgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJhdGlvbnMgd2hlbiBu
ZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBzdXNwZW5kZWQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTQzMgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJyZW50bHkgc3VzcGVu
ZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVUb1N1c3BlbmQgbWVz
c2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlzIGlzIG5vdCBhIHZl
cnkgcmVsaWFibGUgc2lnbmFsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5vdCBzZW5kIHRoZSBt
ZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChlLmcuIFVJIHByb2Nl
c3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdoZW4gaXQgYWNxdWly
ZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2VzcyBhY3Rpdml0eSBj
b3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9jZXNzIHNlbmQgdGhl
IG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nlc3MgZG9lcyBub3Qg
aGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRpZXMuIFRvIGZpeCB0
aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJvY2Vzc1N0YXRlTW9u
aXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJTUHJvY2Vzc01vbml0
b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBhc3NlcnRpb25zLiBX
aGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRlTW9uaXRvciBjaGVj
ayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGF0IG1vc3QgYmVmb3JlIHN1c3BlbnNp
b24uIAorICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHNlbmRzIG1lc3NhZ2UgdG8gYSBwcm9j
ZXNzIHRvIHN1c3BlbmQgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gdGhlIHJ1bm5pbmcgdGltZSBs
ZWZ0IGlzIGxlc3MgCisgICAgICAgIHRoYW4gNSBzZWNvbmRzLCBhbmQgc2VuZHMgbWVzc2FnZSB0
byByZXN1bWUgdGhlbSB3aGVuIHRoZSBydW5uaW5nIHRpbWUgYmVjb21lcyB1bmxpbWl0ZWQuIFBy
b2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3BlbmQgbWVzc2FnZSBl
YXJsaWVyIGlmIFByb2Nlc3NUaHJvdHRsZXIgc2F5cyB0aGVyZSBpcyBubyBhY3Rpdml0eSBsZWZ0
LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogUGxhdGZvcm0vc3Bp
L2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50
eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06
CisgICAgICAgICgtW1dLV2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNw
ZW5kZWRGb3JUZXN0aW5nOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVu
ZGVkTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om1vbml0
b3JlZFByb2Nlc3NJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NUaHJvdHRsZXI6OnJlbW92ZUFjdGl2aXR5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
UHJvY2Vzc1Rocm90dGxlckNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0
bGVyQ2xpZW50OjpkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaDogQWRkZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6UHJvY2Vzc1N0YXRlTW9uaXRvcik6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6On5Qcm9jZXNzU3RhdGVNb25pdG9yKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6aXNBc3NlcnRpb25WYWxpZCk6
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OmVuc3VyZUFzc2VydGlvbik6
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnN1c3BlbmRQcm9jZXNzSWZQ
b3NzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1vbml0b3I6OnByb2Nlc3NE
aWRCZWNvbWVSdW5uaW5nKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6
cHJvY2Vzc1dpbGxCZVN1c3BlbmRlZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0ZU1v
bml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0
ZU1vbml0b3I6OmNoZWNrUmVtYWluaW5nUnVuVGltZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50Ojp+UHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCk6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjItMDQtMjcg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQg
c2VuZGluZyBhIGZsdXNoIElQQyB0byB0aGUgR1BVIHByb2Nlc3Mgd2hlbiBkZXN0cm95aW5nIGEg
UmVtb3RlSW1hZ2VCdWZmZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNjFhNjA5
YjZmOTM5NGQ1M2Y2MTBjN2U5NjczYWRhM2YxZTVkYTBkZS4uMmQwMDJmYWZmYjYzZDYxYTE4Nzlj
OWQ2NTAwMTRkNzYxNTAyMWU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0
MzQsNiArMTQzNCwyMCBAQCBSZWZQdHI8TmV0d29ya1Jlc291cmNlTG9hZGVyPiBOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6dGFrZU5ldHdvcmtSZXNvdXJjZQogICAgIHJldHVybiBtX25l
dHdvcmtSZXNvdXJjZUxvYWRlcnMudGFrZShyZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsKIH0KIAor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29ubmVjdFRvU3RvcmFnZUFyZWFT
eW5jKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwg
dWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChtX25ldHdvcmtQcm9j
ZXNzLT5zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkKCkpIHsKKyAgICAgICAgUkVMRUFTRV9MT0co
U3RvcmFnZSwgIiVwIC0gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNvbm5lY3RUb1N0
b3JhZ2VBcmVhU3luYyBmYWlsZWQgYmVjYXVzZSBzdG9yYWdlIHRocmVhZCBpcyBzdXNwZW5kZWQi
LCB0aGlzKTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFN0b3JhZ2VBcmVhSWRl
bnRpZmllciB7IH0sIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IHsgfSwgMCk7CisgICAgfQorCisg
ICAgYXV0byogc2Vzc2lvbiA9IG1fbmV0d29ya1Byb2Nlc3MtPm5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCk7CisgICAgaWYgKCFzZXNzaW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoU3RvcmFnZUFyZWFJZGVudGlmaWVyIHsgfSwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4geyB9
LCAwKTsKKworICAgIHNlc3Npb24tPnN0b3JhZ2VNYW5hZ2VyKCkuY29ubmVjdFRvU3RvcmFnZUFy
ZWFPbk1haW5UaHJlYWQoY29ubmVjdGlvbiwgdHlwZSwgc291cmNlSWRlbnRpZmllciwgbmFtZXNw
YWNlSWRlbnRpZmllciwgb3JpZ2luLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisK
ICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkdfSU5fTkVUV09SS0lOR19QUk9DRVNTKQogdm9p
ZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6aW5zdGFsbE1vY2tDb250ZW50RmlsdGVy
KFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmJiBzZXR0aW5ncykKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCAwMmZiZWQ3NjY1MjlkY2ExYzA0NzgzMmRmYzg1Zjk1MDZj
YThmNmNkLi44MmI0YzlmYzFmYzEzN2Y1MGEyZjVlZWQ2ZmExZmUyOGUyOTRlMTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0zNiw2ICszNiw5IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jl
c291cmNlTG9hZE1hcC5oIgogI2luY2x1ZGUgIlBvbGljeURlY2lzaW9uLmgiCiAjaW5jbHVkZSAi
U2FuZGJveEV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKQEAgLTUxLDYgKzU0LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SVENEYXRhQ2hhbm5l
bElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZ2lzdHJhYmxlRG9tYWluLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlVHlwZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29j
a2V0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgpAQCAtMzcyLDYgKzM3Niw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHNldFJlc291cmNlTG9hZFNjaGVkdWxpbmdNb2RlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpMb2FkU2NoZWR1bGluZ01vZGUpOwogICAgIHZvaWQgcHJpb3JpdGl6ZVJlc291cmNl
TG9hZHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4mKTsK
KyAgICB2b2lkIGNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhJUEM6OkNvbm5lY3Rpb24mLCBQQUw6
OlNlc3Npb25JRCwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmll
ciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiwgdWludDY0X3QpPiYmKTsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlf
UkVNT1RFX1VJKQogICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5JiBwYXltZW50Q29vcmRp
bmF0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IGEyNjI5ZTRlZGIyMTRiM2QyNmFjYTc4ZGE4NDVjNjVkMGU1YWEzNDEuLjIyMzk3ZDIxMzNiYjM0
ODJhZDc2OWI0OWQ4NDFhNzk4YzliNzBjZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTEzLDYgKzExMyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogICAgIFNldFJl
c291cmNlTG9hZFNjaGVkdWxpbmdNb2RlKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBhZ2VJ
RCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkxvYWRTY2hlZHVsaW5nTW9kZSBtb2RlKQogICAgIFBy
aW9yaXRpemVSZXNvdXJjZUxvYWRzKFZlY3RvcjxXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50
aWZpZXI+IGxvYWRJZGVudGlmaWVycykKKyAgICBDb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBXZWJLaXQ6
OlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJLaXQ6OlN0b3Jh
Z2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXIg
aWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXMsIHVpbnQ2NF90IG1lc3Nh
Z2VJZGVudGlmaWVyKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KIAogI2lmIEVOQUJMRShD
T05URU5UX0ZJTFRFUklOR19JTl9ORVRXT1JLSU5HX1BST0NFU1MpCiAgICAgSW5zdGFsbE1vY2tD
b250ZW50RmlsdGVyKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mgc2V0dGluZ3Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IDEyZmYyYWNlNTI1MjA4OTNiMDI4MzI4MDZkNjRlNzdjZTA4YzNhZWEuLjM4NGMwZjE4NzUw
ODAyMmNlMTAyNGFkMWMyNDQ0OTliM2VjZDI5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC00NTksNyArNDU5LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1l
dGVycyYmIHBhcmFtZXRlcnMKICAgICAgICAgcmV0dXJuIE5ldHdvcmtTZXNzaW9uOjpjcmVhdGUo
KnRoaXMsIHBhcmFtZXRlcnMubmV0d29ya1Nlc3Npb25QYXJhbWV0ZXJzKTsKICAgICB9KS5pdGVy
YXRvci0+dmFsdWU7CiAKLSAgICBpZiAobV9pc1N1c3BlbmRlZCkKKyAgICBpZiAobV9zdG9yYWdl
T3BlcmF0aW9uU3VzcGVuZGVkKQogICAgICAgICBzZXNzaW9uLT5zdG9yYWdlTWFuYWdlcigpLnN1
c3BlbmQoW10geyB9KTsKIH0KIApAQCAtMjE2MCw3ICsyMTYwLDYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0
aW9uSGFuZGwKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQg
UHJvY2VzcyBpcyAle3B1YmxpY31zaW4gYmFja2dyb3VuZCIsIHRoaXMsIGlzU3VzcGVuc2lvbklt
bWluZW50LCBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIiIDogIm5vdCAiKTsKIAotICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7CiAKICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3Ig
PSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShbdGhpcywgY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKQEAgLTIxNjgsMTEgKzIxNjcs
NiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAgICBVTlVTRURfVkFSSUFCTEUodGhp
cyk7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgfSk7Ci0gICAgCi0jaWYgRU5B
QkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpzdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7Ci0jZW5k
aWYKLSAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVuZChbY2FsbGJhY2tB
Z2dyZWdhdG9yXSB7IH0pOwogCiAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0byYg
c2Vzc2lvbikgewogICAgICAgICBwbGF0Zm9ybUZsdXNoQ29va2llcyhzZXNzaW9uLnNlc3Npb25J
RCgpLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwpAQCAtMjE4MCw3ICsyMTc0LDYgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWlu
ZW50LCBDb21wbGV0aW9uSGFuZGwKICAgICAgICAgaWYgKGF1dG8qIHN3U2VydmVyID0gc2Vzc2lv
bi5zd1NlcnZlcigpKQogICAgICAgICAgICAgc3dTZXJ2ZXItPnN0YXJ0U3VzcGVuc2lvbihbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogI2VuZGlmCi0gICAgICAgIHNlc3Npb24uc3RvcmFnZU1h
bmFnZXIoKS5zdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgfSk7CiAKICAg
ICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlByb2Nlc3NDb25uZWN0aW9ucy52YWx1ZXMo
KSkKQEAgLTIyMTAsMjIgKzIyMDMsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0Rp
ZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKICAgICBlbHNlCiAgICAgICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vz
c0RpZFJlc3VtZSgpIGZvckZvcmVncm91bmRBY3Rpdml0eT0lZCBQcm9jZXNzIGhhcyBiZWVuIGlu
IGJhY2tncm91bmQgZm9yICVmIHNlY29uZHMiLCB0aGlzLCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHks
IChNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wLnZhbHVl
KCkpLnZhbHVlKCkpOwogCi0gICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwotCiAgICAgZm9yIChh
dXRvJiBjb25uZWN0aW9uIDogbV93ZWJQcm9jZXNzQ29ubmVjdGlvbnMudmFsdWVzKCkpCiAgICAg
ICAgIGNvbm5lY3Rpb24tPmVuZFN1c3BlbnNpb24oKTsKIAotI2lmIEVOQUJMRShJTlRFTExJR0VO
VF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6cmVzdW1lKCk7Ci0jZW5kaWYKLSAgICBQQ006OlN0b3JlOjpwcm9jZXNzRGlkUmVzdW1lKCk7
Ci0KICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW10oYXV0byYgc2Vzc2lvbikgewogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKICAgICAgICAgaWYgKGF1dG8qIHN3U2VydmVyID0gc2Vzc2lv
bi5zd1NlcnZlcigpKQogICAgICAgICAgICAgc3dTZXJ2ZXItPmVuZFN1c3BlbnNpb24oKTsKICNl
bmRpZgotICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CiAgICAgfSk7
CiB9CiAKQEAgLTI3NzYsNCArMjc2MSwzMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpjb3VudE5v
bkRlZmF1bHRTZXNzaW9uU2V0cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZQogICAg
IGNvbXBsZXRpb25IYW5kbGVyKHNlc3Npb24gPyBzZXNzaW9uLT5jb3VudE5vbkRlZmF1bHRTZXNz
aW9uU2V0cygpIDogMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBD
YWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCA9PSBzdXNwZW5kZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIFJFTEVBU0VfTE9HKFN0b3JhZ2UsICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpzZXRQcm9jZXNzU3VzcGVuZGVkIHN1c3BlbmRlZD0lZCIsIHRoaXMsIHN1c3BlbmRlZCk7Cisg
ICAgbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID0gc3VzcGVuZGVkOworICAgIGlmIChtX3N0
b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQpIHsKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKKyAgICAgICAgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpz
dXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CisjZW5kaWYKKyAgICAgICAgUENNOjpT
dG9yZTo6cHJlcGFyZUZvclByb2Nlc3NUb1N1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9
KTsKKyAgICAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0byYgc2Vzc2lvbikgewor
ICAgICAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW2NhbGxiYWNrQWdn
cmVnYXRvcl0oKSB7IH0pOworICAgICAgICB9KTsKKyAgICB9IGVsc2UgeworI2lmIEVOQUJMRShJ
TlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQorICAgICAgICBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OnJlc3VtZSgpOworI2VuZGlmCisgICAgICAgIFBDTTo6U3RvcmU6OnBy
b2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFsmXSAoYXV0
byYgc2Vzc2lvbikgeworICAgICAgICAgICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnJlc3Vt
ZSgpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDRjYjlk
YjAwOWE4OWU2ZTc4ZWNmOTU1YjQ3OTJiNzM2YzIyYmExYmEuLjI1MmY0NWM4YjU3YjBiYjBlOWEy
NDU3ZjYwMTFkNTgwMGJhNWZmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmgKQEAgLTE3OCw2ICsxNzgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBw
cm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNp
b25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHByb2Nl
c3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpOworICAgIHZvaWQgc2V0U3Rv
cmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CisgICAgYm9vbCBzdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkOyB9CiAKICAgICBDYWNoZU1vZGVs
IGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KIApAQCAtNTMwLDcg
KzUzMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRF
bmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKLSAgICBi
b29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdG9yYWdlT3BlcmF0aW9u
U3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vbm90b25pY1RpbWU+IG1f
ZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMzIwNmRj
Yjk3NTk5Y2U0NDVhNzNjOTY2N2FmN2QyMWM2MWY3Yzg3MC4uMjkzMjliOGY3NzIyNjQxNGI5YTAy
ZjE1OTU5MTZlNWY5YTUyYjIwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NCw2ICs3NCw3IEBAIG1l
c3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91cwogICAg
IFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkKICAgICBQ
cm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQorICAgIFNldFN0b3Jh
Z2VPcGVyYXRpb25zU3VzcGVuZGVkKGJvb2wgc3VzcGVuZGVkKSAtPiAoKQogCiAgICAgUHJlY29u
bmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQs
IFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6
b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJ
bml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuY3BwCmluZGV4IGY5YmIyODVjMmU0MWE0ZDE4OGUwNTA0N2Y4ZTczMDIwYzBlOGYy
N2MuLmI1NGExMzRlMzE5N2ZkZDhiZjI0ZGZmOTY4NzNkYzU5NzI1YTExYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03ODksOSArNzg5LDE1IEBAIHZvaWQgTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjpjb25uZWN0VG9TdG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIFdlCiAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdElkZW50aWZpZXIsIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+IHsgfSwgU3RvcmFnZUFyZWFCYXNlOjpuZXh0TWVzc2FnZUlk
ZW50aWZpZXIoKSk7CiB9CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjb25uZWN0VG9T
dG9yYWdlQXJlYVN5bmMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTdG9y
YWdlVHlwZSB0eXBlLCBTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFn
ZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwgdWludDY0X3QpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3RUb1N0
b3JhZ2VBcmVhT25NYWluVGhyZWFkKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2ViQ29y
ZTo6U3RvcmFnZVR5cGUgdHlwZSwgU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0VG9TdG9yYWdlQXJlYShjb25u
ZWN0aW9uLCB0eXBlLCBzb3VyY2VJZGVudGlmaWVyLCBuYW1lc3BhY2VJZGVudGlmaWVyLCBvcmln
aW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb3RlY3RlZENvbm5lY3Rpb24g
PSBSZWYgeyBjb25uZWN0aW9uIH0sIHR5cGUsIHNvdXJjZUlkZW50aWZpZXIsIG5hbWVzcGFjZUlk
ZW50aWZpZXIsIG9yaWdpbiA9IGNyb3NzVGhyZWFkQ29weShvcmlnaW4pLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBj
b25uZWN0VG9TdG9yYWdlQXJlYShwcm90ZWN0ZWRDb25uZWN0aW9uLmdldCgpLCB0eXBlLCBzb3Vy
Y2VJZGVudGlmaWVyLCBuYW1lc3BhY2VJZGVudGlmaWVyLCBvcmlnaW4sIFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHN0b3JhZ2VBcmVhSWRlbnRp
ZmllciwgYXV0byBpdGVtcywgYXV0byBtZXNzYWdlSWRlbnRpZmllcikgbXV0YWJsZSB7CisgICAg
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHN0b3JhZ2VBcmVhSWRlbnRpZmllciwgaXRlbXMgPSBj
cm9zc1RocmVhZENvcHkoaXRlbXMpLCBtZXNzYWdlSWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdG9yYWdlQXJlYUlkZW50aWZpZXIsIGl0
ZW1zLCBtZXNzYWdlSWRlbnRpZmllcik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjYW5jZWxDb25uZWN0VG9T
dG9yYWdlQXJlYShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OlN0b3JhZ2VU
eXBlIHR5cGUsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYgb3JpZ2luKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCmluZGV4IDExYWQyODgyMGYyZWZiYmEyMTA3MTI4MzY3MTE5OTVmMmY3YjRiZWMuLjQ2MGUx
NDRlMGQxMGUyY2RkODdlMjkwNWFjNWJkYzdlNTk3ZjA3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmgKQEAgLTk1LDYgKzk1LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVxdWVzdFNwYWNlKGNv
bnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIHVpbnQ2NF90IHNpemUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgcmVzZXRRdW90YUZvclRlc3RpbmcoQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0UXVvdGFVcGRhdGVkQmFzZWRP
blVzYWdlRm9yVGVzdGluZyhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJik7CisgICAgdm9pZCBjb25u
ZWN0VG9TdG9yYWdlQXJlYU9uTWFpblRocmVhZChJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpT
dG9yYWdlVHlwZSwgU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdG9yYWdlQXJlYUlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50
NjRfdCk+JiYpOwogCiBwcml2YXRlOgogICAgIE5ldHdvcmtTdG9yYWdlTWFuYWdlcihQQUw6OlNl
c3Npb25JRCwgSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgY29uc3QgU3RyaW5nJiBwYXRoLCBj
b25zdCBTdHJpbmcmIGN1c3RvbUxvY2FsU3RvcmFnZVBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9t
SURCU3RvcmFnZVBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9tQ2FjaGVTdG9yYWdlUGF0aCwgdWlu
dDY0X3QgZGVmYXVsdE9yaWdpblF1b3RhLCB1aW50NjRfdCBkZWZhdWx0VGhpcmRQYXJ0eU9yaWdp
blF1b3RhLCBib29sIHNob3VsZFVzZUN1c3RvbVBhdGhzKTsKQEAgLTExMSw3ICsxMTIsNiBAQCBw
cml2YXRlOgogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIgKGltcGxlbWVudGVkIGJ5IGdl
bmVyYXRlZCBjb2RlKQogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7Ci0gICAgYm9vbCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJiwgVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4mIHJlcGx5
RW5jb2Rlcik7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzIGZvciBGaWxlU3lzdGVtLgogICAg
IHZvaWQgcGVyc2lzdGVkKGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwpAQCAtMTMzLDcgKzEzMyw2IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycyBmb3IgV2ViU3RvcmFnZS4KICAgICB2b2lkIGNvbm5l
Y3RUb1N0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBT
dG9yYWdlQXJlYU1hcElkZW50aWZpZXIsIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VB
cmVhSWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90KT4mJik7Ci0g
ICAgdm9pZCBjb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciwgU3RvcmFnZU5hbWVzcGFj
ZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiwg
dWludDY0X3QpPiYmKTsKICAgICB2b2lkIGNhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKElQQzo6
Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJik7CiAgICAgdm9pZCBkaXNjb25uZWN0
RnJvbVN0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYsIFN0b3JhZ2VBcmVhSWRlbnRpZmllcik7
CiAgICAgdm9pZCBjbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKElQQzo6Q29ubmVjdGlvbiYs
IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA3ZDliNzM5
MzU3YTQzOGM0NzJiNDQwMDhjOTNmNDdhNTM0OGI2MDQ0Li45MDhmZDc3NTIxZjg5MGE3MDk2MmY3
YWM4NTUyNjllNzhhMDFkZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4KQEAgLTQxLDcgKzQxLDYgQEAKICAgICBHZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUpIC0+IChFeHBlY3Rl
ZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+LCBX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgV2FudHNDb25uZWN0aW9uCiAK
ICAgICBDb25uZWN0VG9TdG9yYWdlQXJlYShXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBXZWJL
aXQ6OlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXMsIHVpbnQ2NF90IG1l
c3NhZ2VJZGVudGlmaWVyKSBXYW50c0Nvbm5lY3Rpb24KLSAgICBDb25uZWN0VG9TdG9yYWdlQXJl
YVN5bmMoV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlQXJlYU1hcElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9y
aWdpbikgLT4gKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikgU3lu
Y2hyb25vdXMgV2FudHNDb25uZWN0aW9uCiAgICAgQ2FuY2VsQ29ubmVjdFRvU3RvcmFnZUFyZWEo
V2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9y
aWdpbikgV2FudHNDb25uZWN0aW9uCiAgICAgRGlzY29ubmVjdEZyb21TdG9yYWdlQXJlYShXZWJL
aXQ6OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyKSBXYW50c0Nvbm5lY3Rpb24KICAg
ICBDbG9uZVNlc3Npb25TdG9yYWdlTmFtZXNwYWNlKFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlk
ZW50aWZpZXIgZnJvbVN0b3JhZ2VOYW1lc3BhY2VJRCwgV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNl
SWRlbnRpZmllciB0b1N0b3JhZ2VOYW1lc3BhY2VJRCkgV2FudHNDb25uZWN0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNT
UEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNl
c1NQSS5oCmluZGV4IDQyNTEzMmZlOTBjZmJlYzM3NmYzNjkyMTVmMDQzMmNmMmJhOTg4NGQuLmVl
ZjY3MDhiNmI3YjY5Nzk1MTA1N2E5ZmViMjk5MDUyNDdjOGMzODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5o
CkBAIC0xMzEsMTQgKzEzMSwyNCBAQCB0eXBlZGVmIHZvaWQgKF5SQlNQcm9jZXNzVXBkYXRlSGFu
ZGxlcikoUkJTUHJvY2Vzc01vbml0b3IgKm1vbml0b3IsIFJCU1Byb2Nlc3NIYQogCiBAaW50ZXJm
YWNlIFJCU1Byb2Nlc3NNb25pdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4KICsgKGluc3RhbmNl
dHlwZSltb25pdG9yV2l0aENvbmZpZ3VyYXRpb246KE5TX05PRVNDQVBFIFJCU1Byb2Nlc3NNb25p
dG9yQ29uZmlndXJhdG9yKWJsb2NrOworLSAodm9pZClpbnZhbGlkYXRlOwogQGVuZAogCiBAaW50
ZXJmYWNlIFJCU1Byb2Nlc3NQcmVkaWNhdGUgOiBOU09iamVjdCA8UkJTUHJvY2Vzc01hdGNoaW5n
PgogKyAoUkJTUHJvY2Vzc1ByZWRpY2F0ZSAqKXByZWRpY2F0ZU1hdGNoaW5nSGFuZGxlOihSQlNQ
cm9jZXNzSGFuZGxlICopcHJvY2VzczsKIEBlbmQKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRl
Z2VyLCBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMpIHsKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU5v
bmUgICAgICAgICAgICAgICAgICAgID0gMCwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZVRhc2tT
dGF0ZSAgICAgICAgICAgICAgID0gKDEgPDwgMCksCisgICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVU
YWdzICAgICAgICAgICAgICAgICAgICA9ICgxIDw8IDEpLAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZh
bHVlVGVybWluYXRpb25SZXNpc3RhbmNlICAgPSAoMSA8PCAyKSwKKyAgICBSQlNQcm9jZXNzU3Rh
dGVWYWx1ZUxlZ2FjeUFzc2VydGlvbnMgICAgICAgID0gKDEgPDwgMyksCisgICAgUkJTUHJvY2Vz
c1N0YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zICAgICAgICA9ICgxIDw8IDQpLAorfTsKIAogQGlu
dGVyZmFjZSBSQlNQcm9jZXNzU3RhdGVEZXNjcmlwdG9yIDogTlNPYmplY3QgPE5TQ29weWluZz4K
ICsgKGluc3RhbmNldHlwZSlkZXNjcmlwdG9yOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3
cml0ZSwgYXNzaWduKSBSQlNQcm9jZXNzU3RhdGVWYWx1ZXMgdmFsdWVzOwogQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWR3cml0ZSwgY29weSwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4g
KmVuZG93bWVudE5hbWVzcGFjZXM7CiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAx
N2MxMGY5ZjRlODgxNGJlODA4YzA5YzBkZTNlODUxZDA0NGE2MWJmLi4yZmM3MWE4YmJhNjlhOTE5
NTg3MzVlY2I4NjZkYjYzOGFhNjU4YzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC00OTAs
NiArNDkwLDcgQEAgVUlQcm9jZXNzL2lvcy9HZXN0dXJlUmVjb2duaXplckNvbnNpc3RlbmN5RW5m
b3JjZXIubW0KIFVJUHJvY2Vzcy9pb3MvSW5wdXRWaWV3VXBkYXRlRGVmZXJyZXIubW0KIFVJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2Vy
dGlvbklPUy5tbQorVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLm1tCiBVSVByb2Nl
c3MvaW9zL1NtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0KIFVJUHJvY2Vzcy9pb3MvVGV4
dENoZWNrZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZS5tbQppbmRleCBlNmYyZmNmMDJiMjRmYTE2MDIxYzNiZTgzZjYxMTZmOTg5NjEw
MDI3Li43ODQ3ZGRjM2E2MjhlYWJkNDc3OWVhNTI2NGM1ZGMzOGZmODY5NWNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3Rv
cmUubW0KQEAgLTc1Niw2ICs3NTYsMTMgQEAgc3RhdGljIFZlY3RvcjxXZWJLaXQ6OldlYnNpdGVE
YXRhUmVjb3JkPiB0b1dlYnNpdGVEYXRhUmVjb3JkcyhOU0FycmF5ICpkYXRhUmVjb3IKICAgICBf
d2Vic2l0ZURhdGFTdG9yZS0+c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CiB9CiAKKy0g
KHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNw
ZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIK
K3sKKyAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRG
b3JUZXN0aW5nKHN1c3BlbmRlZCwgW2NvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNv
bXBsZXRpb25IYW5kbGVyKV0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0p
OworfQorCiAtICh2b2lkKV9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91
bmQKIHsKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5zeW50aGVzaXpl
QXBwSXNCYWNrZ3JvdW5kKGJhY2tncm91bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5k
ZXggMzE2YjMyOWE1ZjZjM2E1YWY3ZTdlMjk0OWY4N2YzN2RmNzJlNzM2Mi4uMWFjYTc1MTE5M2E4
NDJiNDczMzkzMTMyZDJlODBhYjdhMmNiZmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5o
CkBAIC0xMDEsNiArMTAxLDcgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dl
YnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlvbnMpIHsKIC0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vz
c1dpbGxTdXNwZW5kSW1taW5lbnRseSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3Mo
MTUuMCkpOwogLSAodm9pZClfc2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiArICh2b2lkKV9zZXROZXR3b3JrUHJvY2Vz
c1N1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZzooQk9PTClhbGxvd2VkIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRlc3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFC
TEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zeW50aGVz
aXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX21ha2VO
ZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hGYWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEyLjApLCBpb3MoMTUuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggNzAyMWNjNDEyYjY0ZDc3
M2MxZDZkODQxNGE5MWExZGVmNTgxZTJkZC4uZjI0ZWE2MGYwNzZmYmVlMzkzN2E4NjA1ZmM2NzU0
Mzk4OWMwNTY4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC03OCw2ICs3OCw3IEBACiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5o
IgogI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgogI2VuZGlmCiAKQEAgLTEzODMs
NiArMTM4NCwyOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVz
dW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBSZXN1bWVSZWFzb246OkZvcmVncm91
bmRBY3Rpdml0eSksIDApOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlz
aExhc3RBY3Rpdml0aXkoKQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1f
cHJvY2Vzc1N0YXRlTW9uaXRvcikKKyAgICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yLT5zdXNw
ZW5kUHJvY2Vzc0lmUG9zc2libGUoKTsKKyNlbmRpZgorfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNw
ZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdG9y
YWdlT3BlcmF0aW9uc1N1c3BlbmRlZChzdXNwZW5kZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Cit9CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitwaWRfdCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9jZXNzSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0
dXJuIHByb2Nlc3NJZGVudGlmaWVyKCk7Cit9CisKKyNlbmRpZgorCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lvbklE
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwpAQCAtMTgyMCwxMSArMTg0MywyMSBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om5hdmlnYXRlU2VydmljZVdvcmtlckNsaWVudChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZgogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQor
ICAgIGlmICghbV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1v
bml0b3IgPSBtYWtlVW5pcXVlPFByb2Nlc3NTdGF0ZU1vbml0b3I+KCp0aGlzKTsKKyNlbmRpZgor
CiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0
aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBpZiAobV9wcm9jZXNzU3RhdGVNb25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1vbml0
b3IgPSBudWxscHRyOworI2VuZGlmCisKICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmlu
ZGV4IGEyMjhlNGMyYTQyODNjMTJkNDhiOWE5ZTVkNDhmMTMxYjhjMGU3NGYuLjVhNTQ0MDBiMDk3
MzEyZjEwMWE1ZWY4MjRjYWU1MmU0NGMzYjUzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01NSw2ICs1NSwx
MSBAQAogI2luY2x1ZGUgPHd0Zi9PU09iamVjdFB0ci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKKyNpbmNsdWRl
ICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIElQQyB7
CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5jZTsKIH0KQEAgLTEwNSw3ICsxMTAsMTEgQEAgc3RydWN0
IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVi
bGljIEF1eGlsaWFyeVByb2Nlc3NQcm94eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
IHsKK2NsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJv
Y2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICwgcHVibGljIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQKKyNlbmRp
ZgorewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIHVzaW5nIFJl
Z2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW47CkBAIC0yNDIsNiAr
MjUxLDE1IEBAIHB1YmxpYzoKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CiAgICAgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsOwogICAgIEFTQ0lJTGl0
ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQcm9jZXNzIl9z
OyB9CisgICAgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgZmluYWw7CisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgIC8vIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQKKyAgICB2
b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5k
ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgUHJvY2Vzc0lEIG1v
bml0b3JlZFByb2Nlc3NJZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CisjZWxzZQorICAgIHZvaWQg
c2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyNlbmRpZgogICAgIAogICAgIHN0YXRpYyB2
b2lkIHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNlbmRQ
cm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpOwpAQCAtNDI4LDYgKzQ0Niw3
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8aWQ+
IG1fYmFja2dyb3VuZE9ic2VydmVyOwogICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2Jz
ZXJ2ZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IG1fcHJvY2Vz
c1N0YXRlTW9uaXRvcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCA0NzEyZjJlY2ZiYTJjNWE5OWUyZDZiYWQ0ZjFlMDVj
NTdkZGU4NmE1Li5lNTMwMzMxZTMzZTAzYTk2YWQ3Y2JkMzYzY2FmZmYxMjY0MDM4Yzg4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtNjgsMTIg
KzY4LDE4IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkoRm9yZWdyb3Vu
ZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsKICAgICBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnJlbW92
ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCk7CisKKyAgICBpZiAo
IXNob3VsZEJlUnVubmFibGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rp
dml0aXkoKTsKIH0KIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eShCYWNr
Z3JvdW5kQWN0aXZpdHkmIGFjdGl2aXR5KQogewogICAgIG1fYmFja2dyb3VuZEFjdGl2aXRpZXMu
cmVtb3ZlKCZhY3Rpdml0eSk7CiAgICAgdXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKKworICAg
IGlmICghc2hvdWxkQmVSdW5uYWJsZSgpKQorICAgICAgICBtX3Byb2Nlc3MuZGlkRmluaXNoTGFz
dEFjdGl2aXRpeSgpOwogfQogCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OmludmFsaWRhdGVBbGxB
Y3Rpdml0aWVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXJDbGllbnQuaAppbmRleCBmYzc3YmE5NTMzOWE0NmY4ODc5NjZmOGZjYjMwYTU5ZGZkZWFiNDY2
Li5iNDhkMWQ4ZGRlYmNiMDY3MGQ4YTI0ZTE4NjExNGJkZWRhYmVjYTE4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC00MSw2ICs0
MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVz
dW1lUmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJv
Y2Vzc0Fzc2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJhbCBjbGllbnRO
YW1lKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5
KCkgeyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4
IDE2MzY0MzM5YWJmOTk1MzNiYTJmZmM3ODRlZjI2Mjg2ZTBhY2FjMmEuLmZkZjY3ODlkNGVkNDJh
Zjk1ZDI0ODg0NTEwMDBiMzA3MGQxNWNkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjEwLDYg
KzE2MTAsMTEgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NEaWRS
ZXN1bWUoKQogICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJvY2Vz
c1Rocm90dGxlckNsaWVudDo6UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQog
Cit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9y
VGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFNldFN0b3JhZ2VPcGVy
YXRpb25zU3VzcGVuZGVkTWVzc2FnZShzdXNwZW5kZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKK30KKwogYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RW5hYmxlZCgpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZF
TlRJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggZDlkNjIyMzBmOTA1YjQ5YWRjZWFjZWJmNTllYmExYWFk
YWJiN2Q4ZC4uNDIxNDExNTc2ZTQwYzExMTNmNzJhMDc1Yjk3NTFhY2U0OGNmMjIzYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuaApAQCAtMTQzLDYgKzE0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmROZXR3b3Jr
UHJvY2Vzc1ByZXBhcmVUb1N1c3BlbmRGb3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlG
b3JUZXN0aW5nKCk7CiAgICAgdm9pZCBzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsKKyAg
ICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3Bl
bmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIG5ldHdvcmtQcm9j
ZXNzRGlkVGVybWluYXRlKE5ldHdvcmtQcm9jZXNzUHJveHkmKTsKICAgICBzdGF0aWMgdm9pZCBt
YWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcoKTsKICAgICBzdGF0aWMg
Ym9vbCBzaG91bGRNYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDFlNWY1NjRlMTVjNDNhZDJiMmExYTczMzY5MWYzNjZlMGI5MGUyZTguLjRmYTVmYjZjMTJkNWNh
NjUzMDhiNDcwYjZhMDgxMDgwMDQ0ZWFmMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ3Niw2ICsxNDc2LDggQEAKIAkJOTM1QjU3
OUEyNkY1MTkzMzAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUI1Nzk4MjZG
NTEyNzAwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmggKi87IH07
CiAJCTkzNUVFQjlCMTI3NzYxN0MwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0
ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVF
Qjk4MTI3NzYxNkQwMDMzMjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzVFRUI5RjEy
Nzc2MUFDMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUVFQjk2MTI3NzYxNkQwMDMzMjJC
OCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNUZFNUI2MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9j
ZXNzU3RhdGVNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzVGRTVCMzI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5o
ICovOyB9OworCQk5MzVGRTVCODI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRv
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM1RkU1QjUyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAq
LzsgfTsKIAkJOTM3MzVFQkIxQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JbnRlcm5hbC5o
ICovOyB9OwogCQk5MzkxMDc0RjFCRjZCQzY1MDA4QzE3QUQgLyogV0tQcmV2aWV3RWxlbWVudElu
Zm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTM5MTA3NEUxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJu
YWwuaCAqLzsgfTsKIAkJOTM5MUYyQ0IxMjFCNjdBRDAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0
LmggKi87IH07CkBAIC01NzUxLDYgKzU3NTMsOSBAQAogCQk5MzVFRUI5NjEyNzc2MTZEMDAzMzIy
QjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM1RUVCOTcxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0SXRlbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRs
ZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCMzI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQcm9jZXNzU3RhdGVNb25pdG9yLmg7IHBhdGggPSBpb3MvUHJvY2Vzc1N0YXRlTW9u
aXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5MzVGRTVCNDI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFByb2Nlc3NTdGF0ZU1vbml0b3IubW07IHBhdGggPSBpb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM1RkU1QjUy
ODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oOyBwYXRo
ID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM3MzVFQkExQzkyOTg2MzAwMzM2RkE3IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ByZXZpZXdBY3Rp
b25JdGVtSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MTA3NEUx
QkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3RWxlbWVudEluZm9JbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTgg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC05MjQ3LDYgKzkyNTIsOSBAQAogCQkJCTBGQ0I0RTM2MThCQkUwNDQwMDBGQ0ZD
OSAvKiBQYWdlQ2xpZW50SW1wbElPUy5oICovLAogCQkJCTBGQ0I0RTM3MThCQkUwNDQwMDBGQ0ZD
OSAvKiBQYWdlQ2xpZW50SW1wbElPUy5tbSAqLywKIAkJCQk4NkY5NTM2MjE4RkY1NTBCMDAxREIy
RUYgLyogUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSAqLywKKwkJCQk5MzVGRTVCMzI4MTM1NjI1MDBE
MzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oICovLAorCQkJCTkzNUZFNUI0MjgxMzU2MjUw
MEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yLm1tICovLAorCQkJCTkzNUZFNUI1MjgxMzU2
MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi8sCiAJCQkJMkRBRjA2
RDQxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIuaCAqLywK
IAkJCQkyREFGMDZEODE4QkQyM0JBMDA4MUNFQjEgLyogU21hcnRNYWduaWZpY2F0aW9uQ29udHJv
bGxlci5tZXNzYWdlcy5pbiAqLywKIAkJCQkyREFGMDZENTE4QkQxQTQ3MDA4MUNFQjEgLyogU21h
cnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5tbSAqLywKQEAgLTE0NTQwLDYgKzE0NTQ4LDggQEAK
IAkJCQk1Q0I5MzEwOTI2RTg0MzlBMDAzMkIxQzAgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRY
UENVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJF
RiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZF
MTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5MzVG
RTVCNjI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTM1RkU1QjgyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQ
cm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTY3QTI1MTkx
MEI5RDEwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5jcHAKaW5kZXggZDRjZjZhY2E3ODE5MmM3MzUwZmEzYzg2OWY5OTRl
YjAwNmViN2UzOC4uYjZjNDUzOGNiNDk5NmQxMTRlMTIwZjFmNDRmNjU5ZTc4NWFkZGU3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFN
YXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VB
cmVhTWFwLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgi
CiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZUFyZWFJbXBsLmgiCkBAIC0zNTEsNyArMzUyLDcgQEAgdm9pZCBTdG9yYWdlQXJlYU1h
cDo6c2VuZENvbm5lY3RNZXNzYWdlKFNlbmRNb2RlIG1vZGUpCiAgICAgICAgIFN0b3JhZ2VBcmVh
SWRlbnRpZmllciByZW1vdGVBcmVhSWRlbnRpZmllcjsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4gaXRlbXM7CiAgICAgICAgIHVpbnQ2NF90IG1lc3NhZ2VJZGVudGlmaWVyOwotICAg
ICAgICBpcGNDb25uZWN0aW9uLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OkNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyh0eXBlLCBtX2lkZW50aWZpZXIsIG5hbWVzcGFj
ZUlkZW50aWZpZXIsIG9yaWdpbiksIE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNv
bm5lY3RUb1N0b3JhZ2VBcmVhU3luYzo6UmVwbHkocmVtb3RlQXJlYUlkZW50aWZpZXIsIGl0ZW1z
LCBtZXNzYWdlSWRlbnRpZmllciksIDApOworICAgICAgICBpcGNDb25uZWN0aW9uLnNlbmRTeW5j
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q29ubmVjdFRvU3RvcmFn
ZUFyZWFTeW5jKG1fbmFtZXNwYWNlLnNlc3Npb25JRCgpLCB0eXBlLCBtX2lkZW50aWZpZXIsIG5h
bWVzcGFjZUlkZW50aWZpZXIsIG9yaWdpbiksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6Q29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jOjpSZXBseShyZW1vdGVBcmVhSWRl
bnRpZmllciwgaXRlbXMsIG1lc3NhZ2VJZGVudGlmaWVyKSwgMCk7CiAgICAgICAgIGRpZENvbm5l
Y3QocmVtb3RlQXJlYUlkZW50aWZpZXIsIFdURk1vdmUoaXRlbXMpLCBtZXNzYWdlSWRlbnRpZmll
cik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zODMsMTIgKzM4NCwxNyBAQCB2b2lkIFN0
b3JhZ2VBcmVhTWFwOjpjb25uZWN0KCkKIHZvaWQgU3RvcmFnZUFyZWFNYXA6OmRpZENvbm5lY3Qo
U3RvcmFnZUFyZWFJZGVudGlmaWVyIHJlbW90ZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiYmIGl0ZW1zLCB1aW50NjRfdCBtZXNzYWdlSWRlbnRpZmllcikKIHsKICAgICBt
X2lzV2FpdGluZ0ZvckNvbm5lY3RSZXBseSA9IGZhbHNlOwotICAgIGlmIChtZXNzYWdlSWRlbnRp
ZmllciA8IG1fbGFzdEhhbmRsZWRNZXNzYWdlSWRlbnRpZmllcikKKyAgICBpZiAobWVzc2FnZUlk
ZW50aWZpZXIgPCBtX2xhc3RIYW5kbGVkTWVzc2FnZUlkZW50aWZpZXIpIHsKKyAgICAgICAgaWYg
KCFtZXNzYWdlSWRlbnRpZmllcikKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFN0b3Jh
Z2UsICIlcCAtIFN0b3JhZ2VBcmVhTWFwOjpkaWRDb25uZWN0IGZhaWxlZCBiZWNhdXNlIG1lc3Nh
Z2VJZGVudGlmaWVyIGlzIDAiLCB0aGlzKTsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IG1fbGFzdEhhbmRsZWRNZXNzYWdlSWRlbnRpZmllciA9IG1lc3NhZ2VJZGVudGlmaWVyOwotICAg
IGlmICghcmVtb3RlQXJlYUlkZW50aWZpZXIuaXNWYWxpZCgpKQorICAgIGlmICghcmVtb3RlQXJl
YUlkZW50aWZpZXIuaXNWYWxpZCgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFN0b3Jh
Z2UsICIlcCAtIFN0b3JhZ2VBcmVhTWFwOjpkaWRDb25uZWN0IGZhaWxlZCBiZWNhdXNlIHJlbW90
ZUFyZWFJZGVudGlmaWVyIGlzIGludmFsaWQiLCB0aGlzKTsKICAgICAgICAgcmV0dXJuOworICAg
IH0KIAogICAgIG1fcmVtb3RlQXJlYUlkZW50aWZpZXIgPSByZW1vdGVBcmVhSWRlbnRpZmllcjsK
ICAgICBtX21hcCA9IG1ha2VVbmlxdWU8U3RvcmFnZU1hcD4obV9xdW90YUluQnl0ZXMpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI0MTBmMjk5
Njk1ZDkyMWZiNzAwYTgzMzZmYWJlMzI2YjY1YTAzN2UuLmY4Y2RjMGIxYWY2YzkwNmYwNWM3MzFi
ZmMyY2MwMjgxYzcwYWMwOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0yOSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBTdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3
aGVuIG5ldHdvcmsgcHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGFuZCB3aWxsIGJlIHN1c3BlbmRl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NDMy
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MjIyODE5MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW06CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbToKKyAgICAg
ICAgKFRFU1QpOgorCiAyMDIyLTA0LTI5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxl
LmNvbT4KIAogICAgICAgICBbZ2l0LXdlYmtpdF0gUmVkYWN0IGJ1ZyB0aXRsZSBpbiBicmFuY2gg
bmFtZSBvbiBhbHRlcm5hdGUgcmVtb3RlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50
bHkubW0KaW5kZXggNDhkYTVjNTJkMGQwOWRkYWI1MmQ4MTdjNDM5NWE5ZjNiYWQxNTMzZi4uMzRl
YTg0MDIyZjFlMGI2MzkwZDE2YTlmNjU3NTA3ZTJlNDBhZWQwMiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRs
eS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWRE
QlN1c3BlbmRJbW1pbmVudGx5Lm1tCkBAIC0xNjMsOCArMTYzLDE3IEBAIFRFU1QoSW5kZXhlZERC
LCBTdXNwZW5kSW1taW5lbnRseUZvclRoaXJkUGFydHlEYXRhYmFzZXMpCiAgICAgW3dlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6bWFpbkZyYW1lU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKICAgICBydW5VbnRpbE1lc3NhZ2VSZWNlaXZlZChA
ImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseV07Ci0g
ICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9j
ZXNzRGlkUmVzdW1lXTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBbY29uZmln
dXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3Bl
bmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9D
b250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWFkeVRvQ29udGludWUpOworCisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2Nv
bmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNT
dXNwZW5kZWRGb3JUZXN0aW5nOk5PIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5
VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcnVuVW50aWxNZXNzYWdlUmVjZWl2ZWQoQCJ0cmFu
c2FjdGlvbiBpcyBjb21wbGV0ZWQiKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1t
CmluZGV4IDAyNTI0MzAyZmJkZmNhODNkYWUyYWE0ZWVhZmQzODlhYWFjM2I2MTkuLmMyMTAyZjNl
MGUxMDkyNjNmNTQ2MmEwNmNhNzM2NjFmODAxODFkNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJz
aXN0ZW5jZS5tbQpAQCAtMTcwLDcgKzE3MCwxMSBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9y
YWdlUHJvY2Vzc1N1c3BlbmRzKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ2YWx1ZSIsIFtsYXN0U2Ny
aXB0TWVzc2FnZSBib2R5XSk7CiAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0
YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHldOworICAgIHJl
YWR5VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVE
YXRhU3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpZRVMgY29t
cGxldGlvbkhhbmRsZXI6XnsKKyAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CiAKICAg
ICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKICAgICBbd2ViVmlldzEgZXZhbHVhdGVKYXZhU2Ny
aXB0OkAid2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCdrZXknLCAnbmV3VmFsdWUnKSIgY29t
cGxldGlvbkhhbmRsZXI6XihpZCwgTlNFcnJvciAqKSB7CkBAIC0xODUsNyArMTg5LDExIEBAIFRF
U1QoV0tXZWJWaWV3LCBMb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMpCiAgICAgfV07CiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogICAgIAotICAgIFtj
b25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0Rp
ZFJlc3VtZV07CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRp
b24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRG
b3JUZXN0aW5nOk5PIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJlYWR5VG9Db250aW51
ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRv
Q29udGludWUpOwogCiAgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwo=
</data>
<flag name="commit-queue"
          id="487480"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458599</attachid>
            <date>2022-04-29 11:38:18 -0700</date>
            <delta_ts>2022-05-09 09:04:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239432-20220429113817.patch</filename>
            <type>text/plain</type>
            <size>55023</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA2MWMwZWZiMDFjYTUwZDkx
ZGE5ZDAwNWQyOWVjODE0Mjc1M2ZlYzUuLmQ4ZmY3YzNjZmMyMjQzZmFlODI1Njc1MDdlZDYwY2Nh
OWEyOTAxYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzggQEAKKzIwMjItMDQtMjkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgU3VzcGVuZCBzdG9yYWdlIG9wZXJh
dGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBhbmQgd2lsbCBiZSBz
dXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIyMjgxOTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTmV0d29yayBwcm9jY2VzcyBjdXJy
ZW50bHkgc3VzcGVuZHMgc3RvcmFnZSBvcGVyYXRpb25zIHdoZW4gcmVjZWl2aW5nIFByZXBhcmVU
b1N1c3BlbmQgbWVzc2FnZSBmcm9tIFVJIHByb2Nlc3MuIAorICAgICAgICBIb3dldmVyLCB0aGlz
IGlzIG5vdCBhIHZlcnkgcmVsaWFibGUgc2lnbmFsLCBiZWNhdXNlIFVJIHByb2Nlc3MgbWF5IG5v
dCBzZW5kIHRoZSBtZXNzYWdlIGJlZm9yZSBwcm9jZXNzIAorICAgICAgICBzdXNwZW5zaW9uIChl
LmcuIFVJIHByb2Nlc3Mgd2lsbCBub3QgcmVjZWl2ZSBhc3NlcnRpb24gaW52YWxpZGF0aW9uIHdo
ZW4gaXQgYWNxdWlyZXMgYW4gYXNzZXJ0aW9uIHRvbyBsYXRlIGFuZCAKKyAgICAgICAgcHJvY2Vz
cyBhY3Rpdml0eSBjb3VudGRvd24gaXMgYWJvdXQgdG8gYmUgZmluaXNoZWQpLCBvciBVSSBwcm9j
ZXNzIHNlbmQgdGhlIG1lc3NhZ2Ugc28gbGF0ZSB0aGF0IG5ldHdvcmsgCisgICAgICAgIHByb2Nl
c3MgZG9lcyBub3QgaGF2ZSB0aW1lIHRvIGFib3J0IGV4aXN0aW5nIGRhdGFiYXNlIGFjdGl2aXRp
ZXMuIFRvIGZpeCB0aGlzIGlzc3VlLCB0aGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAgUHJv
Y2Vzc1N0YXRlTW9uaXRvci4KKworICAgICAgICBQcm9jZXNzU3RhdGVNb25pdG9yIHVzZXMgUkJT
UHJvY2Vzc01vbml0b3IgdG8gcmVjZWl2ZXMgbm90aWZpY2F0aW9uIGFib3V0IHVwZGF0ZSBvbiBh
c3NlcnRpb25zLiBXaGVuIHRoZXJlIGlzCisgICAgICAgIGFuIHVwZGF0ZSwgUHJvY2Vzc1N0YXRl
TW9uaXRvciBjaGVjayBob3cgbXVjaCB0aW1lIGEgcHJvY2VzcyBjYW4gcnVuIGJlZm9yZSBzdXNw
ZW5zaW9uLiBQcm9jZXNzU3RhdGVNb25pdG9yIAorICAgICAgICBzZW5kcyBtZXNzYWdlIHRvIGEg
cHJvY2VzcyB0byBzdXNwZW5kIHN0b3JhZ2Ugb3BlcmF0aW9ucyB3aGVuIHRoZSBydW5uaW5nIHRp
bWUgbGVmdCBpcyBsZXNzIAorICAgICAgICB0aGFuIDUgc2Vjb25kcywgYW5kIHNlbmRzIG1lc3Nh
Z2UgdG8gcmVzdW1lIHRoZW0gd2hlbiBydW5uaW5nIHRpbWUgYmVjb21lcyB1bmxpbWl0ZWQuIFBy
b2Nlc3NTdGF0ZU1vbml0b3IKKyAgICAgICAgbWF5IHNlbmQgdGhlIHN1c3BlbmQgbWVzc2FnZSBz
b29uZXIgaWYgUHJvY2Vzc1Rocm90dGxlciBzYXlzIHRoZXJlIGlzIG5vIGFjdGl2aXR5IGxlZnQu
CisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b25uZWN0VG9TdG9yYWdlQXJlYVN5bmMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YWRkV2Vic2l0ZURhdGFTdG9yZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpwcmVwYXJlVG9TdXNwZW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0
U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmg6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdG9yYWdl
T3BlcmF0aW9uU3VzcGVuZGVkIGNvbnN0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWFPbk1haW5UaHJlYWQpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyk6
IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL1J1bm5p
bmdCb2FyZFNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbToKKyAgICAgICAg
KC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZvclRl
c3Rpbmc6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZW5kU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRNZXNzYWdl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bW9uaXRvcmVkUHJvY2Vz
c0lkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Ro
cm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6
OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZTo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQ
cm9jZXNzU3RhdGVNb25pdG9yOjpQcm9jZXNzU3RhdGVNb25pdG9yKToKKyAgICAgICAgKFdlYktp
dDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6flByb2Nlc3NTdGF0ZU1vbml0b3IpOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjppc0Fzc2VydGlvblZhbGlkKToKKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6ZW5zdXJlQXNzZXJ0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6c3VzcGVuZFByb2Nlc3NJZlBvc3NpYmxlKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6cHJvY2Vzc0RpZEJlY29tZVJ1
bm5pbmcpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzU3RhdGVNb25pdG9yOjpwcm9jZXNzV2ls
bEJlU3VzcGVuZGVkKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6c2Vu
ZFN1c3BlbmRNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1N0YXRlTW9uaXRvcjo6
Y2hlY2tSZW1haW5pbmdSdW5UaW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NT
dGF0ZU1vbml0b3JDbGllbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NTdGF0
ZU1vbml0b3JDbGllbnQ6On5Qcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50KToKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJl
YU1hcDo6c2VuZENvbm5lY3RNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFN
YXA6OmRpZENvbm5lY3QpOgorCiAyMDIyLTA0LTI5ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IEFTQU4gYnVpbGQgYWZ0ZXIgIklQQyB0ZXN0aW5n
IEFQSSBzaG91bGQgaGF2ZSB0aGUgYWJpbGl0eSB0byB0ZXN0IElQQzo6Q29ubmVjdGlvbiBzZW5k
IGFuZCByZWNlaXZlIHRocm91Z2ggSVBDOjpDb25uZWN0aW9uIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcAppbmRleCA2MWE2MDliNmY5Mzk0ZDUzZjYxMGM3ZTk2NzNhZGEzZjFlNWRhMGRlLi4y
ZDAwMmZhZmZiNjNkNjFhMTg3OWM5ZDY1MDAxNGQ3NjE1MDIxZTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtMTQzNCw2ICsxNDM0LDIwIEBAIFJlZlB0cjxOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjp0YWtlTmV0d29ya1Jlc291
cmNlCiAgICAgcmV0dXJuIG1fbmV0d29ya1Jlc291cmNlTG9hZGVycy50YWtlKHJlc291cmNlTG9h
ZElkZW50aWZpZXIpOwogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpj
b25uZWN0VG9TdG9yYWdlQXJlYVN5bmMoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUsIFN0b3JhZ2VB
cmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRp
ZmllciBuYW1lc3BhY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9y
aWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQXJlYUlkZW50aWZpZXIsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MtPnN0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQoKSkgewor
ICAgICAgICBSRUxFQVNFX0xPRyhTdG9yYWdlLCAiJXAgLSBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6Y29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jIGZhaWxlZCBiZWNhdXNlIHN0b3JhZ2Ug
dGhyZWFkIGlzIHN1c3BlbmRlZCIsIHRoaXMpOworICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoU3RvcmFnZUFyZWFJZGVudGlmaWVyIHsgfSwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4g
eyB9LCAwKTsKKyAgICB9CisKKyAgICBhdXRvKiBzZXNzaW9uID0gbV9uZXR3b3JrUHJvY2Vzcy0+
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKKyAgICBpZiAoIXNlc3Npb24pCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihTdG9yYWdlQXJlYUlkZW50aWZpZXIgeyB9LCBIYXNoTWFw
PFN0cmluZywgU3RyaW5nPiB7IH0sIDApOworCisgICAgc2Vzc2lvbi0+c3RvcmFnZU1hbmFnZXIo
KS5jb25uZWN0VG9TdG9yYWdlQXJlYU9uTWFpblRocmVhZChjb25uZWN0aW9uLCB0eXBlLCBzb3Vy
Y2VJZGVudGlmaWVyLCBuYW1lc3BhY2VJZGVudGlmaWVyLCBvcmlnaW4sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKK30KKwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklOR19JTl9ORVRX
T1JLSU5HX1BST0NFU1MpCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjppbnN0
YWxsTW9ja0NvbnRlbnRGaWx0ZXIoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYm
IHNldHRpbmdzKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDAyZmJlZDc2NjUyOWRj
YTFjMDQ3ODMyZGZjODVmOTUwNmNhOGY2Y2QuLjgyYjRjOWZjMWZjMTM3ZjUwYTJmNWVlZDZmYTFm
ZTI4ZTI5NGUxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTM2LDYgKzM2LDkgQEAK
ICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgiCiAjaW5jbHVkZSAiUG9saWN5RGVj
aXNpb24uaCIKICNpbmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiU3RvcmFn
ZUFyZWFJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJQ
YWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtNTEsNiArNTQs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JUQ0RhdGFDaGFubmVsSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVn
aXN0cmFibGVEb21haW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0b3JhZ2VUeXBlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XZWJTb2NrZXRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
blNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0zNzIsNiArMzc2LDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkxvYWRTY2hlZHVsaW5nTW9kZSk7CiAgICAgdm9p
ZCBwcmlvcml0aXplUmVzb3VyY2VMb2Fkcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVzb3VyY2VM
b2FkZXJJZGVudGlmaWVyPiYpOworICAgIHZvaWQgY29ubmVjdFRvU3RvcmFnZUFyZWFTeW5jKElQ
Qzo6Q29ubmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpTdG9yYWdlVHlwZSwgU3Rv
cmFnZUFyZWFNYXBJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQXJl
YUlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwogCiAj
aWYgRU5BQkxFKEFQUExFX1BBWV9SRU1PVEVfVUkpCiAgICAgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkmIHBheW1lbnRDb29yZGluYXRvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KaW5kZXggYTI2MjllNGVkYjIxNGIzZDI2YWNhNzhkYTg0NWM2NWQwZTVh
YTM0MS4uMjIzOTdkMjEzM2JiMzQ4MmFkNzY5YjQ5ZDg0MWE3OThjOWI3MGNkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTMsNiArMTEzLDcgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogI2VuZGlmCiAgICAgU2V0UmVzb3VyY2VMb2FkU2NoZWR1bGluZ01vZGUoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6TG9hZFNjaGVkdWxp
bmdNb2RlIG1vZGUpCiAgICAgUHJpb3JpdGl6ZVJlc291cmNlTG9hZHMoVmVjdG9yPFdlYkNvcmU6
OlJlc291cmNlTG9hZGVySWRlbnRpZmllcj4gbG9hZElkZW50aWZpZXJzKQorICAgIENvbm5lY3RU
b1N0b3JhZ2VBcmVhU3luYyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlN0b3Jh
Z2VUeXBlIHR5cGUsIFdlYktpdDo6U3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChXZWJLaXQ6OlN0
b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBp
dGVtcywgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXIpIFN5bmNocm9ub3VzIFdhbnRzQ29ubmVj
dGlvbgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HX0lOX05FVFdPUktJTkdfUFJPQ0VT
UykKICAgICBJbnN0YWxsTW9ja0NvbnRlbnRGaWx0ZXIoV2ViQ29yZTo6TW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncyBzZXR0aW5ncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMTJmZjJhY2U1MjUyMDg5M2IwMjgzMjgwNmQ2NGU3N2Nl
MDhjM2FlYS4uMzg0YzBmMTg3NTA4MDIyY2UxMDI0YWQxYzI0NDQ5OWIzZWNkMjlhNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQ1
OSw3ICs0NTksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRXZWJzaXRlRGF0YVN0b3JlKFdl
YnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycwogICAgICAgICByZXR1cm4gTmV0
d29ya1Nlc3Npb246OmNyZWF0ZSgqdGhpcywgcGFyYW1ldGVycy5uZXR3b3JrU2Vzc2lvblBhcmFt
ZXRlcnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGlmIChtX2lzU3VzcGVuZGVk
KQorICAgIGlmIChtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQpCiAgICAgICAgIHNlc3Npb24t
PnN0b3JhZ2VNYW5hZ2VyKCkuc3VzcGVuZChbXSB7IH0pOwogfQogCkBAIC0yMTYwLDcgKzIxNjAs
NiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NT
dXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1
c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICV7cHVibGljfXNpbiBiYWNrZ3JvdW5kIiwg
dGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID8g
IiIgOiAibm90ICIpOwogCi0gICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7CiAgICAgbG93TWVtb3J5
SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKIAogICAgIFJlZlB0cjxDYWxsYmFja0FnZ3JlZ2F0b3I+
IGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFt0aGlzLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUg
ewpAQCAtMjE2OCwxMSArMjE2Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1
c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAgICAgICAg
IFVOVVNFRF9WQVJJQUJMRSh0aGlzKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKICAg
ICB9KTsKLSAgICAKLSNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikK
LSAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdn
cmVnYXRvcl0geyB9KTsKLSNlbmRpZgotICAgIFBDTTo6U3RvcmU6OnByZXBhcmVGb3JQcm9jZXNz
VG9TdXNwZW5kKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAKICAgICBmb3JFYWNoTmV0d29y
a1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CiAgICAgICAgIHBsYXRmb3JtRmx1c2hDb29r
aWVzKHNlc3Npb24uc2Vzc2lvbklEKCksIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CkBAIC0y
MTgwLDcgKzIxNzQsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKGJv
b2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAgICAgICBpZiAoYXV0
byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkpCiAgICAgICAgICAgICBzd1NlcnZlci0+
c3RhcnRTdXNwZW5zaW9uKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAjZW5kaWYKLSAgICAg
ICAgc2Vzc2lvbi5zdG9yYWdlTWFuYWdlcigpLnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0g
eyB9KTsKICAgICB9KTsKIAogICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2ViUHJvY2Vz
c0Nvbm5lY3Rpb25zLnZhbHVlcygpKQpAQCAtMjIxMCwyMiArMjIwMywxNCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQog
ICAgIGVsc2UKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5l
dHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVk
IFByb2Nlc3MgaGFzIGJlZW4gaW4gYmFja2dyb3VuZCBmb3IgJWYgc2Vjb25kcyIsIHRoaXMsIGZv
ckZvcmVncm91bmRBY3Rpdml0eSwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9lbnRlckJhY2tn
cm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSk7CiAKLSAgICBtX2lzU3VzcGVuZGVkID0g
ZmFsc2U7Ci0KICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlByb2Nlc3NDb25uZWN0
aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZW5kU3VzcGVuc2lvbigpOwogCi0j
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXN1bWUoKTsKLSNlbmRpZgotICAgIFBDTTo6U3RvcmU6
OnByb2Nlc3NEaWRSZXN1bWUoKTsKLQogICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbXShhdXRv
JiBzZXNzaW9uKSB7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgICAgICBpZiAoYXV0
byogc3dTZXJ2ZXIgPSBzZXNzaW9uLnN3U2VydmVyKCkpCiAgICAgICAgICAgICBzd1NlcnZlci0+
ZW5kU3VzcGVuc2lvbigpOwogI2VuZGlmCi0gICAgICAgIHNlc3Npb24uc3RvcmFnZU1hbmFnZXIo
KS5yZXN1bWUoKTsKICAgICB9KTsKIH0KIApAQCAtMjc3Niw0ICsyNzYxLDMxIEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgQ29tcGxlCiAgICAgY29tcGxldGlvbkhhbmRsZXIoc2Vzc2lvbiA/IHNlc3Npb24t
PmNvdW50Tm9uRGVmYXVsdFNlc3Npb25TZXRzKCkgOiAwKTsKIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvIGNh
bGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBpZiAobV9zdG9yYWdlT3BlcmF0aW9uU3VzcGVuZGVkID09
IHN1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUkVMRUFTRV9MT0coU3RvcmFnZSwg
IiVwIC0gTmV0d29ya1Byb2Nlc3M6OnNldFByb2Nlc3NTdXNwZW5kZWQgc3VzcGVuZGVkPSVkIiwg
dGhpcywgc3VzcGVuZGVkKTsKKyAgICBtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgPSBzdXNw
ZW5kZWQ7CisgICAgaWYgKG1fc3RvcmFnZU9wZXJhdGlvblN1c3BlbmRlZCkgeworI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQorICAgICAgICBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnN1c3BlbmQoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKKyNl
bmRpZgorICAgICAgICBQQ006OlN0b3JlOjpwcmVwYXJlRm9yUHJvY2Vzc1RvU3VzcGVuZChbY2Fs
bGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oWyZd
IChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBzZXNzaW9uLnN0b3JhZ2VNYW5hZ2VyKCku
c3VzcGVuZChbY2FsbGJhY2tBZ2dyZWdhdG9yXSgpIHsgfSk7CisgICAgICAgIH0pOworICAgIH0g
ZWxzZSB7CisjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCisgICAg
ICAgIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6cmVzdW1lKCk7CisjZW5kaWYKKyAg
ICAgICAgUENNOjpTdG9yZTo6cHJvY2Vzc0RpZFJlc3VtZSgpOworICAgICAgICBmb3JFYWNoTmV0
d29ya1Nlc3Npb24oWyZdIChhdXRvJiBzZXNzaW9uKSB7CisgICAgICAgICAgICBzZXNzaW9uLnN0
b3JhZ2VNYW5hZ2VyKCkucmVzdW1lKCk7CisgICAgICAgIH0pOworICAgIH0KK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmgKaW5kZXggNGNiOWRiMDA5YTg5ZTZlNzhlY2Y5NTViNDc5MmI3MzZjMjJiYTFiYS4u
MjUyZjQ1YzhiNTdiMGJiMGU5YTI0NTdmNjAxMWQ1ODAwYmE1ZmZlNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc4LDYgKzE3OCw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5n
U3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcHJlcGFyZVRvU3Vz
cGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0
eSk7CisgICAgdm9pZCBzZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChib29sIHN1c3BlbmRl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBib29sIHN0b3JhZ2VPcGVyYXRp
b25TdXNwZW5kZWQoKSBjb25zdCB7IHJldHVybiBtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQ7
IH0KIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVN
b2RlbDsgfQogCkBAIC01MzAsNyArNTMyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9wcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2Z0cEVuYWJs
ZWQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1N1c3BlbmRlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3N0b3JhZ2VPcGVyYXRpb25TdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIHN0ZDo6b3B0aW9u
YWw8TW9ub3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNz
YWdlcy5pbgppbmRleCAzMjA2ZGNiOTc1OTljZTQ0NWE3M2M5NjY3YWY3ZDIxYzYxZjdjODcwLi4y
OTMyOWI4Zjc3MjI2NDE0YjlhMDJmMTU5NTkxNmU1ZjlhNTJiMjBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
QEAgLTc0LDYgKzc0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2
ZXIgewogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+
ICgpIFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50KSAtPiAoKQogICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0
aXZpdHkpCisgICAgU2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWQoYm9vbCBzdXNwZW5kZWQp
IC0+ICgpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50
OF90IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpM
YXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRl
ZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggZjliYjI4NWMyZTQxYTRkMTg4
ZTA1MDQ3ZjhlNzMwMjBjMGU4ZjI3Yy4uYjU0YTEzNGUzMTk3ZmRkOGJmMjRkZmY5Njg3M2RjNTk3
MjVhMTFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTc4OSw5ICs3ODksMTUg
QEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNvbm5lY3RUb1N0b3JhZ2VBcmVhKElQQzo6
Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2UKICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
cmVzdWx0SWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4geyB9LCBTdG9yYWdlQXJl
YUJhc2U6Om5leHRNZXNzYWdlSWRlbnRpZmllcigpKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHR5cGUsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmll
ciBzb3VyY2VJZGVudGlmaWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBuYW1lc3BhY2VJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mIG9yaWdpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChTdG9yYWdlQXJlYUlkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+LCB1aW50NjRfdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6Y29ubmVjdFRvU3RvcmFnZUFyZWFPbk1haW5UaHJlYWQoSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBTdG9yYWdlQXJlYU1hcElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFt
ZXNwYWNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiwgdWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIGNvbm5l
Y3RUb1N0b3JhZ2VBcmVhKGNvbm5lY3Rpb24sIHR5cGUsIHNvdXJjZUlkZW50aWZpZXIsIG5hbWVz
cGFjZUlkZW50aWZpZXIsIG9yaWdpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
cHJvdGVjdGVkQ29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24gfSwgdHlwZSwgc291cmNlSWRl
bnRpZmllciwgbmFtZXNwYWNlSWRlbnRpZmllciwgb3JpZ2luID0gY3Jvc3NUaHJlYWRDb3B5KG9y
aWdpbiksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkg
bXV0YWJsZSB7CisgICAgICAgIGNvbm5lY3RUb1N0b3JhZ2VBcmVhKHByb3RlY3RlZENvbm5lY3Rp
b24uZ2V0KCksIHR5cGUsIHNvdXJjZUlkZW50aWZpZXIsIG5hbWVzcGFjZUlkZW50aWZpZXIsIG9y
aWdpbiwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1
dG8gc3RvcmFnZUFyZWFJZGVudGlmaWVyLCBhdXRvIGl0ZW1zLCBhdXRvIG1lc3NhZ2VJZGVudGlm
aWVyKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc3RvcmFnZUFyZWFJ
ZGVudGlmaWVyLCBpdGVtcyA9IGNyb3NzVGhyZWFkQ29weShpdGVtcyksIG1lc3NhZ2VJZGVudGlm
aWVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0b3Jh
Z2VBcmVhSWRlbnRpZmllciwgaXRlbXMsIG1lc3NhZ2VJZGVudGlmaWVyKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9KTsKIH0KIAogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OmNhbmNlbENvbm5lY3RUb1N0b3JhZ2VBcmVhKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgV2ViQ29yZTo6U3RvcmFnZVR5cGUgdHlwZSwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIg
bmFtZXNwYWNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiBvcmlnaW4p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggMTFhZDI4ODIwZjJlZmJiYTIxMDcxMjgzNjcx
MTk5NWYyZjdiNGJlYy4uNDYwZTE0NGUwZDEwZTJjZGQ4N2UyOTA1YWM1YmRjN2U1OTdmMDdkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtOTUsNiArOTUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCByZXF1ZXN0U3BhY2UoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgdWludDY0X3Qg
c2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCByZXNldFF1
b3RhRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVz
ZXRRdW90YVVwZGF0ZWRCYXNlZE9uVXNhZ2VGb3JUZXN0aW5nKFdlYkNvcmU6OkNsaWVudE9yaWdp
biYmKTsKKyAgICB2b2lkIGNvbm5lY3RUb1N0b3JhZ2VBcmVhT25NYWluVGhyZWFkKElQQzo6Q29u
bmVjdGlvbiYsIFdlYkNvcmU6OlN0b3JhZ2VUeXBlLCBTdG9yYWdlQXJlYU1hcElkZW50aWZpZXIs
IFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBcmVhSWRlbnRpZmllciwgSGFzaE1hcDxT
dHJpbmcsIFN0cmluZz4sIHVpbnQ2NF90KT4mJik7CiAKIHByaXZhdGU6CiAgICAgTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyKFBBTDo6U2Vzc2lvbklELCBJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY3VzdG9tTG9jYWxTdG9yYWdlUGF0aCwg
Y29uc3QgU3RyaW5nJiBjdXN0b21JREJTdG9yYWdlUGF0aCwgY29uc3QgU3RyaW5nJiBjdXN0b21D
YWNoZVN0b3JhZ2VQYXRoLCB1aW50NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEsIHVpbnQ2NF90IGRl
ZmF1bHRUaGlyZFBhcnR5T3JpZ2luUXVvdGEsIGJvb2wgc2hvdWxkVXNlQ3VzdG9tUGF0aHMpOwpA
QCAtMTExLDcgKzExMiw2IEBAIHByaXZhdGU6CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZl
ciAoaW1wbGVtZW50ZWQgYnkgZ2VuZXJhdGVkIGNvZGUpCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLSAgICBib29sIGRpZFJlY2Vp
dmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBVbmlxdWVSZWY8
SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMg
Zm9yIEZpbGVTeXN0ZW0uCiAgICAgdm9pZCBwZXJzaXN0ZWQoY29uc3QgV2ViQ29yZTo6Q2xpZW50
T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CkBAIC0xMzMsNyArMTMz
LDYgQEAgcHJpdmF0ZToKICAgICAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzIGZvciBXZWJTdG9y
YWdlLgogICAgIHZvaWQgY29ubmVjdFRvU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgV2Vi
Q29yZTo6U3RvcmFnZVR5cGUsIFN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciwgU3RvcmFnZU5hbWVz
cGFjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RvcmFnZUFyZWFJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiwgdWludDY0X3QpPiYmKTsKLSAgICB2b2lkIGNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhJUEM6
OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpTdG9yYWdlVHlwZSwgU3RvcmFnZUFyZWFNYXBJZGVudGlm
aWVyLCBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQXJlYUlkZW50aWZpZXIsIEhhc2hN
YXA8U3RyaW5nLCBTdHJpbmc+LCB1aW50NjRfdCk+JiYpOwogICAgIHZvaWQgY2FuY2VsQ29ubmVj
dFRvU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6U3RvcmFnZVR5cGUsIFN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mKTsK
ICAgICB2b2lkIGRpc2Nvbm5lY3RGcm9tU3RvcmFnZUFyZWEoSVBDOjpDb25uZWN0aW9uJiwgU3Rv
cmFnZUFyZWFJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3Bh
Y2UoSVBDOjpDb25uZWN0aW9uJiwgU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIsIFN0b3JhZ2VO
YW1lc3BhY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCmluZGV4IDdkOWI3MzkzNTdhNDM4YzQ3MmI0NDAwOGM5M2Y0N2E1MzQ4YjYwNDQuLjkw
OGZkNzc1MjFmODkwYTcwOTYyZjdhYzg1NTI2OWU3OGEwMWRkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtNDEsNyArNDEsNiBAQAogICAgIEdldEhh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJp
bmcgbmFtZSkgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgYm9vbD4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBXYW50c0Nvbm5lY3Rpb24KIAogICAgIENvbm5lY3RUb1N0b3JhZ2VBcmVhKFdlYkNvcmU6OlN0
b3JhZ2VUeXBlIHR5cGUsIFdlYktpdDo6U3RvcmFnZUFyZWFNYXBJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIFdlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXIgbmFtZXNwYWNlSWRl
bnRpZmllciwgc3RydWN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiBvcmlnaW4pIC0+IChXZWJLaXQ6
OlN0b3JhZ2VBcmVhSWRlbnRpZmllciBpZGVudGlmaWVyLCBIYXNoTWFwPFN0cmluZywgU3RyaW5n
PiBpdGVtcywgdWludDY0X3QgbWVzc2FnZUlkZW50aWZpZXIpIFdhbnRzQ29ubmVjdGlvbgotICAg
IENvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBXZWJL
aXQ6OlN0b3JhZ2VBcmVhTWFwSWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSAtPiAoV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gaXRlbXMsIHVpbnQ2NF90IG1l
c3NhZ2VJZGVudGlmaWVyKSBTeW5jaHJvbm91cyBXYW50c0Nvbm5lY3Rpb24KICAgICBDYW5jZWxD
b25uZWN0VG9TdG9yYWdlQXJlYShXZWJDb3JlOjpTdG9yYWdlVHlwZSB0eXBlLCBXZWJLaXQ6OlN0
b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIG5hbWVzcGFjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luKSBXYW50c0Nvbm5lY3Rpb24KICAgICBEaXNjb25uZWN0
RnJvbVN0b3JhZ2VBcmVhKFdlYktpdDo6U3RvcmFnZUFyZWFJZGVudGlmaWVyIGlkZW50aWZpZXIp
IFdhbnRzQ29ubmVjdGlvbgogICAgIENsb25lU2Vzc2lvblN0b3JhZ2VOYW1lc3BhY2UoV2ViS2l0
OjpTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllciBmcm9tU3RvcmFnZU5hbWVzcGFjZUlELCBXZWJL
aXQ6OlN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyIHRvU3RvcmFnZU5hbWVzcGFjZUlEKSBXYW50
c0Nvbm5lY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9S
dW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIx
NWYwNDMyY2YyYmE5ODg0ZC4uZWVmNjcwOGI2YjdiNjk3OTUxMDU3YTlmZWIyOTkwNTI0N2M4YzM4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2Fy
ZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5p
bmdCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTEzMSwxNCArMTMxLDI0IEBAIHR5cGVkZWYgdm9pZCAo
XlJCU1Byb2Nlc3NVcGRhdGVIYW5kbGVyKShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwgUkJT
UHJvY2Vzc0hhCiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc01vbml0b3IgOiBOU09iamVjdCA8TlND
b3B5aW5nPgogKyAoaW5zdGFuY2V0eXBlKW1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjooTlNfTk9F
U0NBUEUgUkJTUHJvY2Vzc01vbml0b3JDb25maWd1cmF0b3IpYmxvY2s7CistICh2b2lkKWludmFs
aWRhdGU7CiBAZW5kCiAKIEBpbnRlcmZhY2UgUkJTUHJvY2Vzc1ByZWRpY2F0ZSA6IE5TT2JqZWN0
IDxSQlNQcm9jZXNzTWF0Y2hpbmc+CiArIChSQlNQcm9jZXNzUHJlZGljYXRlICopcHJlZGljYXRl
TWF0Y2hpbmdIYW5kbGU6KFJCU1Byb2Nlc3NIYW5kbGUgKilwcm9jZXNzOwogQGVuZAordHlwZWRl
ZiBOU19PUFRJT05TKE5TVUludGVnZXIsIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcykgeworICAgIFJC
U1Byb2Nlc3NTdGF0ZVZhbHVlTm9uZSAgICAgICAgICAgICAgICAgICAgPSAwLAorICAgIFJCU1By
b2Nlc3NTdGF0ZVZhbHVlVGFza1N0YXRlICAgICAgICAgICAgICAgPSAoMSA8PCAwKSwKKyAgICBS
QlNQcm9jZXNzU3RhdGVWYWx1ZVRhZ3MgICAgICAgICAgICAgICAgICAgID0gKDEgPDwgMSksCisg
ICAgUkJTUHJvY2Vzc1N0YXRlVmFsdWVUZXJtaW5hdGlvblJlc2lzdGFuY2UgICA9ICgxIDw8IDIp
LAorICAgIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlTGVnYWN5QXNzZXJ0aW9ucyAgICAgICAgPSAoMSA8
PCAzKSwKKyAgICBSQlNQcm9jZXNzU3RhdGVWYWx1ZU1vZGVybkFzc2VydGlvbnMgICAgICAgID0g
KDEgPDwgNCksCit9OwogCiBAaW50ZXJmYWNlIFJCU1Byb2Nlc3NTdGF0ZURlc2NyaXB0b3IgOiBO
U09iamVjdCA8TlNDb3B5aW5nPgogKyAoaW5zdGFuY2V0eXBlKWRlc2NyaXB0b3I7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBhc3NpZ24pIFJCU1Byb2Nlc3NTdGF0ZVZhbHVlcyB2
YWx1ZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBjb3B5LCBudWxsYWJsZSkg
TlNBcnJheTxOU1N0cmluZyAqPiAqZW5kb3dtZW50TmFtZXNwYWNlczsKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IDE3YzEwZjlmNGU4ODE0YmU4MDhjMDljMGRlM2U4NTFkMDQ0YTYx
YmYuLjJmYzcxYThiYmE2OWE5MTk1ODczNWVjYjg2NmRiNjM4YWE2NThjNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQKQEAgLTQ5MCw2ICs0OTAsNyBAQCBVSVByb2Nlc3MvaW9zL0dlc3R1cmVSZWNv
Z25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5tbQogVUlQcm9jZXNzL2lvcy9JbnB1dFZpZXdVcGRh
dGVEZWZlcnJlci5tbQogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQogVUlQcm9j
ZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCitVSVByb2Nlc3MvaW9zL1Byb2Nlc3NTdGF0
ZU1vbml0b3IubW0KIFVJUHJvY2Vzcy9pb3MvU21hcnRNYWduaWZpY2F0aW9uQ29udHJvbGxlci5t
bQogVUlQcm9jZXNzL2lvcy9UZXh0Q2hlY2tlcklPUy5tbQogVUlQcm9jZXNzL2lvcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXJJT1MubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLm1tCmluZGV4IGU2ZjJmY2YwMmIyNGZhMTYw
MjFjM2JlODNmNjExNmY5ODk2MTAwMjcuLjc4NDdkZGMzYTYyOGVhYmQ0Nzc5ZWE1MjY0YzVkYzM4
ZmY4Njk1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAtNzU2LDYgKzc1NiwxMyBAQCAtICh2b2lkKV9z
ZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUKICAgICBfd2Vic2l0ZURhdGFTdG9yZS0+c2VuZE5l
dHdvcmtQcm9jZXNzRGlkUmVzdW1lKCk7CiB9CiAKKy0gKHZvaWQpX3NldFN0b3JhZ2VPcGVyYXRp
b25zU3VzcGVuZGVkRm9yVGVzdGluZzooQk9PTClzdXNwZW5kZWQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfd2Vic2l0ZURhdGFTdG9y
ZS0+c2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nKHN1c3BlbmRlZCwgW2Nv
bXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0geworICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOworICAgIH0pOworfQorCiAtICh2b2lkKV9zeW50aGVz
aXplQXBwSXNCYWNrZ3JvdW5kOihCT09MKWJhY2tncm91bmQKIHsKICAgICBfd2Vic2l0ZURhdGFT
dG9yZS0+bmV0d29ya1Byb2Nlc3MoKS5zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJhY2tncm91
bmQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggMzE2YjMyOWE1ZjZjM2E1YWY3ZTdl
Mjk0OWY4N2YzN2RmNzJlNzM2Mi4uMWFjYTc1MTE5M2E4NDJiNDczMzkzMTMyZDJlODBhYjdhMmNi
ZmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC0xMDEsNiArMTAxLDcgQEAgdHlw
ZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIF9XS1dlYnNpdGVEYXRhU3RvcmVGZXRjaE9wdGlv
bnMpIHsKIC0gKHZvaWQpX3NlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseSBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAodm9pZClfc2VuZE5l
dHdvcmtQcm9jZXNzRGlkUmVzdW1lIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygx
NS4wKSk7CiArICh2b2lkKV9zZXROZXR3b3JrUHJvY2Vzc1N1c3BlbnNpb25BbGxvd2VkRm9yVGVz
dGluZzooQk9PTClhbGxvd2VkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9zZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZEZv
clRlc3Rpbmc6KEJPT0wpc3VzcGVuZGVkIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kOihCT09M
KWJhY2tncm91bmQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0g
KHBpZF90KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
Mi4wKSwgaW9zKDE1LjApKTsKICsgKHZvaWQpX21ha2VOZXh0TmV0d29ya1Byb2Nlc3NMYXVuY2hG
YWlsRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggNzAyMWNjNDEyYjY0ZDc3M2MxZDZkODQxNGE5MWExZGVmNTgxZTJk
ZC4uZjI0ZWE2MGYwNzZmYmVlMzkzN2E4NjA1ZmM2NzU0Mzk4OWMwNTY4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCkBAIC03OCw2ICs3OCw3IEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisjaW5jbHVkZSAiUHJvY2Vzc1N0YXRlTW9uaXRvci5oIgogI2luY2x1ZGUgPHd0Zi9zcGkvZGFy
d2luL1hQQ1NQSS5oPgogI2VuZGlmCiAKQEAgLTEzODMsNiArMTM4NCwyOCBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24p
CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1l
KHJlYXNvbiA9PSBSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwogfQogCit2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKQoreworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgaWYgKG1fcHJvY2Vzc1N0YXRlTW9uaXRvcikKKyAg
ICAgICAgbV9wcm9jZXNzU3RhdGVNb25pdG9yLT5zdXNwZW5kUHJvY2Vzc0lmUG9zc2libGUoKTsK
KyNlbmRpZgorfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRTZXRTdG9yYWdlT3Bl
cmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdG9yYWdlT3BlcmF0aW9uc1N1c3BlbmRlZChz
dXNwZW5kZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorCitwaWRfdCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojptb25pdG9yZWRQcm9j
ZXNzSWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHByb2Nlc3NJZGVudGlmaWVyKCk7
Cit9CisKKyNlbmRpZgorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpGbHVzaENvb2tpZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwpAQCAtMTgyMCwxMSArMTg0MywyMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
Om5hdmlnYXRlU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZgog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5k
KCkKIHsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGlmICghbV9wcm9jZXNzU3RhdGVN
b25pdG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1vbml0b3IgPSBtYWtlVW5pcXVlPFByb2Nl
c3NTdGF0ZU1vbml0b3I+KCp0aGlzKTsKKyNlbmRpZgorCiAgICAgc2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCksIDApOwogfQogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
CiB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBpZiAobV9wcm9jZXNzU3RhdGVNb25p
dG9yKQorICAgICAgICBtX3Byb2Nlc3NTdGF0ZU1vbml0b3IgPSBudWxscHRyOworI2VuZGlmCisK
ICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kKCksIDApOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGEyMjhlNGMyYTQyODNjMTJkNDhi
OWE5ZTVkNDhmMTMxYjhjMGU3NGYuLjVhNTQ0MDBiMDk3MzEyZjEwMWE1ZWY4MjRjYWU1MmU0NGMz
YjUzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCkBAIC01NSw2ICs1NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9PU09i
amVjdFB0ci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUg
IlByb2Nlc3NTdGF0ZU1vbml0b3IuaCIKKyNpbmNsdWRlICJQcm9jZXNzU3RhdGVNb25pdG9yQ2xp
ZW50LmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBGb3JtRGF0YVJlZmVyZW5j
ZTsKIH0KQEAgLTEwNSw3ICsxMTAsMTEgQEAgc3RydWN0IFdlYlB1c2hNZXNzYWdlOwogc3RydWN0
IFdlYnNpdGVEYXRhOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1jbGFz
cyBOZXR3b3JrUHJvY2Vzc1Byb3h5IGZpbmFsIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3NQcm94
eSwgcHJpdmF0ZSBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50IHsKK2NsYXNzIE5ldHdvcmtQcm9jZXNz
UHJveHkgZmluYWwgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LCBwcml2YXRlIFByb2Nl
c3NUaHJvdHRsZXJDbGllbnQKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICwgcHVibGlj
IFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQKKyNlbmRpZgorewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW47CkBAIC0yNDIsNiArMjUxLDE1IEBAIHB1YmxpYzoKICAgICAv
LyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50CiAgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShS
ZXN1bWVSZWFzb24pIGZpbmFsOwogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQcm9jZXNzIl9zOyB9CisgICAgdm9pZCBkaWRGaW5pc2hM
YXN0QWN0aXZpdGl5KCkgZmluYWw7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIC8v
IFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQKKyAgICB2b2lkIHNlbmRTZXRTdG9yYWdlT3BlcmF0
aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJikgZmluYWw7CisgICAgUHJvY2Vzc0lEIG1vbml0b3JlZFByb2Nlc3NJZGVudGlmaWVy
KCkgY29uc3QgZmluYWw7CisjZWxzZQorICAgIHZvaWQgc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25z
U3VzcGVuZGVkTWVzc2FnZShib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyNlbmRpZgogICAgIAogICAgIHN0YXRpYyB2b2lkIHNldFN1c3BlbnNpb25BbGxvd2Vk
Rm9yVGVzdGluZyhib29sKTsKICAgICB2b2lkIHNlbmRQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5Rm9yVGVzdGluZygpOwpAQCAtNDI4LDYgKzQ0Niw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8aWQ+IG1fYmFja2dyb3VuZE9ic2VydmVyOwog
ICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7CisgICAgc3RkOjp1bmlxdWVf
cHRyPFByb2Nlc3NTdGF0ZU1vbml0b3I+IG1fcHJvY2Vzc1N0YXRlTW9uaXRvcjsKICNlbmRpZgog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRl
eCA0NzEyZjJlY2ZiYTJjNWE5OWUyZDZiYWQ0ZjFlMDVjNTdkZGU4NmE1Li5lNTMwMzMxZTMzZTAz
YTk2YWQ3Y2JkMzYzY2FmZmYxMjY0MDM4Yzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtNjgsMTIgKzY4LDE4IEBAIHZvaWQgUHJvY2Vzc1Ro
cm90dGxlcjo6cmVtb3ZlQWN0aXZpdHkoRm9yZWdyb3VuZEFjdGl2aXR5JiBhY3Rpdml0eSkKIHsK
ICAgICBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnJlbW92ZSgmYWN0aXZpdHkpOwogICAgIHVwZGF0
ZUFzc2VydGlvbklmTmVlZGVkKCk7CisKKyAgICBpZiAoIXNob3VsZEJlUnVubmFibGUoKSkKKyAg
ICAgICAgbV9wcm9jZXNzLmRpZEZpbmlzaExhc3RBY3Rpdml0aXkoKTsKIH0KIAogdm9pZCBQcm9j
ZXNzVGhyb3R0bGVyOjpyZW1vdmVBY3Rpdml0eShCYWNrZ3JvdW5kQWN0aXZpdHkmIGFjdGl2aXR5
KQogewogICAgIG1fYmFja2dyb3VuZEFjdGl2aXRpZXMucmVtb3ZlKCZhY3Rpdml0eSk7CiAgICAg
dXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKTsKKworICAgIGlmICghc2hvdWxkQmVSdW5uYWJsZSgp
KQorICAgICAgICBtX3Byb2Nlc3MuZGlkRmluaXNoTGFzdEFjdGl2aXRpeSgpOwogfQogCiB2b2lk
IFByb2Nlc3NUaHJvdHRsZXI6OmludmFsaWRhdGVBbGxBY3Rpdml0aWVzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaAppbmRleCBmYzc3YmE5
NTMzOWE0NmY4ODc5NjZmOGZjYjMwYTU5ZGZkZWFiNDY2Li5iNDhkMWQ4ZGRlYmNiMDY3MGQ4YTI0
ZTE4NjExNGJkZWRhYmVjYTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUpIHsgfTsK
ICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMYXN0QWN0aXZpdGl5KCkgeyB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDE2MzY0MzM5YWJmOTk1MzNiYTJmZmM3
ODRlZjI2Mjg2ZTBhY2FjMmEuLmZkZjY3ODlkNGVkNDJhZjk1ZDI0ODg0NTEwMDBiMzA3MGQxNWNk
MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNjEwLDYgKzE2MTAsMTEgQEAgdm9pZCBXZWJzaXRl
RGF0YVN0b3JlOjpzZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKQogICAgIG5ldHdvcmtQcm9j
ZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUoUHJvY2Vzc1Rocm90dGxlckNsaWVudDo6UmVzdW1l
UmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQogCit2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZShz
dXNwZW5kZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogYm9vbCBXZWJzaXRl
RGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpIGNvbnN0CiB7CiAjaWYg
RU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXgg
ZDlkNjIyMzBmOTA1YjQ5YWRjZWFjZWJmNTllYmExYWFkYWJiN2Q4ZC4uNDIxNDExNTc2ZTQwYzEx
MTNmNzJhMDc1Yjk3NTFhY2U0OGNmMjIzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMTQzLDYgKzE0Myw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmROZXR3b3JrUHJvY2Vzc1ByZXBhcmVUb1N1c3BlbmRG
b3JUZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZW5kTmV0
d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCBz
ZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUoKTsKKyAgICB2b2lkIHNldFN0b3JhZ2VPcGVyYXRp
b25zU3VzcGVuZGVkRm9yVGVzdGluZyhib29sIHN1c3BlbmRlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNzRGlkVGVybWluYXRlKE5ldHdvcmtQ
cm9jZXNzUHJveHkmKTsKICAgICBzdGF0aWMgdm9pZCBtYWtlTmV4dE5ldHdvcmtQcm9jZXNzTGF1
bmNoRmFpbEZvclRlc3RpbmcoKTsKICAgICBzdGF0aWMgYm9vbCBzaG91bGRNYWtlTmV4dE5ldHdv
cmtQcm9jZXNzTGF1bmNoRmFpbEZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzU3RhdGVNb25pdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwODRlZWVmOGU5
OTYxNmNlOWVjNzkwM2JiYTBkYTViMmVkYTg4MzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvci5oCkBAIC0wLDAgKzEsNzAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisKKyNpbXBvcnQgPFdlYkNvcmUvVGltZXIuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
KworT0JKQ19DTEFTUyBSQlNQcm9jZXNzTW9uaXRvcjsKKworbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBDb25uZWN0aW9uOworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUHJvY2Vzc0Fz
c2VydGlvbjsKK2NsYXNzIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQ7CisKK2NsYXNzIFByb2Nl
c3NTdGF0ZU1vbml0b3IgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vzc1N0YXRlTW9uaXRv
cj4geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIFByb2Nlc3NT
dGF0ZU1vbml0b3IoUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCYpOworICAgIH5Qcm9jZXNzU3Rh
dGVNb25pdG9yKCk7CisgICAgdm9pZCBzdXNwZW5kUHJvY2Vzc0lmUG9zc2libGUoKTsKKworcHJp
dmF0ZToKKyAgICBib29sIGlzQXNzZXJ0aW9uVmFsaWQoKTsKKyAgICB2b2lkIGVuc3VyZUFzc2Vy
dGlvbigpOworICAgIHZvaWQgcHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKTsKKyAgICB2b2lkIHBy
b2Nlc3NXaWxsQmVTdXNwZW5kZWQoU2Vjb25kcyk7CisgICAgdm9pZCBzZW5kU3VzcGVuZE1lc3Nh
Z2UoKTsKKyAgICB2b2lkIGNoZWNrUmVtYWluaW5nUnVuVGltZSgpOworCisgICAgZW51bSBjbGFz
cyBTdGF0ZSA6IHVpbnQ4X3QgeyBVbmtub3duLCBSdW5uaW5nLCBXaWxsU3VzcGVuZCwgU3VzcGVu
ZGVkIH07CisgICAgU3RhdGUgbV9zdGF0ZSB7IFN0YXRlOjpVbmtub3duIH07CisgICAgUHJvY2Vz
c1N0YXRlTW9uaXRvckNsaWVudCYgbV9jbGllbnQ7CisgICAgV2ViQ29yZTo6VGltZXIgbV9zdXNw
ZW5kVGltZXI7CisgICAgUmVmUHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOworICAg
IHVpbnQ2NF90IG1fc2Vzc2lvbklEOworICAgIFJldGFpblB0cjxSQlNQcm9jZXNzTW9uaXRvcj4g
bV9yYnNNb25pdG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc1N0YXRlTW9uaXRvci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzMyOWNkMWQwM2IwZThmZmI5MjNk
OWM4NzNlZjdiODZiOTBhMTgzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW0KQEAgLTAsMCArMSwxMzkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlByb2Nlc3NTdGF0ZU1vbml0b3Iu
aCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNz
TWVzc2FnZXMuaCIKKyNpbXBvcnQgIlByb2Nlc3NBc3NlcnRpb24uaCIKKyNpbXBvcnQgIlByb2Nl
c3NTdGF0ZU1vbml0b3JDbGllbnQuaCIKKyNpbXBvcnQgIlJ1bm5pbmdCb2FyZFNlcnZpY2VzU1BJ
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgcHJl
cGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA9ICA1X3M7CisKK1Byb2Nlc3NTdGF0ZU1vbml0b3I6
OlByb2Nlc3NTdGF0ZU1vbml0b3IoUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudCYgY2xpZW50KQor
ICAgIDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9zdXNwZW5kVGltZXIoKnRoaXMsICZQcm9j
ZXNzU3RhdGVNb25pdG9yOjpzZW5kU3VzcGVuZE1lc3NhZ2UpCit7CisgICAgUkVMRUFTRV9BU1NF
UlQoUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgbV9yYnNNb25pdG9yID0gW1JCU1Byb2Nlc3NN
b25pdG9yIG1vbml0b3JXaXRoQ29uZmlndXJhdGlvbjpbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfV0oaWQ8UkJTUHJvY2Vzc01vbml0b3JDb25maWd1cmluZz4gY29uZmlnKSBtdXRhYmxlIHsK
KyAgICAgICAgUkJTUHJvY2Vzc1N0YXRlRGVzY3JpcHRvciAqZGVzY3JpcHRvciA9IFtSQlNQcm9j
ZXNzU3RhdGVEZXNjcmlwdG9yIGRlc2NyaXB0b3JdOworICAgICAgICBbZGVzY3JpcHRvciBzZXRW
YWx1ZXM6UkJTUHJvY2Vzc1N0YXRlVmFsdWVMZWdhY3lBc3NlcnRpb25zIHwgUkJTUHJvY2Vzc1N0
YXRlVmFsdWVNb2Rlcm5Bc3NlcnRpb25zXTsKKyAgICAgICAgW2NvbmZpZyBzZXRTdGF0ZURlc2Ny
aXB0b3I6ZGVzY3JpcHRvcl07CisgICAgICAgIFtjb25maWcgc2V0UHJlZGljYXRlczpAW1tSQlNQ
cm9jZXNzUHJlZGljYXRlIHByZWRpY2F0ZU1hdGNoaW5nSGFuZGxlOltSQlNQcm9jZXNzSGFuZGxl
IGN1cnJlbnRQcm9jZXNzXV1dXTsKKyAgICAgICAgW2NvbmZpZyBzZXRVcGRhdGVIYW5kbGVyOlt3
ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpXShSQlNQcm9jZXNzTW9uaXRvciAqbW9uaXRvciwg
UkJTUHJvY2Vzc0hhbmRsZSAqcHJvY2VzcywgUkJTUHJvY2Vzc1N0YXRlVXBkYXRlICp1cGRhdGUp
IHsKKyAgICAgICAgICAgIGNhbGxPbk1haW5SdW5Mb29wKFt3ZWFrVGhpc10geworICAgICAgICAg
ICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPmNoZWNr
UmVtYWluaW5nUnVuVGltZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH1dOworICAgIH1d
OworICAgIGNoZWNrUmVtYWluaW5nUnVuVGltZSgpOworfQorCitQcm9jZXNzU3RhdGVNb25pdG9y
Ojp+UHJvY2Vzc1N0YXRlTW9uaXRvcigpCit7CisgICAgW21fcmJzTW9uaXRvci5nZXQoKSBpbnZh
bGlkYXRlXTsKKyAgICBwcm9jZXNzRGlkQmVjb21lUnVubmluZygpOworfQorCitib29sIFByb2Nl
c3NTdGF0ZU1vbml0b3I6OmlzQXNzZXJ0aW9uVmFsaWQoKQoreworICAgIHJldHVybiBtX2Fzc2Vy
dGlvbiAmJiBtX2Fzc2VydGlvbi0+aXNWYWxpZCgpOworfQorCit2b2lkIFByb2Nlc3NTdGF0ZU1v
bml0b3I6OmVuc3VyZUFzc2VydGlvbigpCit7CisgICAgaWYgKG1fYXNzZXJ0aW9uICYmIG1fYXNz
ZXJ0aW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fYXNzZXJ0aW9uID0g
UHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKG1fY2xpZW50Lm1vbml0b3JlZFByb2Nlc3NJZGVudGlm
aWVyKCksICJQcm9jZXNzU3RhdGVNb25pdG9yIGlzIHJ1bm5pbmciX3MsIFByb2Nlc3NBc3NlcnRp
b25UeXBlOjpCYWNrZ3JvdW5kLCBQcm9jZXNzQXNzZXJ0aW9uOjpNb2RlOjpTeW5jKTsKK30KKwor
dm9pZCBQcm9jZXNzU3RhdGVNb25pdG9yOjpzdXNwZW5kUHJvY2Vzc0lmUG9zc2libGUoKQorewor
ICAgIGlmIChtX3N0YXRlICE9IFN0YXRlOjpXaWxsU3VzcGVuZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQoKSk7CisgICAgaWYgKCFtX3N1c3BlbmRUaW1l
ci5pc0FjdGl2ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3N1c3BlbmRUaW1lci5zdG9w
KCk7CisgICAgc2VuZFN1c3BlbmRNZXNzYWdlKCk7Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9u
aXRvcjo6cHJvY2Vzc0RpZEJlY29tZVJ1bm5pbmcoKQoreworICAgIGlmIChtX3N0YXRlID09IFN0
YXRlOjpSdW5uaW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBlbnN1cmVBc3NlcnRpb24oKTsK
KyAgICBtX3N1c3BlbmRUaW1lci5zdG9wKCk7CisgICAgKyttX3Nlc3Npb25JRDsKKyAgICBtX3N0
YXRlID0gU3RhdGU6OlJ1bm5pbmc7CisgICAgbV9jbGllbnQuc2VuZFNldFN0b3JhZ2VPcGVyYXRp
b25zU3VzcGVuZGVkTWVzc2FnZShmYWxzZSwgW10geyB9KTsKK30KKwordm9pZCBQcm9jZXNzU3Rh
dGVNb25pdG9yOjpwcm9jZXNzV2lsbEJlU3VzcGVuZGVkKFNlY29uZHMgcmVtYWluaW5nUnVuVGlt
ZSkKK3sKKyAgICBpZiAobV9zdGF0ZSAhPSBTdGF0ZTo6UnVubmluZykKKyAgICAgICAgcmV0dXJu
OworCisgICAgQVNTRVJUKGlzQXNzZXJ0aW9uVmFsaWQoKSk7CisgICAgQVNTRVJUKCFtX3N1c3Bl
bmRUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICBTZWNvbmRzIHRpbWVvdXQgPSByZW1haW5pbmdSdW5U
aW1lID4gcHJlcGFyZUZvclN1c3BlbnNpb25EdXJhdGlvbiA/IHJlbWFpbmluZ1J1blRpbWUgLSBw
cmVwYXJlRm9yU3VzcGVuc2lvbkR1cmF0aW9uIDogMF9zOworICAgIG1fc3VzcGVuZFRpbWVyLnN0
YXJ0T25lU2hvdCh0aW1lb3V0KTsKKyAgICBtX3N0YXRlID0gU3RhdGU6OldpbGxTdXNwZW5kOwor
fQorCit2b2lkIFByb2Nlc3NTdGF0ZU1vbml0b3I6OnNlbmRTdXNwZW5kTWVzc2FnZSgpCit7Cisg
ICAgbV9jbGllbnQuc2VuZFNldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkTWVzc2FnZSh0cnVl
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgc2Vzc2lvbklEID0gbV9zZXNz
aW9uSURdKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9zZXNzaW9uSUQg
IT0gc2Vzc2lvbklEKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fYXNzZXJ0aW9u
ID0gbnVsbHB0cjsKKyAgICAgICAgbV9zdGF0ZSA9IFN0YXRlOjpTdXNwZW5kZWQ7CisgICAgfSk7
Cit9CisKK3ZvaWQgUHJvY2Vzc1N0YXRlTW9uaXRvcjo6Y2hlY2tSZW1haW5pbmdSdW5UaW1lKCkK
K3sKKyAgICBkb3VibGUgcnVuVGltZSA9IFtbW1JCU1Byb2Nlc3NIYW5kbGUgY3VycmVudFByb2Nl
c3NdIGFjdGl2ZUxpbWl0YXRpb25zXSBydW5UaW1lXTsKKyAgICBpZiAocnVuVGltZSA9PSBSQlNQ
cm9jZXNzVGltZUxpbWl0YXRpb25Ob25lKQorICAgICAgICByZXR1cm4gcHJvY2Vzc0RpZEJlY29t
ZVJ1bm5pbmcoKTsKKworICAgIHByb2Nlc3NXaWxsQmVTdXNwZW5kZWQoU2Vjb25kcyhydW5UaW1l
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9T
X0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
U3RhdGVNb25pdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c1N0YXRlTW9uaXRvckNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Y2Y0OWM2MDg4MjJjZDdhZGVjZWU3
ZTBiYjJiZTdhMGZmY2VjMzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc1N0YXRlTW9uaXRvckNsaWVudC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQ
cm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Qcm9jZXNz
U3RhdGVNb25pdG9yQ2xpZW50KCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNlbmRTZXRTdG9yYWdl
T3BlcmF0aW9uc1N1c3BlbmRlZE1lc3NhZ2UoYm9vbCBzdXNwZW5kZWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJikgPSAwOworICAgIHZpcnR1YWwgUHJvY2Vzc0lEIG1vbml0b3JlZFByb2Nl
c3NJZGVudGlmaWVyKCkgY29uc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxZTVmNTY0ZTE1YzQzYWQyYjJhMWE3MzM2OTFm
MzY2ZTBiOTBlMmU4Li40ZmE1ZmI2YzEyZDVjYTY1MzA4YjQ3MGI2YTA4MTA4MDA0NGVhZjA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTE0NzYsNiArMTQ3Niw4IEBACiAJCTkzNUI1NzlBMjZGNTE5MzMwMDhCNDhBQyAvKiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzVCNTc5ODI2RjUxMjcwMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGVSZWdpc3RyeS5oICovOyB9OwogCQk5MzVFRUI5QjEyNzc2MTdDMDAzMzIyQjgg
LyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVFRUI5ODEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5k
bGVCYWNrRm9yd2FyZExpc3RJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTM1RUVCOUYxMjc3NjFBQzAwMzMyMkI4IC8qIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzVFRUI5NjEyNzc2MTZEMDAzMzIyQjggLyogV0tCdW5kbGVCYWNrRm9yd2FyZExpc3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5MzVG
RTVCNjI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1RkU1QjMyODEzNTYyNTAwRDM1
OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3IuaCAqLzsgfTsKKwkJOTM1RkU1QjgyODEzNTYyNjAw
RDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3JDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQ
cm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggKi87IH07CiAJCTkzNzM1RUJCMUM5Mjk4NjMwMDMz
NkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzM1RUJBMUM5Mjk4NjMwMDMzNkZBNyAvKiBX
S1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLzsgfTsKIAkJOTM5MTA3NEYxQkY2QkM2NTAw
OEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAv
KiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3
QUQwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTgg
LyogV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oICovOyB9OwpAQCAtNTc1MSw2ICs1NzUzLDkg
QEAKIAkJOTM1RUVCOTYxMjc3NjE2RDAwMzMyMkI4IC8qIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUVFQjk3MTI3NzYxNkQwMDMz
MjJCOCAvKiBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM1RUVCOTgxMjc3NjE2RDAwMzMyMkI4IC8qIFdL
QnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJvY2Vzc1N0YXRlTW9uaXRvci5o
OyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTM1RkU1QjQyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3Iu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9jZXNzU3RhdGVN
b25pdG9yLm1tOyBwYXRoID0gaW9zL1Byb2Nlc3NTdGF0ZU1vbml0b3IubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTkzNUZFNUI1MjgxMzU2MjYwMEQzNTlFMyAvKiBQcm9jZXNzU3Rh
dGVNb25pdG9yQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByb2Nl
c3NTdGF0ZU1vbml0b3JDbGllbnQuaDsgcGF0aCA9IGlvcy9Qcm9jZXNzU3RhdGVNb25pdG9yQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNzM1RUJBMUM5Mjk4NjMwMDMz
NkZBNyAvKiBXS1ByZXZpZXdBY3Rpb25JdGVtSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tQcmV2aWV3QWN0aW9uSXRlbUludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkzOTEwNzRFMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdF
bGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM5MUYyODMxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTI0Nyw2ICs5MjUyLDkgQEAK
IAkJCQkwRkNCNEUzNjE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MuaCAqLywK
IAkJCQkwRkNCNEUzNzE4QkJFMDQ0MDAwRkNGQzkgLyogUGFnZUNsaWVudEltcGxJT1MubW0gKi8s
CiAJCQkJODZGOTUzNjIxOEZGNTUwQjAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb25JT1MubW0g
Ki8sCisJCQkJOTM1RkU1QjMyODEzNTYyNTAwRDM1OUUzIC8qIFByb2Nlc3NTdGF0ZU1vbml0b3Iu
aCAqLywKKwkJCQk5MzVGRTVCNDI4MTM1NjI1MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9uaXRv
ci5tbSAqLywKKwkJCQk5MzVGRTVCNTI4MTM1NjI2MDBEMzU5RTMgLyogUHJvY2Vzc1N0YXRlTW9u
aXRvckNsaWVudC5oICovLAogCQkJCTJEQUYwNkQ0MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1h
Z25pZmljYXRpb25Db250cm9sbGVyLmggKi8sCiAJCQkJMkRBRjA2RDgxOEJEMjNCQTAwODFDRUIx
IC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJMkRB
RjA2RDUxOEJEMUE0NzAwODFDRUIxIC8qIFNtYXJ0TWFnbmlmaWNhdGlvbkNvbnRyb2xsZXIubW0g
Ki8sCkBAIC0xNDU0MCw2ICsxNDU0OCw4IEBACiAJCQkJNUNCOTMxMDkyNkU4NDM5QTAwMzJCMUMw
IC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50WFBDVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1RkU1QjYyODEzNTYyNjAwRDM1OUUzIC8qIFByb2Nl
c3NTdGF0ZU1vbml0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzNUZFNUI4MjgxMzU2MjYwMEQz
NTlFMyAvKiBQcm9jZXNzU3RhdGVNb25pdG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90
dGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFBy
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlN0b3JhZ2UvU3RvcmFnZUFyZWFNYXAuY3BwCmluZGV4IGQ0
Y2Y2YWNhNzgxOTJjNzM1MGZhM2M4NjlmOTk0ZWIwMDZlYjdlMzguLmI2YzQ1MzhjYjQ5OTZkMTE0
ZTEyMGYxZjQ0ZjY1OWU3ODVhZGRlN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJTdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcC5oIgogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJOZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBcmVhSW1wbC5oIgpAQCAtMzUxLDcg
KzM1Miw3IEBAIHZvaWQgU3RvcmFnZUFyZWFNYXA6OnNlbmRDb25uZWN0TWVzc2FnZShTZW5kTW9k
ZSBtb2RlKQogICAgICAgICBTdG9yYWdlQXJlYUlkZW50aWZpZXIgcmVtb3RlQXJlYUlkZW50aWZp
ZXI7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGl0ZW1zOwogICAgICAgICB1aW50
NjRfdCBtZXNzYWdlSWRlbnRpZmllcjsKLSAgICAgICAgaXBjQ29ubmVjdGlvbi5zZW5kU3luYyhN
ZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDb25uZWN0VG9TdG9yYWdlQXJlYVN5bmMo
dHlwZSwgbV9pZGVudGlmaWVyLCBuYW1lc3BhY2VJZGVudGlmaWVyLCBvcmlnaW4pLCBNZXNzYWdl
czo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDb25uZWN0VG9TdG9yYWdlQXJlYVN5bmM6OlJlcGx5
KHJlbW90ZUFyZWFJZGVudGlmaWVyLCBpdGVtcywgbWVzc2FnZUlkZW50aWZpZXIpLCAwKTsKKyAg
ICAgICAgaXBjQ29ubmVjdGlvbi5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OkNvbm5lY3RUb1N0b3JhZ2VBcmVhU3luYyhtX25hbWVzcGFjZS5zZXNzaW9u
SUQoKSwgdHlwZSwgbV9pZGVudGlmaWVyLCBuYW1lc3BhY2VJZGVudGlmaWVyLCBvcmlnaW4pLCBN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNvbm5lY3RUb1N0b3JhZ2VB
cmVhU3luYzo6UmVwbHkocmVtb3RlQXJlYUlkZW50aWZpZXIsIGl0ZW1zLCBtZXNzYWdlSWRlbnRp
ZmllciksIDApOwogICAgICAgICBkaWRDb25uZWN0KHJlbW90ZUFyZWFJZGVudGlmaWVyLCBXVEZN
b3ZlKGl0ZW1zKSwgbWVzc2FnZUlkZW50aWZpZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMzgzLDEyICszODQsMTcgQEAgdm9pZCBTdG9yYWdlQXJlYU1hcDo6Y29ubmVjdCgpCiB2b2lk
IFN0b3JhZ2VBcmVhTWFwOjpkaWRDb25uZWN0KFN0b3JhZ2VBcmVhSWRlbnRpZmllciByZW1vdGVB
cmVhSWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mJiBpdGVtcywgdWludDY0X3Qg
bWVzc2FnZUlkZW50aWZpZXIpCiB7CiAgICAgbV9pc1dhaXRpbmdGb3JDb25uZWN0UmVwbHkgPSBm
YWxzZTsKLSAgICBpZiAobWVzc2FnZUlkZW50aWZpZXIgPCBtX2xhc3RIYW5kbGVkTWVzc2FnZUlk
ZW50aWZpZXIpCisgICAgaWYgKG1lc3NhZ2VJZGVudGlmaWVyIDwgbV9sYXN0SGFuZGxlZE1lc3Nh
Z2VJZGVudGlmaWVyKSB7CisgICAgICAgIGlmICghbWVzc2FnZUlkZW50aWZpZXIpCisgICAgICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihTdG9yYWdlLCAiJXAgLSBTdG9yYWdlQXJlYU1hcDo6ZGlk
Q29ubmVjdCBmYWlsZWQgYmVjYXVzZSBtZXNzYWdlSWRlbnRpZmllciBpcyAwIiwgdGhpcyk7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBtX2xhc3RIYW5kbGVkTWVzc2FnZUlkZW50aWZp
ZXIgPSBtZXNzYWdlSWRlbnRpZmllcjsKLSAgICBpZiAoIXJlbW90ZUFyZWFJZGVudGlmaWVyLmlz
VmFsaWQoKSkKKyAgICBpZiAoIXJlbW90ZUFyZWFJZGVudGlmaWVyLmlzVmFsaWQoKSkgeworICAg
ICAgICBSRUxFQVNFX0xPR19FUlJPUihTdG9yYWdlLCAiJXAgLSBTdG9yYWdlQXJlYU1hcDo6ZGlk
Q29ubmVjdCBmYWlsZWQgYmVjYXVzZSByZW1vdGVBcmVhSWRlbnRpZmllciBpcyBpbnZhbGlkIiwg
dGhpcyk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBtX3JlbW90ZUFyZWFJZGVudGlm
aWVyID0gcmVtb3RlQXJlYUlkZW50aWZpZXI7CiAgICAgbV9tYXAgPSBtYWtlVW5pcXVlPFN0b3Jh
Z2VNYXA+KG1fcXVvdGFJbkJ5dGVzKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCAyNDEwZjI5OTY5NWQ5MjFmYjcwMGE4MzM2ZmFiZTMyNmI2NWEw
MzdlLi5mOGNkYzBiMWFmNmM5MDZmMDVjNzMxYmZjMmNjMDI4MWM3MGFjMDk0IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMjItMDQtMjkgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VzcGVuZCBzdG9yYWdlIG9wZXJhdGlvbnMgd2hlbiBuZXR3b3JrIHByb2Nlc3MgaXMgaW4gYmFj
a2dyb3VuZCBhbmQgd2lsbCBiZSBzdXNwZW5kZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTQzMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTIy
MjgxOTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVu
dGx5Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxT
dG9yYWdlUGVyc2lzdGVuY2UubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0wNC0yOSAgSm9u
YXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW2dpdC13ZWJraXRd
IFJlZGFjdCBidWcgdGl0bGUgaW4gYnJhbmNoIG5hbWUgb24gYWx0ZXJuYXRlIHJlbW90ZXMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
U3VzcGVuZEltbWluZW50bHkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0luZGV4ZWREQlN1c3BlbmRJbW1pbmVudGx5Lm1tCmluZGV4IDQ4ZGE1YzUyZDBkMDlkZGFi
NTJkODE3YzQzOTVhOWYzYmFkMTUzM2YuLjM0ZWE4NDAyMmYxZTBiNjM5MGQxNmE5ZjY1NzUwN2Uy
ZTQwYWVkMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSW5kZXhlZERCU3VzcGVuZEltbWluZW50bHkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJTdXNwZW5kSW1taW5lbnRseS5tbQpAQCAtMTYz
LDggKzE2MywxNyBAQCBURVNUKEluZGV4ZWREQiwgU3VzcGVuZEltbWluZW50bHlGb3JUaGlyZFBh
cnR5RGF0YWJhc2VzKQogICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmlu
ZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cDovL3dlYmtpdC5vcmciXV07CiAg
ICAgcnVuVW50aWxNZXNzYWdlUmVjZWl2ZWQoQCJkYXRhYmFzZSBpcyBjcmVhdGVkIik7CiAKLSAg
ICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nl
c3NXaWxsU3VzcGVuZEltbWluZW50bHldOwotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNp
dGVEYXRhU3RvcmUgX3NlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZV07CisgICAgcmVhZHlUb0Nv
bnRpbnVlID0gZmFsc2U7CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9y
ZSBfc2V0U3RvcmFnZU9wZXJhdGlvbnNTdXNwZW5kZWRGb3JUZXN0aW5nOllFUyBjb21wbGV0aW9u
SGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKKworICAgIHJlYWR5
VG9Db250aW51ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRh
U3RvcmUgX3NldFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0
aW9uSGFuZGxlcjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOwor
ICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJ1
blVudGlsTWVzc2FnZVJlY2VpdmVkKEAidHJhbnNhY3Rpb24gaXMgY29tcGxldGVkIik7CiB9CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3Rv
cmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5jZS5tbQppbmRleCAwMjUyNDMwMmZiZGZjYTgzZGFlMmFh
NGVlYWZkMzg5YWFhYzNiNjE5Li5jMjEwMmYzZTBlMTA5MjYzZjU0NjJhMDZjYTczNjYxZjgwMTgx
ZDYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xv
Y2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0KQEAgLTE3MCw3ICsxNzAsMTEg
QEAgVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcykKICAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CiAgICAgRVhQRUNU
X1dLX1NUUkVRKEAidmFsdWUiLCBbbGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOwogCi0gICAgW2Nv
bmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9yZSBfc2VuZE5ldHdvcmtQcm9jZXNzV2ls
bFN1c3BlbmRJbW1pbmVudGx5XTsKKyAgICByZWFkeVRvQ29udGludWUgPSBmYWxzZTsKKyAgICBb
Y29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0YVN0b3JlIF9zZXRTdG9yYWdlT3BlcmF0aW9u
c1N1c3BlbmRlZEZvclRlc3Rpbmc6WUVTIGNvbXBsZXRpb25IYW5kbGVyOl57CisgICAgICAgIHJl
YWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFsc2U7CiAg
ICAgW3dlYlZpZXcxIGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5sb2NhbFN0b3JhZ2Uuc2V0
SXRlbSgna2V5JywgJ25ld1ZhbHVlJykiIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQsIE5TRXJyb3Ig
KikgewpAQCAtMTg1LDcgKzE4OSwxMSBAQCBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlUHJv
Y2Vzc1N1c3BlbmRzKQogICAgIH1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVh
ZHlUb0NvbnRpbnVlKTsKICAgICAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS53ZWJzaXRlRGF0
YVN0b3JlIF9zZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWVdOworICAgIHJlYWR5VG9Db250aW51
ZSA9IGZhbHNlOworICAgIFtjb25maWd1cmF0aW9uLmdldCgpLndlYnNpdGVEYXRhU3RvcmUgX3Nl
dFN0b3JhZ2VPcGVyYXRpb25zU3VzcGVuZGVkRm9yVGVzdGluZzpOTyBjb21wbGV0aW9uSGFuZGxl
cjpeeworICAgICAgICByZWFkeVRvQ29udGludWUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVhZHlUb0NvbnRpbnVlKTsKIAogICAgIHJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSA9IGZhbHNlOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>