<?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>150449</bug_id>
          
          <creation_ts>2015-10-22 10:28:01 -0700</creation_ts>
          <short_desc>[MediaStream] Play MediaStream through media element and render to canvas</short_desc>
          <delta_ts>2016-10-30 13:20:55 -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>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>147125</blocked>
    
    <blocked>150195</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jer.noble</cc>
    
    <cc>ossy</cc>
    
    <cc>thiago.lacerda</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1135722</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-22 10:28:01 -0700</bug_when>
    <thetext>Enable a MediaStream to be played through a media element and rendered to a canvas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137047</commentid>
    <comment_count>1</comment_count>
      <attachid>264192</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-27 21:17:42 -0700</bug_when>
    <thetext>Created attachment 264192
Patch for the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137057</commentid>
    <comment_count>2</comment_count>
      <attachid>264192</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-10-27 22:14:29 -0700</bug_when>
    <thetext>Comment on attachment 264192
Patch for the bots.

Attachment 264192 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/347124

New failing tests:
media/video-source-error-no-candidate.html
media/W3C/video/error/error_onerror_called_on_bogus_source.html
http/tests/media/text-served-as-text.html
media/video-src-change.html
media/W3C/audio/error/error_onerror_called_on_bogus_source.html
media/invalid-media-url-crash.html
http/tests/media/pdf-served-as-pdf.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137058</commentid>
    <comment_count>3</comment_count>
      <attachid>264194</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-10-27 22:14:33 -0700</bug_when>
    <thetext>Created attachment 264194
Archive of layout-test-results from ews113 for mac-yosemite

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-yosemite  Platform: Mac OS X 10.10.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137135</commentid>
    <comment_count>4</comment_count>
      <attachid>264214</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 09:09:51 -0700</bug_when>
    <thetext>Created attachment 264214
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137140</commentid>
    <comment_count>5</comment_count>
      <attachid>264215</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 09:25:23 -0700</bug_when>
    <thetext>Created attachment 264215
Updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137143</commentid>
    <comment_count>6</comment_count>
      <attachid>264217</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 09:37:27 -0700</bug_when>
    <thetext>Created attachment 264217
Another updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137152</commentid>
    <comment_count>7</comment_count>
      <attachid>264219</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 09:57:33 -0700</bug_when>
    <thetext>Created attachment 264219
Another updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137163</commentid>
    <comment_count>8</comment_count>
      <attachid>264223</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 10:11:52 -0700</bug_when>
    <thetext>Created attachment 264223
Another updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137230</commentid>
    <comment_count>9</comment_count>
      <attachid>264223</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-10-28 13:04:23 -0700</bug_when>
    <thetext>Comment on attachment 264223
Another updated patch.

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

r=me, with nits.

&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:264
&gt; +        // FIXME: This can&apos;t be right, the event type is set from m_isActive in scheduleActiveStateChange!

I don&apos;t see a ChangeLog entry for this. Does this need a bugzilla bug?

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:83
&gt; +MediaStreamPrivate::~MediaStreamPrivate()
&gt; +{
&gt; +}

Don&apos;t you need to remove the observers from the tracks in m_trackSet here?

&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.h:76
&gt; +    MediaStream* publicStream() const { return m_publicStream; }
&gt; +    void setPublicStream(MediaStream* stream) { m_publicStream = stream; }

This is a _little_ concerning. I realize that we&apos;re not pulling in MediaStream.h here, just its forward declaration, but it still seems like it may be a layering violation, or at least, would allow layering violations to propagate.

If the point of this method is to allow clients of MediaStreamPrivate to connect to a MediaStream, perhaps we could have a static method in MediaStream, which, when given a MediaStreamPrivate returns the MediaStream associated with that private?

&gt; Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm:84
&gt; +    // FIXME: finish this implementation

bug #?

&gt; Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm:96
&gt; -    {
&gt; -        LockHolder lock(m_lock);
&gt; -        m_observers.append(observer);
&gt; -    }
&gt; -
&gt; +    LockHolder lock(m_lock);
&gt; +    m_observers.append(observer);

The ChangeLog just says &quot;hold the lock while calling observers&quot;, but not why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137294</commentid>
    <comment_count>10</comment_count>
      <attachid>264223</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 14:35:22 -0700</bug_when>
    <thetext>Comment on attachment 264223
Another updated patch.

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

&gt;&gt; Source/WebCore/Modules/mediastream/MediaStream.cpp:264
&gt;&gt; +        // FIXME: This can&apos;t be right, the event type is set from m_isActive in scheduleActiveStateChange!
&gt; 
&gt; I don&apos;t see a ChangeLog entry for this. Does this need a bugzilla bug?

Fixed.

&gt;&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.cpp:83
&gt;&gt; +}
&gt; 
&gt; Don&apos;t you need to remove the observers from the tracks in m_trackSet here?

Oops, fixed!

&gt;&gt; Source/WebCore/platform/mediastream/MediaStreamPrivate.h:76
&gt;&gt; +    void setPublicStream(MediaStream* stream) { m_publicStream = stream; }
&gt; 
&gt; This is a _little_ concerning. I realize that we&apos;re not pulling in MediaStream.h here, just its forward declaration, but it still seems like it may be a layering violation, or at least, would allow layering violations to propagate.
&gt; 
&gt; If the point of this method is to allow clients of MediaStreamPrivate to connect to a MediaStream, perhaps we could have a static method in MediaStream, which, when given a MediaStreamPrivate returns the MediaStream associated with that private?

As discussed on IRC, fixed.

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm:84
&gt;&gt; +    // FIXME: finish this implementation
&gt; 
&gt; bug #?

Added.

&gt;&gt; Source/WebCore/platform/mediastream/mac/AVAudioCaptureSource.mm:96
&gt;&gt; +    m_observers.append(observer);
&gt; 
&gt; The ChangeLog just says &quot;hold the lock while calling observers&quot;, but not why.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137295</commentid>
    <comment_count>11</comment_count>
      <attachid>264248</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 14:35:53 -0700</bug_when>
    <thetext>Created attachment 264248
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137361</commentid>
    <comment_count>12</comment_count>
      <attachid>264268</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 16:59:50 -0700</bug_when>
    <thetext>Created attachment 264268
Updated path for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137435</commentid>
    <comment_count>13</comment_count>
      <attachid>264268</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-28 20:14:23 -0700</bug_when>
    <thetext>Comment on attachment 264268
Updated path for landing.

Rejecting attachment 264268 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 264268, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/351339</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137446</commentid>
    <comment_count>14</comment_count>
      <attachid>264297</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-28 21:36:24 -0700</bug_when>
    <thetext>Created attachment 264297
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137459</commentid>
    <comment_count>15</comment_count>
      <attachid>264297</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-28 22:31:29 -0700</bug_when>
    <thetext>Comment on attachment 264297
Patch for landing.

Clearing flags on attachment: 264297

Committed r191721: &lt;http://trac.webkit.org/changeset/191721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137483</commentid>
    <comment_count>16</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-10-29 02:13:23 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Comment on attachment 264297 [details]
&gt; Patch for landing.
&gt; 
&gt; Clearing flags on attachment: 264297
&gt; 
&gt; Committed r191721: &lt;http://trac.webkit.org/changeset/191721&gt;

It made 12 tests timeout on El Capitan bots. 
Could you possibly fix this regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137514</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-29 06:17:44 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; Comment on attachment 264297 [details]
&gt; &gt; Patch for landing.
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 264297
&gt; &gt; 
&gt; &gt; Committed r191721: &lt;http://trac.webkit.org/changeset/191721&gt;
&gt; 
&gt; It made 12 tests timeout on El Capitan bots. 
&gt; Could you possibly fix this regression?

I am looking at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137516</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-29 06:30:20 -0700</bug_when>
    <thetext>It looks like it is a not a problem with this patch per-se, but this patch has uncovered a very old bug in MediaPlayer::getSupportedTypes. Working on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137518</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-10-29 06:40:54 -0700</bug_when>
    <thetext>I will fix this in bug 150669.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264192</attachid>
            <date>2015-10-27 21:17:42 -0700</date>
            <delta_ts>2015-10-28 09:09:51 -0700</delta_ts>
            <desc>Patch for the bots.</desc>
            <filename>media_player_stream_patch_14.txt</filename>
            <type>text/plain</type>
            <size>118404</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9u
KTogTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0aGUKKyAgICAgICAgICBp
bnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAgIChXZWJDb3JlOjpBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21D
b25uZWN0aW9uKTogRG9uJ3QgYmxvY2sKKyAgICAgICAgICBpZiBpdCBpc24ndCBwb3NzaWJsZSB0
byBhY3F1aXJlIHRoZSBsb2NrLiBIb2xkIHRoZSBsb2NrIHdoaWxlIGNhbGxpbmcgb2JzZXJ2ZXJz
LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZnJlc2hDYXB0dXJlRGV2aWNl
TGlzdCk6IERvbid0IGluY2x1ZGUgZGV2aWNlcyB0aGF0IGNhbid0IGJlIHVzZWQuCisgICAgICAg
IChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyk6ICBVc2UgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRAor
ICAgICAgICAgIHNvIGNvbnN0cmFpbnRzIGFyZSBjb25zaWRlcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRCk6IERvbid0IGNvbnNpZGVy
IGRpc2FibGVkIGRldmljZXMuIEFsd2F5cworICAgICAgICAgIGNyZWF0ZSBhIG5ldyBjYXB0dXJl
IGRldmljZSBzbyBlYWNoIHRyYWNrIHN0YXJ0cyBvdXQgd2l0aCBhIHVuaXF1ZSBzb3VyY2UuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFD
YXB0dXJlU291cmNlKTogUmVtb3ZlIEtWTyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogbV9pc1J1bm5pbmcgaXMg
Y2hhbmdlZCBpbiBjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IE5l
dy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24p
OiBBZGQgS1ZPYnNlcnZlcnMgZm9yIHRoZSBwcm9wZXJ0aWVzIHdlIGNhcmUgYWJvdXQuCisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQpOiBOZXcsIGNsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25J
c1J1bm5pbmdEaWRDaGFuZ2UpOiBEaXNwYXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgCisgICAgICAg
ICAgdG8gc2V0IG1faXNSdW5uaW5nLCBjYWxsIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSBzbyBv
YnNlcnZlcnMgY2FuIGZpbmQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6c2Vzc2lvbktWT1Byb3Bl
cnRpZXMpOgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBk
aXNjb25uZWN0XSk6CisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIGNhcHR1cmVPdXRwdXQ6ZGlkT3V0cHV0U2FtcGxlQnVmZmVyOmZyb21Db25uZWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBSZXNwb25kCisgICAg
ICAgICAgdG8gcnVubmluZyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1
cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcpOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nOl0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBQYXJ0aWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24pOiAgTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0
aGUKKyAgICAgICAgICBpbnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAg
IChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlRnJhbWVyYXRlKTogUmVuYW1l
ZCBmcm9tIGNhbGN1bGF0ZUZyYW1lcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFJldHVybiBhbiBJbWFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJh
bWVyYXRlKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOiBBdWRpb0NvbnZlcnRlclJlZiBpcworICAgICAgICAgIG5vdCBhIENGL09i
akMgb2JqZWN0IHNvIHdlIGNhbid0IHVzZSBhIFJldGFpblB0cjw+IGZvciBpdC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6IEZpeCB0eXBvIGluIGxvZ2dpbmcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2U6OmNhcGFiaWxpdGllcyk6IFVwZGF0ZSBmb3Ig
Y2FwYWJpbGl0aWVzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGll
cyBjaGFuZ2UuCisKIDIwMTUtMTAtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDYW5jZWwgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2tzIGxp
a2Ugd2UgZG8gY29udGVudCBwb2xpY3kgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bTo6bG9va1VwKGNvbnN0IFUKIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29u
dGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4+KCkpKTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJl
YW0pCkBAIC05NSw3ICs5NSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0UHVibGljU3RyZWFtKHRoaXMpOwogfQogCiBNZWRpYVN0
cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1Qcml2YXRlKQpAQCAtMTA1LDcgKzEwNiw4IEBA
IE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KICAgICAsIG1fYWN0aXZp
dHlFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0UHVibGljU3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBt
X3ByaXZhdGUtPnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0
cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsK
QEAgLTExNiw3ICsxMTgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1
dGlvbgogCiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPnNldFB1YmxpY1N0cmVhbShudWxscHRy
KTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2Vy
dmVyKHRoaXMpOwogfQogCiBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgp
CkBAIC0xOTksMTIgKzIwNCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayhNZWRp
YVN0cmVhCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRlcm5h
bEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4dCwgdHJhY2tQcml2YXRl
KSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKKyAgICBpZiAoIWdldFRyYWNrQnlJZCh0cmFj
a1ByaXZhdGUuaWQoKSkpCisgICAgICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZv
cm0pOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiB0cmFjayA9IGdldFRyYWNrQnlJZCh0cmFja1ByaXZhdGUuaWQoKSk7CisgICAgQVNTRVJUKHRy
YWNrKTsKICAgICBpbnRlcm5hbFJlbW92ZVRyYWNrKFdURjo6bW92ZSh0cmFjayksIFN0cmVhbU1v
ZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKQEAgLTI1NCw2ICsyNjEsNyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlCiAgICAgZXZlbnRzLnN3YXAobV9zY2hlZHVsZWRB
Y3Rpdml0eUV2ZW50cyk7CiAKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGJlIHJpZ2h0LCB0aGUgZXZlbnQgdHlwZSBpcyBzZXQg
ZnJvbSBtX2lzQWN0aXZlIGluIHNjaGVkdWxlQWN0aXZlU3RhdGVDaGFuZ2UhCiAgICAgICAgIG1f
aXNBY3RpdmUgPSBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudDsKICAg
ICAgICAgZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNlKCkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxl
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgeworY2xhc3Mg
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVh
bUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAot
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6cmVmOwotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgogICAgIHZp
cnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5nZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVu
ZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tQcm9kdWNpbmdEYXRh
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tS
ZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVy
aW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE5MTYzNykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRy
YWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDksMTQgKzY0OSwxMyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVT
dHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFT
dHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBBU1NFUlQocHJpdmF0ZVN0cmVh
bS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRoaXMgY2xhc3Mgc2hvdWxkbid0IGtub3cg
dGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlzIGEgTWVkaWFTdHJlYW0hCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHByaXZh
dGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25h
bGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQocHJpdmF0ZVN0
cmVhbS0+cHVibGljU3RyZWFtKCkpOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0g
PSBwcml2YXRlU3RyZWFtLT5wdWJsaWNTdHJlYW0oKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjEgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworCitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDKCk7CkBAIC01OCwxMTYgKzU1LDEwOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmKTsKIAotICAgIHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKik7Ci0gICAgdm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQotICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKLSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3Rh
dGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwot
ICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAv
LyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTog
SW1wbGVtZW50IG5lY2Vzc2FyeSBjb25mb3JtYXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRp
YUVsZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAorICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZQorCisgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1wbGVtZW50IG5lY2Vzc2FyeSBjb25mb3Jt
YXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVsZW1lbnQgZm9yIE1lZGlhU3RyZWFtCisK
ICAgICB2b2lkIGxvYWQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGUgeyB9OwogI2lmIEVOQUJMRShN
RURJQV9TT1VSQ0UpCiAgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJp
dmF0ZUNsaWVudCopIG92ZXJyaWRlIHsgfTsKICNlbmRpZgotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCiAgICAgdm9pZCBsb2FkKE1lZGlhU3RyZWFtUHJpdmF0ZSYpIG92ZXJyaWRlOwotI2VuZGlm
CiAgICAgdm9pZCBjYW5jZWxMb2FkKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHByZXBhcmVUb1Bs
YXkoKSBvdmVycmlkZTsKLSAgICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEoKSBjb25zdCBv
dmVycmlkZTsKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHZvaWQgcGxheSgpIG92ZXJyaWRlOwotICAgIHZvaWQgcGxheUlu
dGVybmFsKCk7Ci0KICAgICB2b2lkIHBhdXNlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwYXVzZUlu
dGVybmFsKCk7Ci0KICAgICBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9p
ZCBzZXRWb2x1bWUoZmxvYXQpIG92ZXJyaWRlOwotICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgdm9pZCBpbnRlcm5hbFNldFZvbHVt
ZShmbG9hdCwgYm9vbCk7CiAgICAgdm9pZCBzZXRNdXRlZChib29sKSBvdmVycmlkZTsKKyAgICBi
b29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0g
ICAgYm9vbCBzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBw
b3J0c1NjYW5uaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIEZs
b2F0U2l6ZSBuYXR1cmFsU2l6ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0U2l6ZSBuYXR1
cmFsU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW50cmluc2ljU2l6ZTsgfQogCiAg
ICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaGFzQXVkaW8oKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIHZvaWQgc2V0VmlzaWJsZShib29sKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFZpc2libGUoYm9vbCkgb3ZlcnJpZGUgeyAvKiBOby1vcCAqLyB9CiAKICAgICBN
ZWRpYVRpbWUgZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBNZWRpYVRp
bWUgY3VycmVudE1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZWVrV2l0
aFRvbGVyYW5jZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRp
YVRpbWUmKSBvdmVycmlkZSB7IH07Ci0gICAgYm9vbCBzZWVraW5nKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBzZXRSYXRlRG91YmxlKGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgYm9vbCBzZWVr
aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IHNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
TWVkaWFUaW1lIG1heE1lZGlhVGltZVNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgTWVk
aWFUaW1lIG1pbk1lZGlhVGltZVNlZWthYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCBvdmVycmlkZTsK
IAotICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9v
bCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3BsYXlpbmc7
IH0KIAotICAgIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZSB7IC8qIE5vLW9wICovIH0KIAogICAg
IHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBib29sIG1ldGFEYXRhQXZhaWxhYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUgJiYgbV9yZWFkeVN0YXRlID49IE1l
ZGlhUGxheWVyOjpIYXZlTWV0YWRhdGE7IH0KIAotICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIE1lZGlh
UGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1vdmllTG9hZFR5cGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBib29sIGhhc1NpbmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCi0gICAgdm9pZCBwcmVwYXJlRm9yUmVuZGVyaW5nKCkgb3ZlcnJpZGU7CisgICAg
TWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtOyB9CiAKICAgICBTdHJpbmcgZW5naW5l
RGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFN0cmluZyBsYW5ndWFnZU9mUHJp
bWFyeUF1ZGlvVHJhY2soKSBjb25zdCBvdmVycmlkZTsKLQotICAgIHNpemVfdCBleHRyYU1lbW9y
eUNvc3QoKSBjb25zdCBvdmVycmlkZTsKKyAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAgICAgYm9vbCBzaG91bGRCZVBsYXlpbmcoKSBj
b25zdDsKIAotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFnZUZyb21TYW1wbGVC
dWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYpOworICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIGN1
cnJlbnRSZWFkeVN0YXRlKCk7CisKKyAgICBlbnVtIFJlbmRlcmluZ01vZGVTdGF0dXMgeworICAg
ICAgICBSZW5kZXJpbmdNb2RlVW5jaGFuZ2VkLAorICAgICAgICBSZW5kZXJpbmdNb2RlQ2hhbmdl
ZCwKKyAgICB9OworICAgIFJlbmRlcmluZ01vZGVTdGF0dXMgdXBkYXRlSW50cmluc2ljU2l6ZShj
b25zdCBGbG9hdFNpemUmKTsKKworICAgIHZvaWQgY3JlYXRlUHJldmlld0xheWVycygpOworCisg
ICAgdm9pZCBzZXRQYXVzZWRJbWFnZVZpc2libGUoYm9vbCk7CisKKyAgICB2b2lkIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CiAKLSAgICBmcmllbmQgY2xhc3Mg
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzsKKyAgICAvLyBNZWRpYVN0cmVhbVByaXZhdGU6Ok9i
c2VydmVyCisgICAgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkgb3ZlcnJpZGU7CiAKLSAgICBNZWRpYVBsYXllciog
bV9wbGF5ZXI7CisgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OwogICAgIFdl
YWtQdHJGYWN0b3J5PE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQz4gbV93ZWFr
UHRyRmFjdG9yeTsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQz4gbV9NZWRp
YVN0cmVhbVByaXZhdGU7Ci0gICAgUmV0YWluUHRyPEFWQXNzZXQ+IG1fYXNzZXQ7Ci0gICAgUmV0
YWluUHRyPEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyPiBtX3ByZXZpZXdMYXllcjsKLSAgICBS
ZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI+IG1fc2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyOwotICAgIFZlY3RvcjxSZXRhaW5QdHI8QVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
Pj4gbV9zYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyczsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gbV9sYXN0SW1hZ2U7Ci0gICAgUmV0YWluUHRyPGlkPiBtX3RpbWVKdW1wZWRPYnNlcnZlcjsK
LSAgICBSZXRhaW5QdHI8aWQ+IG1fZHVyYXRpb25PYnNlcnZlcjsKLSAgICBSZXRhaW5QdHI8QVZT
dHJlYW1TZXNzaW9uPiBtX3N0cmVhbVNlc3Npb247Ci0gICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtT
dGF0ZSBtX25ldHdvcmtTdGF0ZTsKLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5
U3RhdGU7Ci0gICAgTWVkaWFUaW1lIG1fbGFzdFNlZWtUaW1lOwotICAgIGRvdWJsZSBtX3JhdGU7
Ci0gICAgYm9vbCBtX3BsYXlpbmc7Ci0gICAgYm9vbCBtX3NlZWtpbmc7Ci0gICAgYm9vbCBtX3Nl
ZWtDb21wbGV0ZWQ7Ci0gICAgbXV0YWJsZSBib29sIG1fbG9hZGluZ1Byb2dyZXNzZWQ7CisgICAg
UmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV9tZWRpYVN0cmVhbVByaXZhdGU7CisgICAgbXV0
YWJsZSBSZXRhaW5QdHI8Q0FMYXllcj4gbV9wcmV2aWV3TGF5ZXI7CisgICAgbXV0YWJsZSBSZXRh
aW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb0JhY2tncm91bmRMYXllcjsKKyAgICBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gbV9wYXVzZWRJbWFnZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2xvY2s+
IG1fY2xvY2s7CisgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBtX25ldHdvcmtTdGF0ZSB7
IE1lZGlhUGxheWVyOjpJZGxlIH07CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFk
eVN0YXRlIHsgTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nIH07CisgICAgRmxvYXRTaXplIG1faW50
cmluc2ljU2l6ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7IDEgfTsKKyAgICBib29sIG1fcGxheWlu
ZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2Fp
dGluZ0Zvck5ld0ZyYW1lIHtmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlRXZlclBsYXllZCB7IGZh
bHNlIH07CiB9OwogICAgIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwxOCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
ICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXVkaW9DYXB0dXJlU291cmNlLmgi
CiAjaW1wb3J0ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIgotI2ltcG9ydCAiRmlsZVN5c3RlbS5o
IgorI2ltcG9ydCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJN
ZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRp
b24uaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5oIgotI2ltcG9ydCAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQg
PEFWRm91bmRhdGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllci5oPgotI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWVGltZS5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CisjaW1w
b3J0IDxRdWFydHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4KICNpbXBvcnQgPG9iamNfcnVudGltZS5o
PgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgpAQCAtNTAsMTggKzQ2LDYgQEAKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChB
VkZvdW5kYXRpb24pCiAKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFW
QXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVW
aWRlb1ByZXZpZXdMYXllcikKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24s
IEFWVVJMQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0
cmVhbVNlc3Npb24pOwotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vz
c2lvbgotCi1AaW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lvbiA6IE5TT2JqZWN0Ci0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVj
dG9yeTsKLUBlbmQKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjcHJhZ21hIG1hcmsgLQpAQCAt
NzAsMTkgKzU0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6SWRsZSkK
LSAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3Jh
dGUoMSkKLSAgICAsIG1fcGxheWluZygwKQotICAgICwgbV9zZWVraW5nKGZhbHNlKQotICAgICwg
bV9zZWVrQ29tcGxldGVkKHRydWUpCi0gICAgLCBtX2xvYWRpbmdQcm9ncmVzc2VkKGZhbHNlKQor
ICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7Ci0KKyAgICBMT0coTWVkaWEsICJNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQyglcCkiLCB0aGlzKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsK
KyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoJXApIiwgdGhpcyk7CisgICAgaWYg
KG1fbWVkaWFTdHJlYW1Qcml2YXRlKQorICAgICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVt
b3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21hIG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEz
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKIAogYm9vbCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICBy
ZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3
b3JrQXZhaWxhYmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4mIG1pbWVU
eXBlQ2FjaGUoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+
IGNhY2hlOwotICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQot
ICAgIGlmICh0eXBlTGlzdEluaXRpYWxpemVkKQotICAgICAgICByZXR1cm4gY2FjaGU7Ci0gICAg
dHlwZUxpc3RJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBOU0FycmF5ICp0eXBlcyA9IFtnZXRB
VlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc107Ci0gICAgZm9yIChOU1N0cmlu
ZyAqbWltZVR5cGUgaW4gdHlwZXMpCi0gICAgICAgIGNhY2hlLmdldCgpLmFkZChtaW1lVHlwZSk7
Ci0KLSAgICByZXR1cm4gY2FjaGU7CisgICAgcmV0dXJuIEFWRm91bmRhdGlvbkxpYnJhcnkoKSAm
JiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJp
bmc+JiB0eXBlcykKIHsKLSAgICB0eXBlcyA9IG1pbWVUeXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBjYWNoZTsKKyAgICB0eXBlcyA9IGNhY2hl
OwogfQogCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMzcsMTQyICsxMDIsMTUxIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQoJXApIiwgdGhpcyk7CiAKLSAgICBtX01l
ZGlhU3RyZWFtUHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZSgqdGhp
cywgc3RyZWFtKTsKLSAgICBmb3IgKGF1dG8gdHJhY2sgOiBzdHJlYW0udHJhY2tzKCkpIHsKLSAg
ICAgICAgbV9NZWRpYVN0cmVhbVByaXZhdGUtPmFkZFRyYWNrKFdURjo6bW92ZSh0cmFjaykpOwot
ICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgpKSB7Ci0gICAgICAgICAgICB0cmFjay0+c291cmNl
KCktPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOwotICAgICAgICAgICAgdHJhY2stPnNldEVuYWJsZWQo
dHJ1ZSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUgPSAmc3Ry
ZWFtOworICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAg
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworCiAgICAgbV9wcmV2
aWV3TGF5ZXIgPSBudWxscHRyOwotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFt
UHJpdmF0ZS0+dHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pCi0gICAgICAgICAgICBtX3ByZXZpZXdMYXllciA9
IHN0YXRpY19jYXN0PEFWVmlkZW9DYXB0dXJlU291cmNlKj4odHJhY2stPnNvdXJjZSgpKS0+cHJl
dmlld0xheWVyKCk7Ci0gICAgfQotICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJl
bmRlcmluZ01vZGVDaGFuZ2VkKG1fcGxheWVyKTsKKworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNr
KFt0aGlzXSB7CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPCBNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZTo6SGF2ZU1ldGFkYXRhKQorICAgICAgICAgICAgdGhpcy0+c2V0UmVhZHlTdGF0ZShNZWRp
YVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU1ldGFkYXRhKTsKKyAgICB9KTsKIH0KIAogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNhbmNlbExvYWQoKQogeworICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2Vs
TG9hZCglcCkiLCB0aGlzKTsKKyAgICBwYXVzZSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSgpCiB7Ci19Ci0KLVBsYXRmb3Jt
TWVkaWEgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybU1lZGlh
KCkgY29uc3QKLXsKLSAgICBQbGF0Zm9ybU1lZGlhIHBtOwotICAgIHBtLnR5cGUgPSBQbGF0Zm9y
bU1lZGlhOjpBVkZvdW5kYXRpb25Bc3NldFR5cGU7Ci0gICAgcG0ubWVkaWEuYXZmQXNzZXQgPSBt
X2Fzc2V0LmdldCgpOwotICAgIHJldHVybiBwbTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBhcmVUb1BsYXkoJXApIiwgdGhpcyk7CiB9
CiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3ByZXZpZXdMYXllcikKKyAgICBp
ZiAoIW1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxQbGF0Zm9ybUxheWVyKj4obV9wcmV2aWV3TGF5ZXIpOworCisg
ICAgcmV0dXJuIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCk7CiB9CiAKLXZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF5KCkKK3ZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRQYXVzZWRJbWFnZVZpc2libGUoYm9vbCB2aXNp
YmxlKQogewotICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXNdIHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgd2Vha1RoaXMuZ2V0KCktPnBsYXlJbnRlcm5hbCgpOwotICAg
IH0pOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSB8fCAhbV92aWRlb0JhY2tncm91bmRM
YXllcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHZpc2libGUgPT0gbV9wcmV2aWV3TGF5
ZXIuZ2V0KCkuaGlkZGVuKQorICAgICAgICByZXR1cm47CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBi
ZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uRHVyYXRpb246MF07CisgICAg
W0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKworICAgIGRvIHsKKyAgICAg
ICAgaWYgKHZpc2libGUpIHsKKyAgICAgICAgICAgIG1fY2xvY2stPnN0b3AoKTsKKworICAgICAg
ICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5jdXJyZW50
RnJhbWVJbWFnZSgpOworICAgICAgICAgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgbV9wYXVzZWRJbWFnZSA9IGltYWdlLT5nZXRDR0ltYWdlUmVm
KCk7CisgICAgICAgICAgICBpZiAoIW1fcGF1c2VkSW1hZ2UpCisgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuY29udGVudHMg
PSBzdGF0aWNfY2FzdDxpZD4obV9wYXVzZWRJbWFnZS5nZXQoKSk7CisgICAgICAgICAgICBtX3By
ZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSB0cnVlOworICAgICAgICAgICAgbV93YWl0aW5nRm9y
TmV3RnJhbWUgPSBmYWxzZTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghbV9t
ZWRpYVN0cmVhbVByaXZhdGUtPmlzUHJvZHVjaW5nRGF0YSgpKSB7CisgICAgICAgICAgICAgICAg
bV93YWl0aW5nRm9yTmV3RnJhbWUgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBtX2Nsb2NrLT5zdGFydCgpOworICAgICAgICAgICAg
bV93YWl0aW5nRm9yTmV3RnJhbWUgPSBmYWxzZTsKKyAgICAgICAgICAgIG1fcHJldmlld0xheWVy
LmdldCgpLmhpZGRlbiA9IGZhbHNlOworICAgICAgICAgICAgW21fdmlkZW9CYWNrZ3JvdW5kTGF5
ZXIgc2V0Q29udGVudHM6bmlsXTsKKyAgICAgICAgICAgIG1fcGF1c2VkSW1hZ2UgPSBudWxscHRy
OworICAgICAgICB9CisgICAgfSB3aGlsZSAoMCk7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eUludGVybmFsKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF5KCkKIHsKLSAgICBtX3BsYXlpbmcgPSB0cnVlOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSglcCkiLCB0aGlzKTsKIAotICAgIGZv
ciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCkpCi0gICAgICAg
IHRyYWNrLT5zb3VyY2UoKS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisgICAgaWYgKCFtZXRhRGF0
YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BsYXlpbmcgPSB0cnVlOwor
ICAgIG1faGF2ZUV2ZXJQbGF5ZWQgPSB0cnVlOworICAgIHNldFBhdXNlZEltYWdlVmlzaWJsZShm
YWxzZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
YXVzZSgpCiB7Ci0gICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBjYWxs
T25NYWluVGhyZWFkKFt3ZWFrVGhpc10gewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB3ZWFrVGhpcy5nZXQoKS0+cGF1c2VJbnRlcm5hbCgpOwot
ICAgIH0pOwotfQorICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cGF1c2UoJXApIiwgdGhpcyk7CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpwYXVzZUludGVybmFsKCkKLXsKLSAgICBtX3BsYXlpbmcgPSBmYWxz
ZTsKKyAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKIAotICAg
IGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCkpCi0gICAg
ICAgIHRyYWNrLT5zb3VyY2UoKS0+c3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBzZXRQYXVzZWRJ
bWFnZVZpc2libGUodHJ1ZSk7CisgICAgbV9wbGF5aW5nID0gZmFsc2U7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYXVzZWQoKSBjb25zdAogewotICAg
IC8vIFNob3VsZG4ndCBiZSBhYmxlIHRvIHBhdXNlIHN0cmVhbXMKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuICFtX3BsYXlpbmc7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpzZXRWb2x1bWUoZmxvYXQpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aW50ZXJuYWxTZXRWb2x1bWUoZmxvYXQgdm9sdW1lLCBib29s
IGludGVybmFsKQogeworICAgIGlmICghaW50ZXJuYWwpCisgICAgICAgIG1fdm9sdW1lID0gdm9s
dW1lOworCisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBGSVhNRTogU2V0IHZvbHVtZSBvbmNlIHdlIGFjdHVhbGx5IHBsYXkgYXVkaW8uCiB9
CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1Nj
YW5uaW5nKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpzZXRWb2x1bWUoZmxvYXQgdm9sdW1lKQogewotICAgIHJldHVybiB0cnVlOworICAgIGludGVy
bmFsU2V0Vm9sdW1lKHZvbHVtZSwgZmFsc2UpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKLSAgICBmb3IgKGF1
dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlm
ICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQotICAg
ICAgICAgICAgdHJhY2stPnNvdXJjZSgpLT5zZXRNdXRlZChtdXRlZCk7Ci0gICAgfQotfQorICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TXV0
ZWQoJXApIiwgdGhpcyk7CiAKLUZsb2F0U2l6ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6Om5hdHVyYWxTaXplKCkgY29uc3QKLXsKLSAgICBGbG9hdFNpemUgZmxvYXRTaXpl
KDAsIDApOwotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJh
Y2tzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6VmlkZW8pIHsKLSAgICAgICAgICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKiBzb3Vy
Y2UgPSAoQVZWaWRlb0NhcHR1cmVTb3VyY2UqKXRyYWNrLT5zb3VyY2UoKTsKLSAgICAgICAgICAg
IGlmICghc291cmNlLT5zdG9wcGVkKCkgJiYgdHJhY2stPmVuYWJsZWQoKSkgewotICAgICAgICAg
ICAgICAgIGlmIChzb3VyY2UtPndpZHRoKCkgPiBmbG9hdFNpemUud2lkdGgoKSkKLSAgICAgICAg
ICAgICAgICAgICAgZmxvYXRTaXplLnNldFdpZHRoKHNvdXJjZS0+d2lkdGgoKSk7Ci0gICAgICAg
ICAgICAgICAgaWYgKHNvdXJjZS0+aGVpZ2h0KCkgPiBmbG9hdFNpemUuaGVpZ2h0KCkpCi0gICAg
ICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5zZXRIZWlnaHQoc291cmNlLT5oZWlnaHQoKSk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZsb2F0U2l6ZTsKKyAg
ICBpZiAobXV0ZWQgPT0gbV9tdXRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tdXRlZCA9
IG11dGVkOworICAgIAorICAgIGludGVybmFsU2V0Vm9sdW1lKG11dGVkID8gMCA6IG1fdm9sdW1l
LCB0cnVlKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
Omhhc1ZpZGVvKCkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVh
bVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZh
dGUtPmhhc1ZpZGVvKCk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpoYXNBdWRpbygpIGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVk
aWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWaXNpYmxlKGJvb2wpCi17Ci0gICAgLy8gTm8tb3Au
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNBdWRpbygpOwogfQogCiBN
ZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkdXJhdGlvbk1l
ZGlhVGltZSgpIGNvbnN0CkBAIC0yODIsMTkgKzI1Niw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUEKIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUUo
MTQ3MTI1KTogTXVzdCBpbXBsZW1lbnQgdGhpcyBsYXRlcgotICAgIHJldHVybiBNZWRpYVRpbWU6
Onplcm9UaW1lKCk7Ci19Ci0KLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpzZWVraW5nKCkgY29uc3QKLXsKLSAgICAvLyBNZWRpYVN0cmVhbSBpcyB1bnNlZWthYmxl
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6c2V0UmF0ZURvdWJsZShkb3VibGUpCi17Ci0gICAgLy8gTWVkaWFTdHJlYW0g
aXMgdW5zZWVrYWJsZTsgdGhlcmVmb3JlLCBjYW5ub3Qgc2V0IHJhdGUKKyAgICByZXR1cm4gTWVk
aWFUaW1lOjpjcmVhdGVXaXRoRG91YmxlKG1fY2xvY2stPmN1cnJlbnRUaW1lKCkpOwogfQogCiBN
ZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6bmV0d29ya1N0YXRlKCkgY29uc3QKQEAgLTMwNyw4NSArMjY5LDEyOCBAQCBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhCiAgICAgcmV0dXJuIG1fcmVhZHlTdGF0
ZTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNpemVD
aGFuZ2VkKCkKK01lZGlhUGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3VycmVudFJlYWR5U3RhdGUoKQogewotICAgIG1fcGxheWVyLT5zaXpl
Q2hhbmdlZCgpOwotfQorICAgIGlmIChtX21lZGlhU3RyZWFtUHJpdmF0ZSkgeworICAgICAgICBp
ZiAobV9tZWRpYVN0cmVhbVByaXZhdGUtPmFjdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlRW5vdWdoRGF0YTsKIAotc3RkOjp1bmlxdWVfcHRy
PFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpzZWVrYWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZv
cm1UaW1lUmFuZ2VzPihtaW5NZWRpYVRpbWVTZWVrYWJsZSgpLCBtYXhNZWRpYVRpbWVTZWVrYWJs
ZSgpKTsKLX0KKyAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3Vy
cmVudERhdGE7CisgICAgfQogCi1NZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptYXhNZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGR1
cmF0aW9uTWVkaWFUaW1lKCk7CisgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpI
YXZlTm90aGluZzsKIH0KIAotTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6bWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdAordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmFjdGl2ZVN0YXR1c0NoYW5nZWQoKQogewotICAgIHJl
dHVybiBzdGFydFRpbWUoKTsKLX0KKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBuZXdSZWFk
eVN0YXRlID0gY3VycmVudFJlYWR5U3RhdGUoKTsKIAotc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpidWZmZXJl
ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFu
Z2VzPigpOworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBuZXdSZWFkeVN0YXRlXSB7
CisgICAgICAgIGlmIChuZXdSZWFkeVN0YXRlICE9IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgICAg
IHNldFJlYWR5U3RhdGUobmV3UmVhZHlTdGF0ZSk7CisgICAgfSk7CiB9CiAKLWJvb2wgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25z
dAorTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpSZW5kZXJpbmdNb2RlU3Rh
dHVzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlSW50cmluc2lj
U2l6ZShjb25zdCBGbG9hdFNpemUmIHNpemUpCiB7Ci0gICAgYm9vbCBsb2FkaW5nUHJvZ3Jlc3Nl
ZCA9IG1fbG9hZGluZ1Byb2dyZXNzZWQ7Ci0gICAgbV9sb2FkaW5nUHJvZ3Jlc3NlZCA9IGZhbHNl
OwotICAgIHJldHVybiBsb2FkaW5nUHJvZ3Jlc3NlZDsKLX0KKyAgICBpZiAoc2l6ZSA9PSBtX2lu
dHJpbnNpY1NpemUpCisgICAgICAgIHJldHVybiBSZW5kZXJpbmdNb2RlVW5jaGFuZ2VkOwogCi12
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0U2l6ZShjb25zdCBJ
bnRTaXplJikKLXsKLSAgICAvLyBOby1vcC4KKyAgICBtX2ludHJpbnNpY1NpemUgPSBzaXplOwor
CisgICAgaWYgKG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIgfHwgIW1fcGxheWVyIHx8ICFtX3BsYXll
ci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVy
KSkKKyAgICAgICAgcmV0dXJuIFJlbmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBpZiAoIW1f
bWVkaWFTdHJlYW1Qcml2YXRlIHx8ICFtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cGxhdGZvcm1MYXll
cigpKQorICAgICAgICByZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKworICAgIGNyZWF0
ZVByZXZpZXdMYXllcnMoKTsKKworICAgIHJldHVybiBSZW5kZXJpbmdNb2RlQ2hhbmdlZDsKIH0K
IAotUmV0YWluUHRyPENHSW1hZ2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6Y3JlYXRlSW1hZ2VGcm9tU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBs
ZUJ1ZmZlcikKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjcmVh
dGVQcmV2aWV3TGF5ZXJzKCkKIHsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIGltYWdlQnVmZmVyID0g
c3RhdGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZl
cihzYW1wbGVCdWZmZXIpKTsKLSAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKGltYWdl
QnVmZmVyLCAwKTsKLSAgICAKLSAgICB2b2lkICpiYXNlQWRkcmVzcyA9IENWUGl4ZWxCdWZmZXJH
ZXRCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ1ZQ
aXhlbEJ1ZmZlckdldEJ5dGVzUGVyUm93KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3Qgd2lkdGgg
PSBDVlBpeGVsQnVmZmVyR2V0V2lkdGgoaW1hZ2VCdWZmZXIpOwotICAgIHNpemVfdCBoZWlnaHQg
PSBDVlBpeGVsQnVmZmVyR2V0SGVpZ2h0KGltYWdlQnVmZmVyKTsKLSAgICAKLSAgICBSZXRhaW5Q
dHI8Q0dDb2xvclNwYWNlUmVmPiBjb2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVh
dGVEZXZpY2VSR0IoKSk7Ci0gICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRl
ciA9IGFkb3B0Q0YoQ0dEYXRhUHJvdmlkZXJDcmVhdGVXaXRoRGF0YShOVUxMLCBiYXNlQWRkcmVz
cywgYnl0ZXNQZXJSb3cgKiBoZWlnaHQsIE5VTEwpKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gcXVhcnR6SW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwg
MzIsIGJ5dGVzUGVyUm93LCBjb2xvclNwYWNlLmdldCgpLCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxp
dHRsZSB8IGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3QsIHByb3ZpZGVyLmdldCgpLCBO
VUxMLCB0cnVlLCBrQ0dSZW5kZXJpbmdJbnRlbnREZWZhdWx0KSk7Ci0gICAgCi0gICAgQ1ZQaXhl
bEJ1ZmZlclVubG9ja0Jhc2VBZGRyZXNzKGltYWdlQnVmZmVyLCAwKTsKLSAgICAKLSAgICByZXR1
cm4gcXVhcnR6SW1hZ2U7CisgICAgaWYgKG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXll
ciBhbGxvY10gaW5pdF0pOworICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuYmFja2dy
b3VuZENvbG9yID0gQ0dDb2xvckdldENvbnN0YW50Q29sb3Ioa0NHQ29sb3JDbGVhcik7CisjaWZu
ZGVmIE5ERUJVRworICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkubmFtZSA9IEAiTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDIHByZXZpZXcgYmFja2dyb3VuZCBsYXll
ciI7CisjZW5kaWYKKworICAgIG1fcHJldmlld0xheWVyID0gbV9tZWRpYVN0cmVhbVByaXZhdGUt
PnBsYXRmb3JtTGF5ZXIoKTsKKyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5jb250ZW50c0dyYXZp
dHkgPSBrQ0FHcmF2aXR5UmVzaXplOworICAgIG1fcHJldmlld0xheWVyLmdldCgpLmFuY2hvclBv
aW50ID0gQ0dQb2ludFplcm87CisgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuYXV0b3Jlc2l6aW5n
TWFzayA9IGtDQUxheWVyV2lkdGhTaXphYmxlIHwga0NBTGF5ZXJIZWlnaHRTaXphYmxlOworICAg
IGlmICghbV9wbGF5aW5nKQorICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSB0
cnVlOworCisgICAgW21fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIgYWRkU3VibGF5ZXI6bV9wcmV2aWV3
TGF5ZXIuZ2V0KCldOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpCiB7Ci0gICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1cyBzdGF0dXMgPSBSZW5kZXJpbmdNb2Rl
VW5jaGFuZ2VkOworICAgIGJvb2wgc2l6ZUNoYW5nZWQgPSBmYWxzZTsKKworICAgIEZsb2F0U2l6
ZSBpbnRyaW5zaWNTaXplID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmludHJpbnNpY1NpemUoKTsK
KyAgICBpZiAoaW50cmluc2ljU2l6ZS5oZWlnaHQoKSAhPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0
KCkgfHwgaW50cmluc2ljU2l6ZS53aWR0aCgpICE9IG1faW50cmluc2ljU2l6ZS53aWR0aCgpKSB7
CisgICAgICAgIHN0YXR1cyA9IHVwZGF0ZUludHJpbnNpY1NpemUoaW50cmluc2ljU2l6ZSk7Cisg
ICAgICAgIHNpemVDaGFuZ2VkID0gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAobV93YWl0aW5nRm9y
TmV3RnJhbWUgJiYgbV9tZWRpYVN0cmVhbVByaXZhdGUtPmlzUHJvZHVjaW5nRGF0YSgpKQorICAg
ICAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOworCisgICAgTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0YXRlKCk7CisgICAgc2NoZWR1
bGVEZWZlcnJlZFRhc2soW3RoaXMsIHNpemVDaGFuZ2VkLCBuZXdSZWFkeVN0YXRlLCBzdGF0dXNd
IHsKKyAgICAgICAgaWYgKG5ld1JlYWR5U3RhdGUgIT0gbV9yZWFkeVN0YXRlKQorICAgICAgICAg
ICAgc2V0UmVhZHlTdGF0ZShuZXdSZWFkeVN0YXRlKTsKKworICAgICAgICBpZiAoIW1fcGxheWVy
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fcGxheWVyLT5jaGFyYWN0ZXJpc3Rp
Y0NoYW5nZWQoKTsKKyAgICAgICAgaWYgKHNpemVDaGFuZ2VkKSB7CisgICAgICAgICAgICBtX3Bs
YXllci0+c2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgICAgIGlmIChzdGF0dXMgPT0gUmVuZGVyaW5n
TW9kZUNoYW5nZWQpCisgICAgICAgICAgICAgICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxh
eWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworICAgICAgICB9CisgICAgfSk7CiB9
CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJl
bnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKQorc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpzZWVrYWJsZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUUoMTI1MTU3KTog
SW1wbGVtZW50IHBhaW50aW5nLgorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
VGltZVJhbmdlcz4oKTsKIH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdAorc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpidWZmZXJlZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogfQogCi1NZWRpYVBsYXllcjo6
TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1vdmll
TG9hZFR5cGUoKSBjb25zdAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0
KQogewotICAgIHJldHVybiBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbTsKKyAgICBwYWludEN1cnJl
bnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBhcmVGb3JSZW5kZXJpbmcoKQordm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewot
ICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSB8fCBjb250ZXh0LnBh
aW50aW5nRGlzYWJsZWQoKSB8fCAhbV9oYXZlRXZlclBsYXllZCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKG1fcGxheWluZykKKyAgICAgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUtPnBhaW50
Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOworICAgIGVsc2UgaWYgKG1fcGF1
c2VkSW1hZ2UpIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVy
KGNvbnRleHQpOworICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkg
KyByZWN0LmhlaWdodCgpKTsKKyAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEp
KTsKKyAgICAgICAgY29udGV4dC5zZXRJbWFnZUludGVycG9sYXRpb25RdWFsaXR5KEludGVycG9s
YXRpb25Mb3cpOworICAgICAgICBJbnRSZWN0IHBhaW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50
U2l6ZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgQ0dDb250ZXh0RHJh
d0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRS
ZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSksIG1fcGF1c2VkSW1hZ2UuZ2V0KCkpOwor
ICAgIH0KIH0KIAogU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
ZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdApAQCAtMzk0LDE3ICszOTksNiBAQCBTdHJpbmcgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPCiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwog
fQogCi1TdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsYW5ndWFn
ZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdAotewotICAgIC8vIEZJWE1FKDEyNTE1OCk6IGlt
cGxlbWVudCBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKQotICAgIHJldHVybiBlbXB0eVN0
cmluZygpOwotfQotCi1zaXplX3QgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpleHRyYU1lbW9yeUNvc3QoKSBjb25zdAotewotICAgIHJldHVybiAwOwotfQotCiBib29sIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2hvdWxkQmVQbGF5aW5nKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9wbGF5aW5nICYmIG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXll
cjo6SGF2ZUZ1dHVyZURhdGE7CkBAIC00MjAsNiArNDE0LDE4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKICAgICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQo
KTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVk
dWxlRGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBB
U1NFUlQoZnVuY3Rpb24pOworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Cisg
ICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXMsIGZ1bmN0aW9uXSB7CisgICAgICAgIGlmICgh
d2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAg
ICB9KTsKK30KKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3Ry
ZWFtUHJpdmF0ZUFWRk9iakMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNZWRpYVN0
cmVhbVByaXZhdGVBVkZPYmpDX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQ19o
Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jaW5j
bHVkZSAiTWVkaWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUg
PHd0Zi9NZWRpYVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotT0JKQ19DTEFTUyBBVkFz
c2V0OwotT0JKQ19DTEFTUyBBVlN0cmVhbURhdGFQYXJzZXI7Ci1PQkpDX0NMQVNTIE5TRXJyb3I7
Ci1PQkpDX0NMQVNTIE5TT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZm
ZXIgKkNNU2FtcGxlQnVmZmVyUmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENE
TVNlc3Npb247Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM7Ci1j
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ7
Ci1jbGFzcyBQbGF0Zm9ybVRpbWVSYW5nZXM7Ci1jbGFzcyBUaW1lUmFuZ2VzOwotCi1jbGFzcyBN
ZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0
ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
PiBjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJl
YW1Qcml2YXRlJik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpOwot
Ci0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBwbGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllcjsgfQotCi0gICAgdmlydHVhbCBNZWRpYVN0cmVhbVByaXZhdGVD
bGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNldENsaWVudChNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBt
X2NsaWVudCA9IGNsaWVudDsgfQotCi0gICAgTWVkaWFUaW1lIGR1cmF0aW9uKCk7Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKLQotICAgIGJvb2wg
aGFzQXVkaW8oKSBjb25zdDsKLSAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0KLSAgICB2b2lk
IHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwotICAgIEZsb2F0U2l6ZSBu
YXR1cmFsU2l6ZSgpIGNvbnN0OwotCi0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlT
dGF0ZSgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMo
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRl
Jik7Ci0KLSAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIG1fcGxheWVy
OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwotfTsKLSAg
ICAKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJ
T04pCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAot
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0j
aW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotCi0jaWYgRU5BQkxFKE1FRElB
X1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2ltcG9ydCAiQ29udGVudFR5cGUuaCIK
LSNpbXBvcnQgIkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgotI2ltcG9ydCAiTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZh
dGUuaCIKLSNpbXBvcnQgIlNvZnRMaW5raW5nLmgiCi0jaW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2
YXRlQVZGT2JqQy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvdGV4
dC9BdG9taWNTdHJpbmcuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIE1lZGlh
U3RyZWFtUHJpdmF0ZUFWRk9iakMKLQotUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM+
IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMmIHBhcmVudCwgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKHBhcmVudCwg
c3RyZWFtKSk7Ci19Ci0KLU1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Ok1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQs
IE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQotICAgIDogTWVkaWFTdHJlYW1Qcml2YXRlKCpz
dHJlYW0uY2xpZW50KCkpCi0gICAgLCBtX3BsYXllcigmcGFyZW50KQotewotfQotCi1NZWRpYVN0
cmVhbVByaXZhdGVBVkZPYmpDOjp+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpCi17Ci19Ci0K
LU1lZGlhVGltZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpkdXJhdGlvbigpCi17Ci0gICAg
cmV0dXJuIE1lZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKLX0KLQotc3RkOjp1bmlx
dWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6YnVm
ZmVyZWQoKQotewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2Vz
PigpOwotfQotCi1NZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDOjpyZWFkeVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPnJlYWR5U3Rh
dGUoKTsKLX0KLQotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpzZXRSZWFkeVN0YXRl
KE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCi17Ci0gICAgbV9wbGF5ZXItPnNl
dFJlYWR5U3RhdGUocmVhZHlTdGF0ZSk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZG
T2JqQzo6aGFzQXVkaW8oKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzQXVkaW8o
KTsKLX0KLQotYm9vbCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5oYXNWaWRlbygpOwotfQotCi1GbG9hdFNpemUgTWVk
aWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKSBjb25zdAotewotICAgIHJldHVy
biBtX3BsYXllci0+bmF0dXJhbFNpemUoKTsKLX0KLSAgICAKLX0KLQotI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpA
QCAtMzEsMTIgKzMyLDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtUHJpdmF0ZS5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0
LmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCkBAIC02MiwyNSArNjUsMzMgQEAgUmVmUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gTWVkaWFTdHJlYW1QcgogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZShjb25zdCBTdHJpbmcmIGlkLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZl
Y3RvciYgdHJhY2tzKQotICAgIDogbV9pZChpZCkKKyAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhp
cykKKyAgICAsIG1faWQoaWQpCiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKLSAg
ICBmb3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKQorICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFj
a3MpIHsKKyAgICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV90cmFj
a1NldC5hZGQodHJhY2stPmlkKCksIHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3RpdmVT
dGF0ZShOb3RpZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwogfQogCi1NZWRpYVN0cmVhbVBy
aXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmIGNsaWVu
dCkKLSAgICA6IG1fY2xpZW50KCZjbGllbnQpCitNZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0
cmVhbVByaXZhdGUoKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2
ZXIoTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CisgICAgbV9vYnNl
cnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7CiB9CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlh
U3RyZWFtUHJpdmF0ZSgpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIo
TWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgbV9jbGllbnQg
PSBudWxscHRyOwotICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBzaXplX3QgcG9zID0gbV9v
YnNlcnZlcnMuZmluZCgmb2JzZXJ2ZXIpOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAg
ICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZShwb3MpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZVZlY3RvciBNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrcygpIGNvbnN0CkBAIC05NCwyMSArMTA1
LDI5IEBAIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWEKIAogdm9pZCBN
ZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBu
b3RpZnlDbGllbnRPcHRpb24pCiB7Ci0gICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhh
cyBhdCBsZWFzdCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgYm9vbCBuZXdBY3RpdmVTdGF0ZSA9
IGZhbHNlOworICAgIG1fYWN0aXZlVmlkZW9UcmFjayA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRv
JiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKwogICAgICAgICBpZiAoIXRyYWNrLT5l
bmRlZCgpKSB7CiAgICAgICAgICAgICBuZXdBY3RpdmVTdGF0ZSA9IHRydWU7Ci0gICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGlmICh0cmFjay0+c291cmNlKCktPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykgeworICAgICAgICAgICAgICAgIG1fYWN0aXZl
VmlkZW9UcmFjayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQogCisgICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlm
IGl0IGhhcyBhdCBsZWFzdCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgaWYgKG5ld0FjdGl2ZVN0
YXRlID09IG1faXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBY3RpdmUgPSBu
ZXdBY3RpdmVTdGF0ZTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRPcHRpb24g
PT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5hY3RpdmVT
dGF0dXNDaGFuZ2VkKCk7CisgICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGll
bnRPcHRpb246Ok5vdGlmeSkgeworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNl
cnZlcnMpCisgICAgICAgICAgICBvYnNlcnZlci0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOworICAg
IH0KIH0KIAogdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZT4mJiB0cmFjaywgTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVu
dE9wdGlvbikKQEAgLTExOSw4ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFk
ZFRyYWNrKFJlZlB0cgogICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgbV90cmFj
a1NldC5hZGQodHJhY2stPmlkKCksIHRyYWNrKTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3Rp
ZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1f
Y2xpZW50LT5kaWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOworICAgIGlmIChub3RpZnlDbGllbnRP
cHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRv
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRpZEFkZFRy
YWNrKCp0cmFjay5nZXQoKSk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUobm90aWZ5
Q2xpZW50T3B0aW9uKTsKIH0KQEAgLTEzMiwxMiArMTUzLDE0MiBAQCB2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6cmVtb3ZlVHJhY2soTWVkCiAKICAgICB0cmFjay5yZW1vdmVPYnNlcnZlcigqdGhp
cyk7CiAKLSAgICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNs
aWVudE9wdGlvbjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlVHJhY2sodHJh
Y2spOworICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpO
b3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAg
ICAgICAgICAgb2JzZXJ2ZXItPmRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICB9CiAKICAgICB1
cGRhdGVBY3RpdmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiB9CiAKK3ZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZvciAoYXV0
byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RhcnRQcm9k
dWNpbmdEYXRhKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzdG9wUHJvZHVjaW5n
RGF0YSgpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisg
ICAgICAgIHRyYWNrLT5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCitib29sIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNr
IDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPmlzUHJvZHVjaW5n
RGF0YSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc1ZpZGVvKCkKK3sKKyAgICBmb3Ig
KGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2st
PnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiB0cmFjay0+ZW5h
YmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKK30KKworYm9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc0F1ZGlvKCkKK3sKKyAgICBmb3Ig
KGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2st
PnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiB0cmFjay0+ZW5h
YmxlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxz
ZTsKK30KKworRmxvYXRTaXplIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aW50cmluc2ljU2l6ZSgpIGNv
bnN0Cit7CisgICAgRmxvYXRTaXplIHNpemU7CisKKyAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNr
KSB7CisgICAgICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcyA9IG1f
YWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPnN0YXRlcygpOworICAgICAgICBzaXplLnNldFdp
ZHRoKHN0YXRlcy53aWR0aCgpKTsKKyAgICAgICAgc2l6ZS5zZXRIZWlnaHQoc3RhdGVzLmhlaWdo
dCgpKTsKKyAgICB9CisKKyAgICByZXR1cm4gc2l6ZTsKK30KKworUGxhdGZvcm1MYXllciogTWVk
aWFTdHJlYW1Qcml2YXRlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWN0
aXZlVmlkZW9UcmFjaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9h
Y3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS0+cGxhdGZvcm1MYXllcigpOworfQorCit2b2lkIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250
ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaWYgKGNvbnRleHQu
cGFpbnRpbmdEaXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYWN0aXZlKCkg
JiYgbV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJj
ZSgpLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICBlbHNl
IHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQp
OworICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0Lmhl
aWdodCgpKTsKKyAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICAg
ICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgp
LCByZWN0LmhlaWdodCgpKSk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocGFpbnRSZWN0LCBD
b2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIH0KK30KKworUmVmUHRyPElt
YWdlPiBNZWRpYVN0cmVhbVByaXZhdGU6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAgICBpZiAo
IWFjdGl2ZSgpICYmICFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPmN1cnJlbnRGcmFt
ZUltYWdlKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpjaGFyYWN0ZXJpc3RpY3ND
aGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAg
ICAgIG9ic2VydmVyLT5jaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFT
dHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
Cit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
dHJhY2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjaGFy
YWN0ZXJpc3RpY3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFj
a0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVs
ZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7
CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0Rh
dGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVy
cmVkVGFzayhbdGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAg
fSk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhz
dGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGZ1bmN0aW9uKTsK
KyAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3dlYWtUaGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIsNiArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zNSwyOCArMzYsMzIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNp
bmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5j
bHVkZSAiTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZTsKLQotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50IDog
cHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiB7Ci1wdWJsaWM6Ci0g
ICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgYWN0aXZlU3RhdHVzQ2hhbmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
VHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotfTsKK2NsYXNzIE1l
ZGlhU3RyZWFtOwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVBy
aXZhdGU+IHsKIHB1YmxpYzoKKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAg
ICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGFy
YWN0ZXJpc3RpY3NDaGFuZ2VkKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0
dXNDaGFuZ2VkKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlVHJh
Y2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICB9OworCiAgICAgc3RhdGljIFJl
ZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9y
Jik7CiAKQEAgLTY0LDggKzY5LDExIEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgTm90aWZ5
Q2xpZW50T3B0aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAgICBNZWRpYVN0cmVhbVBy
aXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgdm9p
ZCBzZXRDbGllbnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQg
PSBjbGllbnQ7IH0KKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCBy
ZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOworCisgICAgTWVkaWFTdHJlYW0qIHB1YmxpY1N0cmVh
bSgpIGNvbnN0IHsgcmV0dXJuIG1fcHVibGljU3RyZWFtOyB9CisgICAgdm9pZCBzZXRQdWJsaWNT
dHJlYW0oTWVkaWFTdHJlYW0qIHN0cmVhbSkgeyBtX3B1YmxpY1N0cmVhbSA9IHN0cmVhbTsgfQog
CiAgICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03NywyMSArODUs
NDEgQEAgcHVibGljOgogICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlPiYmLCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlm
eSk7CiAgICAgdm9pZCByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE5vdGlm
eUNsaWVudE9wdGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAotcHJvdGVjdGVk
OgotICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGll
bnQmKTsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoKTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OworCisgICAgUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZT4gY3Vy
cmVudEZyYW1lSW1hZ2UoKTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdy
YXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBoYXNWaWRlbygp
OworICAgIGJvb2wgaGFzQXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplKCkg
Y29uc3Q7CisKKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6
CiAgICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlVmVjdG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja1N0YXRl
c0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLQotICAgIE1l
ZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgdm9pZCB0
cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAg
IHZvaWQgdHJhY2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0No
YW5nZWQoKTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2
b2lkKCk+KTsKKworICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFr
UHRyRmFjdG9yeTsKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBNZWRp
YVN0cmVhbSogbV9wdWJsaWNTdHJlYW0geyBudWxscHRyIH07CiAgICAgU3RyaW5nIG1faWQ7Ci0g
ICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKLQorICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlKiBtX2FjdGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcs
IFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CisgICAgYm9vbCBt
X2lzQWN0aXZlIHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+PiBNZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE3OCw2ICsxNzgsMTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6
c291cmNlU3RhdAogICAgICAgICBvYnNlcnZlci0+dHJhY2tTdGF0ZXNDaGFuZ2VkKCp0aGlzKTsK
IH0KIAordm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNo
YW5nZWQoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAg
ICAgb2JzZXJ2ZXItPnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoKnRoaXMpOworfQorCit2b2lk
IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCit7CisgICAg
Zm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+dHJh
Y2tFbmFibGVkQ2hhbmdlZCgqdGhpcyk7Cit9CisKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OnByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogewogICAgIHJldHVybiAhbV9pc0VuZGVk
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
PSAwOwogICAgIH07CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZT4gY3JlYXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTYyLDYgKzY0
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNl
LT5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7
IG1fc291cmNlLT5zdG9wUHJvZHVjaW5nRGF0YSgpOyB9CisgICAgYm9vbCBpc1Byb2R1Y2luZ0Rh
dGEoKSB7IHJldHVybiBtX3NvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCk7IH0KIAogICAgIGJvb2wg
bXV0ZWQoKSBjb25zdDsKICAgICB2b2lkIHNldE11dGVkKGJvb2wgbXV0ZWQpIGNvbnN0IHsgbV9z
b3VyY2UtPnNldE11dGVkKG11dGVkKTsgfQpAQCAtOTgsNyArMTAxLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNvdXJjZVN0b3BwZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11
dGVkQ2hhbmdlZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdl
ZCgpIG92ZXJyaWRlIGZpbmFsOworICAgIHZvaWQgc291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQo
KSBvdmVycmlkZSBmaW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBv
dmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUg
ZmluYWw7CiAKICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV9zb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNw
cAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEs
MjIgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdGF0ZXNEaWRDaGFuZwogICAgICAgICBv
YnNlcnZlci0+c291cmNlU3RhdGVzQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OmlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSgpCit7CisgICAgZm9yIChhdXRvJiBvYnNl
cnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlUHJvZHVjaW5nRGF0
YUNoYW5nZWQoKTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKGJv
b2wgZW5hYmxlZCkKK3sKKyAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlRW5hYmxlZENoYW5nZWQo
KTsKK30KKwogYm9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpyZWFkb25seSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fcmVhZG9ubHk7CkBAIC0xMTksNiArMTM1LDcgQEAgdm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlOjpzdG9wKE9ic2VydmVyKgogICAgIH0KIAogICAgIHN0b3BQcm9kdWNpbmdEYXRh
KCk7CisgICAgcmVzZXQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0
U3RvcChPYnNlcnZlciogY2FsbGluZ09ic2VydmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAko
cmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw5IEBACiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIu
aCIKKyNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgpAQCAtNDUsNiArNDcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIEZsb2F0UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1lZGlhQ29uc3Ry
YWludHM7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291
cmNlU3RhdGVzOwpAQCAtNTksNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBzb3VyY2VTdG9wcGVkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRD
aGFuZ2VkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSA9IDA7CiAK
ICAgICAgICAgLy8gT2JzZXJ2ZXIgc3RhdGUgcXVlcmllcy4KICAgICAgICAgdmlydHVhbCBib29s
IHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSA9IDA7CkBAIC02Niw4ICs3Miw2IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KIAotICAgIGJvb2wg
aXNBdWRpb1N0cmVhbVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdWRpbzsgfQot
CiAgICAgY29uc3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIGNv
bnN0IFN0cmluZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SUQ7
IH0KQEAgLTgyLDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVz
c1Njb3JlKCkgY29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0Rml0bmVzc1Njb3JlKGNvbnN0IHVuc2lnbmVkIGZpdG5lc3NTY29yZSkgeyBtX2ZpdG5l
c3NTY29yZSA9IGZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpID0gMDsKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0
YXRlcygpID0gMDsKICAgICB2b2lkIHN0YXRlc0RpZENoYW5nZWQoKTsKICAgICAKQEAgLTk3LDE5
ICsxMDEsMjggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZW1vdGUoKSBjb25zdCB7IHJl
dHVybiBtX3JlbW90ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGUoYm9vbCByZW1vdGUp
IHsgbV9yZW1vdGUgPSByZW1vdGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJv
b2wpOworICAgIHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVk
OyB9CisKICAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVP
YnNlcnZlcihPYnNlcnZlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0
YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQorICAgIHZp
cnR1YWwgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKIAogICAgIHZvaWQgc3Rv
cChPYnNlcnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAgICAgdm9pZCByZXF1ZXN0
U3RvcChPYnNlcnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAKLSAgICB2b2lkIHJl
c2V0KCk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKICAgICB2aXJ0dWFsIEF1ZGlvU291
cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJldHVybiBudWxscHRyOyB9Ci0g
ICAgCisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFt
ZUltYWdlKCkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJl
bnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSB7IH0K
KwogcHJvdGVjdGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwg
VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIApAQCAtMTI0LDYgKzEzNyw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX211dGVkOwogICAgIGJvb2wgbV9yZWFkb25seTsKICAgICBib29sIG1fcmVt
b3RlOworICAgIGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogICAgIAogICAgIHVuc2lnbmVkIG1f
Zml0bmVzc1Njb3JlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCShyZXZp
c2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZBdWRpb0NhcHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEyIEBA
IHByaXZhdGU6CiAgICAgQVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29u
c3QgQXRvbWljU3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmly
dHVhbCB+QVZBdWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICAKLSAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmKSBvdmVycmlkZTsKKwogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBs
ZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVm
LCBBVkNhcHR1cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBzZXR1cENh
cHR1cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9u
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRp
b1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNv
dXJjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE2IEBACiAKICNpbXBvcnQgIkNvcmVNZWRp
YVNvZnRMaW5rLmgiCiAKK3R5cGVkZWYgQVZDYXB0dXJlQXVkaW9DaGFubmVsIEFWQ2FwdHVyZUF1
ZGlvQ2hhbm5lbFR5cGU7Cit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1
cmVBdWRpb0RhdGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVDb25uZWN0aW9uIEFWQ2Fw
dHVyZUNvbm5lY3Rpb25UeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVEZXZpY2UgQVZDYXB0dXJlRGV2
aWNlVHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlSW5wdXQgQVZDYXB0dXJlRGV2aWNlSW5w
dXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVPdXRwdXQgQVZDYXB0dXJlT3V0cHV0VHlwZTsKLXR5
cGVkZWYgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0IEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5
cGU7CiAKIFNPRlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCitTT0ZU
X0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0NoYW5uZWwpCiBTT0ZUX0xJ
TktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQpCiBTT0ZUX0xJ
TktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NM
QVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtNzcsMTAgKzc5LDEwIEBAIEFW
QXVkaW9DYXB0dXJlU291cmNlOjp+QVZBdWRpb0NhcHR1cmVTb3UKIHsKIH0KIAotUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBh
YmlsaXRpZXMoKSBjb25zdAordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNh
cGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJmNhcGFiaWxpdGllcykK
IHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJ
WE1FOiBmaW5pc2ggdGhpcyBpbXBsZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5hZGRTb3Vy
Y2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogCiB2b2lk
IEFWQXVkaW9DYXB0dXJlU291cmNlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtOTAsMTEgKzkyLDggQEAg
dm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKAogCiB2b2lkIEFWQXVkaW9D
YXB0dXJlU291cmNlOjphZGRPYnNlcnZlcihBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6T2JzZXJ2ZXIq
IG9ic2VydmVyKQogewotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0g
ICAgICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7Ci0gICAgfQotCisgICAgTG9ja0hv
bGRlciBsb2NrKG1fbG9jayk7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKICAg
ICBpZiAobV9pbnB1dERlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSkKICAgICAgICAgb2JzZXJ2ZXIt
PnByZXBhcmUobV9pbnB1dERlc2NyaXB0aW9uLmdldCgpKTsKIH0KQEAgLTExMCwxNiArMTA5LDQw
IEBAIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnJlbW92ZU9ic2VydmUKIHZvaWQgQVZBdWRp
b0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxB
VkNhcHR1cmVEZXZpY2VJbnB1dFR5cGU+IGF1ZGlvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVy
ZURldmljZUlucHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxd
KTsKLSAgICBBU1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDphdWRpb0luLmdldCgpXSk7Ci0g
ICAgaWYgKFtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pCi0gICAgICAgIFtz
ZXNzaW9uKCkgYWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07Ci0gICAgCisKKyAgICBpZiAoIVtzZXNz
aW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAi
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8g
YWRkIGF1ZGlvIGlucHV0IGRldmljZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIFtzZXNzaW9uKCkgYWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07CisKICAgICBSZXRhaW5QdHI8
QVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0VHlwZT4gYXVkaW9PdXRwdXQgPSBhZG9wdE5TKFthbGxv
Y0FWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dEluc3RhbmNlKCkgaW5pdF0pOwogICAgIHNldEF1ZGlv
U2FtcGxlQnVmZmVyRGVsZWdhdGUoYXVkaW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vz
c2lvbigpIGNhbkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lv
bigpIGNhbkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXTsKLSAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IGFk
b3B0TlMoW2F1ZGlvT3V0cHV0LmdldCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOkFWTWVkaWFU
eXBlQXVkaW9dKTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRw
dXQuZ2V0KCldKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpz
ZXR1cENhcHR1cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCBhdWRpbyBzYW1wbGUgYnVmZmVy
IG91dHB1dCBkZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtz
ZXNzaW9uKCkgYWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXTsKKyAgICBtX2F1ZGlvQ29ubmVj
dGlvbiA9IFthdWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlh
VHlwZUF1ZGlvXTsKK30KKwordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpCit7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsK
KworICAgICAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1faW5wdXRE
ZXNjcmlwdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
PigpOworCisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAg
ICAgICAgIG9ic2VydmVyLT51bnByZXBhcmUoKTsKKyAgICAgICAgbV9vYnNlcnZlcnMuc2hyaW5r
KDApOworICAgIH0KKworICAgIC8vIERvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiBkZXN0cm95aW5n
IHRoZSBhdWRpbyBwcm92aWRlciwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byB0aGlzIG9iamVjdAor
ICAgIC8vIHRvIHJlbW92ZSBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIuCisgICAgbV9hdWRpb1NvdXJj
ZVByb3ZpZGVyID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9PShjb25zdCBB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGEsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbiYgYikKQEAgLTE0MSwyNyArMTY0LDMwIEBAIHN0YXRpYyBib29sIG9wZXJhdG9yIT0o
Y29uc3QgQXVkaW9TdHJlYW0KIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91
dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5
cGUqLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25U
eXBlKikKIHsKLSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnM7Ci0gICAgewotICAgICAg
ICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKLSAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb3B5VG9WZWN0b3IobV9vYnNl
cnZlcnMsIG9ic2VydmVycyk7Ci0gICAgfQorICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICBy
ZXR1cm47CiAKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0g
Q01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIpOwogICAgIGlm
ICghZm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybjsKIAorICAgIHN0ZDo6dW5pcXVl
X2xvY2s8TG9jaz4gbG9jayhtX2xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIGlmICghbG9j
ay5vd25zX2xvY2soKSkgeworICAgICAgICAvLyBGYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jaywg
anVzdCByZXR1cm4gaW5zdGVhZCBvZiBibG9ja2luZy4KKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogc3RyZWFtRGVzY3JpcHRpb24gPSBD
TUF1ZGlvRm9ybWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERl
c2NyaXB0aW9uKTsKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqc3RyZWFtRGVzY3Jp
cHRpb24pIHsKICAgICAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxB
dWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24+KCpzdHJlYW1EZXNjcmlwdGlvbik7Ci0gICAgICAg
IGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAgICAgIGZvciAoYXV0byYgb2Jz
ZXJ2ZXIgOiBtX29ic2VydmVycykKICAgICAgICAgICAgIG9ic2VydmVyLT5wcmVwYXJlKG1faW5w
dXREZXNjcmlwdGlvbi5nZXQoKSk7CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6
IG9ic2VydmVycykKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAg
ICAgIG9ic2VydmVyLT5wcm9jZXNzKGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVCdWZmZXIpOwog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0
dXJlRGV2aWNlTWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkocmV2aXNpb24gMTkx
NjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVy
ZURldmljZU1hbmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAzLDEwICsxMDMsNyBAQCBwdWJsaWM6
CiAgICAgU3RyaW5nIG1fZ3JvdXBJRDsKIAogICAgIFN0cmluZyBtX2F1ZGlvU291cmNlSWQ7Ci0g
ICAgUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2U7Ci0KICAgICBTdHJpbmcgbV92aWRlb1NvdXJjZUlkOwotICAgIFJlZlB0cjxBVk1lZGlhQ2Fw
dHVyZVNvdXJjZT4gbV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwogCiAgICAgYm9vbCBtX2Vu
YWJsZWQ7CiB9OwpAQCAtMTQ2LDcgKzE0MywxMCBAQCBzdGF0aWMgdm9pZCByZWZyZXNoQ2FwdHVy
ZURldmljZUxpc3QoKQogICAgIAogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNl
IGluIFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlc10pIHsKICAgICAgICAgQ2FwdHVyZURldmljZSBz
b3VyY2U7Ci0gICAgICAgIAorCisgICAgICAgIGlmICghW2RldmljZSBpc0Nvbm5lY3RlZF0gfHwg
W2RldmljZSBpc0luVXNlQnlBbm90aGVyQXBwbGljYXRpb25dIHx8IFtkZXZpY2UgaXNTdXNwZW5k
ZWRdKQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNl
RnJvbURldmljZUlEKGRldmljZS51bmlxdWVJRCwgc291cmNlKSkgewogICAgICAgICAgICAgLy8g
QW4gQVZDYXB0dXJlRGV2aWNlIGhhcyBhIHVuaXF1ZSBJRCwgYnV0IHdlIGNhbid0IHVzZSBpdCBm
b3IgdGhlIHNvdXJjZSBJRCBiZWNhdXNlOgogICAgICAgICAgICAgLy8gMS4gaWYgaXQgcHJvdmlk
ZXMgYm90aCBhdWRpbyBhbmQgdmlkZW8gd2Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSB0d28gc291cmNl
cyBmb3IgaXQKQEAgLTM4OCwyNCArMzg4LDIwIEBAIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4+IEFWQ2EKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciB0aGUgY29u
c3RyYWludHMgd2hlbiBjaG9vc2luZyBhbW9uZyBtdWx0aXBsZSBkZXZpY2VzLiBGb3Igbm93IGp1
c3Qgc2VsZWN0IHRoZSBmaXJzdCBhdmFpbGFibGUKLSAgICAgICAgLy8gZGV2aWNlIG9mIHRoZSBh
cHByb3ByaWF0ZSB0eXBlLgogICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpbyAmJiAhY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNl
KSB7Ci0gICAgICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2Fw
dHVyZURldmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZp
Y2VJRF07Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAgICAgICAgICAgICAg
Y2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQsIGNv
bnN0cmFpbnRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5h
cHBlbmQoY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpOworICAgICAg
ICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2UgPSBBVkNhcHR1
cmVEZXZpY2VNYW5hZ2VyOjpzb3VyY2VXaXRoVUlEKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2
aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvLCBjb25zdHJhaW50cy5nZXQoKSk7Cisg
ICAgICAgICAgICBpZiAoIWNhcHR1cmVTb3VyY2UpCisgICAgICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZVNvdXJjZS5sZWFr
UmVmKCkpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW8gJiYgIWNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlzRW1wdHkoKSkg
ewotICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNv
dXJjZSkgewotICAgICAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtB
VkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJl
RGV2aWNlSURdOwotICAgICAgICAgICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAgICAgICAg
ICAgIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlk
LCBjb25zdHJhaW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZXN0U291cmNlc0xp
c3QuYXBwZW5kKGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKTsKKyAg
ICAgICAgICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlID0gQVZD
YXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRChjYXB0dXJlRGV2aWNlLm1fY2FwdHVy
ZURldmljZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgY29uc3RyYWludHMuZ2V0KCkp
OworICAgICAgICAgICAgaWYgKCFjYXB0dXJlU291cmNlKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1cmVTb3VyY2Uu
bGVha1JlZigpKTsKICAgICAgICAgfQogICAgIH0KICAgICBzdGQ6OnNvcnQoYmVzdFNvdXJjZXNM
aXN0LmJlZ2luKCksIGJlc3RTb3VyY2VzTGlzdC5lbmQoKSwgc29ydEJhc2VkT2ZmRml0bmVzc1Nj
b3JlKTsKQEAgLTQxNiw0MSArNDEyLDQxIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBB
VkNhcHR1cmVEZXYKIHsKICAgICBpZiAoIWlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAw
OwotICAgIAorCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzID0gY2FwdHVyZURl
dmljZUxpc3QoKTsKLSAgICBmb3IgKGF1dG8gY2FwdHVyZURldmljZSA6IGRldmljZXMpIHsKLSAg
ICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKKyAgICBmb3IgKGF1dG8mIGNhcHR1
cmVEZXZpY2UgOiBkZXZpY2VzKSB7CisgICAgICAgIGlmIChjYXB0dXJlRGV2aWNlLm1fY2FwdHVy
ZURldmljZUlEICE9IGRldmljZVVJRCB8fCAhY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoY2FwdHVyZURldmljZS5tX2NhcHR1cmVE
ZXZpY2VJRCAhPSBkZXZpY2VVSUQpCisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvICYmIGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlbyAmJiBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkp
CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpk
ZXZpY2UgPSBbQVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNl
Lm1fY2FwdHVyZURldmljZUlEXTsKKyAgICAgICAgQVNTRVJUKGRldmljZSk7CisKKyAgICAgICAg
UmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBjYXB0dXJlU291cmNlOworICAgICAgICBpZiAo
dHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKKyAgICAgICAgICAgIGNhcHR1cmVT
b3VyY2UgPSBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmlj
ZS5tX2F1ZGlvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgY2FwdHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBj
YXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwogCiAgICAgICAgIGlm
IChjb25zdHJhaW50cykgewogICAgICAgICAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsK
ICAgICAgICAgICAgIEFWQ2FwdHVyZVNlc3Npb25UeXBlICpzZXNzaW9uID0gbmlsOwogCi0gICAg
ICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiBjYXB0dXJl
RGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0
dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwotICAgICAg
ICAgICAgZWxzZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAmJiBjYXB0
dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBj
YXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOworICAg
ICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pCisgICAgICAg
ICAgICAgICAgc2Vzc2lvbiA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKKyAgICAgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgICAgICAg
ICAgICAgc2Vzc2lvbiA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKICAgICAgICAgICAgIEFW
Q2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVk
aWFUeXBlKHNlc3Npb24sIHR5cGUsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpOwog
CiAgICAgICAgICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEFWQ2FwdHVy
ZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlE
OmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSURdOwotICAgICAgICBBU1NFUlQoZGV2aWNl
KTsKLSAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgIWNh
cHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYg
KCFjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAg
ICAgICBjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJ
ZCwgY29uc3RyYWludHMpOwotICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV9hdWRp
b0FWTWVkaWFDYXB0dXJlU291cmNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0eXBlID09IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvICYmICFjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJ
ZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX3ZpZGVvQVZN
ZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5tX3ZpZGVv
QVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmlj
ZSwgY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAg
ICAgIHJldHVybiBjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKLSAg
ICAgICAgfQorICAgICAgICByZXR1cm4gY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCk7CiAgICAgfQog
ICAgIAogICAgIHJldHVybiBudWxscHRyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNl
LmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0NSAr
NTIsNTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRw
dXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1
ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBj
YXB0dXJlU2Vzc2lvblN0b3BwZWRSdW5uaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVT
ZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKGJvb2wpOwogICAgIAogICAgIEFWQ2FwdHVyZVNlc3Np
b24gKnNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KIAorICAgIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOworCiAgICAg
dm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNp
bmdEYXRhKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2lzUnVubmluZzsgfQorCisgICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVy
ZVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOyB9CiAKIHByb3RlY3RlZDoKICAgICBBVk1lZGlhQ2FwdHVyZVNvdXJjZShBVkNh
cHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKIAotICAgIGNvbnN0IFJlYWx0aW1l
TWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOwogICAgIEF1ZGlvU291cmNlUHJv
dmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXR1cENhcHR1cmVTZXNzaW9uKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaHV0ZG93bkNh
cHR1cmVTZXNzaW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdGF0ZXMoKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllcyYpID0gMDsKIAogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KKwogICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMqIGN1cnJlbnRTdGF0ZXMoKSB7IHJldHVybiAmbV9jdXJyZW50U3RhdGVzOyB9CiAg
ICAgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMoKSB7IHJldHVybiBtX2NvbnN0cmFpbnRz
LmdldCgpOyB9CiAKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
Y2FwYWJpbGl0aWVzKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVy
RGVsZWdhdGUoQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1Nh
bXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwogCiAgICAgdm9p
ZCBzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+KTsKIAotICAgIHZv
aWQgc3RhdGVzRGlkQ2hhbmdlZCgpIHsgfQotICAgIAogcHJpdmF0ZToKICAgICB2b2lkIHNldHVw
U2Vzc2lvbigpOwotICAgIFdlYWtQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZVdlYWtQ
dHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIHZv
aWQgcmVzZXQoKSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PEFWTWVkaWFDYXB0dXJl
U291cmNlPiBtX3dlYWtQdHJGYWN0b3J5OwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNh
cHR1cmVTb3VyY2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29u
c3RyYWludHM+IG1fY29uc3RyYWludHM7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0
ZXMgbV9jdXJyZW50U3RhdGVzOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nl
c3Npb247CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7Ci0gICAgCi0g
ICAgYm9vbCBtX2lzUnVubmluZzsKKyAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2V9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJj
ZS5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NCwx
MiArOTQsMTQgQEAgQGludGVyZmFjZSBXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYgogCiAt
KGlkKWluaXRXaXRoQ2FsbGJhY2s6KEFWTWVkaWFDYXB0dXJlU291cmNlKiljYWxsYmFjazsKIC0o
dm9pZClkaXNjb25uZWN0OwotLSh2b2lkKWNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmc6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uOwogLSh2b2lkKWNhcHR1cmVPdXRwdXQ6KEFWQ2Fw
dHVyZU91dHB1dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNhbXBsZUJ1ZmZlcjooQ01T
YW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9uOihBVkNhcHR1cmVDb25u
ZWN0aW9uVHlwZSAqKWNvbm5lY3Rpb247CistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpr
ZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2Ug
Y29udGV4dDoodm9pZCopY29udGV4dDsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitz
dGF0aWMgTlNBcnJheSogc2Vzc2lvbktWT1Byb3BlcnRpZXMoKTsKKwogc3RhdGljIGRpc3BhdGNo
X3F1ZXVlX3QgZ2xvYmFBdWRpb0NhcHR1cmVTZXJpYWxRdWV1ZSgpCiB7CiAgICAgc3RhdGljIGRp
c3BhdGNoX3F1ZXVlX3QgZ2xvYmFsUXVldWU7CkBAIC0xMjcsNyArMTI5LDYgQEAgQVZNZWRpYUNh
cHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJlU291cgogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRv
cHROUyhbW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0
aENhbGxiYWNrOnRoaXNdKSkKICAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCiAgICAg
LCBtX2RldmljZShkZXZpY2UpCi0gICAgLCBtX2lzUnVubmluZyhmYWxzZSkKIHsKICAgICBzZXRO
YW1lKGRldmljZS5sb2NhbGl6ZWROYW1lKTsKICAgICBzZXRQZXJzaXN0ZW50SUQoZGV2aWNlLnVu
aXF1ZUlEKTsKQEAgLTEzNiw5ICsxMzcsMTMgQEAgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVk
aWFDYXB0dXJlU291cgogCiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFDYXB0dXJlU291
cmNlKCkKIHsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92
ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpXTsKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlz
Y29ubmVjdF07Ci0gICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107CisKKyAgICBpZiAo
bV9zZXNzaW9uKSB7CisgICAgICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktW
T1Byb3BlcnRpZXMoKSkKKyAgICAgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgcmVtb3ZlT2JzZXJ2
ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lXTsKKyAgICAgICAgW21f
c2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107CisgICAgfQogfQogCiB2b2lkIEFWTWVkaWFDYXB0
dXJlU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQpAQCAtMTUwLDggKzE1NSw2IEBAIHZvaWQg
QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXJ0UHJvZHVjaW4KICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIFttX3Nlc3Npb24uZ2V0KCkgc3RhcnRSdW5uaW5nXTsKLQotICAgIG1faXNSdW5uaW5n
ID0gdHJ1ZTsKIH0KIAogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0Rh
dGEoKQpAQCAtMTYwLDggKzE2Myw2IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQ
cm9kdWNpbmcKICAgICAgICAgcmV0dXJuOwogCiAgICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVu
bmluZ107Ci0KLSAgICBtX2lzUnVubmluZyA9IHRydWU7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXMmIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdGF0ZXMoKQpAQCAtMTcwLDIx
ICsxNzEsNDcgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgQVZNZWRpYQogICAg
IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7CiB9CiAKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKK3sKKyAg
ICBpZiAoIW1fY2FwYWJpbGl0aWVzKSB7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKCk7CisgICAgICAgIG1fY2FwYWJpbGl0
aWVzLT5zZXRTb3VyY2VJZChtX2N1cnJlbnRTdGF0ZXMuc291cmNlSWQoKSk7CisgICAgICAgIGlu
aXRpYWxpemVDYXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKKyAgICB9CisgICAg
cmV0dXJuIG1fY2FwYWJpbGl0aWVzOworfQorCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpz
ZXR1cFNlc3Npb24oKQogewogICAgIGlmIChtX3Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIG1fc2Vzc2lvbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNlKCkg
aW5pdF0pOwotICAgIAotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKGNhcHR1
cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmc6KSBuYW1lOkFWQ2FwdHVyZVNlc3Npb25EaWRTdG9wUnVu
bmluZ05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAKKyAgICBmb3IgKE5TU3RyaW5nICpr
ZXlOYW1lIGluIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkpCisgICAgICAgIFttX3Nlc3Npb24uZ2V0
KCkgYWRkT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lIG9w
dGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopbmlsXTsK
KwogICAgIHNldHVwQ2FwdHVyZVNlc3Npb24oKTsKIH0KLSAKLXZvaWQgQVZNZWRpYUNhcHR1cmVT
b3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKQorCit2b2lkIEFWTWVkaWFDYXB0
dXJlU291cmNlOjpyZXNldCgpCiB7Ci0gICAgc3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpyZXNldCgpOworICAgIG1faXNSdW5uaW5nID0gZmFsc2U7CisgICAg
Zm9yIChOU1N0cmluZyAqa2V5TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAg
ICBbbV9zZXNzaW9uLmdldCgpIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZv
cktleVBhdGg6a2V5TmFtZV07CisgICAgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpOworICAgIG1f
c2Vzc2lvbiA9IG51bGxwdHI7Cit9CisKK3ZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1
cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKGJvb2wgc3RhdGUpCit7CisgICAgc2NoZWR1bGVE
ZWZlcnJlZFRhc2soW3RoaXMsIHN0YXRlXSB7CisgICAgICAgIGlmIChzdGF0ZSA9PSBtX2lzUnVu
bmluZykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2lzUnVubmluZyA9IHN0YXRl
OworICAgICAgICBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogdm9p
ZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNh
cHR1cmVWaWRlb0RhdGFPdXRwdXRUeXBlKiB2aWRlb091dHB1dCkKQEAgLTIxNiw2ICsyNDMsMTIg
QEAgQXVkaW9Tb3VyY2VQcm92aWRlciogQVZNZWRpYUNhcHR1cmVTb3VyYwogICAgIHJldHVybiBu
dWxscHRyOwogfQogCitOU0FycmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpCit7CisgICAgc3Rh
dGljIE5TQXJyYXkqIGtleXMgPSBAW0AicnVubmluZyJdOworICAgIHJldHVybiBrZXlzOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZNZWRp
YUNhcHR1cmVTb3VyY2VPYnNlcnZlcgpAQCAtMjM1LDI1ICsyNjgsMzYgQEAgLSAodm9pZClkaXNj
b25uZWN0CiAgICAgbV9jYWxsYmFjayA9IDA7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZVNlc3Npb25T
dG9wcGVkUnVubmluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKHZvaWQpY2Fw
dHVyZU91dHB1dDooQVZDYXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0
U2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rp
b246KEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgogewotICAgIFVOVVNFRF9Q
QVJBTShub3RpZmljYXRpb24pOwotCiAgICAgaWYgKCFtX2NhbGxiYWNrKQogICAgICAgICByZXR1
cm47CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewot
ICAgICAgICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPmNhcHR1cmVT
ZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKTsKLSAgICB9KTsKKyAgICBtX2NhbGxiYWNrLT5jYXB0dXJl
T3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oY2FwdHVyZU91dHB1dCwg
c2FtcGxlQnVmZmVyLCBjb25uZWN0aW9uKTsKIH0KIAotLSAodm9pZCljYXB0dXJlT3V0cHV0OihB
VkNhcHR1cmVPdXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZmZXI6
KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0dXJl
Q29ubmVjdGlvblR5cGUgKiljb25uZWN0aW9uCistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0
aDprZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFu
Z2UgY29udGV4dDoodm9pZCopY29udGV4dAogeworICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOwor
ICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKwogICAgIGlmICghbV9jYWxsYmFjaykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBs
ZUJ1ZmZlckZyb21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNhbXBsZUJ1ZmZlciwgY29ubmVj
dGlvbik7CisgICAgaWQgbmV3VmFsdWUgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVD
aGFuZ2VOZXdLZXldOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGJvb2wgd2lsbENoYW5nZSA9
IFtbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9y
S2V5XSBib29sVmFsdWVdOworCisgICAgaWYgKHdpbGxDaGFuZ2UpCisgICAgICAgIExPRyhNZWRp
YSwgIldlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyOjpvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoKCVwKSAtIHdpbGwgY2hhbmdlLCBrZXlQYXRoID0gJXMiLCBzZWxmLCBba2V5UGF0aCBV
VEY4U3RyaW5nXSk7CisgICAgZWxzZSB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gdmFs
dWVTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUAi
LCBuZXdWYWx1ZV0pOworICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVT
b3VyY2VPYnNlcnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aCglcCkgLSBkaWQgY2hhbmdlLCBr
ZXlQYXRoID0gJXMsIHZhbHVlID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5nXSwgW3Zh
bHVlU3RyaW5nLmdldCgpIFVURjhTdHJpbmddKTsKKyAgICB9CisjZW5kaWYKKworICAgIG1fY2Fs
bGJhY2stPmNhcHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKFtuZXdWYWx1ZSBib29sVmFs
dWVdKTsKIH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAK
ICNpbmNsdWRlICJBVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIgogCi1PQkpDX0NMQVNTIEFWQ2FwdHVy
ZVZpZGVvUHJldmlld0xheWVyOworT0JKQ19DTEFTUyBDQUxheWVyOwogCiB0eXBlZGVmIHN0cnVj
dCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3Jt
YXREZXNjcmlwdGlvbiAqQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKQEAgLTQ4LDM2ICs0OCwzOCBA
QCBwdWJsaWM6CiAgICAgaW50MzJfdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0K
ICAgICBpbnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKLSAgICBB
VkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciogcHJldmlld0xheWVyKCkgeyByZXR1cm4gbV92aWRl
b1ByZXZpZXdMYXllci5nZXQoKTsgfQotICAgIENNU2FtcGxlQnVmZmVyUmVmIGN1cnJlbnRGcmFt
ZVNhbXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdldCgpOyB9Ci0gICAgdm9p
ZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9h
dFJlY3QmKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lSW1hZ2UoKTsK
LQogcHJpdmF0ZToKICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKICAgICB2
aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBzZXR1cENhcHR1cmVT
ZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3Zl
cnJpZGU7CisKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJikgb3ZlcnJpZGU7CiAKICAgICBib29sIGFwcGx5Q29uc3RyYWludHMo
TWVkaWFDb25zdHJhaW50cyopOwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3RyYWludChmbG9h
dCBtaW5GcmFtZVJhdGUsIGZsb2F0IG1heEZyYW1lUmF0ZSk7CiAKLSAgICBib29sIGNhbGN1bGF0
ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgYm9vbCB1cGRhdGVGcmFtZXJhdGUo
Q01TYW1wbGVCdWZmZXJSZWYpOwogCiAgICAgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2Ft
cGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJS
ZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2Nlc3NOZXdG
cmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+KTsKIAotICAgIFJldGFpblB0cjxBVkNh
cHR1cmVDb25uZWN0aW9uPiBtX3ZpZGVvQ29ubmVjdGlvbjsKLSAgICBSZXRhaW5QdHI8QVZDYXB0
dXJlVmlkZW9QcmV2aWV3TGF5ZXI+IG1fdmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgdm9pZCBwYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3Qm
KSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3Zl
cnJpZGU7CisKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lQ0dJbWFnZSgp
OworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1lSW1hZ2UoKSBvdmVycmlkZTsKKwogICAg
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9idWZmZXI7CiAgICAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IG1fbGFzdEltYWdlOwogICAgIFZlY3RvcjxGbG9hdDY0PiBtX3ZpZGVvRnJhbWVU
aW1lU3RhbXBzOwotICAgIEZsb2F0NjQgbV9mcmFtZVJhdGU7Ci0gICAgaW50MzJfdCBtX3dpZHRo
OwotICAgIGludDMyX3QgbV9oZWlnaHQ7CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8UGxhdGZvcm1M
YXllcj4gbV92aWRlb1ByZXZpZXdMYXllcjsKKyAgICBGbG9hdDY0IG1fZnJhbWVSYXRlIHsgMCB9
OworICAgIGludDMyX3QgbV93aWR0aCB7IDAgfTsKKyAgICBpbnQzMl90IG1faGVpZ2h0IHsgMCB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSwxMCArMzEsMTIgQEAKICNpbXBvcnQgIkFWQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNp
bXBvcnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIK
KyNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAjaW1wb3J0ICJOb3RJbXBs
ZW1lbnRlZC5oIgorI2ltcG9ydCAiUGxhdGZvcm1MYXllci5oIgogI2ltcG9ydCAiUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5o
PgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkBAIC05OCw5ICsxMDAsNiBAQCBSZWZQdHI8QVZN
ZWRpYUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0CiAKIEFWVmlkZW9DYXB0dXJlU291cmNlOjpB
VlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0
b21pY1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkK
ICAgICA6IEFWTWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwgaWQsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvLCBjb25zdHJhaW50KQotICAgICwgbV9mcmFtZVJhdGUoMCkKLSAgICAsIG1fd2lk
dGgoMCkKLSAgICAsIG1faGVpZ2h0KDApCiB7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3Vy
Y2VJZChpZCk7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CkBAIC0xMTAsMTAgKzEwOSwxMSBAQCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291CiB7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVz
KCkgY29uc3QKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRp
ZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgLy8gRklYTUU6IGZpbmlzaCB0
aGlzIGltcGxlbWVudGF0aW9uCisgICAgY2FwYWJpbGl0aWVzLnNldFNvdXJjZUlkKGN1cnJlbnRT
dGF0ZXMoKS0+c291cmNlSWQoKSk7CisgICAgY2FwYWJpbGl0aWVzLmFkZFNvdXJjZVR5cGUoUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJhKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6dXBkYXRlU3RhdGVzKCkKQEAgLTIxOCw5ICsyMTgsMTMgQEAgYm9vbCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6YXBwbHlDb25zdHJhaQogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUlu
cHV0VHlwZT4gdmlkZW9JbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlRGV2aWNlSW5wdXRJbnN0
YW5jZSgpIGluaXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9yOm5pbF0pOwotICAgIEFTU0VSVChb
c2Vzc2lvbigpIGNhbkFkZElucHV0OnZpZGVvSW4uZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Npb24o
KSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRJbnB1
dDp2aWRlb0luLmdldCgpXTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDp2aWRl
b0luLmdldCgpXSkgeworICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0dXBDYXB0dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gaW5wdXQgZGV2aWNl
IiwgdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2Vzc2lvbigpIGFkZElu
cHV0OnZpZGVvSW4uZ2V0KCldOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKCkpCiAgICAgICAgIGFw
cGx5Q29uc3RyYWludHMoY29uc3RyYWludHMoKSk7CkBAIC0yMzEsMTUgKzIzNSwyNiBAQCB2b2lk
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG5pbF0pOwogICAgIFt2aWRl
b091dHB1dCBzZXRWaWRlb1NldHRpbmdzOnNldHRpbmdzRGljdGlvbmFyeS5nZXQoKV07CiAgICAg
c2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZSh2aWRlb091dHB1dC5nZXQoKSk7Ci0gICAgQVNT
RVJUKFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSk7Ci0gICAgaWYg
KFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkKLSAgICAgICAgW3Nl
c3Npb24oKSBhZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldOwogCi0gICAgbV92aWRlb0Nvbm5l
Y3Rpb24gPSBhZG9wdE5TKFt2aWRlb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlw
ZTpBVk1lZGlhVHlwZVZpZGVvXSk7Ci0gICAgbV92aWRlb1ByZXZpZXdMYXllciA9IGFkb3B0TlMo
W1tBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBhbGxvY10gaW5pdFdpdGhTZXNzaW9uOnNlc3Np
b24oKV0pOworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0
KCldKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENh
cHR1cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCB2aWRlbyBzYW1wbGUgYnVmZmVyIG91dHB1
dCBkZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9u
KCkgYWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKK30KKwordm9pZCBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpCit7CisgICAgbV92aWRlb1ByZXZpZXdM
YXllciA9IG51bGxwdHI7CisgICAgbV9idWZmZXIgPSBudWxscHRyOworICAgIG1fbGFzdEltYWdl
ID0gbnVsbHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBzLmNsZWFyKCk7CisgICAgbV9m
cmFtZVJhdGUgPSAwOworICAgIG1fd2lkdGggPSAwOworICAgIG1faGVpZ2h0ID0gMDsKIH0KIAot
Ym9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlcikKK2Jvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZy
YW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiB7CiAgICAgQ01UaW1lIHNh
bXBsZVRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVC
dWZmZXIpOwogICAgIGlmICghQ01USU1FX0lTX05VTUVSSUMoc2FtcGxlVGltZSkpCkBAIC0yNjEs
MTMgKzI3NiwxOSBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYWxjdWxhdGVGcmFtCiAK
IHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01T
YW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlcikKIHsKKyAgICAvLyBJZ25vcmUgZnJhbWVzIGRl
bGl2ZXJlZCB3aGVuIHRoZSBzZXNzaW9uIGlzIG5vdCBydW5uaW5nLCB3ZSB3YW50IHRvIGhhbmcg
b250byB0aGUgbGFzdCBpbWFnZQorICAgIC8vIGRlbGl2ZXJlZCBiZWZvcmUgaXQgc3RvcHBlZC4K
KyAgICBpZiAobV9sYXN0SW1hZ2UgJiYgKCFpc1Byb2R1Y2luZ0RhdGEoKSB8fCAhZW5hYmxlZCgp
KSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXRE
ZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVm
ZmVyLmdldCgpKTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47
CiAKKyAgICB1cGRhdGVGcmFtZXJhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKKwogICAgIGJvb2wg
c3RhdGVzQ2hhbmdlZCA9IGZhbHNlOwogCi0gICAgc3RhdGVzQ2hhbmdlZCA9IGNhbGN1bGF0ZUZy
YW1lcmF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgIG1fYnVmZmVyID0gc2FtcGxlQnVmZmVy
OwogICAgIG1fbGFzdEltYWdlID0gbnVsbHB0cjsKIApAQCAtMjkxLDcgKzMxMiwyMyBAQCB2b2lk
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0CiAgICAgfSk7CiB9CiAKLVJldGFp
blB0cjxDR0ltYWdlUmVmPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2Uo
KQorUmVmUHRyPEltYWdlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2Uo
KQoreworICAgIGlmICghY3VycmVudEZyYW1lQ0dJbWFnZSgpKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKworICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQp
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworCisgICAgaWYg
KCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBwYWludEN1cnJl
bnRGcmFtZUluQ29udGV4dChpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLCBpbWFnZVJlY3QpOworCisg
ICAgcmV0dXJuIGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoKTsKK30KKworUmV0YWluUHRyPENHSW1h
Z2VSZWY+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjdXJyZW50RnJhbWVDR0ltYWdlKCkKIHsKICAg
ICBpZiAobV9sYXN0SW1hZ2UpCiAgICAgICAgIHJldHVybiBtX2xhc3RJbWFnZTsKQEAgLTMxOCw3
ICszNTUsNyBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyCiAKIHZv
aWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmIChj
b250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSB8fCAhY3VycmVudEZyYW1lSW1hZ2UoKSkKKyAgICBp
ZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOwpAQCAtMzI5LDYgKzM2NiwxOSBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291
cmNlOjpwYWludEN1cnJlbnRGCiAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZv
cm1Db250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVj
dC5oZWlnaHQoKSksIG1fbGFzdEltYWdlLmdldCgpKTsKIH0KIAorUGxhdGZvcm1MYXllciogQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3Zp
ZGVvUHJldmlld0xheWVyKQorICAgICAgICByZXR1cm4gbV92aWRlb1ByZXZpZXdMYXllci5nZXQo
KTsKKworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZVZp
ZGVvUHJldmlld0xheWVySW5zdGFuY2UoKSBpbml0V2l0aFNlc3Npb246c2Vzc2lvbigpXSk7Cisj
aWZuZGVmIE5ERUJVRworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZW
aWRlb0NhcHR1cmVTb3VyY2UgcHJldmlldyBsYXllciI7CisjZW5kaWYKKworICAgIHJldHVybiBt
X3ZpZGVvUHJldmlld0xheWVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICBz
aXplX3QgbV9saXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9C
dWZmZXJMaXN0PiBtX2xpc3Q7Ci0gICAgUmV0YWluUHRyPEF1ZGlvQ29udmVydGVyUmVmPiBtX2Nv
bnZlcnRlcjsKKyAgICBBdWRpb0NvbnZlcnRlclJlZiBtX2NvbnZlcnRlcjsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRpb247
CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9vdXRw
dXREZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdC
dWZmZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Lm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTczLDYgKzczLDExIEBAIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRp
b1MKIAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQygpCiB7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1F
OiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAg
ICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRl
ciA9IG51bGxwdHI7CisgICAgfQogICAgIGlmIChtX2Nvbm5lY3RlZCkKICAgICAgICAgbV9jYXB0
dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKIH0KQEAgLTEyMyw3ICsxMjgsNyBAQCB2
b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92CiAgICAgbV9yZWFkQ291bnQg
Kz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRp
b0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNU
b1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgQXVkaW9Db252
ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlciwgZnJhbWVzVG9Qcm9jZXNzLCBt
X2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQp
CkBAIC0xODAsOSArMTg1LDE5IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
OnByZXAKICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5tQnl0ZXNQZXJGcmFtZSA9IHNpemVvZihG
bG9hdDMyKTsKICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5tRm9ybWF0RmxhZ3MgfD0ga0F1ZGlv
Rm9ybWF0RmxhZ0lzTm9uSW50ZXJsZWF2ZWQ7CiAKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAg
ICAgICAgLy8gRklYTUU6IG1ha2UgYW5kIHVzZSBhIHNtYXJ0IHBvaW50ZXIgZm9yIEF1ZGlvQ29u
dmVydGVyCisgICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAg
ICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoKm1faW5wdXREZXNj
cmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRl
clJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyht
X2lucHV0RGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRD
b252ZXJ0ZXIpOworICAgICAgICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRlck5ldyhtX2lu
cHV0RGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252
ZXJ0ZXIpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSglcCkgLSBBdWRpb0NvbnZlcnRlck5l
dyByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBA
IC0yMjEsNiArMjM2LDExIEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVu
cHIKICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOwogICAgIG1fbGlzdCA9IG51bGxwdHI7CiAg
ICAgbV9saXN0QnVmZmVyU2l6ZSA9IDA7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAg
IC8vIEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRl
cgorICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBt
X2NvbnZlcnRlciA9IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpwcm9jZXNzKENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlcikKQEAgLTIzNCw3ICsyNTQsNyBAQCB2b2lkIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jCiAgICAgT1NTdGF0dXMgZXJyID0gQ01TYW1wbGVCdWZm
ZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIs
IG51bGxwdHIsIG1fbGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lz
dGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxh
Z19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKTsKIAogICAg
IGlmIChlcnIpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb2VzcyglcCkgLSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhS
ZXRhaW5lZEJsb2NrQnVmZmVyIHJldHVybmVkIGVycm9yICVpIiwgdGhpcywgZXJyKTsKKyAgICAg
ICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoJXAp
IC0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZl
ciByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMv
UmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCShy
ZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9v
cGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTgs
NyArNTgsNyBAQCBSZWFsdGltZU1lZGlhU291cmNlT3dyKE93ck1lZGlhU291cmNlKiBtCiAKICAg
ICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlT3dyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25z
dCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJp
bGl0aWVzOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBz
dGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KIAogICAgIE93ck1lZGlhU291cmNl
KiBtZWRpYVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Nb2Nr
U291cmNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsg
fQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNh
cGFiaWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdmlydHVhbCBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRT
dGF0ZXM7IH0KIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBt
X2NhcGFiaWxpdGllczsK
</data>
<flag name="commit-queue"
          id="289325"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>264194</attachid>
            <date>2015-10-27 22:14:33 -0700</date>
            <delta_ts>2015-10-28 09:09:51 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews113 for mac-yosemite</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>840366</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
57djkKqYr7KYfUuGISUK0dOyzpvyX1mxsj6SjQ/d83j7xL/p3kDwSse0oKBkymSyDbCeMUXOhkqI
Y4Ta2WTSk85znTfzO+i8W296uhAEhzkLZjIjJ6RgtAbiLzNuZpJSBuxDre44mPZyEsn0TSrKert4
hOafFK6fTvuyppkYPqJzVgdcAwOa/hY2FBWK6cm47ONkmPJpOz2fGxmPHtSkO2TdNQel1WGM9vJn
bfbG+hPVU5rfRh9X6wd26xpC5yyKnu0PaAmFP+a36V3mfgMByq39Nx1NhWDL/rldaDKaYZbyhwg1
qA7m2prPp2wJ0ObwWzxQsf+5Hq1w7SNz3jzO0Y6tXm6GK9NO3iGa5+a1LM3A/9rLAmRws8nTVXFq
wGVkbZEQo0k1uz6Brm+zvD8Qtv0dLmvGIWfpSeQ8WY+WivTycpasLauorNPNJl8tXC4ThHP64mQ0
1JgwKf7j/wBQSwMECgAAAAAAaKxbRwAAAAAAAAAAAAAAAAwAHABjb21wb3NpdGluZy9VVAkAA4RQ
MFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAGCsW0cAAAAAAAAAAAAAAAAUABwAY29tcG9z
aXRpbmcvcmVnaW9ucy9VVAkAA3NQMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGCsW0fc
SUg6rAAAABQDAABFABwAY29tcG9zaXRpbmcvcmVnaW9ucy93ZWJraXQtZmxvdy1yZW5kZXJlci1s
YXllci1jb21wb3NpdGluZy1zdGRlcnIudHh0VVQJAANzUDBWc1AwVnV4CwABBPUBAAAEFAAAAO2P
sQ6CMBRFd7+iIw5QKYJA4qBEEwcjCSMx5FlesFopeVQT/l6Mg36Ao9u507mnFH4azNMw8aKZODJl
8Qb90MqqQJuT6ZDswHrVtKA11gyJlq4vFnHInOtWNWvo8XC6oLQbIkPVrn2AVjVYrKfMUd8LLOOF
uZPEDOQZeWYI91gr+JDrh5HwRBDzUW2NHTrsea5hQOKj7E3V6vXPk0yrFpkQSTAp/xH/iN9FPAFQ
SwMEFAACAAgAaKxbR+dAyqfBAAAA8gYAADwAHABjb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQt
aWZyYW1lLW9uLWJhY2stYnV0dG9uLXN0ZGVyci50eHRVVAkAA4RQMFaEUDBWdXgLAAEE9QEAAAQU
AAAA7c8xq8IwFAXg3V+RUQebJn3VKDhoUXAQBUeRck0vGo1NuY0P8u9VHHR46xuEbOdM53w7KcZZ
PhaDJE3VnhmPV2hDrcst+g25BskH1ppjDdZixZBo0hdyqHLWvSzMcQYtrg9n1H5O5Khc1r9gTQUe
qx7rms8GnvGtu5HGAvQJeeEIV1gZeKe+yAcykZnij2nvfGiw5RsLAYk/xl6pnD7/JZpZUyOTcpR1
dhEREf+C+BGfiMI14SsUqVJRERVR8YfiDlBLAwQKAAAAAABcrFtHAAAAAAAAAAAAAAAAEgAcAGNv
bXBvc2l0aW5nL3ZpZGVvL1VUCQADcFAwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAXKxb
R9Py62GuAAAA3gMAADIAHABjb21wb3NpdGluZy92aWRlby92aWRlby1jbGlwLWNoYW5nZS1zcmMt
c3RkZXJyLnR4dFVUCQADcFAwVnBQMFZ1eAsAAQT1AQAABBQAAADtj7EOgjAURXe/oqMOUCkiSOKg
RBMHI4kjMeRZXrBaKXlUk/69GAdN/AW2c6dzTyGCNJylUeTHweLElMU7dK6RZWZal5Npkaxjnaob
0BorhkRLLxBxErHxbavqNXR4OF9R2g2RoXLXPEGrCixWEzZWvwss40fzIIkZyAvyzBDusVLwJS+I
5sIXYcJ7tTXWtdjxXIND4r3sQ+XqfdCXTKsGmZgmyagYKoaKoeKv4gVQSwMECgAAAAAAdqxbRwAA
AAAAAAAAAAAAAAgAHABlZGl0aW5nL1VUCQADn1AwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMECgAA
AAAAg6xbRwAAAAAAAAAAAAAAABMAHABlZGl0aW5nL3Bhc3RlYm9hcmQvVVQJAAO2UDBWclMwVnV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACAB2rFtHkTmEgu4AAACGAQAAMAAcAGVkaXRpbmcvcGFzdGVi
b2FyZC9jb3B5LXJlc29sdmVzLXVybHMtc3RkZXJyLnR4dFVUCQADn1AwVp9QMFZ1eAsAAQT1AQAA
BBQAAAB1j8Fqw0AMRO/5Cp2CXUJED7kswVDa+NLQBjvEZ3lXdhccy+zKhfx9nTqlpZCjNPNGo11R
vBcGcvIdO1ABCvbDfzLEsQ4cZQyWoZEAzWQwiHiSbjxzxBdSwl1VYsX1q1fc00VGPXLUiOy8+r7F
gaJyLRQc/mRFpJrXQ98u7iaV38br9CyBsRNyHPDWC22De27JXib9ad6t7TAkm81jCgaiknoLB4qx
4OagYXvLMeY/lsFdyRgbmJQTK31UqI65MaWG6SdYrn6xPNCZ4WEFs+3EVuXPwTdxk5pdkajOmGbs
rXrpt7VIB8lML9MsXXwBUEsDBBQAAgAIAHusW0eT2E8S6gAAAIEBAABEABwAZWRpdGluZy9wYXN0
ZWJvYXJkL2ltZy1zcmNzZXQtY29weS1wYXN0ZS1jYW5vbmljYWxpemF0aW9uLXN0ZGVyci50eHRV
VAkAA6pQMFaqUDBWdXgLAAEE9QEAAAQUAAAAdY7BasJAEIbvPsWcJCni0IOXRQLFmkullUTMed3M
xoWYCTuTgm/f2FhaCh5nvv/7Z7ZF8VEYyG1oqQZlsNGdwyeBDKdIwkN0BJ4j+DFgEPHI7XAhwVer
FrdViRWd3oLizl550AOJCnoriudQ9wF/OgQlOiFd9l0ze1hSfmdv04YjYcu2poj3l9B53FFj3XXk
L9Nu6fo+Wa2eUzAgajU42FuRgvxe4/reY8x/LYOHyBgXySoljjtRqA65MaXG0DUwX/xqebQXgqcF
TLEjOeU/B9+5Hml2U0RrY/zQOQ3crU/MLSSTPU+zdPYFUEsDBBQAAgAIAIOsW0eQBQTD4AAAAFQB
AAAsABwAZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLW5vcGx1Z2luLXN0ZGVyci50eHRVVAkAA7ZQ
MFa2UDBWdXgLAAEE9QEAAAQUAAAAdY1BS8NAEIXv/RVzKomUbjwUZCiBos1F0ZJIc95sZpuFbSbs
Tir+e1NTUASPM9/73tuX5VuJUGjnqQVh0MF07kIQxyZQ5DEYAssBOpEBlfJstO84Cj5kWabo4vw6
ftiFOrIfzxTVkxat9nWlamqenajqu+J6PXKgydctBXVbUcaqFzpp8znx3fxbm2FINpv7FBCiaHEG
DjrGkuxBwvbWg/hXy+FfhGgCaaHEcB8F6vcCsZLg+hMsVz9aEfSZ4G4Fc+xIRvjX4Cu3E82vSpQW
0Y69Ecf9tmH2kMz2Ms3TxRdQSwMEFAACAAgAg6xbR4eAYkjpAAAAfwEAADIAHABlZGl0aW5nL3Bh
c3RlYm9hcmQvcGFzdGUtbm9zY3JpcHQteGh0bWwtc3RkZXJyLnR4dFVUCQADtlAwVrZQMFZ1eAsA
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
6rgTdSvFEy4kjUHhQ5UUUKgYRSnlF7hCZbrQsSa3Ut4v1ps8z6CAK+keXsWiMDQc3Xsd9odA0xZO
22rxzkzkj53N6p/eTP968w5QSwMECgAAAAAAhqxbRwAAAAAAAAAAAAAAAAkAHABmYXN0L2RvbS9V
VAkAA7xQMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAIasW0cAAAAAAAAAAAAAAAAaABwA
ZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9VVAkAA7xQMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAIasW0erD3EesAAAAO4AAAA/ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRh
YmFzZS1jYWxsYmFjay1kZWxpdmVyeS1zdGRlcnIudHh0VVQJAAO8UDBWvFAwVnV4CwABBPUBAAAE
FAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH
4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5RykwikdWFBd
uA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZjcz1p
nXtp6Q7zePYGUEsDBAoAAAAAAIusW0cAAAAAAAAAAAAAAAALABwAZmFzdC9mb3Jtcy9VVAkAA8ZQ
MFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIusW0cU1ILPewEAAPg5AAAzABwAZmFzdC9m
b3Jtcy9WYWxpZGl0eVN0YXRlLXBhdHRlcm5NaXNtYXRjaC1zdGRlcnIudHh0VVQJAAPGUDBWxlAw
VnV4CwABBPUBAAAEFAAAAO3YTUsDMRAG4Lu/Yk62grjgwUMQQWsFK0XZLRZBkTE7bQO7yZrM1vbf
Gz8OBS968/BeQr5mN/MckpBxWd6WhkpZ9g3H8aaLkpIL3tDDeVmSDW3nGqEF57KmN6crGlz7NTeu
pvgVRLIT1fuW1a7y3I6jeF1JkjTYK+5D07eSiktWLsbzqpjLy43Togp9tFJMeM2Vja7TUYhSbDnG
4seajmzXDU+OD8hQ0tqY3rvXXp47jaeTamTMQ44y5mKrYkMtd6wq0Z/RztjPNM1ddGtWMeY71aEN
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
YW52YXMvVVQJAAMBUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACrrFtHAAAAAAAAAAAA
AAAAGAAcAGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL1VUCQADAVEwVnJTMFZ1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAq6xbR/aT7Q/LAAAANwIAADsAHABodHRwL3Rlc3RzL2NhbnZhcy93ZWJnbC9v
cmlnaW4tY2xlYW4tY29uZm9ybWFuY2Utc3RkZXJyLnR4dFVUCQADAVEwVgFRMFZ1eAsAAQT1AQAA
BBQAAAC1kLGOwjAQRGv4ii25JiJJAbIQBaEAiRMVuuJEsbEXY2HWyN7odH+Pc0dHhSLKHWne7Mxe
C1QzqEpVz1RVAv2ksqwLHzR6iKIj3UIUx/a7ns+n9REWWz6FpQIfrM0yJMEoqSiK8f5l1JrazmZW
IvmklNDS7p+6yqaLgmz0ZIaA++eawCdnu4jiAn85OTfhevPUXxtk4ykqaFCfycAUiLHNmdCivhCb
NKzVIVHs91o7LeqJrWAyHn0MSmDzGO6vFwrZEH8zlzvv30m+A1BLAwQKAAAAAACrrFtHAAAAAAAA
AAAAAAAADwAcAGh0dHAvdGVzdHMvY3NzL1VUCQADAlEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAq6xbR6r7vOiDAAAAdAEAAC4AHABodHRwL3Rlc3RzL2Nzcy9ib3JkZXItaW1hZ2UtbG9h
ZGluZy1zdGRlcnIudHh0VVQJAAMCUTBWAlEwVnV4CwABBPUBAAAEFAAAAOXMsQrCMBCA4b1PcaMu
YpKhJYhLXRykgoOCOMT0TAPhTpKr4tsbn8P15+cbvIBuQStrWqs14LsoZVaJvUuQxWd8cpZI4Wq6
bm1usNnhfQ5bCwVpPGApLuA5ytQ7wcD5Y2FBc0rLZvgrOVKUH3mqemTa04MtXI49eCZCL7XV5+VS
HJsvUEsDBAoAAAAAANisW0cAAAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9tZWRpYS9VVAkAA1dR
MFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAK+sW0cAAAAAAAAAAAAAAAAaABwAaHR0cC90
ZXN0cy9tZWRpYS9jbGVhcmtleS9VVAkAAwpRMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
AK+sW0e2IJktUQEAAH8DAAA5ABwAaHR0cC90ZXN0cy9tZWRpYS9jbGVhcmtleS9jbGVhci1rZXkt
aGxzLWFlczEyOC1zdGRlcnIudHh0VVQJAAMKUTBWClEwVnV4CwABBPUBAAAEFAAAAM1SS0sDMRA+
218xR3tZ9qGuRhFsKypYLZTioXhIk9ltaDZZkonFf2/WVVjwZhE8Zh7fY76s84wVJSvSJE3zV7ha
3t4tVvPFNdwQYdPSE9Leut3cGkXWLZFCy8BYAo9EytQQWjD9DDT90CVwKR16D8qDtoLr0XrAUvwZ
y7MgyEv45gLc+ywrks8mOBIOW+s6uHVxXl6UUceDqew1i+t13bF44o58kiS/gJrhJtQRKyqeR1W8
xscedRKXdgziokZ5CHAnbmpNpergOClrXhRtp7ZpNXave26kRsdgysUWJURswzeREzZc7NBIP4wh
z/5RDIPbrTy6LpWZEsR+OGBwPDoaD3xkxcnQh8d6EZp2hlq9obsRIjRBc0I5CVXV3SZlIPsmSNWV
PFTONuCQdxeztI0dYY3BaCKF8uL0rMgPcmTk13f4TCtqqa17jz5M0Ho8+gBQSwMECgAAAAAAsqxb
RwAAAAAAAAAAAAAAABUAHABodHRwL3Rlc3RzL21lZGlhL2hscy9VVAkAAw9RMFZyUzBWdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIAK+sW0fSH02/pwEAAIUEAABAABwAaHR0cC90ZXN0cy9tZWRpYS9o
bHMvaGxzLWFjY2Vzc2libGl0eS1kZXNjcmliZXMtdmlkZW8tc3RkZXJyLnR4dFVUCQADClEwVgpR
MFZ1eAsAAQT1AQAABBQAAAC1U8Fu2kAQPTdfMcfmEgGGBJwKiThNWylukVCUA4qqwTu2V6x33dlx
Uf6+Y9JIVNyK2Jt337739r3xejRMk5s0GVyNkukLfFp9/rJ8ypdzWIhQ08p3kl3gbR68lcArkq5N
wQeBSCLWV9C14N8w0LyBbgGNYYoRbAQXCnQX6wOV2dlUfhQCoxt41wLaxeEwudofAkvB1Abu6dbJ
dDpI1Mc9bbpqnvYyuVJhRY+hqhRxp5e2KehFR+bQ/rgPSRc82GolTNgsHb4Sw1wXlG0Zfy6cEHsU
erRRshp9RUap6hBi/xSr9q0awneY7oBT6Cn+BVmy4EtbdYxig3+2UmehaR31X1/RG0ecQoZFTQaU
2+NGnwYbLLbkTTwtvKdI/M2X4d4Wkh5xp/Dx4sPlUYpnH7XJ4FAlJ2PxwTrK0BWd0+DvnhfeZDUV
2wxVKieMHe99e7OzRuqetdKOtSgQLbLPWRSghf1Gtuil71UL7t0x/ersv9dLDg1cJ+PxZAgS4Ho8
m84mRw7/Z5qyjpm8HAxRqzHozkk9evP3L9hPj7JWgV+1Pd85d3lG5j9QSwMEFAACAAgAsKxbR6GW
uODMAQAARQUAADoAHABodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tzLWhhcy1h
dWRpby1zdGRlcnIudHh0VVQJAAMLUTBWC1EwVnV4CwABBPUBAAAEFAAAAM1UwWobMRA9118xx+YS
7Kxjr7fF4GyathA3BhNSCKWMpdldYVnaSrMx+fuMnAbs+ta0EN12ePNm9r0n3SiGszGcDYpsXGR9
oG0cDLJT6xVaCKwCtT6wcfV9luf97Ad8vKRVV08LiOT0nGLEmu4MNyUy1T48FvDeddae9G7eILNx
hhPlUtiNd19d5Qv4vihBeedIsdQE84DW6N79C//pKJ8Ix/LT58XtfDGFGTNtWv5GvPVhPffC6cOS
uGsLcJ5lfU7DoWvBPWNg8wz6AKh1kNlgIuzW3Z8y6f+3Ka/xgn9bce3rWhAX0rQuQBotHYg0yaVN
DlyZesmBcLOw+EgBpnKgaqv4c2aZghM7r03kskFXkxaqxvuYfiW5Y2QhfIFJBaxAj8a8OZUYA5fe
VabuAqYY7YLrN62l9PUFnbYUCihRNaRBuB2uREBYoVpL3OPrLLqNFFKYL43i4ohbLk7v3cmeiOP+
QdTmpA1eGUslWtVZEf7ibuZ02ZBalyhKzgljF3aMTm+N5iaJVovHYhSwGJkUYAGIYQ8YDDpOvorB
SfxAvzpz2F4Fv4FRNhyeD4A9jIaTfHJ+tOHfpKnsQiDHeyFqxWWp/KHw4B8+SE9QSwMEFAACAAgA
saxbR5gbMv7UAQAAnwUAAEEAHABodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tz
LWxvY2FsZS1zZWxlY3Rpb24tc3RkZXJyLnR4dFVUCQADDlEwVg5RMFZ1eAsAAQT1AQAABBQAAADN
lEFP20AQhc/Nr5hjuUQ4dkLiVpGCKW0lUiJFCCRUVRPv2F5ls+vujon498yGohLlBLQSe/PqzZvx
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
AgAIAK+sW0erhRxgzAAAAJECAAAyABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1y
ZWZlcmVyLXN0ZGVyci50eHRVVAkAAwlRMFYJUTBWdXgLAAEE9QEAAAQUAAAA1ZAxb8IwEIXn8itu
hCUiyQC1KgbCABKICTFUHS72YSzMGdkXIf49Du3WqcrU8Z70vnfv7bVANYOqVPVMVe9A91SWdeGD
Rg9RdKRbiOLYftbz+bT8go8Nn8JCgQ/WZhmSYJRUFMVo/2fUitrOZlYi2VFKaGn7TV1m00VBNnoy
Q8D9c03gk7NdRHGBj07OTbjePPXXGtl4igoa1GcyMAVibHMmtKgvxCYNa3VIFPu9Vk6L+sVWMB69
TQYlsPkZ7tULhWyIj8zlzvv/SX4CUEsDBBQAAgAIAK+sW0eyxJoe5QAAAAYDAAAqABwAaHR0cC90
ZXN0cy9tZWRpYS9tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAMKUTBWClEwVnV4CwABBPUB
AAAEFAAAANWRMU/DQAyFZ/orPNKlapKh5YQYSAcqgVoJIZAQg3Nxr6defdWdU8S/x6lYEFPJ1NGW
/b3n55UVKGdQFqaamfIG6DMXRTUJ0WKAJDbRISbx7N6r+XxafMDtgprO3RnIxO0T5YyOXr1saxRy
MX0ZuOYuhPFo9W+yZy898lnpPvKSN9HA27oGG5nJivZ05ojBt79VqulZ/uXH/mN0TifudWlnQBcD
DQILJqkjb7zrEvZuT/nE/SFQXz0gt4GSgRrtllpQNmOjmtCg3WmqedhVL5lSn9nCWzF/2Pqf0dV4
kMIZf78Q8jdQSwMEFAACAAgAsKxbR4+Bs1ToAAAAxgMAADkAHABodHRwL3Rlc3RzL21lZGlhL21l
ZGlhLXBsYXktc3RyZWFtLWNodW5rZWQtaWN5LXN0ZGVyci50eHRVVAkAAwxRMFYMUTBWdXgLAAEE
9QEAAAQUAAAA3ZPBSgNBDIbP9ilytBfp7h5aBvHg9qCgVBBREA/Z2XQ6dEzKTFbx7c2KN0918eIx
Ifn+5A/ZeIV6CXXlmqVrFkDvpaqasyQeE2T1mQ6SNXJ4blarRfUC52vqhnDhoBD3t1QKBnqMumtR
KUj+cHDKQ0rz2ebX5MhRR+S90aPwNW/FwdNdC16YyavlrOYNU+wnqBTS7/FvJASruLSmvQNrTDQJ
rJi1Fd7GMGQcp/3yR14PicboCrlPlB206HfUg7EZO9OEDv3eXC3TtnoolEfP1tGr+8G2+8xO5pMU
/urux5Hrf04+5gs+AVBLAwQKAAAAAADCrFtHAAAAAAAAAAAAAAAAHgAcAGh0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL1VUCQADLFEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAtqxb
R+I1fBFKAQAAlwQAAEIAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1hcHBlbmQtYnVmZmVyLXN0ZGVyci50eHRVVAkAAxdRMFYXUTBWdXgLAAEE9QEAAAQUAAAAzdA9
T8NADAbgnV/hrXRI89kkrcRAKRVIVKoosFQVcu+c9sTlLvJdgPDrCRIfE6x0syzLfl5vkniaFtMs
GkVFtIWKcb9Eoyqr5eOqdYdZ58mBU3uDWpMEYj4L4jzKcjh9Wqjv4Utmy4/3hl4bEp7ktVF+jh6H
cLomYY2EQeW7ZgDobQ1khG2NJyY57DsQrm3Lgi5QHCi8sExLkgp/qiAe58koSctwxdbbfhG5cGG5
Rn+FRmpiFy7ts6Lwg/RRLPogNRn/5RsJ0MoQxHkanSRRPA7iKEgK+IyfjpIshXlbN7dkJPEdE23S
spgU00mWF2Wxheu9sazMHvo0nq2+UzXt0BE48rDrQGjV34MdCWz77vnDGutG06ytKuK5co3G7gY7
YnhBByhl/01vAcF1RhzYGvVG/AstP15aebS0cfwHbfK/tOx4acUx0N4BUEsDBBQAAgAIALesW0fA
tFRnPgEAAHoDAABQABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS1tcDQtdi1iaXRyYXRlLXN0ZGVyci50eHRVVAkAAxpRMFYaUTBWdXgLAAEE
9QEAAAQUAAAA5ZDNbsIwEITvPMXegAPklyQg9dCWoiIVCRXaC6qqxd4Eq44drZ226dM3SP15CG6j
0Wh3vjnE0SLJF2k6DaPwBUrGaoNGlVbL123rTjedJwdOVQa1JgnEfDWJsjDNYPS2Un/hO2bLr0+G
PhsSnuTaKL9Ej2MY7UhYI2FY+q4ZAnpbAxlhW+OJSY57B4KdbVnQLYoTBbeWaUNS4b+aRLMsnsZJ
EWzZetsfIhesLNfo79FITeyCjX1XFJwrncWqB6nJ+N9+UwFaGYIoS8LB4R86zi8QOk0uBToOo9kk
CidxDj/42TQsCli2dfNIRhLvmeiQFPk8X8zTLC+KF1hXxrIyFfQ0nq3eq5qO6AgceTh2ILTq/8GR
BLa9e/28w7rRdNOWJfFSuUZj94AdMXygA5SyX9NbQHCdESe2Rn0RD74BUEsDBBQAAgAIALisW0e8
NnQfPgEAAHoDAABSABwAaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zb3VyY2UvbWVkaWFzb3VyY2Ut
Y29uZmlnLWNoYW5nZS1tcDQtdi1mcmFtZXJhdGUtc3RkZXJyLnR4dFVUCQADHFEwVhxRMFZ1eAsA
AQT1AQAABBQAAADlkM1OwzAQhO88xd4ohzT/SVOJA1AqkKiEKHCpqmprb1ILx47WDhCenlTi5yF6
G41Gu/PNJonnaTnPimlalluoGZsVGlVbLXePvTtcD54cONUY1JokEPNlEBdRVsDkban+wrfMlncv
hj47Ep7kvVF+gR4vYLImYY2E89oP3Tmgty2QEbY3npjkxehAuLY9C7pBcaDwxjKtSCr8V0GcF8k0
SWfhI1tvx0PkwqXlFv0dGqmJXbiy74rCY6WjWI4gLRn/228qQCtDEBdpdLb5h67S04POouJUoJMo
zoM4CpISfvBn0yzLYdG33RMZSfzMRJt0VlblvMryqoq2cN8Yy8o0MNJ4tvpZtbRHR+DIw34AodX4
D/YksB/dq9c1tp2m676uiRfKdRqHBxyI4QMdoJTjmt4CghuMOLA16ov47BtQSwMEFAACAAgAvaxb
R/chgXOLAAAAmwAAADkAHABodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJj
ZS1wbGF5LXN0ZGVyci50eHRVVAkAAyVRMFYlUTBWdXgLAAEE9QEAAAQUAAAADcixDoIwEADQ3a+4
H8BQEItsGhYTJyUuxuFoD2xSruQKMfXrZXt5Ra6qTOVZoaFQTambSu9VVUK7TvOd2JJ0QvQqa33S
zelw1HX9huvIQRyPYAIvEnznJuoxEkRaoE9gvCPeRAbXbc/PB06zp8s6DCSti7PHdMNEAl+MgNaS
hSUAQkxsPhLY/Uh2f1BLAwQUAAIACADArFtHTTGxYqkAAAAHAwAAOwAcAGh0dHAvdGVzdHMvbWVk
aWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXJlbW92ZS1zdGRlcnIudHh0VVQJAAMoUTBWKFEw
VnV4CwABBPUBAAAEFAAAAM3QsQ6CMBSF4d2nuC+AKS3QwqZhMXFS4mIcSrlgk9KSFmLq08sD6Czb
yZn+fJSkeZKShHKgacVERci+oBTqZZwuaDv0jUe8M8FLXpVZwYV4wGmwzms7gHJ29s40esRWBoSA
M7QRlNFo14VKLut7uF3lOBk8Ln2PvtZhMjKeZUQPLxlAdh12MDuQEKJVT++sfqPf0a9p2a80LtL8
v2l8s2qMbFaNsS2ofQBQSwMEFAACAAgAwqxbR4+4hwaiAAAA0QEAAEYAHABodHRwL3Rlc3RzL21l
ZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXItbW9kZS1zdGRlcnIudHh0
VVQJAAMsUTBWLFEwVnV4CwABBPUBAAAEFAAAAMXOMQ6CMBSA4d1TvAtgSqG0ZdOwmDgpcTEOpX1g
E2hJCzF4ejmAOur2558+SlKWpCShHGhaZqIk+ZaxDKp5GE/oDIY6IF4zwSUvZV5wwW9w6JwP1nWg
vZuC72s7YKMiQsQJmgV0b9GthVrN691dzmoYe9zPbYuhsnHs1XJUCwZ4qAjKGDQweVAQF6fvwTv7
xLChb2nFF5r4L01+ojEpya9oL1BLAwQUAAIACACvrFtHVVhjcoMAAADAAAAARgAcAGh0dHAvdGVz
dHMvbWVkaWEvbWVkaWEtc291cmNlL1NvdXJjZUJ1ZmZlci1hYm9ydC1yZWFkeVN0YXRlLXN0ZGVy
ci50eHRVVAkAAwpRMFYKUTBWdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy5imiEaxKUuDlLB
QUEcYnqNB+EiyVXx7Y2v4Prz8/VeoDXQKquN1UvAd1FKL2LyLkIWn/GZshCHq16ZtbnBZof3KWwt
FOThgKW4gGeSR+cEQ8ofCzOeYpw3/d8yMcmPPFWdEu95TBYuxw58YkYvtdXn5SINzRdQSwMEFAAC
AAgAwaxbR/fnojlqAAAAawAAAC0AHABodHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRm
LWFjdHVhbC50eHRVVAkAAypRMFYqUTBWdXgLAAEE9QEAAAQUAAAADcoxCsJAEAXQfk7xuySNBxBS
BDOCKJpiEdvVncjAZgfWieLt9dVvPxxOWwRdJMFWxyeqa3litopirvN3tCJww13wiDlLIuLbxLvA
I9q3JrGN1PrvfY+mrDk3HS5H4iufQ5stppfH6h3RD1BLAwQUAAIACADBrFtH4bJUzP4AAACwAQAA
KwAcAGh0dHAvdGVzdHMvbWVkaWEvcGRmLXNlcnZlZC1hcy1wZGYtZGlmZi50eHRVVAkAAypRMFYq
UTBWdXgLAAEE9QEAAAQUAAAAvU9NawIxEL3vr5ibyhqDh1IoCNs2EYpFBRftdTSzNhA3kkys+++b
Xfsbehrem/cxI4QAufcuXShKhYxSH3byQMeV5b/xlqwzUtExnaXDzicWTJFFoJgcR/nNfJU9E+WF
jEV5NY2IFG5kBEbRI7pf6cRkZnznoizLf6jEEyd0Q2FVgZhPn6GcT5+gqopy+frx+QK1zV7I2fCD
lm17hsYHaD3bplO+JWAPR4ITOkemgAL011a/11rB+GYN+RmFkA2LBYza5NxoAptVFu31uh47jyYy
Bp4U4sEM4owatDkOOHR9Y67opbBVS2jyAh5PAMaByoFCrxVsllDrXZ2P+AVQSwMEFAACAAgAwaxb
R3zw/6NtAAAAgAAAAC8AHABodHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLWV4cGVj
dGVkLnR4dFVUCQADKlEwVipRMFZ1eAsAAQT1AQAABBQAAAAtjL0KhDAQBvt9iq/TNPcGVmZtDlQw
HLaBRAkEA5so+Pb+cO3MMMTzyK1hjfoIzqePF0mCpkG17TFWCsOX+Me9qWOyLhcrRf3BmypabIje
ocgZthUl4Qkx6g7LLZC9HLe2+UXPrdcYOhieDNEFUEsDBBQAAgAIAMGsW0cBot02CggAAOQbAAAz
ABwAaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1wcmV0dHktZGlmZi5odG1sVVQJ
AAMqUTBWKlEwVnV4CwABBPUBAAAEFAAAANVZ/2/jthX/PX8FkWBNr4gkO7bTxLlk6MUONrS7HpCg
3W8DZVIWL5ToklRs37b/fY8iKUuy5Piww4D10LNEPpKf9+3zHnXvU53x+5P3KcUEfjKqMVqkWCqq
784LnQTX5zCs9JbT+5MpZ/nLBZq+MsU0JeifJwj+03SjA0IXQmLNRD5FucjpbTkVC0moDGKhtcim
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
4kB+1uxReu/dVznqWJCTbwAywcC9BGm5NbRgFoP/0KfZI1zXoG2wtImwKoe+MuCO1ePqWxj74wz9
+oie50/P/5cE9uMRNpgcT2Bfo3PrpyzPUBbLf9z7D1BLAwQUAAIACADBrFtHJAoNZu0AAABfAQAA
LQAcAGh0dHAvdGVzdHMvbWVkaWEvcGRmLXNlcnZlZC1hcy1wZGYtc3RkZXJyLnR4dFVUCQADKlEw
VipRMFZ1eAsAAQT1AQAABBQAAACFj7tuwzAMRfd8Badstvwo6liAEQRpiw4diiCdgg6KxdgC9KpE
FcjfV0abrCWXe3EuCfLU1LzteNuWj33/Ca/H4/sBvxJGgouaFvuUjH9RVuiPw9vOygMaR7iTMmCM
HMSvgLrpyip3ncdyFlLQMBN5ztgd8U1VVcygVIJ9K4muoDk4Io2y0E7IcpzU1gqDQ17pUhgxMsqX
lF5e1rfo0C+1pqvHQXiv1ShIOctyZnX695k/uw8oCJ9DcGHvjEFLHNCOLlnCgBKEBVwgh/OVEIKw
E4JGO9EMRkUjaJyhgDi7pCWc76wBFW+66zcPqx9QSwMEFAACAAgAwqxbRyNwzt/NAAAANwIAAC8A
HABodHRwL3Rlc3RzL21lZGlhL3JlbG9hZC1hZnRlci1kaWFsb2ctc3RkZXJyLnR4dFVUCQADLFEw
VixRMFZ1eAsAAQT1AQAABBQAAAC1kDFvwjAQhefyK24sS0QIiGJVHZoMRQIxoQ5Vh4t9GAv3HNkX
Vf33OMDWqYo63pPe9+69vRaYr2BequpJzRZA36ksq8IHjR6i6EhdiOLYflTr5br6hOcNH8OLAh+s
zTIkwSipKIrJ/s+ohtreZlYi2VFKaGl7o75m01lBNnoyY8DDc3Xgo7N9RHGB352c6vDVeRquN2Tj
KSqoUZ/IwAyIsc2Z0KI+E5s0rtUhURz2apwW9Yut4HHyMB2VwOY+3LUXCtkQfzKXe+//k3wBUEsD
BBQAAgAIANGsW0f356I5agAAAGsAAAAvABwAaHR0cC90ZXN0cy9tZWRpYS90ZXh0LXNlcnZlZC1h
cy10ZXh0LWFjdHVhbC50eHRVVAkAA0pRMFZKUTBWdXgLAAEE9QEAAAQUAAAADcoxCsJAEAXQfk7x
uySNBxBSBDOCKJpiEdvVncjAZgfWieLt9dVvPxxOWwRdJMFWxyeqa3litopirvN3tCJww13wiDlL
IuLbxLvAI9q3JrGN1PrvfY+mrDk3HS5H4iufQ5stppfH6h3RD1BLAwQUAAIACADRrFtHwySPnP4A
AAC2AQAALQAcAGh0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1kaWZmLnR4dFVU
CQADSlEwVktRMFZ1eAsAAQT1AQAABBQAAAC9T8FuwjAMvfcrfANUQsRhmjQJqdsapIkJJlEBV7dx
WaTQoMRh7d8vhX3DTrafn997FkKAPDgbLxRkiYxSHffySPXG8F95i8ZqWVIdz9Li4CILpsDCU4iW
g/xmvsoRCfJC2mDqexaB/I20wCDuI/VXapj0gnvO8jz/F1NsOKK9WxYFiOX8GfLl/AmKIsvXrx+f
L1CZdA1JHX7QsOnO0DoPnWPTDqXrCNhBTdCgtaQzyECdvtR7pUqY3owmtyDv08FqBZMuWjuZwW6T
SAe1rabWoQ6MnmeZeCB3cppaNEkO2A+jY7IYqTBGhjZt4PEGYHhgSVKobQm7NVRqX6UYv1BLAwQU
AAIACADRrFtHjGqFl28AAACCAAAAMQAcAGh0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMt
dGV4dC1leHBlY3RlZC50eHRVVAkAA0pRMFZKUTBWdXgLAAEE9QEAAAQUAAAALYzBCsIwEAXv+xXv
1ubiH/Rk14vQCobiNZCtBEIDm7Xo39tWrzPDED9ufPbco11TlHIS1aLoOjTLK+fGYbwSTzz4NpcQ
qwU19wdH6mgOKUuE6SctT1jBHsLkbZg3gyq6bj7UH9t/Q4/xAs93T/QFUEsDBBQAAgAIANKsW0cT
Y8ROCQgAAOgbAAA1ABwAaHR0cC90ZXN0cy9tZWRpYS90ZXh0LXNlcnZlZC1hcy10ZXh0LXByZXR0
eS1kaWZmLmh0bWxVVAkAA0tRMFZLUTBWdXgLAAEE9QEAAAQUAAAA1Vltb+M2Ev6eXyEkuKZbRJId
22lib3zoxg6uaG9bIEF73w6URFncUKJLUo691/vvN3yTJVlyvLjFAddF1xI5JJ+ZeeaF2veZzOn8
7H2GUQI/OZbIizPEBZb3l6VM/dtLGBZyR/H8bEpJ8XLlTTdEEIkT719nHvwn8Vb6CY4ZR5KwYuoV
rMAzPRUxnmDuR0xKlk+94XrrJfCMk9nZv8/MdnaTmFHGp97FYHSn54JHQvGCpKmdj1D8suKsLBLf
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
bWVkaWEvdmlkZW8tYXV0aC1zdGRlcnIudHh0VVQJAANPUTBWT1EwVnV4CwABBPUBAAAEFAAAANVT
TU/DMAw9s1/h43ZYP/fRRQgJOiGQgE0bCCS0Q5Z6XViWVG66Ab+elCFAQuJAT9ziyH5+fn6eCAvR
EKKQxQmLR4D7MgxjTxnBFZAVhIUhK3X+GI+SQbyA4zEuq/yEQYk6u8ay5DneS7tOucXc0AuDtq6U
6rQmf0aWWtoacu7QpdGXemUYPExTEEZrFNb9uZwdVzJrRUHY74ZB91snLw4HMK62xcwxRLolxEML
NuolSdJbwCGC9PwG7d7QxqFZJO14IZEhaAfPIgg58+emIoEpF2v0P7O/Xt1hFHh9b+hPyTw5YrNK
W7lFf44kHbtXvlR4SmItd+iJomD9QdD5X4zDQdxkkyXaD4tcmTx3GWeuaMPAFSrMmgBbTjY1eiXz
injtiHcPmm2hsI4uuM4UklOsViKDAFDXs2Ww5GLjVC6bTXVXItW+HEth2Q9sdwOto2a6/X5bb1BL
AwQUAAIACADUrFtHlverPuIAAABSAgAALQAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tZXJyb3It
YWJvcnQtc3RkZXJyLnR4dFVUCQADUFEwVlBRMFZ1eAsAAQT1AQAABBQAAAClkUFLA0EMhc/2V+TY
XsTtiLaD9NDtQUGpIKJQPGRn0+nQaabMZBX/vVnxIoKge0xIvvfysnYC00uYVtbMrJkDvZWqMqcx
OYyQxWU6piyB/cbMZxfmBa5W1HR+YaEQt3dUCnp6CrKrUcin/G5hzF2Mk9H63+TAQXrkg9JD4hve
JgvP9zW4xExOtKczrxhD+13l/OxP/uXL/m3yXieWurS3oIuRBoEFs9SJt8F3GXu3n/mkwzFSX10j
t5GyhRrdjlpQNmOjmtCg22uqZdhVj4Vyn9kqOLE/2Pqf0clkkMLvf/8AUEsDBBQAAgAIANWsW0fv
+TvSGQEAAD0CAAA2ABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1kb2VzLW5vdC1leGlz
dC1zdGRlcnIudHh0VVQJAANRUTBWUVEwVnV4CwABBPUBAAAEFAAAAM2OQWsCMRCF7/6KOerBdbO7
1DWUgijFQouytbQgHmIyrqEx2Saztv33jawUSk+9lbnMm3nz5ltKgmwMGeN5yYsU8D0wlifGSWHA
k/TYOE/a1pt8Ul7lW7ie466tbzgEtOoBQxA1Pms6zARh7fwnh75tjRn0lv8wWVtN58jHmK6dvbN7
x+FlNQPprEVJcRY9J2G06m0u+SzJCraFxXq9qvCtxUCw1/WCqLnIuVYVStQnrDA0zgacCWN2Qr5y
8N1CwSH6o+r2UKQF9NF752HIskleDmAf+7OJj0YsGydpLMbLNE1HymEYWkdD/NCBkmOD9Q+47Ddc
lPP22NxqK8xTdT+1kfDoCKdKRYbAQXQNfL+KZ9ELrTd/oPgCUEsDBBQAAgAIANWsW0dQVqenwwAA
ACQDAAAsABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1sb2FkLXR3aWNlLXN0ZGVyci50eHRVVAkA
A1FRMFZRUTBWdXgLAAEE9QEAAAQUAAAA7ZGxigIxEIZrfYoptTlcVzwviIVroeBhdVjIFbPJGINx
Iskscm9vlOvsXOwsB+b/Pmb+jRYYfsKwUOVEjQqgSyqK8sMHjR6i6EjnEMWx3ZVfk3H5C9MF1Y2d
KUgk35QSWloHa/PGPIeOCnLQk+lungcLRqkC751tIooLvHVyqMLp7Ok2LZGNp6igQn0gAwMgxjo7
oUZ9JDapjZzkJ1Fc8T4snBb1wFbQ63b6rQxs/h93vwuFbIh/mcuN9+3I70Ze0cgVUEsDBBQAAgAI
ANWsW0frtnpC4gAAAMYDAAAvABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXByb2dyZXNz
LXN0ZGVyci50eHRVVAkAA1JRMFZSUTBWdXgLAAEE9QEAAAQUAAAA1ZFBSwNBDIXP9lfkaC/i7orW
QTy4PSgoFUQUxEN2Np0OHZMyk1X892bFmzcXhB4T8r68vKy8Qn0GdeWahTupgD5KVTVHSTwmyOoz
7SRr5PDSnC9Om1e4WFI3hEsHhbi/o1Iw0FPUTYtKQfKng0MeUprPVn8mR446Ih+MHoVveC0Onu9b
8MJMXq1nM++YYj9hy/771x/7txKCTVyZaOvAhIkmgRWztsLrGIaMo9vvfORtl2isrpH7RNlBi35D
PRwDMXa2Ezr0W0u1TLvqsVAeM1tGr+4X2/4zO5j/29/rvSB/AVBLAwQUAAIACADXrFtHdfLkW4MA
AADAAAAAPQAcAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1zdGFsbC1iZWZvcmUtbWV0YS1k
YXRhLXN0ZGVyci50eHRVVAkAA1VRMFZVUTBWdXgLAAEE9QEAAAQUAAAAncwxCgIxEEDRfk8xpTZC
EtE1iM3aWMgKFgpiEbNjDIQZSWYVb2+8gu3n83ovoJeglTWtnWvAd1HKzBJ7lyCLz/jkLJHCxaza
hbnCeou3MWwsFKRhj6W4gKcoj84JBs4fCxMaU5o2/d9ypCg/8lj1yLSjO1s4HzrwTIReaqvPy6U4
NF9QSwMEFAACAAgA16xbR603AQG8AAAAkgEAACsAHABodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXF1
ZXJ5LXVybC1zdGRlcnIudHh0VVQJAANWUTBWVlEwVnV4CwABBPUBAAAEFAAAAKWQMYsCMRCFa/dX
TKmNuK53ahAL10LBw+qwEIvZZDYG40SSWeT+/eXkOjstH8z7PubttcB4CuNSVTM1+QC6p7Kshj5o
9BBFR7qFKI7tsZrPPqsTLNbUdHapIJF8UUpoaReszRerXLooyEVPpti/DhaMUgdune0iigt8cHKu
w/Xm6S9tkI2nqKBGfSYDIyDGJjuhQX0hNukdOcl3orjlNqydFvXEVtAveoO3DGz+h3v8hUI2xJ/M
5c77QfELUEsDBBQAAgAIANesW0egxzYC7AAAAFgFAAAqABwAaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1yZWRpcmVjdC1zdGRlcnIudHh0VVQJAANWUTBWVlEwVnV4CwABBPUBAAAEFAAAAO2SwUoDQQyG
z/Ypcmwv4nZLrYN46PZgQakgolB6yM6m06FjpsxkFd/erHjTk4uHQo8Jyfcnf7KyAuNLGBemnJnJ
FOg9F0V5HqLFAElsokNM4tmty6vZtNzA9YLq1t0YyMTNPeWMjp697CoUcjF9GBhyG8JosPoz2bOX
DvmodB95ydto4OWhAhuZyYrmtOYNg296qGSS7/HvonNaMdemvQFtDNQLLJikirz1rk3YTfvlT3w9
BOqiW+QmUDJQod1RAxdAjLVqQo12r67mfls9ZUqdZwtvxfxg630GZ6NeCv9192Mkn3719Ku/kT8B
UEsDBBQAAgAIANisW0eCRS8/3wAAAAYDAAArABwAaHR0cC90ZXN0cy9tZWRpYS92aWRlby11c2Vy
YWdlbnQtc3RkZXJyLnR4dFVUCQADV1EwVldRMFZ1eAsAAQT1AQAABBQAAADdkUFLA0EMhc/2V+RY
L+J2pa2DeOj2oKBUEFEQD9nZdDp0TMpMVvHfmxUv4nHx4jEh78vLy8YrzBYwq1y9dGdzoPdSVfVJ
Eo8JsvpMB8kaOTzX58t5/QIXa2r7cOmgEHe3VAoGeoy6a1ApSP5wMOU+pePJ5gd58c/JkaMOyHuj
R+Fr3oqDp7sGvDCTV+vZzBum2I3yr9/2byQEm1iZaO/AhIlGgRWzNsLbGPqMg9uvfOT1kGiorpC7
RNlBg35HHZwCMba2E1r0e0u1jLvqoVAeMltHr+4X2/4zOfrLv38CUEsDBAoAAAAAANmsW0cAAAAA
AAAAAAAAAAAQABwAaHR0cC90ZXN0cy9taXNjL1VUCQADWVEwVnJTMFZ1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAuaxbR21OVGDqAAAAZgEAAC0AHABodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZl
cy11cmxzLXN0ZGVyci50eHRVVAkAAx1RMFYdUTBWdXgLAAEE9QEAAAQUAAAAdY1NS8NAEIbv/RVz
KomUTCIUZSkB0eaiaEmkOW82k3QlyYTdieC/NzUVRZA5vR/PvPs8f8kVZNp2VIMwaGdO9p3AT5Uj
z5MzBA07OImMCjG5voni+RJ1G8cx9tYb/O55NNyP2vvobWxXeORu6mfzQYvGfVlgSdWjFSy+ymd1
z46wY12Tw8sumgafqNXmY87vFi8y4xhst0kICrxosQYO80pOzUHc7vJHqb9YCv9GShlHWigwPHiB
8jVTqhBnhxbWmx8sc7onuNrAUjuSEf41+Mz1nKZnxEutVDMNRiwPu4q5g2Ch12Earj4BUEsDBBQA
AgAIALmsW0dgcqCIwwAAAP4AAAA/ABwAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJp
bmctcmVhZHlzdGF0ZWNoYW5nZS1zdGRlcnIudHh0VVQJAAMeUTBWHlEwVnV4CwABBPUBAAAEFAAA
AE2OTUvDQBRF9/0Vd6lgZSYxxAziprGrIMWPVSllSF7rw2QmvLxU9Nc7BYVeuIsLB+7JjC2W1iyz
Epl1eekKc5tnGep5GF8odCRvQrTN78uqcNWdrYp8h43EkUS/0fOk4HDyPXc4RDl38OpgjcHVeIlN
aH0IUdHGoJ4Dnt+b5nqxvXzd4SEF63q12Tc8sFKHxxSs+fi3a54+V779oORw4qS3fyX993F4EkkW
X8LK4Yg4p7szjAP3dAOVObReCRrxQxIXv1BLAwQUAAIACAC5rFtH5CdtJsUAAAD+AAAAWwAcAGh0
dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJhbWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1n
Yy1hZnRlci12aWRlby1yZW1vdmFsLXN0ZGVyci50eHRVVAkAAx5RMFYeUTBWdXgLAAEE9QEAAAQU
AAAATY5NS8NAFEX3/RV3qWBlJjGNCdJNY1dBih+rUsqQvNZHk5nw8lLRX+8UFHrhLi4cuCcxNptb
M09yJLZM8zIz93axQDX1wyv5luRdiLbpY15kZfFgiyzdYSNhINFvdDwq2J9dxy0OQS7tnZawxuBm
uMZGNM77oGiCV8ceLx91fTvbXr3mOzzFYF2tNvuae1ZqsYzBmo9/u+LxtHLNJ0WHM0e9/Rvpv0+J
Z5Fo8SWs7I8IU7y7wDhwR3dQmXzjlKABPyRh9gtQSwMEFAACAAgA2axbRxU1NZJ6AAAAvAAAACoA
HABodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAkAA1lRMFZZUTBW
dXgLAAEE9QEAAAQUAAAAjY5BDsMgDATveYU/QCDtoRW/IcRVLBmMjJH6/BLlA9VeVjuH2SylEScj
qYCqohE+xAinWYveb4/XGma2+A4h+EI9e8UuQzN2/+1sbk+Ho9JEzQ2ldW7AVBGegIwFq8FNl0ni
XSHCqGmfGhNgScd/uip95PO6lywxLz9QSwMECgAAAAAAsqxbRwAAAAAAAAAAAAAAABMAHABodHRw
L3Rlc3RzL3BsdWdpbnMvVVQJAAMQUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACyrFtH
dl7Tlo0AAACAAQAANgAcAGh0dHAvdGVzdHMvcGx1Z2lucy9jcmVhdGUtdjgtc2NyaXB0LW9iamVj
dHMtc3RkZXJyLnR4dFVUCQADEFEwVhBRMFZ1eAsAAQT1AQAABBQAAAC1jjELwjAQRnd/xY26iG2w
LUFc6uIgFRwUxCGmZwyEO0muiv/euDoKXT8+3nudFShrKAutaq2WgK9UFGoe2JoAUWzEB0fx5M6q
aRbqAqsNXge31pCQ+h2mZBwevdxbI+g4vjVMaQhhNun+Jnvy8kUeMt0zbenGGk77FiwToZW85c/T
BN//WKrR+quR+j9QSwMECgAAAAAAy6xbRwAAAAAAAAAAAAAAABQAHABodHRwL3Rlc3RzL3NlY3Vy
aXR5L1VUCQADPlEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAwKxbRwAAAAAAAAAAAAAA
ACoAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAAyhRMFZy
UzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAALWsW0cAAAAAAAAAAAAAAAA9ABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL1VUCQAD
FVEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAs6xbRzrNVA3lAAAAQwIAAFMAHABodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00v
YWxsb3ctYXVkaW8tc3RkZXJyLnR4dFVUCQADElEwVhJRMFZ1eAsAAQT1AQAABBQAAACl0LFOwzAQ
BuCZPMWNsESkGRJZiKHpUKSiVkIIJMRwsa+uVfdc2Zci3h4b2JhQRlu+7/z/Wy2w6GDRqLZTbQ/0
kZqmrX3Q6CGKjnQOURzbt7bv+u4d7h54H+4V+GBtvoYkGCXVdV1t/02taJxsthLJI6WEljY/6jIP
HRXkQU9mDlw+NwTeOztFFBf4xclhCKezp3JaIxtPUcGA+kAGboEYx7wTRtRHYpPmpXpOFEtfK6dF
/bEVXFdXN7M2sPkt7jsXCtkQP7PLk/dzZMdOCvmU9dxTyaDgdTeADsykS3f5zQW9M9UXUEsDBBQA
AgAIALSsW0eHjSJvvAAAAJIBAABTABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvdXNlckFnZW50U2hhZG93RE9NL2FsbG93LXZpZGVvLXN0ZGVyci50eHRVVAkAAxRR
MFYUUTBWdXgLAAEE9QEAAAQUAAAApZAxiwIxEIXr218xpTbHrStkCWLhWigoWx1XHBazyRiDcSLJ
LOK/vyjXXXeWD+Z9H/N6IzBTMKt1o/T8A+iW67p5D9FggCQm0TUm8ey+m1a16gCLNQ2jW2rIJHvK
GR3tonPlYlVKZw2lGMhW/f/Bgkm6yEfvxoTiI395OXXxcg30SBtkGyhp6NCcyEJhMw7FCQOaM7HN
r8hJPjOlLR/j2hvRf9gaJtXb9CUD29/hnn+hkIvpXrg8hjCtfgBQSwMEFAACAAgAtaxbRxoV4f+D
AAAAwAAAAGsAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2Vy
QWdlbnRTaGFkb3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWFsbG93ZWQtc3RkZXJy
LnR4dFVUCQADFVEwVhVRMFZ1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLkIaISWIS10cpIKD
gjjE9EwD4U6Sq+LbG1/B9efnG7xAa6BVVhu7VoDvopReJfYuQRaf8clZIoWr7kxnbrDZ4X0OWwsF
aTxgKS7gOcrUO8HA+WNhQXNKy2b4W44U5Ueeqh6Z9vRgC5djD56J0Ett9Xm5FMfmC1BLAwQUAAIA
CADArFtHY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAyhRMFYoUTBWdXgLAAEE9QEAAAQUAAAA
LY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMtt
nePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2W
OdKOza8xRJuC7GpN1PGavlBLAwQUAAIACADArFtHY6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNy
Yy0yLXN0ZGVyci50eHRVVAkAAyhRMFYoUTBWdXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9
pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1
VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGa
vlBLAwQUAAIACAC6rFtHbD/afbYAAADcAQAAOgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
b3JpZ2luLXdlYnNxbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAx9RMFYfUTBWdXgLAAEE9QEAAAQU
AAAA5c/PCsIwDAbwu0+Rk2ygVhARehOdFxFh88+53TIpdMnIWsW3dxM9+Qje8pHfB0mW58dcw5mM
9QiBIUQhYAJHpWCDFIwHEwNP76aMsYFkDsQBDAGKsKQjdWEfG+zU1gSjsmuhrmj3LqiCo5Q4pA0L
qgNX0ffsgbbqpTUdvivDMCvbNlksVylosMwePiWtv0LrFqVmaY4t0pqqC4qrn8mAJ786G06Dcb85
7bQugji6wTgdZX/17QtQSwMEFAACAAgAvKxbR9kxIjDLAAAA3QEAAD0AHABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLXZpZGVvLXNvdXJjZS1mcm9tLXJlbW90ZS1zdGRlcnIudHh0VVQJAAMkUTBW
JFEwVnV4CwABBPUBAAAEFAAAAKWQMW/CMBCF5+ZX3FiWqCGCUAsxNAxFomJCHVCHi30YC/eM7ItQ
/z0O7dYJZbwnve/dezstMG1gWqm6UbM50DVVVV36oNFDFB3pEqI4tod60Sxev2C54WNYKfDB2ixD
EoySyrIsdg+j1tT1NrMSyQelhJa2v9S3bDoryEZPZgx4eK4NfHS2jygu8KeTUxu+L56G6x3ZeIoK
WtQnMvACxNjlTOhQn4lNGtdqnygOe62dFvWPreC5eJqMSmDzN9y9FwrZEH8yl3vvJ8UNUEsDBBQA
AgAIAL2sW0fagC7TgwAAAMAAAAA6ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC12aWRlby1z
cmMtZnJvbS1yZW1vdGUtc3RkZXJyLnR4dFVUCQADJVEwViVRMFZ1eAsAAQT1AQAABBQAAACdzLEK
wjAQgOG9T3GjLkIaJDWIS10cpIKDgjjE9IwH4SLJVfHtja/g+vPzDV6gNdAqq41dGsB3UUovYvIu
Qhaf8ZmyEIeL7ky3usJ6i7cpbCwU5HGPpbiAJ5JH7wRDyh8LM55inDfD3zIxyY88Vp0S7/ieLJwP
PfjEjF5qq8/LRRqbL1BLAwQKAAAAAAC2rFtHAAAAAAAAAAAAAAAAIQAcAGh0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L1VUCQADGFEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
tqxbR0eWnn3iAAAAPgQAAE4AHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNl
Y3VyZS1hdWRpby12aWRlby1pbi1tYWluLWZyYW1lLXN0ZGVyci50eHRVVAkAAxhRMFYYUTBWdXgL
AAEE9QEAAAQUAAAA7ZJBSwNBDIXP7q/IUS/idgtbhuLB7UGhpYKIgvSQnUmnQ8ekzGQV/72z4s1b
67HHwHvfIy9ZW4VJC5PaNK2ZToE+c10311EsRkhqEx0kaWD/1szaWbuB+YL6wd8ayKQryhk9LcX7
orgrpr2BYozkqvXxYMWknfA2+CGhBuGXoLtO3g+Rxuke2UVKBjq0O3JwA8TYl0zo0e6JXT4lnPQ5
U3rgrSyCVfOHbeCyurg6LeHc21EJ7H6L+9kLlbykr8LlIcYz+b/IgYOOyKdCL18zXtTA62MHVpjJ
jp9UNB8Yg6u+AVBLAwQUAAIACAC2rFtHEpcFT4MAAADAAAAAQgAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUCQADGFEw
VhhRMFZ1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLkKaQkoQl7o4SAUHBXGI6RkD4U6Sq+Lb
G1/B9efnG71Aa6BVVhvbdYDvopReJfYuQRaf8clZIoWL7k1vrrDe4m0OGwsFadpjKS7gKcpjcIKB
88fCguaUls34txwpyo88Vj0y7ejOFs6HATwToZfa6vNyKU7NF1BLAwQUAAIACADHrFtHzj3OY7gA
AAAnAQAAPwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvdmlkZW8tcG9zdGVyLWNyb3NzLW9yaWdpbi1j
cmFzaDItc3RkZXJyLnR4dFVUCQADNVEwVjVRMFZ1eAsAAQT1AQAABBQAAACVjr0OgkAQhHufYkst
hDsgEa8jEkNhYQhWxgJhkYtw4P2Y+PauwRgTK7PNTGYm+x0DLsJY8NDjQXiCrCj2Od4cGguNvGTW
jm+byjrHCuUdczTjoAxuyq47l9VVgJ6CGlrqk5tyiFgEc9R60LDkwTqMF9CQfpWE7/Ng5TE6LmLG
mG+wclrah68GhcZVrdeP0ez4hRf94pFNXT9upSq7Q75LFDH2g8WkronCCCgnAZ9nNKMuON39xfEE
UEsDBBQAAgAIAMusW0dgS2YQkQAAAPsBAABFABwAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVO
SUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRlcnIudHh0VVQJAAM+UTBWPlEwVnV4
CwABBPUBAAAEFAAAAO2OMQ6DMAxFd07hC4QEllaZYejSngEFUyKZJLKdCm5fOvQGHau/vq/3Qt5K
pEljToDMmT0skRBW1eKt7fpL6851/uqcs4KhctTD7iJmGO+3cTC7kJlzqBsmNV/gwfEZU7tvBBQT
Qg9I+CFA9CCUFVGb8+lfyHK6PeREB3StgwUnrYwCEyNILSWz4tyEf+iPQ99QSwMECgAAAAAAt6xb
RwAAAAAAAAAAAAAAABMAHABodHRwL3Rlc3RzL3N0b3JhZ2UvVVQJAAMaUTBWclMwVnV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAC3rFtHqw9xHrAAAADuAAAARQAcAGh0dHAvdGVzdHMvc3RvcmFnZS9j
YWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtc3RkZXJyLnR4dFVUCQADGlEw
VhpRMFZ1eAsAAQT1AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+n
Uadu83jfg0myLM003MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcq
KXNVoj23XuUcpMIpHVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oL
lLZ5RRNe/Otkeg3mY3M9aZ17aekO83j2BlBLAwQKAAAAAADGrFtHAAAAAAAAAAAAAAAAGgAcAGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvVVQJAAMzUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACADGrFtHfn/tF7EAAAABAQAAQQAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1i
bG9iLWNvbnRlbnQtdHlwZS1hc3luYy1zdGRlcnIudHh0VVQJAAMzUTBWM1EwVnV4CwABBPUBAAAE
FAAAAGWNsQrCQBBE+3zFVqKgHjaCB1YmglgoiZhCLC7JKoe522OzUfx7DQRULGd4My9J012qYePv
prYVrMgLepkcngHHYPs2GDYOBRneucVppI5Utw4bFRsxKskzlWOxtaIyarnELq2IUYXayIXYKY/y
IL6pveEGq97SSaZlCMPZYj4CDQVRDf1U69ChX+SwJN8I5Ie11pmw9VcYjCHFEu0duSNgMILTT7H8
3MWtc88//Tl6AVBLAwQUAAIACADGrFtHfn/tF7EAAAABAQAAQAAcAGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5jLXN0ZGVyci50eHRVVAkAAzNRMFYz
UTBWdXgLAAEE9QEAAAQUAAAAZY2xCsJAEET7fMVWoqAeNoIHViaCWCiJmEIsLskqh7nbY7NR/HsN
BFQsZ3gzL0nTXaph4++mthWsyAt6mRyeAcdg+zYYNg4FGd65xWmkjlS3DhsVGzEqyTOVY7G1ojJq
ucQurYhRhdrIhdgpj/Igvqm94Qar3tJJpmUIw9liPgINBVEN/VTr0KFf5LAk3wjkh7XWmbD1VxiM
IcUS7R25I2AwgtNPsfzcxa1zzz/9OXoBUEsDBBQAAgAIAIOtW0c1E8aamQUAABEQAAAKABwAaHR0
cGQuY29uZlVUCQADlVIwVm5TMFZ1eAsAAQT1AQAABBQAAACtV21v2zYQ/q5fQbgwsBWTnLhx5xVB
ANdxmixJnVlOAyxJDVqiJNYSqZFUYnvrfvuOlOUXydECbDZgi8fnuTsej8eTS8QTESPOFWq0Mika
lnWdKTJHAY3Jh5ZK0tYdmV5SZd1Q/wxkANsIW5FSqe+k1G9YrscF+cixeBEmNWKqEWBlTBPCM4Xe
HRxYl4SkvZg+ETRk1jWer8cj8kdGpJLocBtVUA874CxlbooFcc06AKj5O5KO5Sos1A5gpfeOi5mR
dQ60tM8ZI56inMkbIvoRjX1tGD6WdcWxf839DFaWMTr3J0k+iOmUzInXwin2ItJugXhiAI7kaJuF
PY9IOfF4kmJVx94BgpYdJZmK2ESHsVbDGrWHvnwVffkyPeJS/Ttdo0p0yrw482tNryAlYsxDcIcF
NKzjblAlekSwD7tcx11BSkQp4zoSTJcICSRmHUPPl2Mqaa1ner5E8UJax4DpEoGRkCuKdWLXEbdg
WsGb7a1LcEgSnNbu3QpTXmB+oOoz3kDKxJjiepoGlEiCPAuqajdhBSkR0yjtFKzVp0yGsUZpopVX
k884Ieiw/bNzAN9Dyzo+pQIKCBcL1DqxtI5hapaGLpgPuiQ643HMn91FckXZTKLrLFb0CyXPEg3A
VP/TBSDNEZCG3tPoIVgS1Cd6lCsVkKwQH5j7ySdssYGiQPBEz1jHrbUvJ5bVMzVF12XjshOpvMqA
y1oo0d+o8fXB+eH+PHq8H6vHv+5P/cd7Vz5O9M+PjZOX7Z7Cw8aslriQQjJYGHePW0Y/uHArSR8z
zqiHY+MElPpzKBIMnq84n2WpRMMg0JU2vCJPJEbPWDDLGgjBBch2LxSipfrIO2quGoZ0xkWC4RZr
RqgZo2aGmgo9NJrioYGaJxI1p3r054gERBDxnYJYj8EtYfdCwpQWNRCU3SllxH+dxuapYSSc7eA3
VpB9gpq3DchLI9hFGds4t91A5qHILJeGDKtMmDBZxxdBUWHWee+dQHAL+UkZYyqNl29bz/evMAsz
MIB8jBx/VhGzGDksrogJQw5hVbECMamIA4GcQFRNQr75VTRssEOqJiOdnWt0P8JCgrkLd2h3u51f
7C5yqOT5Y4VLwS9oVMrib7Dmb3ifyvZBu23/egPTVFZoM1jOTLxIuxwZV+xZdcUMwsaqYWMcxLwi
TiEQKX9xxe3cTFoNVQrLTdUesT0Vegb+KpOxWiInzipyD2Lk4eomSdikamjkE3LkU1UJoD3Q71UZ
IkOOqJpdRvb4Djnwp57LEfhIw05RipFTjJwpPJShdxefT4d3rn3Y7hyC+dQ8lEH9m+7792t9Xgqj
F4OuTZmwb3wuMJfDi649KtTMOO3alSS57buwbwUm82R7H+JoG3FUQYzPINvXCBV0LQPZPefbd/bq
uOtPEeAbQTlcdgt9kuHowzEHzXBOfXP+4LzA2YA8h8yELIR8ynMHNkvnCeQE7D/s9WpvdsrNytvx
IoWbOk1jKOvaidbchmYbOSpcrjED5nGfshDNbd3UCrh3kPP7ntlwSVPkhMtd+jlmfgz3DvQ1tvQE
1WkPz5Dh8a4b8Nai3zQSOE9S/5UVSFNZ7VTH1y8wVRDzbSxtKk1rVldjTTOwqbF7QmFee2zAgbNR
+jrgFKvXAG3JM+ERo1juywyfiu2MWHcDphOBXhx+HROs/LHwr7LJMDEJYhyaLtxcuxJxtjslIy7U
hKeETRQMYbombEX/tXJulA8HLIRrV992W0J4IfMR3KaD324H7nhyPRifD0+/o6/jUa8/2AaOtHLn
LbLR/dljyfgXKlSGY91roLcfukdH73LDe1s4M+Febbw5bm3xQd0b6w3qwZYQW6bEowH1zJuyXEhF
EpQKrvI3SAeQq96qIaTw/o8Waqu91A2b8/bBeXB0/+QH8CL7Xyxs9Yr/AFBLAwQKAAAAAADVrFtH
AAAAAAAAAAAAAAAACQAcAGltcG9ydGVkL1VUCQADUVEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAA1axbRwAAAAAAAAAAAAAAAA0AHABpbXBvcnRlZC93M2MvVVQJAANRUTBWclMwVnV4CwAB
BPUBAAAEFAAAAFBLAwQKAAAAAADVrFtHAAAAAAAAAAAAAAAAIAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvVVQJAANRUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADVrFtH
AAAAAAAAAAAAAAAAJQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9VVAkA
A1FRMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANisW0cAAAAAAAAAAAAAAAAvABwAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9VVAkAA1dRMFZyUzBW
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANesW0cAAAAAAAAAAAAAAABAABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L1VUCQAD
VlEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA8axbRwAAAAAAAAAAAAAAAE8AHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvVVQJAAOFUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADV
rFtHf6FugMQAAACMBAAAZwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5LXN0
ZGVyci50eHRVVAkAA1FRMFZRUTBWdXgLAAEE9QEAAAQUAAAA7ZAxiwIxEIVr/RVT3jXi7gpqkCtu
Le5AsRILsZhNxhg2N5FklsN/bxQ7O60Ey4H3vo95Ky1QjqEsVDVRowLoPxVFNfBBo4coOtIxRHFs
t9VkPK12MJtT09kvBYlkSSmhpUWwNie+c6lVkIueTH/1OFgwSh1472wXUVzgjZNDHf6Oni7XD7Lx
FBXUqA9kYAjE2GQnNKhbYpOekZOsE8Vf3oe506Lu2Ao++r3P5wzv3R4ysLkNd/0LhWyIp8zlzvs3
+fXJZ1BLAwQUAAIACADVrFtHmuDXzPAAAABkBQAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9l
dmVudF9jYW5wbGF5X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQADUlEwVlJRMFZ1eAsAAQT1AQAA
BBQAAADtk8FKAzEQhs/2KeZoL+LuFlqDeHB7sFCpIKIgPcxmp2loOinJrOLbOyue9KSlqOAxYeab
P1+YhRUox1AWppqYUQH0nIuiOgnRYoAkNtEuJvHsHqvJ+KxawvmUms5dGMjE7TXljI7uvaxrFHIx
vRg45i6E4WDxbbJnLz3yVuk+8oxX0cDDTQ02MpMVvdOaJwy+/TClPFj+8hfml/f48+icVlxq08aA
NgbaCyyYpI688q5L2Kd98xO3u0D96Qq5DZQM1GjX1MIpEGOjM6FBu1Greb9X3WVKvbOpt2I+sfV/
BkfDf28/4O1Q+/IXyV/Z8VdQSwMEFAACAAgA1qxbR8MJqg7zAAAADAYAAG4AHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvZXZlbnRfY2FucGxheXRocm91Z2gtc3RkZXJyLnR4dFVUCQADVFEwVlRRMFZ1
eAsAAQT1AQAABBQAAADtlMFKAzEQQM/2K+ZoL+JuCq1BPLg9WKhUkKIgPcxmp2lonJRkVvHvzRYv
4qkuIpQeM8y8mbwwWRiBcgxlodVEj0qg91QU6sIHgx6imEi7EMWxfVGT8ZVawfWU6tbeaEjEzT2l
hJaenGwqFLIhfmg459b74WDxjawOIDt20iEfM90FnvE6aHh+qMAEZjKSYznnDb1renRJJF/jz4O1
OeM2F2015EJPvcCCUarAa2fbiN20ez/hdeepO90hN56ihgrNhhq4BGKsc0+o0Wyz1dTvVstEsXM2
dUb0D3Z+n8HZ8OTtH7z91b6cyL8nj46cfMhf+glQSwMEFAACAAgA16xbR+2WR8LxAAAA/gQAAHkA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheXRocm91Z2hfbm9hdXRvcGxheS1z
dGRlcnIudHh0VVQJAANVUTBWVVEwVnV4CwABBPUBAAAEFAAAAOWTwUoDMRCGz/Yp5qgXcbtdWoN4
cHtQUCqIKBQPs9lpGhonJZlVfHtnxZOeZFkUPCbMfJn5P7KyAtM5TAtTLsxsBvSai6I8DtFigCQ2
0T4m8ezW5WJ+Wj7B2ZKazp0byMTtDeWMjh68bGsUcjG9GTjkLoSjyeoPkj176ZF3SveRr3gTDTze
1mAjM1nRO615weDbQfPL5/jX0TmtuNCmnQFtDDQILJikjrzxrkvYT/uRT3zeB+pPl8htoGSgRrul
Fk6AGBt9Exq0O001D9vqPlPqM1t6K+YbW/1MDr7aqUbzXo1lpPpNI9W/MTIW+Sd//B1QSwMEFAAC
AAgA2KxbR2mIznrwAAAADAYAAGoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVk
ZGF0YS1zdGRlcnIudHh0VVQJAANXUTBWV1EwVnV4CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5mgv
4nbV1iAe3B4UlAoiCuJhNjtNQ+OkJLNK376z4klPawUve0yY+ebPF5KFFZhMYVKYcmZOToE+clGU
RyFaDJDEJtrEJJ7dSzmbnpevcDGnunWXBjJxc0c5o6MnL6sKhVxMWwOH3IYwHi1+TfbspUM+KN1H
vuFlNPB8X4GNzGRF97TmHYNvvk0565VfvuLfRue04kqb1ga0MdBeYMEkVeSld23CLu2nn/i2CdSt
rpGbQMlAhXZFDRwDMdY6E2q0a7Wa9zvVY6bUOZt7K+YHW+9ndDAevP2Dtz7vZSAP5L8g9/lLd1BL
AwQUAAIACADYrFtHMFRXp+0AAACkBAAAdQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9s
b2FkZWRkYXRhX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQADWFEwVlhRMFZ1eAsAAQT1AQAABBQA
AADtk0FLA0EMhc/2V+RoL+J2C7sOpQe3BwVLBREF8ZCdTadDx6TMZBX/vbPizZMuigePCcn3Mu8x
G6swq2BWmLI28wroJRVFeRLEYoCoNtJBonp2D2VdnZWPsFhR27ulgUTcrSkldHTnddegkpP4auCY
+xCmk823yZ69DsibTPfCl7wVA/fXDVhhJqu5l2eeMfhuhEoi/Tj/SpzLE+d5aW8gLwYaBVaM2ghv
vesjDte++yNPh0BDdYHcBYoGGrQ76uAUiLHNmtCi3WdX07hX3SaKg2crb9V8Yud8JkfTUQo/lft/
Ir+RSP0nyF/5429QSwMEFAACAAgA2axbR8E4gSzwAAAApAQAAG4AHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvZXZlbnRfbG9hZGVkbWV0YWRhdGEtc3RkZXJyLnR4dFVUCQADWVEwVllRMFZ1eAsAAQT1
AQAABBQAAADtk0FLA0EMhc/2V+RoL+J2C90O4sHtQcFSQUSheMjOptOhY1Jmsor/3lkRPHjSpdCD
x4Tke5n3mJVVmMxgUpiyMtMK6C0VRXkWxGKAqDbSXqJ6duuyms3LZ7hYUNO5SwOJuF1SSujo0eu2
RiUn8d3AKXchjEerP5M9e+2R95nuhW94Iwae7mqwwkxWcy/PvGLw7QCVRPp1/q04lyeu8tLOQF4M
NAisGLUW3njXReyv/fRHXvaB+uoauQ0UDdRot9TCORBjkzWhQbvLrqZhr3pIFHvPFt6q+cHO+YxO
xoMUDpX7fyLfCvODJXIc5N/88Q9QSwMEFAACAAgA2axbR3rFbZbwAAAApAQAAHkAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvZXZlbnRfbG9hZGVkbWV0YWRhdGFfbm9hdXRvcGxheS1zdGRlcnIudHh0
VVQJAANaUTBWWlEwVnV4CwABBPUBAAAEFAAAAO2TQUsDMRCFz/ZXzNFexO0qbYP00O1BQakgolA8
zGanaWiclGRW8d87K17E07p4EDwmzHzv5T2ytgKTKUwKU87M2RzoNRdFeRKixQBJbKJDTOLZbcrZ
dF4+wcWK6tYtDGTi5oZyRkcPXnYVCrmY3gwccxvCeLT+Mdmzlw55p3Qf+Yq30cDjbQU2MpMVvdOZ
Fwy++apyftrLv3zav47O6cRSl/YGdDHQILBgkiry1rs2Yef2I5/4fAjUnS6Rm0DJQIV2Rw0om7FW
TajR7jXVPOxV95lSl9nKWzHf2NrP6Gg8SKFH7/+N/PFGfovc54+/A1BLAwQUAAIACADarFtHIH22
/uwAAACkBAAAaQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2Fkc3RhcnQtc3RkZXJy
LnR4dFVUCQADXFEwVlxRMFZ1eAsAAQT1AQAABBQAAADtk8FKAzEQhs/2KebYXsTtIq2heHB7qGCp
IKIgPcxmp2lonJRktuLbOyue9LT2IEiPCTPf/PnCrKzAeALjwpRTc3kB9JaLojwP0WKAJDbRPibx
7F7K6eSqXMNsTnXrrg1k4mZJOaOjJy/bCoVcTO8GhtyGMBqsfk327KVDPijdR77lTTTwfF+Bjcxk
Re+05oDBN9+mFL3yy1f8u+icVtxo086ANgY6CiyYpIq88a5N2KX99BNf94G60wK5CZQMVGi31ICq
Yax1JtRod2o1H/eqx0ypczb3VswPtv7P4Gx08vYH3vrsy38n99nxD1BLAwQUAAIACADbrFtHLLqv
V+oAAACkBAAAdAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2Fkc3RhcnRfbm9hdXRv
cGxheS1zdGRlcnIudHh0VVQJAANdUTBWXVEwVnV4CwABBPUBAAAEFAAAAO2TwUoDQQxAz/YrcrSX
4u4grYN4cHtQUCpIURAP2dl0OnTMlJms4t+bFW+edPUiHhOSl8wbsnIC9RzqypqFPa6BXkpVmVlM
DiNkcZn2KUtg/2AW8xPzCKdLant/ZqEQd9dUCnq6C7JtUMin/GrhkPsYp5PVt8mBgwzIW6WHxJe8
SRbubxpwiZmcaE5rnjGGbsSUQvKx/lXyXivOtWlnQRsjjQILZmkSb4LvMw7bvvtJT/tIQ3SB3EXK
Fhp0W+rgCIix1ZnQotup1TLuVetCeXC2DE7sJ7b+z+Rg+u/tR7yZX7uXv07+yo2/AVBLAwQUAAIA
CADcrFtHXG0O3/QAAABmBgAAfAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9j
YW5wbGF5X2NhbnBsYXl0aHJvdWdoLXN0ZGVyci50eHRVVAkAA19RMFZfUTBWdXgLAAEE9QEAAAQU
AAAA7ZRNSwMxEIbP9lfM0V7EbSytoXhwe1BQKohUkB5ms9M0NE5KMqv4781KT+2pH+Bljwkzz7x5
QjIzAoMRDAqtxnqogL5TUagrHwx6iGIibUIUx/ZDjUe3agGTKVWNvdOQiOtnSgktzZ2sShSyIf5o
uOTG+35vdjTZsZMW+ZrpLvAjL4OG95cSTGAmI3kv13yhd/XOlJuD8ss2/lOwNlfc56a1htzo6SSw
YJQy8NLZJmKb9s9P+Nx4alcPyLWnqKFEs6IaroEYqzwTKjTrbDWddqq3RLF1NnVG9B4730/vot95
+wdvh7yXjtyRz0E+/i8dnjH/L1BLAwQUAAIACADcrFtHkpWIavYAAAAMBgAAdQAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9jYW5wbGF5X3BsYXlpbmctc3RkZXJyLnR4dFVUCQAD
YFEwVmBRMFZ1eAsAAQT1AQAABBQAAADtlMFKAzEQhs/2KeaoF3G7dFuDeHB7UFAqiCiIh9nsNA2N
k5LMKr69s+JJT3UVPfSYMPPN5P8gCyswnsK4MOXMTCZAL7koysMQLQZIYhNtYhLP7qGcTY/LRziZ
U9O5UwOZuL2inNHRnZdVjUIuplcD+9yFcDBafJvs2UuPvFG6j3zBy2jg/roGG5nJit5pzTMG3w6Y
kkk+1r+MzmnFmTatDWhjoEFgwSR15KV3XcJ+2/d84tMmUH86R24DJQM12hW1cATE2OhMaNCuNdU8
7FW3mVKf2dxbMV/Y6me099lO9Wve/wt5C9fVX7qudq535B8kb/OXvgFQSwMEFAACAAgA3axbR/6L
DZXwAAAADAYAAH8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfb3JkZXJfbG9hZGVkbWV0
YWRhdGFfbG9hZGVkZGF0YS1zdGRlcnIudHh0VVQJAANhUTBWYVEwVnV4CwABBPUBAAAEFAAAAO2U
QUsDMRCFz/ZXzNFexO2iW4N4cHtQUCqIKBQPs9lpGhonJZlV/PfOiic9rXsq9Jgw872X9yBLKzCr
YFaYcm7OzoE+clGUJyFaDJDEJtrFJJ7dqpxXF+UrXC6o6dyVgUzc3lPO6OjZy6ZGIRfTp4Fj7kKY
Tpb/Jnv20iMfle4j3/I6Gnh5qMFGZrKidzrzjsG3v1SqQf7lx/5ddE4nrnVpa0AXA40CCyapI6+9
6xL2br/ziW+7QP3pBrkNlAzUaDfUwikQY6Oa0KDdaqp53KueMqU+s4W3Yv6wtZ/J0XSUwpDeD43s
dyMH8n6Th/ylX1BLAwQUAAIACADgrFtHGHwjjvMAAABmBgAAeAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9vcmRlcl9sb2Fkc3RhcnRfcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUCQADY1EwVmNR
MFZ1eAsAAQT1AQAABBQAAADtlMFKAzEQhs/2KeZoL+J2kW6DeHB7UFAqiChID7PZaRoaJyWZVXx7
Z8WTglAretljwsw3f76QLKzAZAqTwpSVOamAXnJRlEchWgyQxCbaxiSe3WNZTWflEk7n1HTuzEAm
bq8pZ3R072Vdo5CL6dXAIXchjEeLH5M9e+mRt0r3kS95FQ083NRgIzNZ0T2tecbg209TZjvll4/4
V9E5rTjXpo0BbQy0F1gwSR155V2XsE/77ic+bQP1qwvkNlAyUKNdUwvHQIyNzoQG7Uat5v1OdZcp
9c7m3or5wtb7GR2MB2//4G2X9zKQB/JvkP/qL/0+/xtQSwMEFAACAAgA4axbR0Ijz1DyAAAAZgYA
AGUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGF1c2Utc3RkZXJyLnR4dFVUCQADZVEw
VmVRMFZ1eAsAAQT1AQAABBQAAADtlLFOAzEMhmf6FB7bBfV6Q2mEGLgORWpVJIRAQgy+nJtGDU6V
+EC8PT7ExtYDtUPHRPbnP1+UrK3AZAqTwpQzMx4DfeSiKC9DtBggiU20j0k8u5fyajorX+F6TnXr
bgxk4mZFOaOjJy/bCoVcTJ8GhtyGMBqsDyZ79tIhH5TuI9/xJhp4vq/ARmayonta847BNz2mZJKf
+MvonFbcatPOgDYG6gUWTFJF3njXJuzSfvuJb/tA3WqB3ARKBiq0W2pA2Yy1zoQa7U6t5n6nesyU
Omdzb8X8Yuv9DC5GZ29H8PZf7+VUyMWZfHLkw//Sv8z/BVBLAwQUAAIACADirFtH/FDRe+wAAACk
BAAAcAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wYXVzZV9ub2F1dG9wbGF5LXN0ZGVy
ci50eHRVVAkAA2dRMFZnUTBWdXgLAAEE9QEAAAQUAAAA7ZPBSgMxEIbP9inmaC/S3T3UBvHg9mCh
pYKIgniYzU7T0DhTktmKb29WPOlp7UEoHhNmvvnzhVlbhXIKZWGqmZkUQG+pKKqLIBYDRLWR9hLV
s3uuLqez6gWu5tR07tpAIm5XlBI6evS6rVHJSXw3cM5dCOPR+tdkz1575H2me+EFb8TA010NVpjJ
ar7LNQcMvv02pRyUX7/iL8W5XHGTm3YGcmOgo8CKUWvhjXddxD7tpx953QfqT7fIbaBooEa7pRYm
QIxNngkN2l22mo571UOi2Dube6vmBzv/z+hs/O/tD7wN2ZdTJw/Z8Q9QSwMEFAACAAgA4qxbR2G3
q4jwAAAAZgYAAGQAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheS1zdGRlcnIudHh0
VVQJAANoUTBWaFEwVnV4CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5thepNsItUF66PbQglJBREE8
zGanaWg6Kcms4tubFW/euuttjwkz3/z5QrIzArM5zAqtFnqqgD5TUahrHwx6iGIinUMUx/ZN3c4X
6h3u1lQ1dqkhEdcPlBJaenFyKFHIhvilYcyN95PR7mKyYyct8inTXeAt74OG18cSTGAmI3kv13yg
d3WHKYnkN/59sDZXrHLTUUNu9NQJLBilDLx3tonYpv3xE05nT+1qg1x7ihpKNAeqYQrEWOWZUKE5
Zqup26meE8XW2doZ0X/Y+X5GV5PBWy/ebv7tvQzkgdwH+fK/tM/831BLAwQUAAIACADjrFtHCXVQ
l+0AAACkBAAAbwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5X25vYXV0b3BsYXkt
c3RkZXJyLnR4dFVUCQADalEwVmpRMFZ1eAsAAQT1AQAABBQAAADtk8FKAzEQhs/2KeZoL6XbVdoG
8eD2oKBUEFEoHmaz0zQ0zpRkVvHtm5We9LT2IIjHhJlv/nxhllZhMoVJYcq5GZ8BvaeiKEdBLAaI
aiPtJKpntypn03n5AhcLqlt3aSARN3eUEjp68rqpUMlJ/DBwym0Iw8Hyx2TPXjvkQ6Z74Rtei4Hn
+wqsMJPVfJdr3jD45suU81759RD/VpzLFVe5aWsgNwY6CqwYtRJee9dG7NJ++pHXXaDudI3cBIoG
KrQbamAMxFjnmVCj3War6bhXPSaKnbOFt2q+sfP/DE6G/95+wVufffnr5D47vgdQSwMEFAACAAgA
5KxbRxKFguXwAAAADAYAAGcAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZy1z
dGRlcnIudHh0VVQJAANrUTBWa1EwVnV4CwABBPUBAAAEFAAAAO2UwUoDMRCGz/Yp5mgv0u2Ca4N4
cHtQUCqIKEgPs9lpGhonJZlVfHtnxZOe1gpe9pgw882fLyQrKzCvYF6YcmFmp0BvuSjKkxAtBkhi
E+1jEs/uuTyrFuUazpfUdO7CQCZubylndPToZVujkIvp3cAxdyFMJ6tfkz176ZH3SveRr3kTDTzd
1WAjM1nRPa15xeDbb1OqQfnlK/5NdE4rLrVpZ0AbAx0EFkxSR9541yXs0376iS/7QP3qCrkNlAzU
aLfUwgyIsdGZ0KDdqdV82KkeMqXe2dJbMT/Yej+To+no7R+8DXkvI3kk/wV5yF/6AVBLAwQUAAIA
CADlrFtHBqnY0PIAAABmBgAAcgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9wbGF5aW5n
X25vYXV0b3BsYXktc3RkZXJyLnR4dFVUCQADbVEwVm1RMFZ1eAsAAQT1AQAABBQAAADtlLFOAzEM
hmf6FB7pgnq9ob0IMXAdigQqEkIgIQZfzk2jpk6V+EC8PT7ExtYD0aFjIvvzny9KVlZgOoNpYcrK
TOZA77koyosQLQZIYhPtYxLP7qWcz6ryFS4X1HTuykAmbu8oZ3T05GVTo5CL6cPAOXchjEerg8me
vfTIB6X7yDe8jgae72uwkZms6J7WvGHw7YApmeQ7/m10TiuutWlrQBsDDQILJqkjr73rEvZpv/zE
3T5Qv1oit4GSgRrthlqYADE2OhMatFu1moed6jFT6p0tvBXzg633Mzobn7z9g7e/ei8n8jGSq6Mg
H/6X/mb+T1BLAwQUAAIACADlrFtH48RMLPAAAAAMBgAAaAAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy9ldmVudF9wcm9ncmVzcy1zdGRlcnIudHh0VVQJAANuUTBWblEwVnV4CwABBPUBAAAEFAAAAO2U
wUoDMRCGz/Yp5mgv0u0e6gbx4PZQQakgoiAeZrPTNDSdlGRW8e2dFS/iaa3gZY8JM9/8+UKytgLz
BcwLU1ZmVgG95aIoz0K0GCCJTXSISTy75/J8UZUvcLGkpnOXBjJxe0s5o6NHL9sahVxM7wZOuQth
Oln/muzZS4+8V7qPfM2baODprgYbmcmK7mnNKwbffp9SzAbll6/4N9E5rbjSpp0BbQx0FFgwSR15
412XsE/76SfuD4H61Qq5DZQM1Gi31IKyGRudCQ3anVrNx53qIVPqnS29FfODrfczOZmO3v7B24D3
MpJH8p+Qh/ylH1BLAwQUAAIACADmrFtH2nnFbOoAAACkBAAAcwAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9ldmVudF9wcm9ncmVzc19ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAkAA3BRMFZwUTBWdXgL
AAEE9QEAAAQUAAAA7ZMxTwMxDIVn+is80gWR3lAaIQauQysVFQkhkBCDL+emUVOnSnxU/ff4EBsb
J6QOjLbs7znvKWsnMJnCxNhqZo0BOhZjqquYHEbI4jIdUpbA/q26mc6qd7idU9P5OwuFuH2gUtDT
S5BtjUI+5ZOFS+5iHI/WvyYHDtIjn5QeEi95kyy8PtbgEjM50Z7OfGAM7QCVQvJ9/ip5rxP3urSz
oIuRBoEFs9SJN8F3Gftrv/xJ+0Okvlogt5GyhRrdllq4BmJsVBMadDt1tQx71XOh3Hs2D07sD7bm
M7oYD1L4q9z/Ezm/RM7hj38CUEsDBBQAAgAIAOesW0e5jeAT7wAAAGYGAABqABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL2V2ZW50X3RpbWV1cGRhdGUtc3RkZXJyLnR4dFVUCQADcVEwVnFRMFZ1eAsA
AQT1AQAABBQAAADtlMFKAzEQQM/2K+ZoL+JuDrVBPLg9KCgVRBTEw2x2mobGmZLMKv69WfHmSRex
SI8ZZt5MXpgsnUI9g7qyZm6rGug1V5U5iuIwQlKXaCtJA/tHczKbmyc4XVDb+zMLmbi7ppzR033Q
dYNKXtKbhUPuY5xOlj8mBw46IG8LPQhf8kosPNw04ISZnJZYyXnBGLoRXTLp5/hX4n3JOC9FGwul
MNIosGLSRngVfJ9wmPbDjzxvIw2nC+QuUrLQoFtTB8dAjG3pCS26TbGax93qLlManC2CU/uFXd5n
cjDde/sDb7+1L/+fbPbknSN/55d+B1BLAwQUAAIACADorFtHXGgnGusAAABMBQAAdQAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC9tZWRpYS1lbGVtZW50cy9ldmVudF90aW1ldXBkYXRlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVU
CQADc1EwVnNRMFZ1eAsAAQT1AQAABBQAAADtk8FKA0EMQM/2K3K0F3G7ldpBPLg9KFQqFGlBPGRn
0+nQMSkzWcW/d7Z489ZVvPQ4Q/KSvJCFVRhNYFSYcmqKMdBHKoryIojFAFFtpL1E9exeyuvJtHyF
mxnVrbs1kIibR0oJHa28bitUchI/DZxzG8JwsDia7Nlrh1xmuhd+4I0YWD9VYIWZrOa/HPOOwTc9
qiTS7/bn4lyOuMtJOwM5MVAvsGLUSnjjXRux6/bgR972gbrXPXITKBqo0G6pgUsgxjrXhBrtLltN
/aZ6ThQ7ZzNv1fxg5/0MzoYnb//g7a/u5UQ+nnz1i+QvUEsDBBQAAgAIAOisW0csucV+igAAAIAB
AABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3ZvbHVtZWNoYW5nZS1zdGRlcnIudHh0
VVQJAAN0UTBWdFEwVnV4CwABBPUBAAAEFAAAAM3OsQoCMRAE0N6v2FIbIRfkvCA2Z2MhJ1goiEXM
7cWFsJFkT/Hvjb+gje0wvJnOCVQ1VMroxqgF4DMrpechOhsgiUt4j0mI/Vkv60ZfYLXB6+jXBjJy
v8Ocrccjya21gj6ml4EpjyHMJt3XMjHJhzwUnSJveYgGTvsWXGRGJyUrnYcN1P+w8h//31BLAwQK
AAAAAADVrFtHAAAAAAAAAAAAAAAAWgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9pbnRlcmZhY2Vz
L1VUCQADUVEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA1axbRwAAAAAAAAAAAAAAAGQA
HABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVk
LWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svVVQJAANSUTBWclMw
VnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADVrFtHJAFJUMsAAADdAQAAeQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9hY3RpdmVDdWVzLXN0ZGVyci50eHRVVAkA
A1FRMFZRUTBWdXgLAAEE9QEAAAQUAAAApZAxa8MwEIXn+lfcmCwmtgMxomSIPaTQkKlkKB3O0kUR
UU5BOlP67yun3ToVj/fgfe/eO2qBegN1pZpWrSugz1RVTemDRg9RdKR7iOLYvjdtu9p8wPMLn8NW
gQ/WZhmSYJRUlmVx/Deqp2G0mZVIDpQSWnr9oe6y6aogGz2ZOeDpuS7w2dkxorjAJyeXLtzunqZr
j2w8RQUd6gsZWAExDjkTBtRXYpPmtXpLFKe9eqdF/WErWBRPy1kJbH6He/RCIRviV+by6P2y+AZQ
SwMEFAACAAgA1axbR9i4ma2DAAAAwAAAAHUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJm
YWNlcy9UZXh0VHJhY2svYWRkQ3VlLXN0ZGVyci50eHRVVAkAA1JRMFZSUTBWdXgLAAEE9QEAAAQU
AAAAncyxCsIwEIDhvU9xoy5iGqEhiEtdHKSCg4I4xPSMB+EiyVXx7Y2v4Prz8w1eoO2gVVYbu1KA
76KUXsTkXYQsPuMzZSEOF23MsrvCeou3KWwsFORxj6W4gCeSR+8EQ8ofCzOeYpw3w98yMcmPPFad
Eu/4niycDz34xIxeaqvPy0Uamy9QSwMEFAACAAgA6axbR0OH1LnfAAAA5AMAAHcAHABpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQv
bWVkaWEtZWxlbWVudHMvbmV0d29ya1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtc3RkZXJyLnR4dFVU
CQADdVEwVnVRMFZ1eAsAAQT1AQAABBQAAADtkTFLA0EQhWvvV0xpGvFyxZlFLLwUBhIiiCiIxdzu
ZLNkMxN25yL+e/fEzi4ptRx473vMe2urMG1hWptmZuoW6CPXdXMVxWKEpDbRQZIG9m/NTTtr3uF2
Tv3g7wxk0hXljJ6W4n1R3BfTzkAxRnLV+nSwYtJOeBP8kFCD8EvQbSf7Q6TxekB2kZKBDu2WHFwD
MfYlE3q0O2KXzwknfc6UFryRebBqfrENXFYXk/MS/ns7KYHdT3Hff6GSl/RZuDzE+NfIgYOOyKdC
L9uOvRt4fezACjPZce+iOWIMrvoCUEsDBBQAAgAIAOmsW0egsdm+gwAAAMAAAABuABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL25ldHdvcmtTdGF0ZV9pbml0aWFsLXN0ZGVyci50eHRVVAkAA3ZRMFZ2
UTBWdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9xoy5CmqFtEJe6OEgFBwVxiOkZD8KdJFfFt7e+
guvPzzcEhbqB2jjbOdMCvosxdpUk+ARZQ8anZCWOF9s2nb3Ceou3KW4cFORxj6X4iCfSR+8Vo+SP
gwVPKS2r4W+ZmPRHHmedhHd8FwfnQw9BmDHo3Obn5RON1RdQSwMEFAACAAgA6qxbR4fRG6vsAAAA
TAUAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGF1c2VkX2ZhbHNlX2R1cmluZ19wbGF5LXN0
ZGVyci50eHRVVAkAA3dRMFZ3UTBWdXgLAAEE9QEAAAQUAAAA7ZMxSwNBEIVr71dMqY14uSK5RSy8
FApKBBEFsZjbnWyWrDNhd07x37sndjZqCGlSDrz3PeYxs7AKkylMatO0pp4Bvee6bk6jWIyQ1Cba
SNLA/rmZTdvmBc7n1A/+wkAmvaWc0dONeF8Ul8W0NlCMkVy1+D9YMWknvAx+SKhB+DHoqpPXTaRx
ukJ2kZKBDu2KHJwBMfYlE3q0a2KXtwknfciUrnkp82DV/GAbOK6OTrZL+H1v7T57a3fe298S2H0X
97UXKnlJH4XLQ4wH8oG8C3LgoCPyvtDLD433beDprgMrzGTHvyqaN4zBVZ9QSwMEFAACAAgA6qxb
RyTR42XtAAAApAQAAHIAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGF1c2VkX3RydWVfZHVyaW5n
X3BhdXNlLXN0ZGVyci50eHRVVAkAA3hRMFZ4UTBWdXgLAAEE9QEAAAQUAAAA7ZPBSgMxEIbP9inm
aC/i7h7qBvHg9qCgtFBEQTzMZqdpaJyUZLbSt3dWvIintQdBPCbMfPPnC7OwAuUMysJUtSlqoLdc
FNVZiBYDJLGJdjGJZ/dcXczq6gUu59T27spAJu7uKWd09Ohl06CQi+lg4JT7EKaTxY/Jnr0MyJXS
feRbXkcDT8sGbGQmK3qnNXsMvvs6pTwflV8+499F57TiWpu2BrQx0FFgwSRN5LV3fcIh7Yef+LoL
NJxukLtAyUCDdkMdKJux1ZnQot2q1Xzcqx4ypcHZ3Fsx39j6P5OT6b+3X/A2Yl/+PHnMjr8DUEsD
BAoAAAAAANasW0cAAAAAAAAAAAAAAABqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmct
dGhlLW1lZGlhLXJlc291cmNlL1VUCQADVFEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
1qxbR69ktxgQAQAAoAIAAJEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVk
aWEtcmVzb3VyY2UvcGF1c2UtbW92ZS10by1vdGhlci1kb2N1bWVudC1zdGRlcnIudHh0VVQJAANT
UTBWU1EwVnV4CwABBPUBAAAEFAAAALWRT0/DMAzFz+xT+AgHqraBLYrQJNYdQAKBNiEO1Q5p6qTV
QjIlqfjz6XEHXDhS4Zst+feen+uyEIyLC5YxxndwRQXV5nq1hSUVaDvE7hFd2zuzQYsy4haTgDp/
W2he6ss513Oe72BlvdpDDp2M4Lw7/8DgIaAG5QeXgM0eVIJyAT9ygK+xKFhGa9JCSCrgwYdEMjXj
vGBk5dZpvxRgvTE0hphkSDHLsj+g1tgMhlgR0z3GKA3efVGPtgXQosV2Cng0V3mnezMEmXrvnvvU
Vf7lYHHsbqRrLQYBlVQdthQUOtmQJjRS7SnfOO2qp4hhzGvdK/rOb7aA09nJ2SQF134Hd7xLJjQ+
vBPXDdb+J/kTUEsDBBQAAgAIANasW0e1zzGCJQEAAG8DAACPABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLW1vdmUtd2l0aGluLWRvY3VtZW50
LXN0ZGVyci50eHRVVAkAA1NRMFZTUTBWdXgLAAEE9QEAAAQUAAAAzZI9awMxDIbn3q/Q2A4NuXMg
F1MCzWVooSUhobQQMjg+nc/ElYPt69evry60S5cOWaLNRnpe6ZUWOkExhiKXopQjAfge81wMnNfK
QUg64MGHZMlsRFnmYgs3c9x1ZiohItWPGKMy+GxTW6mExodPCZfUOXeVLc6QbMmmHrlmuvV0T42X
8LKsQHsi1In/OOdNOVtnm1/+YCxGzOCAanU7W8OUAxrXxXbJnbLOCh2qiGtMEjbDj3FTFs0Ey4kq
h1uYcV97GEKrIpCn6y8MHgI2rNlRAnGSUenHpwdvDGcctSRwocP6FHBSIVWeGmu6oHpbjovwrweH
/etOUe0wSKiUbrHm6ZDUjjVhp/SeTYmnTfUUMfTLmVvNlv5l8yFkF+d5YP+RvwFQSwMEFAACAAgA
1qxbR7/vgjUrAQAAbwMAAI8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVk
aWEtcmVzb3VyY2UvcGF1c2UtcmVtb3ZlLWZyb20tZG9jdW1lbnQtc3RkZXJyLnR4dFVUCQADVFEw
VlRRMFZ1eAsAAQT1AQAABBQAAADNkk1rwzAMhs/rr9BxPawkTUaDGYU1PWyw0dIwNig9uI7imHpy
sZ19/foppafeSneYbjbS80qvtFARxhMYpyIrRJ4BfoY0zUbWKWnBR+Vx73w0pNdZUaTZBu7muO30
VEBAqp8xBKnx1cS2lBG1898CrqmzdjhY/EOyIRN7ZMV04+iRGifgbVmCckSoIv9xzoe0ph6sj/x8
lCY5MzigXN3PKphyQGO70C65U9ZZoUUZsMIoYJ18TZpi3NzmBeZJsoEZ97WDBFoZgBzd/KB34LFh
zY4iZCfj5GcZFY8+PTmtOeOgJYALLdaXgKP0sXTUGN152dtyWIR731vsXw+SaoteQClVizVPhyS3
rAlbqXZsSrhsqpeAvl/O3Ci29JTNhzC4Gl6kcM6B/SX5F1BLAwQUAAIACADWrFtH3KpE+4MAAAAa
AQAAgQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1tZWRpYS1yZXNvdXJjZS9w
bGF5YmFja1JhdGUtc3RkZXJyLnR4dFVUCQADVFEwVlRRMFZ1eAsAAQT1AQAABBQAAADNzLEKwjAQ
gOG9T3GjLkKagiGIS10cpIKDgjjE9EwD4U6Sq+LbG9/C9efnG7xAu4ZWWW1s1wG+i1J6ldi7BFl8
xidniRSu2hilb7DZ4X0OWwsFaTxgKS7gOcrUO8HA+WNhQXNKy2b4QzlSlB95qnpk2tODLVyOPXgm
Qi+11eflUhybL1BLAwQUAAIACADrrFtHpuvL2IMAAADAAAAAeAAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9wcmVsb2FkX3JlZmxlY3RzX25vbmVfYXV0b3BsYXktc3RkZXJyLnR4dFVUCQADeVEwVnlR
MFZ1eAsAAQT1AQAABBQAAACdzLEKwjAQgOG9T3GjLkKSoTaIS10cpIKDgjjE9EwD4U6Sq+LbG1/B
9efnG7yAbkErazqrFeC7KGVWib1LkMVnfHKWSOFq1m1nbrDZ4X0OWwsFaTxgKS7gOcrUO8HA+WNh
QXNKy2b4W44U5Ueeqh6Z9vRgC5djD56J0Ett9Xm5FMfmC1BLAwQUAAIACADsrFtHGBNZHeQAAABM
BQAAcwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19jYW5wbGF5LXN0
ZGVyci50eHRVVAkAA3tRMFZ7UTBWdXgLAAEE9QEAAAQUAAAA7ZMxSwNBEIVr71dMqY14d0XMIim8
FBGUCCIKYjG3O9ks2cyE3TnFf++e2Nkl2F058N73mMfM2io0M2hq085N0wB95rpuL6NYjJDUJjpI
0sD+rb2ezdt3uFlSP/iFgUz6QDmjp3vxvihui2lnoBgjuWp9PFgxaSe8CX5IqEH4Jei2k/0h0jit
kF2kZKBDuyUHV0CMfcmEHu2O2OVTwkmfM6U73sgyWDV/2AbOq7OL0xKm3o5KYPdb3M9eqOQlfRUu
DzFO5In8H+TAQUfkU6GXHxrv28DrYwdWmMmOf1U0HxiDq74BUEsDBBQAAgAIAOysW0dPATUd7QAA
AGYGAAB6ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2NhbnBsYXl0
aHJvdWdoLXN0ZGVyci50eHRVVAkAA3xRMFZ8UTBWdXgLAAEE9QEAAAQUAAAA7ZRBSwQxDIXP7q/I
US/iTIV1i3hw9qCgrCCiIB4ynWy3bE2XNqP4782IN08yLMxhjw3J15f3ICsnUM+hrqxZ2NoAfZaq
MqcxOYyQxWXapSyB/au5mC/MG1wuqe39lYVC3N1TKejpOcimQSGf8peFY+5jPJmtJkgOHGRAPio9
JL7ldbLw8tCAS8zkRGva84ExdKP0y6/8u+S9dlzr0NaCDkYaBRbM0iReB99nHNT++JPed5GG1w1y
FylbaNBtqIMzIMZW/4QW3VZdLeO2eiqUB8+WwYn9w9Z8ZkfTzH2f5EPW+0/k/ECeHPk/t/QbUEsD
BBQAAgAIAO2sW0c6tWFn9AAAAMAGAAB2ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3Rh
dGVfZHVyaW5nX2xvYWRlZGRhdGEtc3RkZXJyLnR4dFVUCQADflEwVn5RMFZ1eAsAAQT1AQAABBQA
AADtlMFKAzEQhs/2KeZoL+LuKrVBPLg9KCgVRBSKh9nsNA2NMyWZVXx7s+JJQSgV9bDHhJlv/nwh
mVuFcgJlYaqpKY+AXlJRVAdBLAaIaiNtJKpnt6hOJtPqEU5n1HTuzEAibq8pJXR073VVo5KT+Gpg
n7sQxqP5PyR79tojbzPdC1/yUgw83NRghZms5r1c84zBt5+mHG+VXz/iX4lzueI8N60N5MZAO4EV
o9bCS++6iH3adz/ytAnUry6Q20DRQI12RS0cAjE2eSY0aNfZatrtVHeJYu9s5q2aL+x8P6O98eDt
D7xt814G8kD+CfJv/aXf538DUEsDBBQAAgAIAO6sW0eE/MlY7QAAAKQEAAB6ABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX2xvYWRlZG1ldGFkYXRhLXN0ZGVyci50eHRV
VAkAA39RMFZ/UTBWdXgLAAEE9QEAAAQUAAAA7ZNBSwNBDIXP9lfkaC/i7kLXDuLB7cFCSwURBfGQ
nU2nQ8ekzGQV/72z4s2TLooHjwnJ9zLvMRurUNZQFqaam3IG9JKKojoJYjFAVBvpIFE9u4fqrJ5X
j3C+oLZ3FwYScbemlNDRndddg0pO4quBY+5DmE423yZ79jogbzLdCy95KwburxuwwkxWcy/PPGPw
3QiVRPpx/kqcyxOXeWlvIC8GGgVWjNoIb73rIw7XvvsjT4dAQ3WF3AWKBhq0O+rgFIixzZrQot1n
V9O4V90mioNnC2/VfGLnfCZH01EKP5X7fyK/kUj9J8hf+eNvUEsDBBQAAgAIAO6sW0cQ+y759AAA
AGYGAABzABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX3BsYXlpbmct
c3RkZXJyLnR4dFVUCQADgFEwVoBRMFZ1eAsAAQT1AQAABBQAAADtlMFKA0EMhs/2KXK0F3G7h7aD
eHB7UFBaEKkgHrKz6XTomCkz2Ypvb7Z4UhBqRS97mxmSL3/+IZlbgdEYRoUpp0YP9JqLojwL0WKA
JDbRNibx7J7KyXhaPsPFjOrWXRrIxM0d5YyOll7WFQq5mN4MnHIbwnAw/zHZs5cOea90H/mGV9HA
46ICG5nJir5pzA6Dbz5VmRykXz7k30bnNOJKkzYGNDHQUWDBJFXklXdtwk7t3p/4sg3U3a6Rm0DJ
QIV2TQ2cAzHWWhNqtBt1NR/X1UOm1Hk281bMF7b+z+Bk2Pv2D74dMi89uSf/Bvmvdun3+t8BUEsD
BBQAAgAIAO+sW0eY6mGegwAAAMAAAABsABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3Rh
dGVfaW5pdGlhbC1zdGRlcnIudHh0VVQJAAOBUTBWgVEwVnV4CwABBPUBAAAEFAAAAJ3MsQrCMBCA
4b1PcaMuQpqhJohLXRykgoOCOMT0TAPhTpKr4tsbX8H15+cbvEDbQausNrY1gO+ilF4l9i5BFp/x
yVkihated0bfYLPD+xy2FgrSeMBSXMBzlKl3goHzx8KC5pSWzfC3HCnKjzxVPTLt6cEWLscePBOh
l9rq83Ipjs0XUEsDBBQAAgAIAPGsW0fBt+zP2AAAAMICAACEABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL3NyY19yZWZsZWN0c19hdHRyaWJ1dGVfbm90X3NvdXJjZV9lbGVtZW50cy1zdGRlcnIudHh0
VVQJAAOFUTBWhVEwVnV4CwABBPUBAAAEFAAAANWQP0/DMBDFdz7FjTCkdtJITbxVVKgDA4rKVDG4
9qWx8J9gX/j8HAojYkMC3fKe3jvpd3duarXtVdNvdl37AsfT6WnAtwULweiuR6L5yx6cHdCge8cB
y5xiwXvt/UWbVwV5DSxM3Ge35tDKFm4x55Shqpt+293ByPqzpITwyWg/pUKq66QUEwUvCgYdyZki
MFzQWrSVSZEwkghona7QY2BXxJjSzflndraHJcwPLmr/PDzuIx8QEuHeWkYsCvQqoG52G8lT8xp3
Ycn+VyB7+X8f/B3733jwB1BLAwQKAAAAAADWrFtHAAAAAAAAAAAAAAAAVQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy90cmFjay9VVAkAA1RRMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANas
W0cAAAAAAAAAAAAAAABjABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVsZW1l
bnQvVVQJAANUUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADWrFtHt6AHX7UAAACDAQAA
ggAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVtZW50L3RyYWNrLWFwaS10
ZXh0dHJhY2tzLXN0ZGVyci50eHRVVAkAA1RRMFZUUTBWdXgLAAEE9QEAAAQUAAAApdA9C8IwEAbg
2f6KG3Up9gMsQRxsBwWlkziIQ5pe09CYlOSKf98URyfpeAfvcx+1IEh3kCYsK1ieA759kmSxtoJr
cCQcjtaRMvKRFUWaPGF/Np09MNBWytAGT9yRj+M4qv+mKmwmGSyPdEXvucTLVz2G0MAgBDW2S+B5
udKaTsnJcVLW3BX1pX2NGufqxE2r0TEoueixhS2g4U2YCQ0XA5rWL7vq5tHN/6qUIPZjM1hHq030
AVBLAwQKAAAAAADXrFtHAAAAAAAAAAAAAAAAUgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtYXVkaW8tZWxlbWVudC9V
VAkAA1ZRMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANesW0e/eIgX3wAAANACAABuABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1j
b250ZW50L3RoZS1hdWRpby1lbGVtZW50L2F1ZGlvX2NvbnN0cnVjdG9yLXN0ZGVyci50eHRVVAkA
A1ZRMFZWUTBWdXgLAAEE9QEAAAQUAAAA1ZAxT8QwDIV3foVHGHppe4GWbCdO6AYGVB3TiSGX+GiE
k5TE5feTo8wwIYG8vGc/S599aBu17pWUq+5GPsNuv38c8G3GzHByLzvm6ctunR3QoHvHAfMUQ8Y7
TXTU5lVBWgYWxpIvbpmDrCVcYkoxQdW0t+v+Ck5Fn0NKCIpG0xgzq76vazGyJ5HR68DOZIH+iNai
rUwMjIEFj1jp2bpYIaE/d3IyF4fv8Yvdzn66d0HT0/CwCeUGHxk31hbKrEAvApq2W9WlmrJWsjAn
+i3O7vp/vTnMRD/x/4k/f4J+AFBLAwQKAAAAAADWrFtHAAAAAAAAAAAAAAAAUwAcAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90
aGUtY2FudmFzLWVsZW1lbnQvVVQJAANUUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADW
rFtHqgWUgIMAAADAAAAAcAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC90aGUtY2FudmFzLWVsZW1lbnQvMmQuY2FudmFzLnJl
YWRvbmx5LXN0ZGVyci50eHRVVAkAA1RRMFZUUTBWdXgLAAEE9QEAAAQUAAAAncyxCsIwEIDhvU9x
oy5CmoIhiEtdHKSCg4I4xPRMA+FOkqvi2xtfwfXn5xu8QLuGVlltbNcBvotSepXYuwRZfMYnZ4kU
rtqYVt1gs8P7HLYWCtJ4wFJcwHOUqXeCgfPHwoLmlJbN8LccKcqPPFU9Mu3pwRYuxx48E6GX2urz
cimOzRdQSwMECgAAAAAA2KxbRwAAAAAAAAAAAAAAADUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL1VUCQADV1EwVnJTMFZ1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAA2KxbRwAAAAAAAAAAAAAAAFEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZS9V
VAkAA1dRMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANisW0d9cADrhAAAAMAAAABgABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy9mb3Jt
LWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUvZm9ybS1zdGRlcnIudHh0VVQJAANXUTBWV1EwVnV4CwAB
BPUBAAAEFAAAAJ3MsQrCMBCA4b1PcaMuQhqxNYhLXRykgoOCOMT0GgPhTpKr4tsbX8H15+frnUDd
QK2Mbs2yAXxnpfQisrMRkriET04SyF/1ul3pG2x2eJ/81kBGGg6Ys/V4DvLorKDn9DEwoynGedX/
LQcK8iNPRQ9MexrZwOXYgWMidFJaeV42hqH6AlBLAwQKAAAAAADprFtHAAAAAAAAAAAAAAAAAwAc
AGpzL1VUCQADdlEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMECgAAAAAABq1bRwAAAAAAAAAAAAAA
AAcAHABqcy9kb20vVVQJAAOsUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADprFtHqw9x
HrAAAADuAAAANQAcAGpzL2RvbS9jYWxsYmFjay1mdW5jdGlvbi13aXRoLWhhbmRsZS1ldmVudC1z
dGRlcnIudHh0VVQJAAN2UTBWdlEwVnV4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewt
yi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B
2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNl
dvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIAOusW0fV
AzwSlgAAALMAAAAlABwAanMvZG9tL2N1c3RvbS1jb25zdHJ1Y3RvcnMtc3RkZXJyLnR4dFVUCQAD
eVEwVnlRMFZ1eAsAAQT1AQAABBQAAAAtjUEOgjAQRfeeYg6gQJFobMKqSFgZY9gZF5UO0lA6Wga9
vmjIX72Xl/xrKuT2IFMRiWx3g6quzxd8TTgytPZRMT8XLKwptXVKO3fXTS/hhPyh0AOGQEGCoUFb
n/eqPP5E8UdVLtUaGjKYb0SSZGtQNDkDnni23mPDwATcIYwY3hgiaClAN3/LOBbpPkrmiXikAafg
Vl9QSwMEFAACAAgABq1bR6sPcR6wAAAA7gAAADAAHABqcy9kb20vZXhjZXB0aW9ucy10aHJvd24t
aW4tY2FsbGJhY2tzLXN0ZGVyci50eHRVVAkAA6xRMFasUTBWdXgLAAEE9QEAAAQUAAAAZc5BC4JA
EAXge79iTqFQbRAR7C3KLhGClp53dQxhnZFxt+jfp1GnbvN434NJsizNNNzIWIfgGXwQAiZoqRLs
kLxxYILn5cNUIXQQrYHYgyFAEZZ4pgp2ocNBHY03KilzVaI9t17lHKTCKR1YUF24Dm5kT7T1KK0Z
8DOZjlXV99Fmu4tBg2V28B1p/RNa9ygNS5f2SHuqC5S2eUUTXvzrZHoN5mNzPWmde2npDvN49gZQ
SwMECgAAAAAAb61bRwAAAAAAAAAAAAAAAAYAHABtZWRpYS9VVAkAA3FSMFZyUzBWdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAOqsW0doiO552gAAAFICAAAfABwAbWVkaWEvYXVkaW8tZGF0YS11cmwt
c3RkZXJyLnR4dFVUCQADeFEwVnhRMFZ1eAsAAQT1AQAABBQAAADNkTFLA0EQhWvvV0ypjeTuisRF
UngpIigRgiiIxdzuZLNkMxN25wz599kTOzvTWA689z3mvZVVaKbQ1Ka9M80E6Jjrur2NYjFCUpvo
IEkD+492NptMP+F+Qf3g5wYy6TPljJ6exPuieCimnYFijOSq1d/Bikk74U3wQ0INwm9Bt53sD5HG
a4nsIiUDHdotOShsxr5kQo92R+zyJeGkr5nSI29kEayaX2wD19XVzUUJ7H6K+/4LlbykU+HyEOP/
JAcOOiLXhV4WGNsx8P7SgRVmsuMqRfOFMbjqDFBLAwQUAAIACAABrVtHwvQhGGIAAABxAAAAKAAc
AG1lZGlhL2ludmFsaWQtbWVkaWEtdXJsLWNyYXNoLWFjdHVhbC50eHRVVAkAA6JRMFaiUTBWdXgL
AAEE9QEAAAQUAAAAFcvBCcMwDAXQu6f4E3SA3gqhEOgxCyi2kghUCyS5pds3ub/3fMyvOxZ5c4ON
xJckpe/YzNEtZftN1hlpWBmVVLmVhSMDeVBC+odUGs4uhPCK4YpmHNeGcwy9FKpTHLdSyh9QSwME
FAACAAgAAa1bR0gtEgwIAQAADAIAACYAHABtZWRpYS9pbnZhbGlkLW1lZGlhLXVybC1jcmFzaC1k
aWZmLnR4dFVUCQADolEwVqJRMFZ1eAsAAQT1AQAABBQAAAC1jk1Lw0AURff5FXdXJZ0MxS5EKERN
ClKxQkLrdpp5bQenGZl5049/b0y7cFNw4+rx4Nx7rhACcuFs3FGQhWIly2Ull7SaGb6cp2islgWt
4kZadXKRBVNg4SlEy0HuSBslTbtX1mjRfyJ6KxqvwlbQ8YsaJp3xkZM0Tf/XphqOyvauPIcYDe+R
joZj5HmSTh9fXh9Qmy6DrhYHZdi0G6ydR+vYrE+FawnssCI0ylrSCerOHcBbxbg40TsRfIPOC+0o
/MRxHthR6KdkCRJRfryXz3VZ4EZFbVxG3jufNU4TJhMMxoNbzGe/sb3R9Afs3NYSH5z/rFjxGby7
0ncdfCswn6Iuq7qb+w1QSwMEFAACAAgAAa1bR0/UB9F/AAAA5QAAACoAHABtZWRpYS9pbnZhbGlk
LW1lZGlhLXVybC1jcmFzaC1leHBlY3RlZC50eHRVVAkAA6JRMFaiUTBWdXgLAAEE9QEAAAQUAAAA
hcyxCsIwFAXQPV9xt+qSRddONi6CLTSDa0geNBgTeHmpvy/SxUFxPxxLVSpkcYKYV5diwINCdKjs
0TghFKrIRcBUW3oreHZ10UqZ22RO1gzYuRZi0cRcWPsSCH2P7tjtMV4+1BoD/VfblUmehe+zONnc
4fv2010HjGdYM1ulXlBLAwQUAAIACAABrVtHOKxHIQcIAAAAHQAALgAcAG1lZGlhL2ludmFsaWQt
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
t55sKUgzq61WIJbZe0iX2QdYraL05su375+h1swBTAzPUpO2HTy5Eawj/XQonUUgBw1CK41BFUEE
NesD9ZJglpje+Q3agB60BzkMRjNj68aRo5pDHkH1UG3quJV24AzUjy50fTIb+pgtLyH9dHQE1a8f
1bquSoi1nULUU6JlbqTtguwQrq9hgXaRwN3tP8E7bdUMbOVA2ll/gt//3LwG7p1iRlj43j1z7EUS
iZPPnvWQr9PIb63Q5ZPvODkjPOIOVcJtiIuLYyFt4Lh2OrkrZ9zoGXx22CGt3X4I/PPbqbSYYaX2
E21lcM+DST5Pzc7Hrokvr64y+LslxwxvEG44UJI3HK7jhq1avyJ8l8G0zlSbEu5uoK62dSSiP1BL
AwQUAAIACAAlrVtHDPrk6jYBAAAzAgAALAAcAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5
bGUtZXhwZWN0ZWQudHh0VVQJAAPmUTBW5lEwVnV4CwABBPUBAAAEFAAAAH1RQWrDMBC86xV7sxVS
kxRyzMlxLwWnNG4plB5ka5FEFMlY67b5fSUHQxpKQUgwOzuanWUNBgLSgiDQ2SKQB2EtdCMGMAFE
31uDEjo/DNiRPReseq3qJu+E6604kx78qDRnbLGAUmN3BOMMGWHje9cKJ4EGEdFAgjCw55c6Ny7h
TYLXsIVPI9EXhN80QeF99cFZ9fZUlU21g/y2XFh0ijRst5CtMw77xyvytXRhhVOjUDhR0f3LPZro
NPE60ZPxLlzYt3aLk5dRD7Kg/ZdxKuNzHDp+hnxquDhO6eR8rgfEI8pLTFPk3RgDdenFGK71Q7iy
ppBKf+pHQnlIW8kja2dCkqwsnmIfL6amyfKg2vx+s1nCfPHbUf/Sq+MkvGjjVCqu0Mnyl95qCenM
SvUO9g/QVIeGsR9QSwMEFAACAAgAJa1bR959tGjQCAAA1SIAADAAHABtZWRpYS90cmFjay90cmFj
ay1pbi1iYW5kLXN0eWxlLXByZXR0eS1kaWZmLmh0bWxVVAkAA+ZRMFbmUTBWdXgLAAEE9QEAAAQU
AAAA1Vprc+O2Ff3uX4Gxp7G9Y1KSJTmSvHYna8nTTlInU7tJv3VAEhSxBgmWAG1pm/z3XhAARVKk
rG3kzmR3bT7wOvd57uXsx0jG7PboY0RwAJeYSIz8CGeCyJvTXIbO5BReC7lm5PZoxmjyfIFmL1RQ
SQL0nyMEfyRZSScgPs+wpDyZoYQn5LoY8ngWkMzxuJQ8nqFBukIB3JPg+ui3I72d2cTnjGczdNIf
Tosx954yMqdhaMY97D8vM54ngWOnhhP1t3qQPkFwRgN0EgSBHgt5Ip0Qx5StZyjmCRcp9g3AGGdL
CpAHJEZ9/SrlIFwhR0YYSPRCCkDRoIF0OBy27C9wIhxBMhpWBgX9Qoozqoc6jIRyhvru2L4PqEgZ
hk1oApoxCF9pICNY3O//yeDDQUCTZblSYzOmUXd16xi4NIkAlCynR/yFZA2JxuPxdZeyCdFqcJVN
foCzhFkcMo5BjIwuI1m3nJp1B+JjkMUexUH1VIKI/YbIEnuMOD5hrCalU+xb09JrBNI5hQ2Vq71m
ON0geyS+sl2n0xSL6y7TdBfjs1bv4FD9dKVPWKxSMC/sD6KRC+SqS1PCTniCBsRbq9+ogPqJcf/5
J5xJF0SdhTQT0vEjyoJOxarjHmH9xa7NMhKDaS/eOM+cYdWvHc7x1JSa242t14G3SOpj5mBGlxAb
kreIlRHl6X/BScCIVYfZR6lQPUdEG3Tjz36eCWUaBbsZgdgD6+TWYnBm6Tg6eAp4u1DU/HzbHZYZ
WV83HNMdv2UvrWLkSv6mmt0w43FD2SY/qjOU1h/y2CMZeBOpepd+a4Fvp1HjtdNpLQHacGlLgzaS
R6NRa7qpWr/MMWqjsQ4BHQZlwjd+YNyzzUU03Jo7DU3CqgheiNiacDRJdKplR5JKMxWdCqZRoM0m
xmusILVYhUWOjtZiCPRZPIIcGcHPjnqhAdEYL0nNMjN0WSrcY1hpUU30ITUABoBi7lBT7o1VJqNp
Z+4NSbhJAMqtYMeSHivR3LI0CIP6UjC26J4+JdPrXZxe7mSyTBWHiYpuug6CrQ1QQFj3CjJ9E03v
A3rM05RnEpg2M54MSo1jkkiBPvTgPJzLiGt9azZWxQx4vQQ/9a2ligXFnA7+L+coMBhcophs09mV
dWyVbjBjdxZB6+xLzWUxXjkNeo+hLjCvLvsl7zSPBr3vPKeM7DKka8e04XR5SjRtOq/Ee6bSkZkK
O60JDRy5l+K6IsbICH0iJJa5+JR7wOElH7oqelrhqCWSc+bhrD5ujw4ZKSJ0MxDzL+XbMjkNdRyb
Okrd2mpB3XeXhF2ZY2cpt3GLkK6I3sfk435dJBcXNYgOs20Wf6WQC7KGq5V7fnFoEpAVJKkdom2I
sAKhTS6TjGr0NjFZLFEwTcC2UhOc5/HVm0CvNkAH2oktCemnAqy5LxnMPJaAy8qsdjQNMxxrhI04
qZcRlRi568i027pZQ63JXw3XEwaFI9TMexDT1fR+416GkzsGC0XUx8oyMtguj+vFsdlDq2/bhztL
gsDmWX3MdzYp2FanXx19shzZ6EmuvrUJbRvmjiCpdDsixrqWr+bchGfw+rojyxj5VQkm2g7Xcti4
7rdNYdgjbIZDiLCLreX6fbFJQcgJiHqMfkXH10clEVfou7maYajQeejIdUpatzruRGQmNlrciLAi
QZbFKFbFaAdHncRECFt4dOq5zSyV6HgsEvU+VAgUAwXRC+W5uCvfQDH7hSR3FbJs43lbcjQppkou
KpeD1xaeYHO7eTaeaJLI0HLgXmiMa0CNQ6SKiRpdmLKvo+ir8qyXQ1Ql1bxj+T2gL7OQ+0aHPJcq
X1TDz2N5wSRmCPwlBCzAYAMrSJUsi12ghnmKiD6pZ5h2CfiVDJIjCWOenm1cTaAXilVOln8zPgFg
vYy/gsGhEogwrDVFEZWuKoJKOUZjU8WXpYh5ttlBFbLqp18nUftJp1njxzSALksLpgwkbPPdwihQ
h3GBX0D3oAHS4JVqp7dFdc7AHeqSafPxw7J/iw1O5vN5JaRPJvfz+/F9a36C4rLdixeLRRvqGYlT
yFA145syrTHThVtAWov8xXTSn5i85TOCs38V5YFtBdSbom2K1JSPPfPV7aPwM5qCTTP/5jiSMhWz
Xg9/xit3yfkSFqVUKNct3vUY9UTv879zkq17A3fkXpoHF0pL97M4voV9i/1uUX1nnwfEUTYkrzDv
z2BpZcyb0aSyBECZD4UeD9ZwgXgA3FiIm1PbCajvhdHgtvcz2BNyVm+OJe4tfnns/UK876k0l085
ZUFvTrx82QM/AWU6kkB+heY9Z1L0YhJQ3AN28J/1byg3HA8YS+csB4qXHDNXriRAGtSRVD4EnW6P
FA1613vVuCPwsca4allQ/WuPmQR5JLGzil5/U0Cc3n6TeCK9Bu3BpNvaVIjr6sRB6xzg5tPb++/+
+sMMPVFQiHI59IohYsCvVLuTcEnD9RwiTCUKDxIE+DQJzGZgLBDBXqriVHzv9NYMm7lfrSwRQdvx
tr7e1NVgDzVddqupKfPvA3O5B5hhN5gn8GSTh5WzKuOAYZCfE4GoQDhNGQVzQj+bgZuytXtY9MM9
0I+60S9+Xjw8nfk4UQlcRpAXl9H57/Epc/Gyw4bpoTxvsoe6pjvU9c+fFndPizk6o4lKUE8qWw1c
hpNlrrj55gZ9cwIlH0mKyzn68fvDmnu6T4Lpf7UAz9DfleB9nBY97TuJ0AGvIcOOLPn3fzzU0cfA
ZsiAFxGHpnupsf9fk6P+yvU2mWzm7VbTPklyB+lUwzsC/yTnX2XGvWFeHgCmsugLDQh3VRo6O38n
qMODaVQQ8kyC8z8m+Y72ib+voN8/VFSND+ADH6CJU6zv58DpiboSXfaL9/Hbq0P4bZn4od2EPjqF
/it4VBXLGcCf6w5uwYjqic/dQpqSELKld3Y5Hl8g++v8f6OGvQX+9t0FfgDKOHc3veDdlsD9C6T+
vbeok0OI+jBHP96jp8Xj0/uAnB4A5AGKSnsp+lFoBYv/zfJfUEsDBBQAAgAIABitW0f1Dqt8kQAA
AL0AAAAhABwAbWVkaWEvdW5zdXBwb3J0ZWQtcnRzcC1zdGRlcnIudHh0VVQJAAPPUTBWz1EwVnV4
CwABBPUBAAAEFAAAAG2OQQ6CMBQF957iX0AaNRrDtoqQSEIQDkDaF22C/dj+knh7ZeXG1cxiFqNu
nIKBHswDSnNADeuGn603+8M22+6OqgksLO8JURXuXnZds1CPDl7KwdsRVqco/Ozb67ednUXIDJm/
gQ4YBC3ixD7i5IwUHC6QFq+EKDlpTqMlz0KG/Ywg1HcVCVNd1WdaNnJafQBQSwMEFAACAAgAQa1b
R2JLxt3HAAAA8gYAACgAHABtZWRpYS92aWRlby1wb3N0ZXItYmFja2dyb3VuZC1zdGRlcnIudHh0
VVQJAAMaUjBWGlIwVnV4CwABBPUBAAAEFAAAAO3PvW7CMBQF4J2n8AhD4tghJEHq0EatxIBAYkQo
ujhX1NSNoxuD5LfnbwB2FiRv50znfGsppmM5TURc5mLDtMN/6H2r6hW6JdkOyXnW610LxmDDkOgj
EjIvMjb8+9G7L+hxsd2jct9ElupZewSjG3DYjNhQPzZwjK/sgRRWoH6RV5Zwjo2Ge4pENpGxTAt+
nnbW+Q57vjTgkfh57Jbqz8u/WDGjW2RSlulgHRAB8XqEjJN8/IiobOffQpEUxZMiC4qgCIqr4gRQ
SwMEFAACAAgAWa1bR6XY0fX+AAAARAIAADAAHABtZWRpYS92aWRlby1zb3VyY2UtZXJyb3Itbm8t
Y2FuZGlkYXRlLWFjdHVhbC50eHRVVAkAA0pSMFZKUjBWdXgLAAEE9QEAAAQUAAAAtZExT8MwEIV3
/4rb3A5Ol06IVEI0SKgIGCLE6saXxpLtC/a5Vf49TjogJoQEy03vvvfu3cPd49MNtNajAcoMF23Z
hhP0FCEQ237aU0BggiNCp51DI0SLiYEHzSAxRooS8IyBE+iI0NtYWH0kD7eJcuxwB+jQFwFcBgxg
uYDCTJ+ZOaGphBDNW/Pcrhbc+ts2WFNLb1MqsVSKnYQy6pCd28HLQTTvr8192+xhdbYGqVoIUNcg
Z4lcz5of4Ec65aR4GvHKlh0FLnE3XO6s/LiVf+WUQ8rjSJHRqNK41eojY5z+2xb9yNNXd3IBqatA
LUsqkCpPMdZoxmpg735h/glQSwMEFAACAAgAWa1bR8jPj/hTAQAAmQIAAC4AHABtZWRpYS92aWRl
by1zb3VyY2UtZXJyb3Itbm8tY2FuZGlkYXRlLWRpZmYudHh0VVQJAANKUjBWSlIwVnV4CwABBPUB
AAAEFAAAAL2QTWsCMRCG7/sr5rbKGhephVK6YttdoVi04KK9xt1RA9lEkokf/77j6qWXtqdeEpK8
eZ6XEUJAurQ6NOjTXJJMi9UiXeF6qui2vQSl6zTHddimWp5tIEHoSTj0QZNPG6yVTA+qRiu8Da5C
gc5ZJ4wVlTS1qiXx1WmPFWHdpxNFSZL8j1VWFKRuneMxiEHvDpJBbwjjcZRMnt/eH6FUTALGw1Eq
UmYLG+vAWFKbc24NAllYI1RSa6wjiKDkFkA7SRC3whjwgIY8SIewUY5pG2cbeLq2GgFqbDgAxx0a
UMQoc+FfqMHzQBjadhv2HrjcPVfkdlAsi1nZaQ3db0BQdRZjs6ez8K6KgZcs/mUO/R01Oh7BfMrg
z4/itSxy6LSf+m0asgxiE7SOu20oEj/7GY4nQuOVNRcTnfd4q2J4aCfl+ZGuRvEXo+DYLIf5BMpi
UfLxC1BLAwQUAAIACABZrVtHOYN2QvkAAACMAgAAMgAcAG1lZGlhL3ZpZGVvLXNvdXJjZS1lcnJv
ci1uby1jYW5kaWRhdGUtZXhwZWN0ZWQudHh0VVQJAANKUjBWSlIwVnV4CwABBPUBAAAEFAAAALWR
sU7DMBCGdz/FbW4Hh4WRdKHugtQiESHWNL42luK7YJ9L+/Y46QBMCKksnv77Pv93qsEkIH0roDFG
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
dFVUCQADcFIwVnBSMFZ1eAsAAQT1AQAABBQAAACdzDEKAjEQQNF+TzGlNkI2iiaIzdpYyAoWCmIR
s2McCBNJZhVvb7yC7efzei/QLqFVdt7axQrwXZTSs5i8i5DFZ3ymLMThoo3R5grrLd7GsLFQkIc9
luICnkgenRMMKX8sTHiMcdr0f8vEJD/yWHVKvON7snA+dOATM3qprT4vF2lovlBLAwQKAAAAAAD9
rFtHAAAAAAAAAAAAAAAACgAcAG1lZGlhL1czQy9VVAkAA55RMFZyUzBWdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAPmsW0cAAAAAAAAAAAAAAAAQABwAbWVkaWEvVzNDL2F1ZGlvL1VUCQADllEwVnJT
MFZ1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA+qxbRwAAAAAAAAAAAAAAABYAHABtZWRpYS9XM0Mv
YXVkaW8vZXJyb3IvVVQJAAOXUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAD5rFtHtE9Y
I6AAAADNAAAARQAcAG1lZGlhL1czQy9hdWRpby9lcnJvci9lcnJvcl9vbmVycm9yX2NhbGxlZF9v
bl9ib2d1c19zb3VyY2UtYWN0dWFsLnR4dFVUCQADllEwVpZRMFZ1eAsAAQT1AQAABBQAAAAVjUEK
gzAQRfc5xcd16QG6K62FgkVBLxDjJAzETMkkiLdvuvmb/3jvdX8PNyy80wapBYflwinAS0aSwv58
SiIUwUpwNkbajK0bSx9pp1Su7c25wawomUOg/DclrBKqQqVmR8aMCVqdI9ULTqk4OEYoEWzbzKQQ
j266z3OHvVE2UCO9xChH860nuqWfFzzGzzT0S99djTH6JYdMviXTP2J+UEsDBBQAAgAIAPmsW0ek
OgZ7JgEAAB0CAABDABwAbWVkaWEvVzNDL2F1ZGlvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVk
X29uX2JvZ3VzX3NvdXJjZS1kaWZmLnR4dFVUCQADllEwVpdRMFZ1eAsAAQT1AQAABBQAAADFkcFq
wzAQRO/6isFXRxGmvbSnpIkLpSkJ2DTHINtrI1CsIq1I8veV41z6Bb3sIFjNvN2VUkJ9OxvPFNRW
s1blsVJHaj4NP+QtGtupLTVxUFbfXGTJFFh6CtFyUGfqjFbHp43SsTNOkffOz/XkxllbbS116Xlq
3BDDKbjoW5J0/aGWqVvylUWe5/+IoluO2t5BVivIYlEUyIvFC1Yrkb+vP3avqE3yRwrFRRs244De
eYyOTX/bJnuwQ0OYAwTuCKWlM428fKTDBLA3w0B+shpxZ8DMICCwHxFi21IIC6T5cDHWIhBBp+oN
Bbge2WFdVRnSnoIeKHX2zlp3SY7NDVldVjU2+6/DrqzLbDm5Cjn9QPacTQBJhBTyT59ASKeApz6R
jTOL+AVQSwMEFAACAAgA+axbR6j3XjWMAAAAuAAAAEcAHABtZWRpYS9XM0MvYXVkaW8vZXJyb3Iv
ZXJyb3Jfb25lcnJvcl9jYWxsZWRfb25fYm9ndXNfc291cmNlLWV4cGVjdGVkLnR4dFVUCQADllEw
VpZRMFZ1eAsAAQT1AQAABBQAAABVjjEKwzAQBPt7xaI6uMoHQlCXYIP9AVs+C4GsC3cRxr+PXKbZ
bYbdmeuaxGfeuXw7KawqimT4aoqRlVdIwSKxGkyqBibqC6yGwGY3nFJxpJxhzJhbamKDbHDDYxwd
9kbNkRu5Sc5ytL3lhJv8OOHZv4eXn7zriOjC4e7u+m5F9IeQfThAeWtG5XKgH1BLAwQUAAIACAD6
rFtHX79HDVIIAACGHgAASwAcAG1lZGlhL1czQy9hdWRpby9lcnJvci9lcnJvcl9vbmVycm9yX2Nh
bGxlZF9vbl9ib2d1c19zb3VyY2UtcHJldHR5LWRpZmYuaHRtbFVUCQADl1EwVpdRMFZ1eAsAAQT1
AQAABBQAAADVWWtv20YW/e5fQdjYGihMUrIkR4/Ei8SW0WLTbQAbm4/BkByKEw856szQltLtf++d
F0VSpKxinQLboBE5z3PvnHvuHeZtJnN6ffI2wyiBnxxL5MUZ4gLLd+elTP3pOTQLuaX4+mROSfF4
4c2fiCASJ97vJx78J/FG+gmOGUeSsGLuFazAC90VMZ5g7kdMSpbPveF64yXwjJPFyR8nZjm7SMwo
43PvbDCa6b7gjlB8S9LU9kcoflxxVhaJ74amU/WnvpHZQTBKEu8sSRLTl7JC+inKCd3OvZwVTKxR
bAHmiK8IQB7i3BuYpjUD47QdHFOw6AlrQNmwhXQ0GnWsL1AhfIE5SWudgnzDeo/6pj7FqZx7g2Di
2hMi1hTBIqQAz1iEzySRGUweDP5h8aEkIcWqmmmw2aNRT83TsXBJkQEoWQ3P2BPmLYsmk8miz9kY
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
HABtZWRpYS9XM0MvdmlkZW8vVVQJAAOeUTBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAD9
rFtHAAAAAAAAAAAAAAAAFgAcAG1lZGlhL1czQy92aWRlby9lcnJvci9VVAkAA55RMFZyUzBWdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAP2sW0frL3UKoQAAAM4AAABFABwAbWVkaWEvVzNDL3ZpZGVv
L2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1hY3R1YWwudHh0VVQJ
AAOeUTBWnlEwVnV4CwABBPUBAAAEFAAAABWNQQqDMBBF9znFx3XxAN2V1kLBUkEvoHESBmKmZJKK
t2/c/M1/vPe8vforJt5ohZSMfebM0cNJQpTM7nhIJGTBQrBzCLSaH68kXaCNYm7rm1KFWZETe0/p
NEUs4otCpSRLxnwitFhLqhccUrBzCFAizHUTk0IcmuE2jg22Ss2eKukkBNmrbznQTN044f55D303
dU1rjNEvWSRyNRnPiDF/UEsDBBQAAgAIAP2sW0dhFY8bJgEAAB0CAABDABwAbWVkaWEvVzNDL3Zp
ZGVvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1kaWZmLnR4dFVU
CQADnlEwVp5RMFZ1eAsAAQT1AQAABBQAAADFkcFqwzAQRO/6isFXRxGmvbSntIkLpSkJ2DTHINtr
I1CsIq2a5O8rx7n0C3rZQbCaebsrpYT6cjaeKKiNZq3KQ6UO1HwYvstrNLZTG2rioKy+usiSKbD0
FKLloE7UGa0OD2v1Yzpyirx3fq5HN87aamupS89j44YYjsFF35Kkyze1TN2SLyzyPP9HFN1y1PYG
slpBFouiQF4snrBaifzt5X37jNokf6RQnLVhMw7oncfo2PTXTbIHOzSEOUDghlBaOtHIy3s6TAB7
MwzkJ6sRNwbMDAICuxEhti2FsECaD2djLQIRdKreUIDrke1fqipD2lPQA6XO3lnrzsmxuSKry6rG
eve535Z1mS0nVyGnH8geswkgiZBC/ukTCOkU8NQnsnFmEb9QSwMEFAACAAgA/axbR/TJv4yNAAAA
uQAAAEcAHABtZWRpYS9XM0MvdmlkZW8vZXJyb3IvZXJyb3Jfb25lcnJvcl9jYWxsZWRfb25fYm9n
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
bmRzL1VUCQADilEwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA86xbR+qorOGrAAAAFAMA
AE8AHABwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvYmFja2dyb3VuZHMvdG9wLWNvbnRlbnQtaW5zZXQt
Zml4ZWQtYXR0YWNobWVudC1zdGRlcnIudHh0VVQJAAOKUTBWilEwVnV4CwABBPUBAAAEFAAAAO2P
sQ6CMBRFd7+iIw5QKaJA4qBEEwcjCSMx5FlesFopeVQT/l6Mg36AI9u507mnEH4SxEkQeWI2PzFl
8Q5d38gyR5uRaZFszzpVN6A1VgyJVq4vllHInNtO1Rvo8Hi+orRbIkPlvnmCVhVYrKbMUb8LLOO5
eZDEFOQFeWoID1gp+JLrhwvhiSDig9oa27fY8UxDj8QH2YfK9fufJ5lWDTIh4mBSjBFjxP8iXlBL
AwQKAAAAAAD4rFtHAAAAAAAAAAAAAAAACAAcAHBsdWdpbnMvVVQJAAOUUTBWclMwVnV4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAD4rFtH/goZpK8AAADxAAAALwAcAHBsdWdpbnMvbW91c2UtY2xpY2st
aWZyYW1lLXRvLXBsdWdpbi1zdGRlcnIudHh0VVQJAAOUUTBWlFEwVnV4CwABBPUBAAAEFAAAAE2P
zQrCMBCE7z7FHq2oQS9CrrYgSBFasec12baBJlvyY19fqyIeZ74ZmCmq6lJJ6E0EhIqcJt8Y3VGE
ycSe02wr9p7CyE4b18EHr8ESuvCirUdLYAL0OLQbxS5En1QkvRA3HpKlIHKMKIqmFg3dzyaKmpNX
NKsjexIjdiQsKlE8yMUTOj2QL1FtrV3ud4cMJNyZB/jmpfzPSTliCCWnQDlP7o2u/Bm5/DW+n1bZ
4glQSwMEFAACAAgAx6xbR+zjMjdLAgAAgwsAACsAHABweXdlYnNvY2tldC53cy5sb2ctMjdPY3Qy
MDE1LTIxMzQ0Ny1lcnIudHh0VVQJAAM1UTBWZ1AwVnV4CwABBPUBAAAEFAAAAO3UXW+bMBQG4Pv8
iqPeNNEo5iNAwt0+0m3a1E1J1V5EkWXg0FhxMLOdZuzXzyHtStV2N+u6XUQgIcDmPBxb7zzw/OjE
906CBAI/DZN0OHbiYLyA+eXr6dnHs/cLoHTNeEWpe4nZTOYrNFP8tkFtPrCqEKhS8F3vjw5exy5T
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
MFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAJOtW0cAAAAAAAAAAAAAAAANABwAcmV0cmll
cy9odHRwL1VUCQADtVIwVnJTMFZ1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAk61bRwAAAAAAAAAA
AAAAABMAHAByZXRyaWVzL2h0dHAvdGVzdHMvVVQJAAO1UjBWclMwVnV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAACkrVtHAAAAAAAAAAAAAAAAGQAcAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9VVAkA
A9NSMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKStW0f356I5agAAAGsAAAA1ABwAcmV0
cmllcy9odHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLWFjdHVhbC50eHRVVAkAA9NS
MFbTUjBWdXgLAAEE9QEAAAQUAAAADcoxCsJAEAXQfk7xuySNBxBSBDOCKJpiEdvVncjAZgfWieLt
9dVvPxxOWwRdJMFWxyeqa3litopirvN3tCJww13wiDlLIuLbxLvAI9q3JrGN1PrvfY+mrDk3HS5H
4iufQ5stppfH6h3RD1BLAwQUAAIACACkrVtH5V2sDAQBAADAAQAAMwAcAHJldHJpZXMvaHR0cC90
ZXN0cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1kaWZmLnR4dFVUCQAD01IwVtNSMFZ1eAsAAQT1
AQAABBQAAAC9j8FqAjEQhu/7FHNTWWPwUAoFYdsmQrGo4KK9jmbWBuJGkol1377Ztc/Q0zDz//98
M0IIkHvv0oWiVMgo9WEnD3RcWf4rb8k6IxUd01k67HxiwRRZBIrJcZSBONic/ma+yl6J8kLGorya
RkQKNzICo+g7ul/pxGRmfOeiLMt/ROOJE7oBXFUg5tNnKOfTJ6iqoly+fny+QG1zFjIDftCybc/Q
+ACtZ9t0yrcE7OFIcELnyBRQgP7a6vdaKxjfrCE/oxByYLGAUZucG01gs8qmvV7XY+fRRMbAk0I8
JoM5dw3avA44dD0xI3orbNUSmizA4wnAOIzyQqHXCjZLqPWuzkf8AlBLAwQUAAIACACkrVtHfPD/
o20AAACAAAAANwAcAHJldHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1l
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
c2VydmVkLWFzLXRleHQtYWN0dWFsLnR4dFVUCQADtVIwVrVSMFZ1eAsAAQT1AQAABBQAAAANyjEK
wkAQBdB+TvG7JI0HEFIEM4IommIR29WdyMBmB9aJ4u311W8/HE5bBF0kwVbHJ6preWK2imKu83e0
InDDXfCIOUsi4tvEu8Aj2rcmsY3U+u99j6asOTcdLkfiK59Dmy2ml8fqHdEPUEsDBBQAAgAIAJOt
W0dihNpdAwEAAMYBAAA1ABwAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL3RleHQtc2VydmVkLWFz
LXRleHQtZGlmZi50eHRVVAkAA7VSMFa1UjBWdXgLAAEE9QEAAAQUAAAAvY/PbsIwDMbvfQrfAJUQ
cZgmTULqtgZpYoJJVMDVbVwWKTQocVj79kthz7CT/32ff7YQAuTB2XihIEtklOq4l0eqN4b/wls0
VsuS6niWFgcXWTAFFp5CtBykJ/Ymub+Zr3KcBHkhbTDlPYtA/kZaYBD3kvorNUx6wT1neZ7/Kxwb
jmjv6KIAsZw/Q76cP0FRZPn69ePzBSqT3JAo8IOGTXeG1nnoHJt2KF1HwA5qggatJZ1BBur0pd4r
VcL0ZjS5BXmfDKsVTLpo7WQGu00SHdS2mlqHOjB6nmXi0bmLU9WiSeuA/TASE2KUwngytGkCjzcA
w6OXVgq1LWG3hkrtq3TGL1BLAwQUAAIACACTrVtHjGqFl28AAACCAAAAOQAcAHJldHJpZXMvaHR0
cC90ZXN0cy9tZWRpYS90ZXh0LXNlcnZlZC1hcy10ZXh0LWV4cGVjdGVkLnR4dFVUCQADtVIwVrVS
MFZ1eAsAAQT1AQAABBQAAAAtjMEKwjAQBe/7Fe/W5uIf9GTXi9AKhuI1kK0EQgObtejf21avM8MQ
P2589tyjXVOUchLVoug6NMsr58ZhvBJPPPg2lxCrBTX3B0fqaA4pS4TpJy1PWMEewuRtmDeDKrpu
PtQf239Dj/ECz3dP9AVQSwMEFAACAAgAk61bR1c2bGcOCAAA8BsAAD0AHAByZXRyaWVzL2h0dHAv
dGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1wcmV0dHktZGlmZi5odG1sVVQJAAO1UjBW
tVIwVnV4CwABBPUBAAAEFAAAANVZbW/jxhH+7l9B2GicC0xSsiTHls4qcpaMBkkvAWwk/VYsyaW4
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
UTenRsTLuR22c7/YWSKDO8jb/nrTV8MT3HTd76a2zf8dmOsTwIz6wSz/8evy4Xm58L7dkASzAHMO
0bq/9765gEagKCnVX955v/z0dXGPTsA9PoL7t+XH52+BFgnoGZfv/qdEMq8H3k68/byjrhif4Ioj
+Vnzh47euy8K1KkgJ18BZIpAhRNP8p2SBbUY4qdfDsDNDToII5weMi8MvpRyp1py8zXc/XHh/fLo
PS+fnv8vJez7E3wwOV3CvsTm1ocu1VAY9T/0/QdQSwMEFAACAAgAk61bR1xeruXqAAAAWgEAADcA
HAByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1zdGRlcnIudHh0
VVQJAAO1UjBWtVIwVnV4CwABBPUBAAAEFAAAAIWPT0/DMAzF7/sUPu3WJi0VZZEqNA0QBw6oGqeJ
Q9Z4TaT8KYmDtm9PK9iu2Jf39Hu27ENdiaYRvC3b+80nvO737z1+ZUwEJzMu9im76cV4aT/6t61X
PbpAuFUqYkoC5K+Aqm5LPnc1j81ZyNGCJpoEYzckHjjnzKEykn0bhaEgHQORRVXYIFU5jObRS4fd
vDLkOGBiNF9S0pnW12i3WWpNlwk7wjOxyUrjV4d///izu4iS8DnGEHfBOfQkAP0QsieMqEB6wAUK
OF4IIUo/Ilj0I2lwJjlJg4YCkg7ZKjjeWA0mXXXT8LvVD1BLAwQKAAAAAADlrVtHAAAAAAAAAAAA
AAAADgAcAHJldHJpZXMvbWVkaWEvVVQJAANNUzBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CADUrVtHwvQhGGIAAABxAAAAMAAcAHJldHJpZXMvbWVkaWEvaW52YWxpZC1tZWRpYS11cmwtY3Jh
c2gtYWN0dWFsLnR4dFVUCQADL1MwVi9TMFZ1eAsAAQT1AQAABBQAAAAVy8EJwzAMBdC7p/gTdIDe
CqEQ6DELKLaSCFQLJLml2ze5v/d8zK87Fnlzg43ElySl79jM0S1l+03WGWlYGZVUuZWFIwN5UEL6
h1Qazi6E8IrhimYc14ZzDL0UqlMct1LKH1BLAwQUAAIACADUrVtHhMlWwQwBAAAcAgAALgAcAHJl
dHJpZXMvbWVkaWEvaW52YWxpZC1tZWRpYS11cmwtY3Jhc2gtZGlmZi50eHRVVAkAAy9TMFYvUzBW
dXgLAAEE9QEAAAQUAAAAvY7BSgMxFEX38xV3V2WaCcUuRCiMOlOQihU6WLfp5LUNphNJXtr698Zp
F24Krlw9Hpx7zxVCQL45G3cUZKVYyXq5kEtazQyfz0M0VsuKVnEjrfpykQVTYOEpRMtBemJvUnpH
2ihpur2yRov+E9Fb0XoVtoKOn9Qy6YKPnOV5/j9W1XJUtneWJcRoeIt8NByjLLN8ev/0fIfGpAxS
PQ7KsOk2WDuPzrFZf1WuI7DDitAqa0lnaNKGAN4qxtmJ3ongWyQvtKPwE8dpaKLQTykyZKJ+f60f
m7rClYrauIK8d75onSZMJhiMB9eYz35je6PpD9iprSM+OP+xYMUn8OZC32XwpcJ8iqZeNGnuN1BL
AwQUAAIACADUrVtHT9QH0X8AAADlAAAAMgAcAHJldHJpZXMvbWVkaWEvaW52YWxpZC1tZWRpYS11
cmwtY3Jhc2gtZXhwZWN0ZWQudHh0VVQJAAMvUzBWL1MwVnV4CwABBPUBAAAEFAAAAIXMsQrCMBQF
0D1fcbfqkkXXTjYugi00g2tIHjQYE3h5qb8v0sVBcT8cS1UqZHGCmFeXYsCDQnSo7NE4IRSqyEXA
VFt6K3h2ddFKmdtkTtYM2LkWYtHEXFj7Egh9j+7Y7TFePtQaA/1X25VJnoXvszjZ3OH79tNdB4xn
WDNbpV5QSwMEFAACAAgA1K1bR4ZfE0UMCAAACB0AADYAHAByZXRyaWVzL21lZGlhL2ludmFsaWQt
bWVkaWEtdXJsLWNyYXNoLXByZXR0eS1kaWZmLmh0bWxVVAkAAy9TMFYvUzBWdXgLAAEE9QEAAAQU
AAAA1Vltc+O2Ef7uX4Gxp3GbMSnJkhxZOruTs+RpJ2mSGXuafuuABCjiTBIqAErytf3vXbxRJEXK
zjTXTHOTEwksgH159tkF70Oq8uz+7ENKMYGfnCqM4hQLSdXdZamSYHYJw1K9ZvT+bJ6x4uUKzbdM
MkUJ+ucZgv8U3auA0JgLrBgv5qjgBV2YqYgLQkUQcaV4PkejzR4ReKZkcfbvM7ud2yTmGRdzdDEc
35q58JFldMmSxM1HOH5ZC14WJPCiyUz/qR9kT5A8YwRdEELsXMILFSQ4Z9nrHOW84HKDY6dgjsWa
gcojmqOhHdpwMM7YIWgGFm2pUSgdtTQdj8cd+0tcyEBSwZLapGSfqTmjfmiQ0UTN0TCc+nHC5CbD
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
ZGVvLXNvdXJjZS1lcnJvci1uby1jYW5kaWRhdGUtYWN0dWFsLnR4dFVUCQAD8lIwVvJSMFZ1eAsA
AQT1AQAABBQAAAC1kTFPwzAQhXf/itvcDk6XTohUQjRIqAgYIsTqxpfGku0L9rlV/j1OOiAmhATL
Te++9+7dw93j0w201qMBygwXbdmGE/QUIRDbftpTQGCCI0KnnUMjRIuJgQfNIDFGihLwjIET6IjQ
21hYfSQPt4ly7HAH6NAXAVwGDGC5gMJMn5k5oamEEM1b89yuFtz62zZYU0tvUyqxVIqdhDLqkJ3b
wctBNO+vzX3b7GF1tgapWghQ1yBniVzPmh/gRzrlpHga8cqWHQUucTdc7qz8uJV/5ZRDyuNIkdGo
0rjV6iNjnP7bFv3I01d3cgGpq0AtSyqQKk8x1mjGamDvfmH+CVBLAwQUAAIACACzrVtHwJHUeVgB
AACpAgAANgAcAHJldHJpZXMvbWVkaWEvdmlkZW8tc291cmNlLWVycm9yLW5vLWNhbmRpZGF0ZS1k
aWZmLnR4dFVUCQAD8lIwVvJSMFZ1eAsAAQT1AQAABBQAAAC9kE1rAjEQhu/7K+a2yhoXqYVSumLb
XaFYtOCivcbdUQPZRJKJH/++4+qll7anXhKSvHmelxFCQLq0OjTo01ySTIvVIl3heqrotr0Epes0
x3XYplqebSBB6Ek49EGTTx2SU/y7wVrJ9KBqtMLb4CoU6Jx1wlhRSVOrWhJfnfZYEdZ9OlGUJMn/
2mVFQerWPR6DGPTuIBn0hjAeR8nk+e39EUrFJGANHKUiZbawsQ6MJbU559YgkIU1QiW1xjqCCEpu
A7STBHErjAEPaMiDdAgb5Zi2cbaBp2urEaDGhgNw3KEBRYwyF/6FGjwPhqFtt2Hvgcvdc0VuB8Wy
mJWd1tD9BgRVZzE2ezoL76oYeMniX+bQ31Gj4xHMpwz+/CheyyKHTvup36YhyyA2Qeu424Yi8bOf
4XgiNF5ZczHReY+3KoaHdlKeH+lqFH8xCo7NcphPoCwWJR+/AFBLAwQUAAIACACzrVtHOYN2QvkA
AACMAgAAOgAcAHJldHJpZXMvbWVkaWEvdmlkZW8tc291cmNlLWVycm9yLW5vLWNhbmRpZGF0ZS1l
eHBlY3RlZC50eHRVVAkAA/JSMFbyUjBWdXgLAAEE9QEAAAQUAAAAtZGxTsMwEIZ3P8VtbgeHhZF0
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
T1gjoAAAAM0AAABNABwAcmV0cmllcy9tZWRpYS9XM0MvYXVkaW8vZXJyb3IvZXJyb3Jfb25lcnJv
cl9jYWxsZWRfb25fYm9ndXNfc291cmNlLWFjdHVhbC50eHRVVAkAA01TMFZNUzBWdXgLAAEE9QEA
AAQUAAAAFY1BCoMwEEX3OcXHdekBuiuthYJFQS8Q4yQMxEzJJIi3b7r5m/9473V/DzcsvNMGqQWH
5cIpwEtGksL+fEoiFMFKcDZG2oytG0sfaadUru3NucGsKJlDoPw3JawSqkKlZkfGjAlanSPVC06p
ODhGKBFs28ykEI9uus9zh71RNlAjvcQoR/OtJ7qlnxc8xs809EvfXY0x+iWHTL4l0z9iflBLAwQU
AAIACADlrVtHkKkT9yoBAAAtAgAASwAcAHJldHJpZXMvbWVkaWEvVzNDL2F1ZGlvL2Vycm9yL2Vy
cm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1kaWZmLnR4dFVUCQADTVMwVk1TMFZ1
eAsAAQT1AQAABBQAAADNkcFqwzAQRO/6isFXRxGmvbSnpIkLpSkJ2DTHINtrI1CsIq1I8veV41z6
B73sINidebuSUkJ9OxvPFNRWs1blsVJHaj4NP+QtGtupLTVxUFbfXGTJFFh6CtFyUJ7YmzR9ps5o
dXzaKB074xR57/xcT26ctdXWUpeep8YNMZyCi74lSdcfapm6JV9Z5Hn+D5B0y1HbO9BqBVksigJ5
sXjBaiXy9/XH7hW1Sf5I4bhow2Yc0DuP0bHpb9tkD3ZoCHOAwB2htHSmkZePdJiAhDoM5CerEXcG
zAwCAvsRIbYthbBA2hMXYy0CEXSq045wPbLDuqoypHsFPVDq7J217pIcmxuyuqxqbPZfh11Zl9ly
chVymkD2nE0ASYQU8k+fQEhfAk99IhtnFvELUEsDBBQAAgAIAOWtW0eo9141jAAAALgAAABPABwA
cmV0cmllcy9tZWRpYS9XM0MvYXVkaW8vZXJyb3IvZXJyb3Jfb25lcnJvcl9jYWxsZWRfb25fYm9n
dXNfc291cmNlLWV4cGVjdGVkLnR4dFVUCQADTVMwVk1TMFZ1eAsAAQT1AQAABBQAAABVjjEKwzAQ
BPt7xaI6uMoHQlCXYIP9AVs+C4GsC3cRxr+PXKbZbYbdmeuaxGfeuXw7KawqimT4aoqRlVdIwSKx
GkyqBibqC6yGwGY3nFJxpJxhzJhbamKDbHDDYxwd9kbNkRu5Sc5ytL3lhJv8OOHZv4eXn7zriOjC
4e7u+m5F9IeQfThAeWtG5XKgH1BLAwQUAAIACADlrVtHKrEH7lcIAACOHgAAUwAcAHJldHJpZXMv
bWVkaWEvVzNDL2F1ZGlvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJj
ZS1wcmV0dHktZGlmZi5odG1sVVQJAANNUzBWTVMwVnV4CwABBPUBAAAEFAAAANVZa2/bRhb97l9B
2NgaKExSsiRHj8SLxJbRYtNtABubj8GQHIoTDznqzNCW0u1/750XRVKkrGKdAtugETnPc++ce+4d
5m0mc3p98jbDKIGfHEvkxRniAst356VM/ek5NAu5pfj6ZE5J8XjhzZ+IIBIn3u8nHvwn8Ub6CY4Z
R5KwYu4VrMAL3RUxnmDuR0xKls+94XrjJfCMk8XJHydmObtIzCjjc+9sMJrpvuCOUHxL0tT2Ryh+
XHFWFonvhqZT9ae+kdlBMEoS7yxJEtOXskL6KcoJ3c69nBVMrFFsAeaIrwhAHuLcG5imNQPjtB0c
U7DoCWtA2bCFdDQadawvUCF8gTlJa52CfMN6j/qmPsWpnHuDYOLaEyLWFMEipADPWITPJJEZTB4M
/mHxoSQhxaqaabDZo1FPzdOxcEmRAShZDc/YE+YtiyaTyaLP2RgbNwTqTD7CXsJOTilDYAYnq0w2
T06NugHzEdjitmLgeiLBxEHLZIkiiv0YU9qw0tfrNrz0nIF1vj5DRbVnjtY7ZPc4VmfXSxo9uUmZ
Nl0sZ53fgVCD9cbssNys4XhhfTANX3iB+mlb2AtPkARHW/W3p6F+oCx+/IS4DMDUeUq4kH6cEZr0
OlZtdw/zLw4txnEOR3vxwn52D+d+Qzg/UkMatJs41gFbJIkR9RElK4gNyTrM4lgx/SdUJBQ7d9h1
lAvVe4bNge74HJdcqKNRsNsRiCI4ndKdGOxZEccEj4Z3CEWD5/t0WHG8XbSIGUxeOi/jYi+Q7EU3
BylnecvZVh/VHsrr/y7zCHNgE66zy7Q64Psyalk7mzUE0IVLlwy6SB6Px51yUz/9SmPUQhMTAiYM
KsG3PLD07KKIgdug08gKVs1wbWKn4Jgk0euWAyK15io6FUzrQKcmljXOkEaswiTfRKvuAn/qV7CD
Y/ToqwYDiORohRsnM/cuK4dHFCkvqoExSANgACj2yWvbvTuV6XjWq70pTncCoGgFK1bpsRbNHVOT
NGlOhcMW/cNneLY4lNOrlazK1HHYqOhP10myt4CXYNo/A89eRBP+6N2X6zXjEjItt0wGp+Y5LqTw
fgxhP1TKjBl/m2ysihlgvQSexu6k9AQ9pif/V2MUGASU0IOdnF05Yiu5QZTeOASdoy9NLsvRxm+l
9xzqAtt0OajyTntr8PvBfarIrkK6sU0XzoCtsUmb/jOOHon0JVdhZzxhgHvBpVjUzBhbo8+ERLIU
H8oIcniVDwMVPZ1w1BTJGI0Qb/a7rVOKdYTuOnL2rWqtxGlk4tjWUerRVQvqub8k7FOOg6XcjhYp
2WCzjtXjQdOkAOkaxITZfhZ/JqAFvEW1as1vPikSvAGROmDaLhHWIHTZZcWokd6mVsUKBdMGbGdq
gv0itnkR6NUO6NCQ2CUh86bB2ucqg9nXCnBVmTW2JilHuUHYipNmGVGLkZsepd33zRZqTfZscz2m
UDhCzXxEYrqa3e3oZXNyT6d2RLOvKiOT/fK4WRzbNYz79jncWxIkTmfNNu+dKLirzqDe++ByZOtO
cvXGCdo+zANBUrvtiByZWr6uuQXj0LzoURlrvyrBRNfmxg4X14OuIRRFmM5RChF2sTfdtOtFdEIu
wNRT77/e6eKkSsS19N2eTRFU6Cz15XaNO5c67UVkB7auuBmmWiCrYhSpYrQnR53lWAhXePT6uetY
atFxr4X6mFQIKQYKoifCSnFTtUAx+w0XN7Vk2ZXnXcnRTjH15KK0HFirmeC03b5bJloRGbkceBQa
Sw2ocbBUMdFIF7bs6yn66nk2KiGqirruuPyekKd5ymLrQ1ZKpRf18ItoqTOJ7QK+pIAFMtjQGVJP
lnoVqGEeMmx2Cm2mXQF+ZYNknoS+yIy2VBPeE0FKk+UvlhMANuLsGQ4cKoEMwVxbFBEZqCKosmM8
sVV8VYrYd6cOqpBV/w+aSdR90mnX+DlJ4JZlDFMHJNzluyOjQB3GBHoC34MHcCuv1G96e6nOHwYj
UzLtPn647N9xBme3t7e1kD6b3t3eTe469QmKy24WL5fLLtRznK9BoRqHb8u01sgAHgFpI/KXs+lg
anUrphjxL7o8cFcB1aKvTZka8ja0X93eipiTNZwpj9+dZlKuxTwM0Ve0CVaMrWDSmghFXd0WUhKJ
8OtvJebbcBiMg0v7EkBpGXwVp9ewrl7v2muuHLME++oM8TOM+yectDrMd+NpbQqAsh8KI5Zs4Qfi
AXAjId6du5uA+l6YDa/D/8B5gmaFt0iicPn5PvyMo38RaX8+lIQm4S2OylUIPAFn+hKDvsLlvaRS
hBxLTmB2jhOCws+jmxCVCWEh5pxx8/cXYJb+BT5SnMDrl4itSvFFsJLH2If6pkQ0kBsJqIdNsLVv
Ref7PfoO39eu7vYe0LDVr241XvODkB0EUlO4UfpzwK7GOL/+oYjEegEOhkHXjaEQ+vWBw84xkL7P
r+/e//xx7j0Q8JVipfeMIKiAeupGVDBJ0u0tuEppSQQaop1lF4PzBBPcT92cGj3Pr223HfuXnSUy
uJm87K8XfTU8wk2X/W7SBFpSrCQ+sNzxCAgm6M0Kc+U8kFHFIM8wqO2k/w395RHoR/3oXxfM6Agw
434wvxaQYeIYss+FB7EL2YVSyFcYSjRVdGDhsdT74beSycWn9/f35smzFQzMSZmqvcHj0dYOe1je
P3g3v/7y6ePyYWmagtc1eXyEyZO/y/+TI8BcHQ/mu4av+VTzstztxh00/eoI0w+oorZfkcoSZ2zJ
BYHcaPhL53Us9jevgP27AJu+ArBGCP5fJojZEV540+8AscYxODyFXFC8tvoPB0dgm/5d8jM8JpXO
vo/+tH50IQkFmv5n6D8BUEsDBAoAAAAAAPStW0cAAAAAAAAAAAAAAAAYABwAcmV0cmllcy9tZWRp
YS9XM0MvdmlkZW8vVVQJAANsUzBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAD0rVtHAAAA
AAAAAAAAAAAAHgAcAHJldHJpZXMvbWVkaWEvVzNDL3ZpZGVvL2Vycm9yL1VUCQADbFMwVnJTMFZ1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgA9K1bR+svdQqhAAAAzgAAAE0AHAByZXRyaWVzL21lZGlh
L1czQy92aWRlby9lcnJvci9lcnJvcl9vbmVycm9yX2NhbGxlZF9vbl9ib2d1c19zb3VyY2UtYWN0
dWFsLnR4dFVUCQADbFMwVmxTMFZ1eAsAAQT1AQAABBQAAAAVjUEKgzAQRfc5xcd18QDdldZCwVJB
L6BxEgZipmSSirdv3PzNf7z3vL36KybeaIWUjH3mzNHDSUKUzO54SCRkwUKwcwi0mh+vJF2gjWJu
65tShVmRE3tP6TRFLOKLQqUkS8Z8IrRYS6oXHFKwcwhQIsx1E5NCHJrhNo4NtkrNnirpJATZq285
0EzdOOH+eQ99N3VNa4zRL1kkcjUZz4gxf1BLAwQUAAIACAD0rVtH4sUSlSsBAAAtAgAASwAcAHJl
dHJpZXMvbWVkaWEvVzNDL3ZpZGVvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3Vz
X3NvdXJjZS1kaWZmLnR4dFVUCQADbFMwVmxTMFZ1eAsAAQT1AQAABBQAAADNkcFqwzAQRO/6isFX
RxGmvbSntIkLpSkJ2DTHINtrI1CsIq2a5O8rx7n0D3rZQbA783YlpYT6cjaeKKiNZq3KQ6UO1HwY
vstrNLZTG2rioKy+usiSKbD0FKLloDyxN2n6RJ3R6vCwVj+mI6fIe+fnenTjrK22lrr0PDZuiOEY
XPQtSbp8U8vULfnCIs/zf4CkW47a3oBWK8hiURTIi8UTViuRv728b59Rm+SPFI6zNmzGAb3zGB2b
/rpJ9mCHhjAHCNwQSksnGnl5T4cJSKjDQH6yGnFjwMwgILAbEWLbUggLpD1xNtYiEEGnOu0I1yPb
v1RVhnSvoAdKnb2z1p2TY3NFVpdVjfXuc78t6zJbTq5CThPIHrMJIImQQv7pEwjpS+CpT2TjzCJ+
AVBLAwQUAAIACAD0rVtH9Mm/jI0AAAC5AAAATwAcAHJldHJpZXMvbWVkaWEvVzNDL3ZpZGVvL2Vy
cm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1leHBlY3RlZC50eHRVVAkA
A2xTMFZsUzBWdXgLAAEE9QEAAAQUAAAAVY4xDoMwEAT7e8XKdUSVD0QRXSKQ4ANgDsuS8UV3OIjf
x5RpdpvR7nzjwtIm3jjvjWRWFUU07BpDYOUFkjFLKAaTop6Jugwr3rPZDacUHDElGDOmmhrZICtc
/xgGh61SU+BKrpKSHHVvPuHGdhjx7N79qx1b1xDRhcPd3fVdi+gPIfuwh/JajfLlQPQDUEsDBBQA
AgAIAPStW0c3AUwzVwgAAI4eAABTABwAcmV0cmllcy9tZWRpYS9XM0MvdmlkZW8vZXJyb3IvZXJy
b3Jfb25lcnJvcl9jYWxsZWRfb25fYm9ndXNfc291cmNlLXByZXR0eS1kaWZmLmh0bWxVVAkAA2xT
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
c3FsL2FsdGVyLXRvLWluZm8tdGFibGUtc3RkZXJyLnR4dFVUCQAD2VEwVtlRMFZ1eAsAAQT1AQAA
BBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+nUadu83jfg0myLM003MhY
h+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcqKXNVoj23XuUcpMIpHVhQ
XbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oLlLZ5RRNe/Otkeg3mY3M9
aZ17aekO83j2BlBLAwQUAAIACAAdrVtHqw9xHrAAAADuAAAANQAcAHN0b3JhZ2Uvd2Vic3FsL2No
YW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS1zdGRlcnIudHh0VVQJAAPZUTBW2VEwVnV4CwABBPUB
AAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTc
yFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5Rykwikd
WFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZj
cz1pnXtp6Q7zePYGUEsDBBQAAgAIAB2tW0erD3EesAAAAO4AAABGABwAc3RvcmFnZS93ZWJzcWwv
Y2hhbmdlLXZlcnNpb24tbm8tY3Jhc2gtb24tcHJlZmxpZ2h0LWZhaWx1cmUtc3RkZXJyLnR4dFVU
CQAD2VEwVtlRMFZ1eAsAAQT1AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGd
kXG36N+nUadu83jfg0myLM003MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnah
w0EdjTcqKXNVoj23XuUcpMIpHVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1L
l/ZIe6oLlLZ5RRNe/Otkeg3mY3M9aZ17aekO83j2BlBLAwQUAAIACAAdrVtHbD/afbYAAADcAQAA
KAAcAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLXN0ZGVyci50eHRVVAkAA9lRMFbZUTBW
dXgLAAEE9QEAAAQUAAAA5c/PCsIwDAbwu0+Rk2ygVhARehOdFxFh88+53TIpdMnIWsW3dxM9+Qje
8pHfB0mW58dcw5mM9QiBIUQhYAJHpWCDFIwHEwNP76aMsYFkDsQBDAGKsKQjdWEfG+zU1gSjsmuh
rmj3LqiCo5Q4pA0LqgNX0ffsgbbqpTUdvivDMCvbNlksVylosMwePiWtv0LrFqVmaY4t0pqqC4qr
n8mAJ786G06Dcb857bQugji6wTgdZX/17QtQSwMEFAACAAgAHa1bR6sPcR6wAAAA7gAAADIAHABz
dG9yYWdlL3dlYnNxbC9jbG9zZS1kdXJpbmctc3RyZXNzLXRlc3Qtc3RkZXJyLnR4dFVUCQAD2lEw
VtpRMFZ1eAsAAQT1AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+n
Uadu83jfg0myLM003MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcq
KXNVoj23XuUcpMIpHVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oL
lLZ5RRNe/Otkeg3mY3M9aZ17aekO83j2BlBLAwQUAAIACAAdrVtHqw9xHrAAAADuAAAANAAcAHN0
b3JhZ2Uvd2Vic3FsL2RhdGFiYXNlLWxvY2stYWZ0ZXItcmVsb2FkLXN0ZGVyci50eHRVVAkAA9pR
MFbaUTBWdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbRAR7C3KLhGClp53dQxhnZFxt+jf
p1GnbvN434NJsizNNNzIWIfgGXwQAiZoqRLskLxxYILn5cNUIXQQrYHYgyFAEZZ4pgp2ocNBHY03
KilzVaI9t17lHKTCKR1YUF24Dm5kT7T1KK0Z8DOZjlXV99Fmu4tBg2V28B1p/RNa9ygNS5f2SHuq
C5S2eUUTXvzrZHoN5mNzPWmde2npDvN49gZQSwMEFAACAAgAHa1bR6sPcR6wAAAA7gAAACkAHABz
dG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQtc3RkZXJyLnR4dFVUCQAD2lEwVtpRMFZ1eAsA
AQT1AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+nUadu83jfg0my
LM003MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcqKXNVoj23XuUc
pMIpHVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oLlLZ5RRNe/Otk
eg3mY3M9aZ17aekO83j2BlBLAwQUAAIACAAdrVtHqw9xHrAAAADuAAAAKgAcAHN0b3JhZ2Uvd2Vi
c3FsL2V4ZWN1dGUtc3FsLWFyZ3Mtc3RkZXJyLnR4dFVUCQAD2lEwVtpRMFZ1eAsAAQT1AQAABBQA
AABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+nUadu83jfg0myLM003MhYh+AZ
fBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcqKXNVoj23XuUcpMIpHVhQXbgO
bmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oLlLZ5RRNe/Otkeg3mY3M9aZ17
aekO83j2BlBLAwQUAAIACAAgrVtHqw9xHrAAAADuAAAAMgAcAHN0b3JhZ2Uvd2Vic3FsL2V4ZWN1
dGUtc3FsLXJvd3NBZmZlY3RlZC1zdGRlcnIudHh0VVQJAAPbUTBW21EwVnV4CwABBPUBAAAEFAAA
AGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH4Bl8
EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5RykwikdWFBduA5u
ZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZjcz1pnXtp
6Q7zePYGUEsDBBQAAgAIACCtW0erD3EesAAAAO4AAAA/ABwAc3RvcmFnZS93ZWJzcWwvZXhlY3V0
ZXNxbC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zdGRlcnIudHh0VVQJAAPbUTBW21EwVnV4
CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+D
SbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde
5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE178
62R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIACGtW0erD3EesAAAAO4AAAAuABwAc3RvcmFnZS93
ZWJzcWwvaGFzaC1jaGFuZ2Utd2l0aC14aHItc3RkZXJyLnR4dFVUCQAD3VEwVt1RMFZ1eAsAAQT1
AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+nUadu83jfg0myLM00
3MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcqKXNVoj23XuUcpMIp
HVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oLlLZ5RRNe/Otkeg3m
Y3M9aZ17aekO83j2BlBLAwQUAAIACAAhrVtHbD/afbYAAADcAQAAPwAcAHN0b3JhZ2Uvd2Vic3Fs
L211bHRpcGxlLWRhdGFiYXNlcy1nYXJiYWdlLWNvbGxlY3Rpb24tc3RkZXJyLnR4dFVUCQAD3VEw
Vt1RMFZ1eAsAAQT1AQAABBQAAADlz88KwjAMBvC7T5GTbKBWEBF6E50XEWHzz7ndMil0ychaxbd3
Ez35CN7ykd8HSZbnx1zDmYz1CIEhRCFgAkelYIMUjAcTA0/vpoyxgWQOxAEMAYqwpCN1YR8b7NTW
BKOya6GuaPcuqIKjlDikDQuqA1fR9+yBtuqlNR2+K8MwK9s2WSxXKWiwzB4+Ja2/QusWpWZpji3S
mqoLiqufyYAnvzobToNxvznttC6COLrBOB1lf/XtC1BLAwQUAAIACAAhrVtHqw9xHrAAAADuAAAA
RAAcAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLXRyYW5zYWN0aW9ucy1vbi1kaWZmZXJlbnQtaGFu
ZGxlcy1zdGRlcnIudHh0VVQJAAPdUTBW3VEwVnV4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6h
UG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XD
VCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffR
ZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAI
ACGtW0erD3EesAAAAO4AAAAvABwAc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25z
LXN0ZGVyci50eHRVVAkAA91RMFbdUTBWdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbRAR
7C3KLhGClp53dQxhnZFxt+jfp1GnbvN434NJsizNNNzIWIfgGXwQAiZoqRLskLxxYILn5cNUIXQQ
rYHYgyFAEZZ4pgp2ocNBHY03KilzVaI9t17lHKTCKR1YUF24Dm5kT7T1KK0Z8DOZjlXV99Fmu4tB
g2V28B1p/RNa9ygNS5f2SHuqC5S2eUUTXvzrZHoN5mNzPWmde2npDvN49gZQSwMEFAACAAgAIa1b
R6sPcR6wAAAA7gAAACgAHABzdG9yYWdlL3dlYnNxbC9udWxsLWNhbGxiYWNrcy1zdGRlcnIudHh0
VVQJAAPdUTBW3VEwVnV4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UM
YZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYK
dqHDQR2NNyopc1WiPbde5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvco
DUuX9kh7qguUtnlFE17862R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIACGtW0dsP9p9tgAAANwB
AABIABwAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1pc29s
YXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAPdUTBW3VEwVnV4CwABBPUBAAAEFAAAAOXPzwrCMAwG
8LtPkZNsoFYQEXoTnRcRYfPPud0yKXTJyFrFt3cTPfkI3vKR3wdJlufHXMOZjPUIgSFEIWACR6Vg
gxSMBxMDT++mjLGBZA7EAQwBirCkI3VhHxvs1NYEo7Jroa5o9y6ogqOUOKQNC6oDV9H37IG26qU1
Hb4rwzAr2zZZLFcpaLDMHj4lrb9C6xalZmmOLdKaqguKq5/JgCe/OhtOg3G/Oe20LoI4usE4HWV/
9e0LUEsDBBQAAgAIACGtW0dsP9p9tgAAANwBAAA5ABwAc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRh
YmFzZS1jcmVhdGlvbi1jYWxsYmFjay1zdGRlcnIudHh0VVQJAAPeUTBW3lEwVnV4CwABBPUBAAAE
FAAAAOXPzwrCMAwG8LtPkZNsoFYQEXoTnRcRYfPPud0yKXTJyFrFt3cTPfkI3vKR3wdJlufHXMOZ
jPUIgSFEIWACR6VggxSMBxMDT++mjLGBZA7EAQwBirCkI3VhHxvs1NYEo7Jroa5o9y6ogqOUOKQN
C6oDV9H37IG26qU1Hb4rwzAr2zZZLFcpaLDMHj4lrb9C6xalZmmOLdKaqguKq5/JgCe/OhtOg3G/
Oe20LoI4usE4HWV/9e0LUEsDBBQAAgAIACGtW0erD3EesAAAAO4AAAA1ABwAc3RvcmFnZS93ZWJz
cWwvb3Blbi1kYXRhYmFzZS1lbXB0eS12ZXJzaW9uLXN0ZGVyci50eHRVVAkAA95RMFbeUTBWdXgL
AAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbRAR7C3KLhGClp53dQxhnZFxt+jfp1GnbvN434NJ
sizNNNzIWIfgGXwQAiZoqRLskLxxYILn5cNUIXQQrYHYgyFAEZZ4pgp2ocNBHY03KilzVaI9t17l
HKTCKR1YUF24Dm5kT7T1KK0Z8DOZjlXV99Fmu4tBg2V28B1p/RNa9ygNS5f2SHuqC5S2eUUTXvzr
ZHoN5mNzPWmde2npDvN49gZQSwMEFAACAAgAIa1bR6sPcR6wAAAA7gAAADQAHABzdG9yYWdlL3dl
YnNxbC9vcGVuLWRhdGFiYXNlLWV4cGFuZC1xdW90YS1zdGRlcnIudHh0VVQJAAPeUTBW3lEwVnV4
CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+D
SbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde
5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE178
62R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIACGtW0erD3EesAAAAO4AAAA5ABwAc3RvcmFnZS93
ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVyc2lvbi1zdGRlcnIudHh0VVQJAAPeUTBW
3lEwVnV4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dR
p27zeN+DSbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyop
c1WiPbde5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguU
tnlFE17862R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIACGtW0eaUpebxQAAAOIBAABFABwAc3Rv
cmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS13aGlsZS10cmFuc2FjdGlvbi1pbi1wcm9ncmVzcy1z
dGRlcnIudHh0VVQJAAPeUTBW3lEwVnV4CwABBPUBAAAEFAAAANWPQUvDQBSE7/0VcyoJqCtIEfYm
NV5ECom2593Nqyxu3gsvu4r/3kTsyVOPvc0w38BM07a71uKNnU+ELMhFGcKIHJQG4uwSXMly/elC
KQOqW7BkOAapitYrs5dUBprMo8vONIfOHMg/x2w6KRpocVtRMi/SlzRjX+T7mfRuot/KIm7COFZ3
m/saFl4k4a9k7YmwdiQ9ig67kfiB+z1pPH5XC3z1n26WaVjPyeuTtV3WyO9Y16vm7LcbnMYiTkgS
Pqi/rM8/UEsDBBQAAgAIACKtW0erD3EesAAAAO4AAAA5ABwAc3RvcmFnZS93ZWJzcWwvcHJpdmF0
ZS1icm93c2luZy1ub3JlYWQtbm93cml0ZS1zdGRlcnIudHh0VVQJAAPfUTBW31EwVnV4CwABBPUB
AAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTc
yFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5Rykwikd
WFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZj
cz1pnXtp6Q7zePYGUEsDBBQAAgAIACKtW0erD3EesAAAAO4AAABHABwAc3RvcmFnZS93ZWJzcWwv
cmVhZC1hbmQtd3JpdGUtdHJhbnNhY3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVyLXN0ZGVyci50eHRV
VAkAA99RMFbfUTBWdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbRAR7C3KLhGClp53dQxh
nZFxt+jfp1GnbvN434NJsizNNNzIWIfgGXwQAiZoqRLskLxxYILn5cNUIXQQrYHYgyFAEZZ4pgp2
ocNBHY03KilzVaI9t17lHKTCKR1YUF24Dm5kT7T1KK0Z8DOZjlXV99Fmu4tBg2V28B1p/RNa9ygN
S5f2SHuqC5S2eUUTXvzrZHoN5mNzPWmde2npDvN49gZQSwMEFAACAAgAIq1bR6sPcR6wAAAA7gAA
AEAAHABzdG9yYWdlL3dlYnNxbC9yZWFkLXRyYW5zYWN0aW9ucy1ydW5uaW5nLWNvbmN1cnJlbnRs
eS1zdGRlcnIudHh0VVQJAAPfUTBW31EwVnV4CwABBPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0Q
Eewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0
EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5RykwikdWFBduA5uZE+09SitGfAzmY5V1ffRZruL
QYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIACKt
W0erD3EesAAAAO4AAAAoABwAc3RvcmFnZS93ZWJzcWwvc3FsLWRhdGEtdHlwZXMtc3RkZXJyLnR4
dFVUCQAD31EwVt9RMFZ1eAsAAQT1AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1
DGGdkXG36N+nUadu83jfg0myLM003MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnim
Cnahw0EdjTcqKXNVoj23XuUcpMIpHVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3
KA1Ll/ZIe6oLlLZ5RRNe/Otkeg3mY3M9aZ17aekO83j2BlBLAwQUAAIACAAirVtHbD/afbYAAADc
AQAAQQAcAHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13
b3JsZC1zdGRlcnIudHh0VVQJAAPfUTBW31EwVnV4CwABBPUBAAAEFAAAAOXPzwrCMAwG8LtPkZNs
oFYQEXoTnRcRYfPPud0yKXTJyFrFt3cTPfkI3vKR3wdJlufHXMOZjPUIgSFEIWACR6VggxSMBxMD
T++mjLGBZA7EAQwBirCkI3VhHxvs1NYEo7Jroa5o9y6ogqOUOKQNC6oDV9H37IG26qU1Hb4rwzAr
2zZZLFcpaLDMHj4lrb9C6xalZmmOLdKaqguKq5/JgCe/OhtOg3G/Oe20LoI4usE4HWV/9e0LUEsD
BBQAAgAIACKtW0erD3EesAAAAO4AAAAyABwAc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVycm9y
LWNhbGxiYWNrLXN0ZGVyci50eHRVVAkAA+BRMFbgUTBWdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXg
e79iTqFQbRAR7C3KLhGClp53dQxhnZFxt+jfp1GnbvN434NJsizNNNzIWIfgGXwQAiZoqRLskLxx
YILn5cNUIXQQrYHYgyFAEZZ4pgp2ocNBHY03KilzVaI9t17lHKTCKR1YUF24Dm5kT7T1KK0Z8DOZ
jlXV99Fmu4tBg2V28B1p/RNa9ygNS5f2SHuqC5S2eUUTXvzrZHoN5mNzPWmde2npDvN49gZQSwME
FAACAAgAIq1bR2w/2n22AAAA3AEAAEMAHABzdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtc3VjY2Vz
cy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQJAAPgUTBW4FEwVnV4CwABBPUB
AAAEFAAAAOXPzwrCMAwG8LtPkZNsoFYQEXoTnRcRYfPPud0yKXTJyFrFt3cTPfkI3vKR3wdJlufH
XMOZjPUIgSFEIWACR6VggxSMBxMDT++mjLGBZA7EAQwBirCkI3VhHxvs1NYEo7Jroa5o9y6ogqOU
OKQNC6oDV9H37IG26qU1Hb4rwzAr2zZZLFcpaLDMHj4lrb9C6xalZmmOLdKaqguKq5/JgCe/OhtO
g3G/Oe20LoI4usE4HWV/9e0LUEsDBBQAAgAIACKtW0erD3EesAAAAO4AAAAqABwAc3RvcmFnZS93
ZWJzcWwvc3VjY2Vzcy1jYWxsYmFjay1zdGRlcnIudHh0VVQJAAPgUTBW4FEwVnV4CwABBPUBAAAE
FAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIszTTcyFiH
4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5RykwikdWFBd
uA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6DeZjcz1p
nXtp6Q7zePYGUEsDBBQAAgAIACKtW0erD3EesAAAAO4AAABDABwAc3RvcmFnZS93ZWJzcWwvc3Vj
Y2Vzcy1jYWxsYmFjay13aGVuLXBhZ2UtZGVmZXJzLWxvYWRpbmctc3RkZXJyLnR4dFVUCQAD4FEw
VuBRMFZ1eAsAAQT1AQAABBQAAABlzkELgkAQBeB7v2JOoVBtEBHsLcouEYKWnnd1DGGdkXG36N+n
Uadu83jfg0myLM003MhYh+AZfBACJmipEuyQvHFgguflw1QhdBCtgdiDIUARlnimCnahw0EdjTcq
KXNVoj23XuUcpMIpHVhQXbgObmRPtPUorRnwM5mOVdX30Wa7i0GDZXbwHWn9E1r3KA1Ll/ZIe6oL
lLZ5RRNe/Otkeg3mY3M9aZ17aekO83j2BlBLAwQUAAIACAAjrVtHqw9xHrAAAADuAAAAKQAcAHN0
b3JhZ2Uvd2Vic3FsL3Rlc3QtYXV0aG9yaXplci1zdGRlcnIudHh0VVQJAAPhUTBW4VEwVnV4CwAB
BPUBAAAEFAAAAGXOQQuCQBAF4Hu/Yk6hUG0QEewtyi4Rgpaed3UMYZ2Rcbfo36dRp27zeN+DSbIs
zTTcyFiH4Bl8EAImaKkS7JC8cWCC5+XDVCF0EK2B2IMhQBGWeKYKdqHDQR2NNyopc1WiPbde5Ryk
wikdWFBduA5uZE+09SitGfAzmY5V1ffRZruLQYNldvAdaf0TWvcoDUuX9kh7qguUtnlFE17862R6
DeZjcz1pnXtp6Q7zePYGUEsDBBQAAgAIACOtW0erD3EesAAAAO4AAAA+ABwAc3RvcmFnZS93ZWJz
cWwvdHJhbnNhY3Rpb24tY2FsbGJhY2stZXhjZXB0aW9uLWNyYXNoLXN0ZGVyci50eHRVVAkAA+FR
MFbhUTBWdXgLAAEE9QEAAAQUAAAAZc5BC4JAEAXge79iTqFQbRAR7C3KLhGClp53dQxhnZFxt+jf
p1GnbvN434NJsizNNNzIWIfgGXwQAiZoqRLskLxxYILn5cNUIXQQrYHYgyFAEZZ4pgp2ocNBHY03
KilzVaI9t17lHKTCKR1YUF24Dm5kT7T1KK0Z8DOZjlXV99Fmu4tBg2V28B1p/RNa9ygNS5f2SHuq
C5S2eUUTXvzrZHoN5mNzPWmde2npDvN49gZQSwMEFAACAAgAI61bR2w/2n22AAAA3AEAAD0AHABz
dG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIu
dHh0VVQJAAPhUTBW4VEwVnV4CwABBPUBAAAEFAAAAOXPzwrCMAwG8LtPkZNsoFYQEXoTnRcRYfPP
ud0yKXTJyFrFt3cTPfkI3vKR3wdJlufHXMOZjPUIgSFEIWACR6VggxSMBxMDT++mjLGBZA7EAQwB
irCkI3VhHxvs1NYEo7Jroa5o9y6ogqOUOKQNC6oDV9H37IG26qU1Hb4rwzAr2zZZLFcpaLDMHj4l
rb9C6xalZmmOLdKaqguKq5/JgCe/OhtOg3G/Oe20LoI4usE4HWV/9e0LUEsDBBQAAgAIACOtW0ds
P9p9tgAAANwBAABDABwAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2st
aXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUCQAD4lEwVuJRMFZ1eAsAAQT1AQAABBQAAADlz88K
wjAMBvC7T5GTbKBWEBF6E50XEWHzz7ndMil0ychaxbd3Ez35CN7ykd8HSZbnx1zDmYz1CIEhRCFg
AkelYIMUjAcTA0/vpoyxgWQOxAEMAYqwpCN1YR8b7NTWBKOya6GuaPcuqIKjlDikDQuqA1fR9+yB
tuqlNR2+K8MwK9s2WSxXKWiwzB4+Ja2/QusWpWZpji3SmqoLiqufyYAnvzobToNxvznttC6COLrB
OB1lf/XtC1BLAwQUAAIACAAjrVtHqw9xHrAAAADuAAAANAAcAHN0b3JhZ2Uvd2Vic3FsL3RyYW5z
YWN0aW9uLWVycm9yLWNhbGxiYWNrLXN0ZGVyci50eHRVVAkAA+JRMFbiUTBWdXgLAAEE9QEAAAQU
AAAAZc5BC4JAEAXge79iTqFQbRAR7C3KLhGClp53dQxhnZFxt+jfp1GnbvN434NJsizNNNzIWIfg
GXwQAiZoqRLskLxxYILn5cNUIXQQrYHYgyFAEZZ4pgp2ocNBHY03KilzVaI9t17lHKTCKR1YUF24
Dm5kT7T1KK0Z8DOZjlXV99Fmu4tBg2V28B1p/RNa9ygNS5f2SHuqC5S2eUUTXvzrZHoN5mNzPWmd
e2npDvN49gZQSwMEFAACAAgAI61bR2w/2n22AAAA3AEAAEUAHABzdG9yYWdlL3dlYnNxbC90cmFu
c2FjdGlvbi1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAkAA+JR
MFbiUTBWdXgLAAEE9QEAAAQUAAAA5c/PCsIwDAbwu0+Rk2ygVhARehOdFxFh88+53TIpdMnIWsW3
dxM9+Qje8pHfB0mW58dcw5mM9QiBIUQhYAJHpWCDFIwHEwNP76aMsYFkDsQBDAGKsKQjdWEfG+zU
1gSjsmuhrmj3LqiCo5Q4pA0LqgNX0ffsgbbqpTUdvivDMCvbNlksVylosMwePiWtv0LrFqVmaY4t
0pqqC4qrn8mAJ786G06Dcb857bQugji6wTgdZX/17QtQSwMECgAAAAAAWa1bRwAAAAAAAAAAAAAA
AAQAHABzdmcvVVQJAANKUjBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABZrVtHAAAAAAAA
AAAAAAAACwAcAHN2Zy9jdXN0b20vVVQJAANKUjBWclMwVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CABZrVtHqm7JGH8AAACNAAAAJAAcAHN2Zy9jdXN0b20vemVyby1kYXNoYXJyYXktc3RkZXJyLnR4
dFVUCQADSlIwVkpSMFZ1eAsAAQT1AQAABBQAAAANyLsKwkAQBdDer7g/YCAPiVnEJhEbQVA7sRiT
CwY2szLZ+Pp6U55zbCOyElnqiswVFfge0zRPfGjFo5mG54na0S5GXvN1Wa1u2OzMgm0d6n0dNPIT
z4yHXtnI+HDo9SW+79DNgpjJ10EiPGWMCErQc6BGDNMcd0KDLn+0kCz+UEsDBAoAAAAAADetW0cA
AAAAAAAAAAAAAAALABwAc3ZnL3N0cm9rZS9VVAkAAwlSMFZyUzBWdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIADetW0eYaVEKgAAAAI0AAAAlABwAc3ZnL3N0cm9rZS96ZXJvLXdpZHRoLWhhbmctc3Rk
ZXJyLnR4dFVUCQADCVIwVglSMFZ1eAsAAQT1AQAABBQAAAANyEsKwkAQRdG5q3gbMJAPRBtxkogT
QVBn4qBMHtjQqZZKx9/qDdzJuccuoahR5K6aq8D3mOdlFmInAe00PE/UnnYx8lqu6np9w2ZnFm3r
0OybqImfdGY6eGUr48PB60uC79HPgpjJ10ESAmVMiEowcKAmDNM87oRGXf5oMVv8AVBLAwQUAAIA
CACDrVtHgNKuAnHFAACajBMAGQAcAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAkAA5VSMFZo
UDBWdXgLAAEE9QEAAAQUAAAA7f35c9xIki8O/t5/BZ/Zqqdq34DEkSdttdoqSdVV+3SZxJruZ/v2
SwMzgyRKSCAHQFJk2/7xG8j7QCbi9HAgo2aa4on4wMPDw29/9/7XP/9x/YPcOdM4LO7TbOIUJC/y
63+kUfJwUaQXs5xcTNOsuOj6Xq/7t3d8f9D72x+ffvtc+fskIVlYlH+UkB8Xb3+5iJKLq/9K49mE
5FfvwiK8ev/Pb1f/JHf/KyqW//w6i+Lx1TtyN3u4isOXdFbMH+ZkJJ/FRX51+2Na3I5IVuQncG7W
DS98tzO4uIuKi6/ffrmYZtFTWJCL7+Tlb5f0v//5P//n+t8fWbSGuvV75fv+hzLQV6OQPvNySib/
8Ten/O9vx1/jz7yEM0qT++hhVr5PmlzcZ+lEHQmv0ilJ8jy+HN0//O3tIxl9vygew4J+IBcZ+e8Z
/auLSViMHkk+/14ePSRhMcvI376tPrtIv//tLX1WdB+NSoq9I0UYxfn13y6W/30jWRTGF59mkzuS
XV94Fz+5z97P6x//VxhH46h4WX+j/O9TWlz8SigpyPXF51Fx4Q8u3M510LmmW+m7XvfiHx9vDv7g
l/uCZBfX9POnC79/4g++ze7+IqPieucJo3QySZNP4YRc7P33+uJwb9Z/+q+uO3wKLshzQQlJNyjf
feryx7+GeTS6eEt/XGRhlNC9vfjb/jJvf7m++frn+6o/XwK++F+UG/8Yk6QkdknLg2f03WvXvX7r
Xr/7rXz59/61//Z6OLh+7127v167v10Pe9ed7vX7365/HVz/8u76fe/6t9+uu/3roHLdX2bFY0pP
xUv9ypSpo/G1qvXL/95FWbkb11dvP70+sQGr//I5m1273t+q3qTE/2cePpAqwm9xb8nWVX//vtzf
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
AAAVABgAAAAAAAEAAACkgcITAABfd3B0X2NlcnRzL2NhY2VydC5wZW1VVAUAA2hQMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABYrFtHMXwGTUMFAADPBgAAFAAYAAAAAAABAAAApIEZHQAAX3dw
dF9jZXJ0cy9jYWtleS5wZW1VVAUAA2hQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABYrFtH
amxHrEUAAABdAAAAFAAYAAAAAAABAAAApIGqIgAAX3dwdF9jZXJ0cy9pbmRleC50eHRVVAUAA2hQ
MFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAABYrFtHmFx5fxUAAAAVAAAAGQAYAAAAAAABAAAA
pIE9IwAAX3dwdF9jZXJ0cy9pbmRleC50eHQuYXR0clVUBQADaFAwVnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAgAAAFisW0eYXHl/FQAAABUAAAAdABgAAAAAAAEAAACkgaUjAABfd3B0X2NlcnRzL2lu
ZGV4LnR4dC5hdHRyLm9sZFVUBQADaFAwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAFisW0dI
sbXNMwAAADMAAAAYABgAAAAAAAEAAACkgREkAABfd3B0X2NlcnRzL2luZGV4LnR4dC5vbGRVVAUA
A2hQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABYrFtHiWAbJQwFAACPBgAAGAAYAAAAAAAB
AAAApIGWJAAAX3dwdF9jZXJ0cy9sb2NhbGhvc3Qua2V5VVQFAANoUDBWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAWKxbR+4mO8nfCQAALhIAABgAGAAAAAAAAQAAAKSB9CkAAF93cHRfY2VydHMv
bG9jYWxob3N0LnBlbVVUBQADaFAwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAFisW0essJTP
AwAAAAMAAAARABgAAAAAAAEAAACkgSU0AABfd3B0X2NlcnRzL3NlcmlhbFVUBQADaFAwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAgAAAFisW0ftgY/WAwAAAAMAAAAVABgAAAAAAAEAAACkgXM0AABf
d3B0X2NlcnRzL3NlcmlhbC5vbGRVVAUAA2hQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACW
rVtHEXkelLE3AQCgfQsADgAYAAAAAAABAAAApIHFNAAAYWNjZXNzX2xvZy50eHRVVAUAA7tSMFZ1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABorFtHAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UG+
bAEAY29tcG9zaXRpbmcvVVQFAAOEUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAYKxbRwAA
AAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BBG0BAGNvbXBvc2l0aW5nL3JlZ2lvbnMvVVQFAANzUDBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAYKxbR9xJSDqsAAAAFAMAAEUAGAAAAAAAAQAAAKSB
Um0BAGNvbXBvc2l0aW5nL3JlZ2lvbnMvd2Via2l0LWZsb3ctcmVuZGVyZXItbGF5ZXItY29tcG9z
aXRpbmctc3RkZXJyLnR4dFVUBQADc1AwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGisW0fn
QMqnwQAAAPIGAAA8ABgAAAAAAAEAAACkgX1uAQBjb21wb3NpdGluZy9zaG93LWNvbXBvc2l0ZWQt
aWZyYW1lLW9uLWJhY2stYnV0dG9uLXN0ZGVyci50eHRVVAUAA4RQMFZ1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAABcrFtHAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UG0bwEAY29tcG9zaXRpbmcv
dmlkZW8vVVQFAANwUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXKxbR9Py62GuAAAA3gMA
ADIAGAAAAAAAAQAAAKSBAHABAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNsaXAtY2hhbmdlLXNy
Yy1zdGRlcnIudHh0VVQFAANwUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAdqxbRwAAAAAA
AAAAAAAAAAgAGAAAAAAAAAAQAO1BGnEBAGVkaXRpbmcvVVQFAAOfUDBWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAg6xbRwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BXHEBAGVkaXRpbmcvcGFz
dGVib2FyZC9VVAUAA7ZQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB2rFtHkTmEgu4AAACG
AQAAMAAYAAAAAAABAAAApIGpcQEAZWRpdGluZy9wYXN0ZWJvYXJkL2NvcHktcmVzb2x2ZXMtdXJs
cy1zdGRlcnIudHh0VVQFAAOfUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAe6xbR5PYTxLq
AAAAgQEAAEQAGAAAAAAAAQAAAKSBAXMBAGVkaXRpbmcvcGFzdGVib2FyZC9pbWctc3Jjc2V0LWNv
cHktcGFzdGUtY2Fub25pY2FsaXphdGlvbi1zdGRlcnIudHh0VVQFAAOqUDBWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAg6xbR5AFBMPgAAAAVAEAACwAGAAAAAAAAQAAAKSBaXQBAGVkaXRpbmcv
cGFzdGVib2FyZC9wYXN0ZS1ub3BsdWdpbi1zdGRlcnIudHh0VVQFAAO2UDBWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAg6xbR4eAYkjpAAAAfwEAADIAGAAAAAAAAQAAAKSBr3UBAGVkaXRpbmcv
cGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC14aHRtbC1zdGRlcnIudHh0VVQFAAO2UDBWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgA9a1bRyjCUVWACgAAmD8AAA0AGAAAAAAAAQAAAKSBBHcBAGVy
cm9yX2xvZy50eHRVVAUAA25TMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADXrFtHAAAAAAAA
AAAAAAAABQAYAAAAAAAAABAA7UHLgQEAZmFzdC9VVAUAA1VRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAACNrFtHAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UEKggEAZmFzdC9jYW52YXMvVVQF
AAPKUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjaxbRxUjU7KGAAAAGgEAACYAGAAAAAAA
AQAAAKSBUIIBAGZhc3QvY2FudmFzL2NhbnZhcy1saW5lRGFzaC1zdGRlcnIudHh0VVQFAAPKUDBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA16xbRwAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B
NoMBAGZhc3QvY3NzL1VUBQADVVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANesW0dOS4yO
sQAAAM4BAAA2ABgAAAAAAAEAAACkgXmDAQBmYXN0L2Nzcy9wZXJzcGVjdGl2ZS1vcmlnaW4taW5p
dGlhbC1pbmhlcml0LXN0ZGVyci50eHRVVAUAA1VRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AACGrFtHAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGahAEAZmFzdC9kb20vVVQFAAO8UDBWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAhqxbRwAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1B3YQB
AGZhc3QvZG9tL011dGF0aW9uT2JzZXJ2ZXIvVVQFAAO8UDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAhqxbR6sPcR6wAAAA7gAAAD8AGAAAAAAAAQAAAKSBMYUBAGZhc3QvZG9tL011dGF0aW9u
T2JzZXJ2ZXIvZGF0YWJhc2UtY2FsbGJhY2stZGVsaXZlcnktc3RkZXJyLnR4dFVUBQADvFAwVnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIusW0cAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQVqG
AQBmYXN0L2Zvcm1zL1VUBQADxlAwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIusW0cU1ILP
ewEAAPg5AAAzABgAAAAAAAEAAACkgZ+GAQBmYXN0L2Zvcm1zL1ZhbGlkaXR5U3RhdGUtcGF0dGVy
bk1pc21hdGNoLXN0ZGVyci50eHRVVAUAA8ZQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADB
rFtHAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGHiAEAZmFzdC9mcmFtZXMvVVQFAAMqUTBWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwaxbR6sPcR6wAAAA7gAAAC8AGAAAAAAAAQAAAKSBzYgB
AGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc3RvcmFnZS1zdGRlcnIudHh0VVQFAAMqUTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAkqxbRwAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1B
5okBAGZhc3QvaGlzdG9yeS9VVAUAA9NQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACSrFtH
qw9xHrAAAADuAAAAQAAYAAAAAAABAAAApIEtigEAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2Vi
ZGF0YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGItc3RkZXJyLnR4dFVUBQAD01AwVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJKsW0dsP9p9tgAAANwBAABCABgAAAAAAAEAAACkgVeLAQBmYXN0L2hp
c3RvcnkvcGFnZS1jYWNoZS13ZWJkYXRhYmFzZS1wZW5kaW5nLXRyYW5zYWN0aW9uLXN0ZGVyci50
eHRVVAUAA9NQMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACUrFtHAAAAAAAAAAAAAAAADAAY
AAAAAAAAABAA7UGJjAEAZmFzdC9pbWFnZXMvVVQFAAPYUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAlKxbRyGPvTgyAAAAMwAAACwAGAAAAAAAAQAAAKSBz4wBAGZhc3QvaW1hZ2VzL3BkZi1h
cy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQFAAPYUDBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAqqxbRwAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BZ40BAGZhc3QveHNsL1VUBQAD/1Aw
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKmsW0dy/WXyhQAAAOkAAAAlABgAAAAAAAEAAACk
gaqNAQBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAAP9UDBWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAqaxbR84JKAKNAAAA8AAAACcAGAAAAAAAAQAAAKSBjo4BAGZh
c3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQAD/VAwVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAKmsW0fPj2YOUAAAAKAAAAAkABgAAAAAAAEAAACkgXyPAQBmYXN0L3hz
bC94c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAA/1QMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACqrFtHgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIEqkAEAZmFzdC94c2wveHNsdC10
cmFuc2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQAD/1AwVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAPatW0fvCg0nuwEAAL8EAAARABgAAAAAAAEAAACkgeOQAQBmdWxsX3Jl
c3VsdHMuanNvblVUBQADcFMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKusW0cAAAAAAAAA
AAAAAAAFABgAAAAAAAAAEADtQemSAQBodHRwL1VUBQADAVEwVnV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAMasW0cAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQSiTAQBodHRwL3Rlc3RzL1VUBQAD
M1EwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAK6sW0cAAAAAAAAAAAAAAAARABgAAAAAAAAA
EADtQW2TAQBodHRwL3Rlc3RzL2NhY2hlL1VUBQADCFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAK6sW0cFwnJV0wAAAMkDAAAwABgAAAAAAAEAAACkgbiTAQBodHRwL3Rlc3RzL2NhY2hlL21l
bW9yeS1jYWNoZS1wcnVuaW5nLXN0ZGVyci50eHRVVAUAAwhRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACurFtHw2eQhooAAACAAQAAPQAYAAAAAAABAAAApIH1lAEAaHR0cC90ZXN0cy9jYWNo
ZS9uZXR3b3JrLWVycm9yLWR1cmluZy1yZXZhbGlkYXRpb24tc3RkZXJyLnR4dFVUBQADCFEwVnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKusW0cAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQfaV
AQBodHRwL3Rlc3RzL2NhbnZhcy9VVAUAAwFRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACr
rFtHAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UFClgEAaHR0cC90ZXN0cy9jYW52YXMvd2ViZ2wv
VVQFAAMBUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAq6xbR/aT7Q/LAAAANwIAADsAGAAA
AAAAAQAAAKSBlJYBAGh0dHAvdGVzdHMvY2FudmFzL3dlYmdsL29yaWdpbi1jbGVhbi1jb25mb3Jt
YW5jZS1zdGRlcnIudHh0VVQFAAMBUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAq6xbRwAA
AAAAAAAAAAAAAA8AGAAAAAAAAAAQAO1B1JcBAGh0dHAvdGVzdHMvY3NzL1VUBQADAlEwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAKusW0eq+7zogwAAAHQBAAAuABgAAAAAAAEAAACkgR2YAQBo
dHRwL3Rlc3RzL2Nzcy9ib3JkZXItaW1hZ2UtbG9hZGluZy1zdGRlcnIudHh0VVQFAAMCUTBWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2KxbRwAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BCJkB
AGh0dHAvdGVzdHMvbWVkaWEvVVQFAANXUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAr6xb
RwAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BU5kBAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkv
VVQFAAMKUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr6xbR7YgmS1RAQAAfwMAADkAGAAA
AAAAAQAAAKSBp5kBAGh0dHAvdGVzdHMvbWVkaWEvY2xlYXJrZXkvY2xlYXIta2V5LWhscy1hZXMx
Mjgtc3RkZXJyLnR4dFVUBQADClEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALKsW0cAAAAA
AAAAAAAAAAAVABgAAAAAAAAAEADtQWubAQBodHRwL3Rlc3RzL21lZGlhL2hscy9VVAUAAw9RMFZ1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACvrFtH0h9Nv6cBAACFBAAAQAAYAAAAAAABAAAApIG6
mwEAaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWFjY2Vzc2libGl0eS1kZXNjcmliZXMtdmlkZW8t
c3RkZXJyLnR4dFVUBQADClEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALCsW0ehlrjgzAEA
AEUFAAA6ABgAAAAAAAEAAACkgdudAQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJh
Y2tzLWhhcy1hdWRpby1zdGRlcnIudHh0VVQFAAMLUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAsaxbR5gbMv7UAQAAnwUAAEEAGAAAAAAAAQAAAKSBG6ABAGh0dHAvdGVzdHMvbWVkaWEvaGxz
L2hscy1hdWRpby10cmFja3MtbG9jYWxlLXNlbGVjdGlvbi1zdGRlcnIudHh0VVQFAAMOUTBWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsaxbRxC6lTrKAQAARQUAADAAGAAAAAAAAQAAAKSBaqIB
AGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3Mtc3RkZXJyLnR4dFVUBQADDlEw
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKsW0fIb7dILAEAAN4DAAAsABgAAAAAAAEAAACk
gZ6kAQBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtcHJvZ3Jlc3Mtc3RkZXJyLnR4dFVUBQADD1Ew
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALKsW0e+resRQwEAALAHAAA9ABgAAAAAAAEAAACk
gTCmAQBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9sbGVyLWdldFN0YXJ0RGF0ZS1z
dGRlcnIudHh0VVQFAAMPUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr6xbR6uFHGDMAAAA
kQIAADIAGAAAAAAAAQAAAKSB6qcBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1lbnQtcmVm
ZXJlci1zdGRlcnIudHh0VVQFAAMJUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr6xbR7LE
mh7lAAAABgMAACoAGAAAAAAAAQAAAKSBIqkBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtZG9jdW1l
bnQtc3RkZXJyLnR4dFVUBQADClEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALCsW0ePgbNU
6AAAAMYDAAA5ABgAAAAAAAEAAACkgWuqAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXBsYXktc3Ry
ZWFtLWNodW5rZWQtaWN5LXN0ZGVyci50eHRVVAUAAwxRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADCrFtHAAAAAAAAAAAAAAAAHgAYAAAAAAAAABAA7UHGqwEAaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zb3VyY2UvVVQFAAMsUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtqxbR+I1fBFK
AQAAlwQAAEIAGAAAAAAAAQAAAKSBHqwBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21l
ZGlhc291cmNlLWFwcGVuZC1idWZmZXItc3RkZXJyLnR4dFVUBQADF1EwVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIALesW0fAtFRnPgEAAHoDAABQABgAAAAAAAEAAACkgeStAQBodHRwL3Rlc3Rz
L21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWJpdHJh
dGUtc3RkZXJyLnR4dFVUBQADGlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALisW0e8NnQf
PgEAAHoDAABSABgAAAAAAAEAAACkgayvAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9t
ZWRpYXNvdXJjZS1jb25maWctY2hhbmdlLW1wNC12LWZyYW1lcmF0ZS1zdGRlcnIudHh0VVQFAAMc
UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAvaxbR/chgXOLAAAAmwAAADkAGAAAAAAAAQAA
AKSBdrEBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXktc3Rk
ZXJyLnR4dFVUBQADJVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMCsW0dNMbFiqQAAAAcD
AAA7ABgAAAAAAAEAAACkgXSyAQBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXNvdXJjZS9tZWRpYXNv
dXJjZS1yZW1vdmUtc3RkZXJyLnR4dFVUBQADKFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AMKsW0ePuIcGogAAANEBAABGABgAAAAAAAEAAACkgZKzAQBodHRwL3Rlc3RzL21lZGlhL21lZGlh
LXNvdXJjZS9tZWRpYXNvdXJjZS1zb3VyY2VidWZmZXItbW9kZS1zdGRlcnIudHh0VVQFAAMsUTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr6xbR1VYY3KDAAAAwAAAAEYAGAAAAAAAAQAAAKSB
tLQBAGh0dHAvdGVzdHMvbWVkaWEvbWVkaWEtc291cmNlL1NvdXJjZUJ1ZmZlci1hYm9ydC1yZWFk
eVN0YXRlLXN0ZGVyci50eHRVVAUAAwpRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADBrFtH
9+eiOWoAAABrAAAALQAYAAAAAAABAAAApIG3tQEAaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVk
LWFzLXBkZi1hY3R1YWwudHh0VVQFAAMqUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwaxb
R+GyVMz+AAAAsAEAACsAGAAAAAAAAQAAAKSBiLYBAGh0dHAvdGVzdHMvbWVkaWEvcGRmLXNlcnZl
ZC1hcy1wZGYtZGlmZi50eHRVVAUAAypRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADBrFtH
fPD/o20AAACAAAAALwAYAAAAAAABAAAApIHrtwEAaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVk
LWFzLXBkZi1leHBlY3RlZC50eHRVVAUAAypRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADB
rFtHAaLdNgoIAADkGwAAMwAYAAAAAAABAAAApIHBuAEAaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2Vy
dmVkLWFzLXBkZi1wcmV0dHktZGlmZi5odG1sVVQFAAMqUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAwaxbRyQKDWbtAAAAXwEAAC0AGAAAAAAAAQAAAKSBOMEBAGh0dHAvdGVzdHMvbWVkaWEv
cGRmLXNlcnZlZC1hcy1wZGYtc3RkZXJyLnR4dFVUBQADKlEwVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAMKsW0cjcM7fzQAAADcCAAAvABgAAAAAAAEAAACkgYzCAQBodHRwL3Rlc3RzL21lZGlh
L3JlbG9hZC1hZnRlci1kaWFsb2ctc3RkZXJyLnR4dFVUBQADLFEwVnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIANGsW0f356I5agAAAGsAAAAvABgAAAAAAAEAAACkgcLDAQBodHRwL3Rlc3RzL21l
ZGlhL3RleHQtc2VydmVkLWFzLXRleHQtYWN0dWFsLnR4dFVUBQADSlEwVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANGsW0fDJI+c/gAAALYBAAAtABgAAAAAAAEAAACkgZXEAQBodHRwL3Rlc3Rz
L21lZGlhL3RleHQtc2VydmVkLWFzLXRleHQtZGlmZi50eHRVVAUAA0pRMFZ1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADRrFtHjGqFl28AAACCAAAAMQAYAAAAAAABAAAApIH6xQEAaHR0cC90ZXN0
cy9tZWRpYS90ZXh0LXNlcnZlZC1hcy10ZXh0LWV4cGVjdGVkLnR4dFVUBQADSlEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIANKsW0cTY8ROCQgAAOgbAAA1ABgAAAAAAAEAAACkgdTGAQBodHRw
L3Rlc3RzL21lZGlhL3RleHQtc2VydmVkLWFzLXRleHQtcHJldHR5LWRpZmYuaHRtbFVUBQADS1Ew
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANGsW0egZO7LRwEAABoCAAAvABgAAAAAAAEAAACk
gUzPAQBodHRwL3Rlc3RzL21lZGlhL3RleHQtc2VydmVkLWFzLXRleHQtc3RkZXJyLnR4dFVUBQAD
SlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANSsW0c1q58WGwEAAMMDAAA2ABgAAAAAAAEA
AACkgfzQAQBodHRwL3Rlc3RzL21lZGlhL3RyYWNrLWluLWJhbmQtaGxzLW1ldGFkYXRhLXN0ZGVy
ci50eHRVVAUAA09RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADUrFtHFQrUS1YBAAC2AwAA
JgAYAAAAAAABAAAApIGH0gEAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1hdXRoLXN0ZGVyci50eHRV
VAUAA09RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADUrFtHlverPuIAAABSAgAALQAYAAAA
AAABAAAApIE91AEAaHR0cC90ZXN0cy9tZWRpYS92aWRlby1lcnJvci1hYm9ydC1zdGRlcnIudHh0
VVQFAANQUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1axbR+/5O9IZAQAAPQIAADYAGAAA
AAAAAQAAAKSBhtUBAGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tZXJyb3ItZG9lcy1ub3QtZXhpc3Qt
c3RkZXJyLnR4dFVUBQADUVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANWsW0dQVqenwwAA
ACQDAAAsABgAAAAAAAEAAACkgQ/XAQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWxvYWQtdHdpY2Ut
c3RkZXJyLnR4dFVUBQADUVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANWsW0frtnpC4gAA
AMYDAAAvABgAAAAAAAEAAACkgTjYAQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktcHJvZ3Jl
c3Mtc3RkZXJyLnR4dFVUBQADUlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANesW0d18uRb
gwAAAMAAAAA9ABgAAAAAAAEAAACkgYPZAQBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktc3Rh
bGwtYmVmb3JlLW1ldGEtZGF0YS1zdGRlcnIudHh0VVQFAANVUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA16xbR603AQG8AAAAkgEAACsAGAAAAAAAAQAAAKSBfdoBAGh0dHAvdGVzdHMvbWVk
aWEvdmlkZW8tcXVlcnktdXJsLXN0ZGVyci50eHRVVAUAA1ZRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADXrFtHoMc2AuwAAABYBQAAKgAYAAAAAAABAAAApIGe2wEAaHR0cC90ZXN0cy9tZWRp
YS92aWRlby1yZWRpcmVjdC1zdGRlcnIudHh0VVQFAANWUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA2KxbR4JFLz/fAAAABgMAACsAGAAAAAAAAQAAAKSB7twBAGh0dHAvdGVzdHMvbWVkaWEv
dmlkZW8tdXNlcmFnZW50LXN0ZGVyci50eHRVVAUAA1dRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADZrFtHAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UEy3gEAaHR0cC90ZXN0cy9taXNjL1VU
BQADWVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALmsW0dtTlRg6gAAAGYBAAAtABgAAAAA
AAEAAACkgXzeAQBodHRwL3Rlc3RzL21pc2MvY29weS1yZXNvbHZlcy11cmxzLXN0ZGVyci50eHRV
VAUAAx1RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC5rFtHYHKgiMMAAAD+AAAAPwAYAAAA
AAABAAAApIHN3wEAaHR0cC90ZXN0cy9taXNjL2RlbGV0ZS1mcmFtZS1kdXJpbmctcmVhZHlzdGF0
ZWNoYW5nZS1zdGRlcnIudHh0VVQFAAMeUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuaxb
R+QnbSbFAAAA/gAAAFsAGAAAAAAAAQAAAKSBCeEBAGh0dHAvdGVzdHMvbWlzYy9kZWxldGUtZnJh
bWUtZHVyaW5nLXJlYWR5c3RhdGVjaGFuZ2Utd2l0aC1nYy1hZnRlci12aWRlby1yZW1vdmFsLXN0
ZGVyci50eHRVVAUAAx5RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZrFtHFTU1knoAAAC8
AAAAKgAYAAAAAAABAAAApIFj4gEAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRl
cnIudHh0VVQFAANZUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAsqxbRwAAAAAAAAAAAAAA
ABMAGAAAAAAAAAAQAO1BQeMBAGh0dHAvdGVzdHMvcGx1Z2lucy9VVAUAAxBRMFZ1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACyrFtHdl7Tlo0AAACAAQAANgAYAAAAAAABAAAApIGO4wEAaHR0cC90
ZXN0cy9wbHVnaW5zL2NyZWF0ZS12OC1zY3JpcHQtb2JqZWN0cy1zdGRlcnIudHh0VVQFAAMQUTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAy6xbRwAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B
i+QBAGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQFAAM+UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAwKxbRwAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1B2eQBAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L1VUBQADKFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ALWsW0cAAAAAAAAAAAAAAAA9ABgAAAAAAAAAEADtQT3lAQBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vVVQFAAMVUTBWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAs6xbRzrNVA3lAAAAQwIAAFMAGAAAAAAAAQAAAKSBtOUBAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9h
bGxvdy1hdWRpby1zdGRlcnIudHh0VVQFAAMSUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
tKxbR4eNIm+8AAAAkgEAAFMAGAAAAAAAAQAAAKSBJucBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9hbGxvdy12aWRlby1zdGRlcnIu
dHh0VVQFAAMUUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAtaxbRxoV4f+DAAAAwAAAAGsA
GAAAAAAAAQAAAKSBb+gBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYWxsb3dlZC1z
dGRlcnIudHh0VVQFAAMVUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwKxbR2OqrGyCAAAA
qAAAAEAAGAAAAAAAAQAAAKSBl+kBAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAUAAyhRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADArFtHY6qsbIIAAACoAAAAUgAYAAAAAAABAAAApIGT6gEAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVuYWZmZWN0ZWQtYnktc3R5bGUtc3JjLTIt
c3RkZXJyLnR4dFVUBQADKFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALqsW0dsP9p9tgAA
ANwBAAA6ABgAAAAAAAEAAACkgaHrAQBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13
ZWJzcWwtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAMfUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAvKxbR9kxIjDLAAAA3QEAAD0AGAAAAAAAAQAAAKSBy+wBAGh0dHAvdGVzdHMvc2VjdXJpdHkv
bG9jYWwtdmlkZW8tc291cmNlLWZyb20tcmVtb3RlLXN0ZGVyci50eHRVVAUAAyRRMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAC9rFtH2oAu04MAAADAAAAAOgAYAAAAAAABAAAApIEN7gEAaHR0
cC90ZXN0cy9zZWN1cml0eS9sb2NhbC12aWRlby1zcmMtZnJvbS1yZW1vdGUtc3RkZXJyLnR4dFVU
BQADJVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALasW0cAAAAAAAAAAAAAAAAhABgAAAAA
AAAAEADtQQTvAQBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9VVAUAAxhRMFZ1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAC2rFtHR5aefeIAAAA+BAAATgAYAAAAAAABAAAApIFf7wEA
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtYXVkaW8tdmlkZW8taW4t
bWFpbi1mcmFtZS1zdGRlcnIudHh0VVQFAAMYUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
tqxbRxKXBU+DAAAAwAAAAEIAGAAAAAAAAQAAAKSByfABAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUBQADGFEwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAMesW0fOPc5juAAAACcBAAA/ABgAAAAAAAEAAACkgcjxAQBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3ZpZGVvLXBvc3Rlci1jcm9zcy1vcmlnaW4tY3Jhc2gyLXN0ZGVy
ci50eHRVVAUAAzVRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADLrFtHYEtmEJEAAAD7AQAA
RQAYAAAAAAABAAAApIH58gEAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1
bWVudC1zZWN1cml0eU9yaWdpbi1zdGRlcnIudHh0VVQFAAM+UTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAt6xbRwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BCfQBAGh0dHAvdGVzdHMvc3Rv
cmFnZS9VVAUAAxpRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC3rFtHqw9xHrAAAADuAAAA
RQAYAAAAAAABAAAApIFW9AEAaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVk
LWluLWNvcnJlY3QtY29udGV4dC1zdGRlcnIudHh0VVQFAAMaUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAxqxbRwAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BhfUBAGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvVVQFAAMzUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAxqxbR35/7Rex
AAAAAQEAAEEAGAAAAAAAAQAAAKSB2fUBAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1i
bG9iLWNvbnRlbnQtdHlwZS1hc3luYy1zdGRlcnIudHh0VVQFAAMzUTBWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAxqxbR35/7RexAAAAAQEAAEAAGAAAAAAAAQAAAKSBBfcBAGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5jLXN0ZGVyci50eHRVVAUA
AzNRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDrVtHNRPGmpkFAAAREAAACgAYAAAAAAAB
AAAApIEw+AEAaHR0cGQuY29uZlVUBQADlVIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANWs
W0cAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQQ3+AQBpbXBvcnRlZC9VVAUAA1FRMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAADVrFtHAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UFQ/gEAaW1w
b3J0ZWQvdzNjL1VUBQADUVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANWsW0cAAAAAAAAA
AAAAAAAgABgAAAAAAAAAEADtQZf+AQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VU
BQADUVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANWsW0cAAAAAAAAAAAAAAAAlABgAAAAA
AAAAEADtQfH+AQBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQFAANRUTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2KxbRwAAAAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1B
UP8BAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvVVQFAANX
UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA16xbRwAAAAAAAAAAAAAAAEAAGAAAAAAAAAAQ
AO1Buf8BAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9VVAUAA1ZRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADxrFtHAAAA
AAAAAAAAAAAATwAYAAAAAAAAABAA7UEzAAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL1VUBQADhVEw
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANWsW0d/oW6AxAAAAIwEAABnABgAAAAAAAEAAACk
gbwAAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheS1zdGRlcnIudHh0VVQFAANR
UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1axbR5rg18zwAAAAZAUAAHIAGAAAAAAAAQAA
AKSBIQICAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9jYW5wbGF5X25vYXV0b3BsYXktc3Rk
ZXJyLnR4dFVUBQADUlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANasW0fDCaoO8wAAAAwG
AABuABgAAAAAAAEAAACkgb0DAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfY2FucGxheXRo
cm91Z2gtc3RkZXJyLnR4dFVUBQADVFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANesW0ft
lkfC8QAAAP4EAAB5ABgAAAAAAAEAAACkgVgFAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRf
Y2FucGxheXRocm91Z2hfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANVUTBWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA2KxbR2mIznrwAAAADAYAAGoAGAAAAAAAAQAAAKSB/AYCAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRkYXRhLXN0ZGVyci50eHRVVAUAA1dRMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADYrFtHMFRXp+0AAACkBAAAdQAYAAAAAAABAAAApIGQCAIAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X2xvYWRlZGRhdGFfbm9hdXRvcGxheS1zdGRlcnIudHh0
VVQFAANYUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2axbR8E4gSzwAAAApAQAAG4AGAAA
AAAAAQAAAKSBLAoCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRtZXRhZGF0YS1z
dGRlcnIudHh0VVQFAANZUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2axbR3rFbZbwAAAA
pAQAAHkAGAAAAAAAAQAAAKSBxAsCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9sb2FkZWRt
ZXRhZGF0YV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA1pRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADarFtHIH22/uwAAACkBAAAaQAYAAAAAAABAAAApIFnDQIAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X2xvYWRzdGFydC1zdGRlcnIudHh0VVQFAANcUTBWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA26xbRyy6r1fqAAAApAQAAHQAGAAAAAAAAQAAAKSB9g4CAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRp
YS1lbGVtZW50cy9ldmVudF9sb2Fkc3RhcnRfbm9hdXRvcGxheS1zdGRlcnIudHh0VVQFAANdUTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA3KxbR1xtDt/0AAAAZgYAAHwAGAAAAAAAAQAAAKSB
jhACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVudF9vcmRlcl9jYW5wbGF5X2NhbnBsYXl0aHJv
dWdoLXN0ZGVyci50eHRVVAUAA19RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADcrFtHkpWI
avYAAAAMBgAAdQAYAAAAAAABAAAApIE4EgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29y
ZGVyX2NhbnBsYXlfcGxheWluZy1zdGRlcnIudHh0VVQFAANgUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgA3axbR/6LDZXwAAAADAYAAH8AGAAAAAAAAQAAAKSB3RMCAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9ldmVudF9vcmRlcl9sb2FkZWRtZXRhZGF0YV9sb2FkZWRkYXRhLXN0ZGVyci50eHRV
VAUAA2FRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADgrFtHGHwjjvMAAABmBgAAeAAYAAAA
AAABAAAApIGGFQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X29yZGVyX2xvYWRzdGFydF9w
cm9ncmVzcy1zdGRlcnIudHh0VVQFAANjUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4axb
R0Ijz1DyAAAAZgYAAGUAGAAAAAAAAQAAAKSBKxcCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF9wYXVzZS1zdGRlcnIudHh0VVQFAANlUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4qxb
R/xQ0XvsAAAApAQAAHAAGAAAAAAAAQAAAKSBvBgCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF9wYXVzZV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA2dRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADirFtHYberiPAAAABmBgAAZAAYAAAAAAABAAAApIFSGgIAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2V2ZW50X3BsYXktc3RkZXJyLnR4dFVUBQADaFEwVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAOOsW0cJdVCX7QAAAKQEAABvABgAAAAAAAEAAACkgeAbAgBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxl
bWVudHMvZXZlbnRfcGxheV9ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUAA2pRMFZ1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADkrFtHEoWC5fAAAAAMBgAAZwAYAAAAAAABAAAApIF2HQIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL2V2ZW50X3BsYXlpbmctc3RkZXJyLnR4dFVUBQADa1EwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOWsW0cGqdjQ8gAAAGYGAAByABgAAAAAAAEAAACkgQcfAgBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfcGxheWluZ19ub2F1dG9wbGF5LXN0ZGVyci50eHRVVAUA
A21RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADlrFtH48RMLPAAAAAMBgAAaAAYAAAAAAAB
AAAApIGlIAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzLXN0ZGVyci50eHRV
VAUAA25RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADmrFtH2nnFbOoAAACkBAAAcwAYAAAA
AAABAAAApIE3IgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL2V2ZW50X3Byb2dyZXNzX25vYXV0b3Bs
YXktc3RkZXJyLnR4dFVUBQADcFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOesW0e5jeAT
7wAAAGYGAABqABgAAAAAAAEAAACkgc4jAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvZXZlbnRfdGlt
ZXVwZGF0ZS1zdGRlcnIudHh0VVQFAANxUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6Kxb
R1xoJxrrAAAATAUAAHUAGAAAAAAAAQAAAKSBYSUCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9ldmVu
dF90aW1ldXBkYXRlX25vYXV0b3BsYXktc3RkZXJyLnR4dFVUBQADc1EwVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOisW0csucV+igAAAIABAABsABgAAAAAAAEAAACkgfsmAgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVk
aWEtZWxlbWVudHMvZXZlbnRfdm9sdW1lY2hhbmdlLXN0ZGVyci50eHRVVAUAA3RRMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAADVrFtHAAAAAAAAAAAAAAAAWgAYAAAAAAAAABAA7UErKAIAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250
ZW50L21lZGlhLWVsZW1lbnRzL2ludGVyZmFjZXMvVVQFAANRUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA1axbRwAAAAAAAAAAAAAAAGQAGAAAAAAAAAAQAO1BvygCAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1l
bGVtZW50cy9pbnRlcmZhY2VzL1RleHRUcmFjay9VVAUAA1JRMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADVrFtHJAFJUMsAAADdAQAAeQAYAAAAAAABAAAApIFdKQIAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL2ludGVyZmFjZXMvVGV4dFRyYWNrL2FjdGl2ZUN1ZXMtc3RkZXJyLnR4dFVUBQADUVEw
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANWsW0fYuJmtgwAAAMAAAAB1ABgAAAAAAAEAAACk
gdsqAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVk
ZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvaW50ZXJmYWNlcy9UZXh0VHJhY2svYWRkQ3VlLXN0
ZGVyci50eHRVVAUAA1JRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADprFtHQ4fUud8AAADk
AwAAdwAYAAAAAAABAAAApIENLAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL25ldHdvcmtTdGF0ZV9k
dXJpbmdfbG9hZHN0YXJ0LXN0ZGVyci50eHRVVAUAA3VRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADprFtHoLHZvoMAAADAAAAAbgAYAAAAAAABAAAApIGdLQIAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1l
bnRzL25ldHdvcmtTdGF0ZV9pbml0aWFsLXN0ZGVyci50eHRVVAUAA3ZRMFZ1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADqrFtHh9Ebq+wAAABMBQAAcgAYAAAAAAABAAAApIHILgIAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21l
ZGlhLWVsZW1lbnRzL3BhdXNlZF9mYWxzZV9kdXJpbmdfcGxheS1zdGRlcnIudHh0VVQFAAN3UTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6qxbRyTR42XtAAAApAQAAHIAGAAAAAAAAQAAAKSB
YDACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wYXVzZWRfdHJ1ZV9kdXJpbmdfcGF1c2Utc3RkZXJy
LnR4dFVUBQADeFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANasW0cAAAAAAAAAAAAAAABq
ABgAAAAAAAAAEADtQfkxAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcGxheWluZy10aGUtbWVkaWEt
cmVzb3VyY2UvVVQFAANUUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1qxbR69ktxgQAQAA
oAIAAJEAGAAAAAAAAQAAAKSBnTICAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wbGF5aW5nLXRoZS1t
ZWRpYS1yZXNvdXJjZS9wYXVzZS1tb3ZlLXRvLW90aGVyLWRvY3VtZW50LXN0ZGVyci50eHRVVAUA
A1NRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADWrFtHtc8xgiUBAABvAwAAjwAYAAAAAAAB
AAAApIF4NAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9l
bWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNl
L3BhdXNlLW1vdmUtd2l0aGluLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA1NRMFZ1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADWrFtHv++CNSsBAABvAwAAjwAYAAAAAAABAAAApIFmNgIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50
L21lZGlhLWVsZW1lbnRzL3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BhdXNlLXJlbW92ZS1m
cm9tLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA1RRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADWrFtH3KpE+4MAAAAaAQAAgQAYAAAAAAABAAAApIFaOAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRz
L3BsYXlpbmctdGhlLW1lZGlhLXJlc291cmNlL3BsYXliYWNrUmF0ZS1zdGRlcnIudHh0VVQFAANU
UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA66xbR6bry9iDAAAAwAAAAHgAGAAAAAAAAQAA
AKSBmDkCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1i
ZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9wcmVsb2FkX3JlZmxlY3RzX25vbmVfYXV0b3Bs
YXktc3RkZXJyLnR4dFVUBQADeVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOysW0cYE1kd
5AAAAEwFAABzABgAAAAAAAEAAACkgc06AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0
ZV9kdXJpbmdfY2FucGxheS1zdGRlcnIudHh0VVQFAAN7UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA7KxbR08BNR3tAAAAZgYAAHoAGAAAAAAAAQAAAKSBXjwCAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVt
ZW50cy9yZWFkeVN0YXRlX2R1cmluZ19jYW5wbGF5dGhyb3VnaC1zdGRlcnIudHh0VVQFAAN8UTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7axbRzq1YWf0AAAAwAYAAHYAGAAAAAAAAQAAAKSB
/z0CAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRk
ZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeVN0YXRlX2R1cmluZ19sb2FkZWRkYXRhLXN0
ZGVyci50eHRVVAUAA35RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADurFtHhPzJWO0AAACk
BAAAegAYAAAAAAABAAAApIGjPwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3JlYWR5U3RhdGVfZHVy
aW5nX2xvYWRlZG1ldGFkYXRhLXN0ZGVyci50eHRVVAUAA39RMFZ1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADurFtHEPsu+fQAAABmBgAAcwAYAAAAAAABAAAApIFEQQIAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVs
ZW1lbnRzL3JlYWR5U3RhdGVfZHVyaW5nX3BsYXlpbmctc3RkZXJyLnR4dFVUBQADgFEwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAO+sW0eY6mGegwAAAMAAAABsABgAAAAAAAEAAACkgeVCAgBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNv
bnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHlTdGF0ZV9pbml0aWFsLXN0ZGVyci50eHRVVAUAA4FR
MFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADxrFtHwbfsz9gAAADCAgAAhAAYAAAAAAABAAAA
pIEORAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJl
ZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3NyY19yZWZsZWN0c19hdHRyaWJ1dGVfbm90X3Nv
dXJjZV9lbGVtZW50cy1zdGRlcnIudHh0VVQFAAOFUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA1qxbRwAAAAAAAAAAAAAAAFUAGAAAAAAAAAAQAO1BpEUCAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50
cy90cmFjay9VVAUAA1RRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADWrFtHAAAAAAAAAAAA
AAAAYwAYAAAAAAAAABAA7UEzRgIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L21lZGlhLWVsZW1lbnRzL3RyYWNrL3RyYWNrLWVs
ZW1lbnQvVVQFAANUUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1qxbR7egB1+1AAAAgwEA
AIIAGAAAAAAAAQAAAKSB0EYCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy90cmFjay90cmFjay1lbGVt
ZW50L3RyYWNrLWFwaS10ZXh0dHJhY2tzLXN0ZGVyci50eHRVVAUAA1RRMFZ1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADXrFtHAAAAAAAAAAAAAAAAUgAYAAAAAAAAABAA7UFBSAIAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250ZW50L3Ro
ZS1hdWRpby1lbGVtZW50L1VUBQADVlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANesW0e/
eIgX3wAAANACAABuABgAAAAAAAEAAACkgc1IAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWF1ZGlvLWVsZW1lbnQvYXVk
aW9fY29uc3RydWN0b3Itc3RkZXJyLnR4dFVUBQADVlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAANasW0cAAAAAAAAAAAAAAABTABgAAAAAAAAAEADtQVRKAgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1l
bGVtZW50L1VUBQADVFEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANasW0eqBZSAgwAAAMAA
AABwABgAAAAAAAEAAACkgeFKAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2VtYmVkZGVkLWNvbnRlbnQvdGhlLWNhbnZhcy1lbGVtZW50LzJkLmNhbnZhcy5y
ZWFkb25seS1zdGRlcnIudHh0VVQFAANUUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA2Kxb
RwAAAAAAAAAAAAAAADUAGAAAAAAAAAAQAO1BDkwCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvVVQFAANXUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA2KxbRwAAAAAAAAAAAAAAAFEAGAAAAAAAAAAQAO1BfUwCAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvZm9ybS1jb250cm9sLWluZnJhc3Ry
dWN0dXJlL1VUBQADV1EwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANisW0d9cADrhAAAAMAA
AABgABgAAAAAAAEAAACkgQhNAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
c2VtYW50aWNzL2Zvcm1zL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZS9mb3JtLXN0ZGVyci50
eHRVVAUAA1dRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADprFtHAAAAAAAAAAAAAAAAAwAY
AAAAAAAAABAA7UEmTgIAanMvVVQFAAN2UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAABq1b
RwAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BY04CAGpzL2RvbS9VVAUAA6xRMFZ1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADprFtHqw9xHrAAAADuAAAANQAYAAAAAAABAAAApIGkTgIAanMvZG9t
L2NhbGxiYWNrLWZ1bmN0aW9uLXdpdGgtaGFuZGxlLWV2ZW50LXN0ZGVyci50eHRVVAUAA3ZRMFZ1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrrFtH1QM8EpYAAACzAAAAJQAYAAAAAAABAAAApIHD
TwIAanMvZG9tL2N1c3RvbS1jb25zdHJ1Y3RvcnMtc3RkZXJyLnR4dFVUBQADeVEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAatW0erD3EesAAAAO4AAAAwABgAAAAAAAEAAACkgbhQAgBqcy9k
b20vZXhjZXB0aW9ucy10aHJvd24taW4tY2FsbGJhY2tzLXN0ZGVyci50eHRVVAUAA6xRMFZ1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABvrVtHAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UHSUQIA
bWVkaWEvVVQFAANxUjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6qxbR2iI7nnaAAAAUgIA
AB8AGAAAAAAAAQAAAKSBElICAG1lZGlhL2F1ZGlvLWRhdGEtdXJsLXN0ZGVyci50eHRVVAUAA3hR
MFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABrVtHwvQhGGIAAABxAAAAKAAYAAAAAAABAAAA
pIFFUwIAbWVkaWEvaW52YWxpZC1tZWRpYS11cmwtY3Jhc2gtYWN0dWFsLnR4dFVUBQADolEwVnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAGtW0dILRIMCAEAAAwCAAAmABgAAAAAAAEAAACkgQlU
AgBtZWRpYS9pbnZhbGlkLW1lZGlhLXVybC1jcmFzaC1kaWZmLnR4dFVUBQADolEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAGtW0dP1AfRfwAAAOUAAAAqABgAAAAAAAEAAACkgXFVAgBtZWRp
YS9pbnZhbGlkLW1lZGlhLXVybC1jcmFzaC1leHBlY3RlZC50eHRVVAUAA6JRMFZ1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAABrVtHOKxHIQcIAAAAHQAALgAYAAAAAAABAAAApIFUVgIAbWVkaWEv
aW52YWxpZC1tZWRpYS11cmwtY3Jhc2gtcHJldHR5LWRpZmYuaHRtbFVUBQADolEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAPesW0cAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQcNeAgBtZWRp
YS9tZWRpYS1zb3VyY2UvVVQFAAOSUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA96xbRxun
YNOLAAAAmwAAAEgAGAAAAAAAAQAAAKSBEF8CAG1lZGlhL21lZGlhLXNvdXJjZS9tZWRpYS1zb3Vy
Y2Utc3RhbGxlZC1ob2xkcy1zbGVlcC1hc3NlcnRpb24tc3RkZXJyLnR4dFVUBQADklEwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABetW0e5DYqL0AAAAG8DAAAoABgAAAAAAAEAAACkgR1gAgBt
ZWRpYS9zb3VyY2VzLWZhbGxiYWNrLWNvZGVjcy1zdGRlcnIudHh0VVQFAAPNUTBWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAF61bR6fapFCLAAAAgAEAADAAGAAAAAAAAQAAAKSBT2ECAG1lZGlh
L3N2Zy1hcy1pbWFnZS13aXRoLW1lZGlhLWJsb2NrZWQtc3RkZXJyLnR4dFVUBQADzlEwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAACWtW0cAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQURiAgBt
ZWRpYS90cmFjay9VVAUAA+ZRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlrVtHaZTRjfAA
AAB3AQAAKgAYAAAAAAABAAAApIGKYgIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS1h
Y3R1YWwudHh0VVQFAAPmUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJa1bR3FDv0ibAQAA
+gIAACgAGAAAAAAAAQAAAKSB3mMCAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUtZGlm
Zi50eHRVVAUAA+ZRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlrVtHDPrk6jYBAAAzAgAA
LAAYAAAAAAABAAAApIHbZQIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS1leHBlY3Rl
ZC50eHRVVAUAA+ZRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAlrVtH3n20aNAIAADVIgAA
MAAYAAAAAAABAAAApIF3ZwIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS1wcmV0dHkt
ZGlmZi5odG1sVVQFAAPmUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGK1bR/UOq3yRAAAA
vQAAACEAGAAAAAAAAQAAAKSBsXACAG1lZGlhL3Vuc3VwcG9ydGVkLXJ0c3Atc3RkZXJyLnR4dFVU
BQADz1EwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEGtW0diS8bdxwAAAPIGAAAoABgAAAAA
AAEAAACkgZ1xAgBtZWRpYS92aWRlby1wb3N0ZXItYmFja2dyb3VuZC1zdGRlcnIudHh0VVQFAAMa
UjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWa1bR6XY0fX+AAAARAIAADAAGAAAAAAAAQAA
AKSBxnICAG1lZGlhL3ZpZGVvLXNvdXJjZS1lcnJvci1uby1jYW5kaWRhdGUtYWN0dWFsLnR4dFVU
BQADSlIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFmtW0fIz4/4UwEAAJkCAAAuABgAAAAA
AAEAAACkgS50AgBtZWRpYS92aWRlby1zb3VyY2UtZXJyb3Itbm8tY2FuZGlkYXRlLWRpZmYudHh0
VVQFAANKUjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWa1bRzmDdkL5AAAAjAIAADIAGAAA
AAAAAQAAAKSB6XUCAG1lZGlhL3ZpZGVvLXNvdXJjZS1lcnJvci1uby1jYW5kaWRhdGUtZXhwZWN0
ZWQudHh0VVQFAANKUjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWa1bR3JY+gF5CAAAbx8A
ADYAGAAAAAAAAQAAAKSBTncCAG1lZGlhL3ZpZGVvLXNvdXJjZS1lcnJvci1uby1jYW5kaWRhdGUt
cHJldHR5LWRpZmYuaHRtbFVUBQADSlIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF2tW0eb
fP03ywAAAN0BAAAfABgAAAAAAAEAAACkgTeAAgBtZWRpYS92aWRlby1zcmMtYmxvYi1zdGRlcnIu
dHh0VVQFAANSUjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbq1bR+ZOHmanAAAAGgEAACEA
GAAAAAAAAQAAAKSBW4ECAG1lZGlhL3ZpZGVvLXNyYy1jaGFuZ2UtYWN0dWFsLnR4dFVUBQADcFIw
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG6tW0eTMmI8qwEAANwDAAAfABgAAAAAAAEAAACk
gV2CAgBtZWRpYS92aWRlby1zcmMtY2hhbmdlLWRpZmYudHh0VVQFAANwUjBWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAbq1bR3ZeBrQgAQAAswIAACMAGAAAAAAAAQAAAKSBYYQCAG1lZGlhL3Zp
ZGVvLXNyYy1jaGFuZ2UtZXhwZWN0ZWQudHh0VVQFAANwUjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAb61bR4bJoPkDCQAADCgAACcAGAAAAAAAAQAAAKSB3oUCAG1lZGlhL3ZpZGVvLXNyYy1j
aGFuZ2UtcHJldHR5LWRpZmYuaHRtbFVUBQADcVIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AG6tW0es0wimgwAAAMAAAAAhABgAAAAAAAEAAACkgUKPAgBtZWRpYS92aWRlby1zcmMtY2hhbmdl
LXN0ZGVyci50eHRVVAUAA3BSMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD9rFtHAAAAAAAA
AAAAAAAACgAYAAAAAAAAABAA7UEgkAIAbWVkaWEvVzNDL1VUBQADnlEwVnV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAPmsW0cAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQWSQAgBtZWRpYS9XM0Mv
YXVkaW8vVVQFAAOWUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA+qxbRwAAAAAAAAAAAAAA
ABYAGAAAAAAAAAAQAO1BrpACAG1lZGlhL1czQy9hdWRpby9lcnJvci9VVAUAA5dRMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAD5rFtHtE9YI6AAAADNAAAARQAYAAAAAAABAAAApIH+kAIAbWVk
aWEvVzNDL2F1ZGlvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1h
Y3R1YWwudHh0VVQFAAOWUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+axbR6Q6BnsmAQAA
HQIAAEMAGAAAAAAAAQAAAKSBHZICAG1lZGlhL1czQy9hdWRpby9lcnJvci9lcnJvcl9vbmVycm9y
X2NhbGxlZF9vbl9ib2d1c19zb3VyY2UtZGlmZi50eHRVVAUAA5ZRMFZ1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAD5rFtHqPdeNYwAAAC4AAAARwAYAAAAAAABAAAApIHAkwIAbWVkaWEvVzNDL2F1
ZGlvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1leHBlY3RlZC50
eHRVVAUAA5ZRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD6rFtHX79HDVIIAACGHgAASwAY
AAAAAAABAAAApIHNlAIAbWVkaWEvVzNDL2F1ZGlvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVk
X29uX2JvZ3VzX3NvdXJjZS1wcmV0dHktZGlmZi5odG1sVVQFAAOXUTBWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAA/axbRwAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BpJ0CAG1lZGlhL1czQy92
aWRlby9VVAUAA55RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD9rFtHAAAAAAAAAAAAAAAA
FgAYAAAAAAAAABAA7UHunQIAbWVkaWEvVzNDL3ZpZGVvL2Vycm9yL1VUBQADnlEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAP2sW0frL3UKoQAAAM4AAABFABgAAAAAAAEAAACkgT6eAgBtZWRp
YS9XM0MvdmlkZW8vZXJyb3IvZXJyb3Jfb25lcnJvcl9jYWxsZWRfb25fYm9ndXNfc291cmNlLWFj
dHVhbC50eHRVVAUAA55RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD9rFtHYRWPGyYBAAAd
AgAAQwAYAAAAAAABAAAApIFenwIAbWVkaWEvVzNDL3ZpZGVvL2Vycm9yL2Vycm9yX29uZXJyb3Jf
Y2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1kaWZmLnR4dFVUBQADnlEwVnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAP2sW0f0yb+MjQAAALkAAABHABgAAAAAAAEAAACkgQGhAgBtZWRpYS9XM0Mvdmlk
ZW8vZXJyb3IvZXJyb3Jfb25lcnJvcl9jYWxsZWRfb25fYm9ndXNfc291cmNlLWV4cGVjdGVkLnR4
dFVUBQADnlEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAP2sW0dCDwzQUggAAIYeAABLABgA
AAAAAAEAAACkgQ+iAgBtZWRpYS9XM0MvdmlkZW8vZXJyb3IvZXJyb3Jfb25lcnJvcl9jYWxsZWRf
b25fYm9ndXNfc291cmNlLXByZXR0eS1kaWZmLmh0bWxVVAUAA55RMFZ1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADzrFtHAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UHmqgIAcGxhdGZvcm0vVVQF
AAOKUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA86xbRwAAAAAAAAAAAAAAABEAGAAAAAAA
AAAQAO1BKasCAHBsYXRmb3JtL21hYy13azEvVVQFAAOKUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA86xbRwAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BdKsCAHBsYXRmb3JtL21hYy13azEv
ZmFzdC9VVAUAA4pRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADzrFtHAAAAAAAAAAAAAAAA
IgAYAAAAAAAAABAA7UHEqwIAcGxhdGZvcm0vbWFjLXdrMS9mYXN0L2JhY2tncm91bmRzL1VUBQAD
ilEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPOsW0fqqKzhqwAAABQDAABPABgAAAAAAAEA
AACkgSCsAgBwbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvYmFja2dyb3VuZHMvdG9wLWNvbnRlbnQtaW5z
ZXQtZml4ZWQtYXR0YWNobWVudC1zdGRlcnIudHh0VVQFAAOKUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA+KxbRwAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BVK0CAHBsdWdpbnMvVVQFAAOU
UTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+KxbR/4KGaSvAAAA8QAAAC8AGAAAAAAAAQAA
AKSBlq0CAHBsdWdpbnMvbW91c2UtY2xpY2staWZyYW1lLXRvLXBsdWdpbi1zdGRlcnIudHh0VVQF
AAOUUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAx6xbR+zjMjdLAgAAgwsAACsAGAAAAAAA
AQAAAKSBrq4CAHB5d2Vic29ja2V0LndzLmxvZy0yN09jdDIwMTUtMjEzNDQ3LWVyci50eHRVVAUA
AzVRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADHrFtHS7cdGQkBAACPAgAAKwAYAAAAAAAB
AAAApIFesQIAcHl3ZWJzb2NrZXQud3MubG9nLTI3T2N0MjAxNS0yMTM0NDctb3V0LnR4dFVUBQAD
NVEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPatW0f9QVOHEScAAMqoAAAMABgAAAAAAAEA
AACkgcyyAgByZXN1bHRzLmh0bWxVVAUAA3BTMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACz
rVtHAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UEj2gIAcmV0cmllcy9VVAUAA/JSMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAACTrVtHAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UFl2gIAcmV0
cmllcy9odHRwL1VUBQADtVIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJOtW0cAAAAAAAAA
AAAAAAATABgAAAAAAAAAEADtQazaAgByZXRyaWVzL2h0dHAvdGVzdHMvVVQFAAO1UjBWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAApK1bRwAAAAAAAAAAAAAAABkAGAAAAAAAAAAQAO1B+doCAHJl
dHJpZXMvaHR0cC90ZXN0cy9tZWRpYS9VVAUAA9NSMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACkrVtH9+eiOWoAAABrAAAANQAYAAAAAAABAAAApIFM2wIAcmV0cmllcy9odHRwL3Rlc3RzL21l
ZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLWFjdHVhbC50eHRVVAUAA9NSMFZ1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACkrVtH5V2sDAQBAADAAQAAMwAYAAAAAAABAAAApIEl3AIAcmV0cmllcy9odHRw
L3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLWRpZmYudHh0VVQFAAPTUjBWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgApK1bR3zw/6NtAAAAgAAAADcAGAAAAAAAAQAAAKSBlt0CAHJldHJp
ZXMvaHR0cC90ZXN0cy9tZWRpYS9wZGYtc2VydmVkLWFzLXBkZi1leHBlY3RlZC50eHRVVAUAA9NS
MFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACkrVtHvkC69w8IAADsGwAAOwAYAAAAAAABAAAA
pIF03gIAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQtYXMtcGRmLXByZXR0eS1k
aWZmLmh0bWxVVAUAA9NSMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACkrVtHdlqFIu0AAABf
AQAANQAYAAAAAAABAAAApIH45gIAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL3BkZi1zZXJ2ZWQt
YXMtcGRmLXN0ZGVyci50eHRVVAUAA9NSMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACTrVtH
9+eiOWoAAABrAAAANwAYAAAAAAABAAAApIFU6AIAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL3Rl
eHQtc2VydmVkLWFzLXRleHQtYWN0dWFsLnR4dFVUBQADtVIwVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAJOtW0dihNpdAwEAAMYBAAA1ABgAAAAAAAEAAACkgS/pAgByZXRyaWVzL2h0dHAvdGVz
dHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1kaWZmLnR4dFVUBQADtVIwVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJOtW0eMaoWXbwAAAIIAAAA5ABgAAAAAAAEAAACkgaHqAgByZXRyaWVz
L2h0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2ZWQtYXMtdGV4dC1leHBlY3RlZC50eHRVVAUAA7VS
MFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACTrVtHVzZsZw4IAADwGwAAPQAYAAAAAAABAAAA
pIGD6wIAcmV0cmllcy9odHRwL3Rlc3RzL21lZGlhL3RleHQtc2VydmVkLWFzLXRleHQtcHJldHR5
LWRpZmYuaHRtbFVUBQADtVIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJOtW0dcXq7l6gAA
AFoBAAA3ABgAAAAAAAEAAACkgQj0AgByZXRyaWVzL2h0dHAvdGVzdHMvbWVkaWEvdGV4dC1zZXJ2
ZWQtYXMtdGV4dC1zdGRlcnIudHh0VVQFAAO1UjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
5a1bRwAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BY/UCAHJldHJpZXMvbWVkaWEvVVQFAANNUzBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1K1bR8L0IRhiAAAAcQAAADAAGAAAAAAAAQAAAKSB
q/UCAHJldHJpZXMvbWVkaWEvaW52YWxpZC1tZWRpYS11cmwtY3Jhc2gtYWN0dWFsLnR4dFVUBQAD
L1MwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANStW0eEyVbBDAEAABwCAAAuABgAAAAAAAEA
AACkgXf2AgByZXRyaWVzL21lZGlhL2ludmFsaWQtbWVkaWEtdXJsLWNyYXNoLWRpZmYudHh0VVQF
AAMvUzBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1K1bR0/UB9F/AAAA5QAAADIAGAAAAAAA
AQAAAKSB6/cCAHJldHJpZXMvbWVkaWEvaW52YWxpZC1tZWRpYS11cmwtY3Jhc2gtZXhwZWN0ZWQu
dHh0VVQFAAMvUzBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1K1bR4ZfE0UMCAAACB0AADYA
GAAAAAAAAQAAAKSB1vgCAHJldHJpZXMvbWVkaWEvaW52YWxpZC1tZWRpYS11cmwtY3Jhc2gtcHJl
dHR5LWRpZmYuaHRtbFVUBQADL1MwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALOtW0el2NH1
/gAAAEQCAAA4ABgAAAAAAAEAAACkgVIBAwByZXRyaWVzL21lZGlhL3ZpZGVvLXNvdXJjZS1lcnJv
ci1uby1jYW5kaWRhdGUtYWN0dWFsLnR4dFVUBQAD8lIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALOtW0fAkdR5WAEAAKkCAAA2ABgAAAAAAAEAAACkgcICAwByZXRyaWVzL21lZGlhL3ZpZGVv
LXNvdXJjZS1lcnJvci1uby1jYW5kaWRhdGUtZGlmZi50eHRVVAUAA/JSMFZ1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACzrVtHOYN2QvkAAACMAgAAOgAYAAAAAAABAAAApIGKBAMAcmV0cmllcy9t
ZWRpYS92aWRlby1zb3VyY2UtZXJyb3Itbm8tY2FuZGlkYXRlLWV4cGVjdGVkLnR4dFVUBQAD8lIw
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALOtW0e9DF5OfQgAAHcfAAA+ABgAAAAAAAEAAACk
gfcFAwByZXRyaWVzL21lZGlhL3ZpZGVvLXNvdXJjZS1lcnJvci1uby1jYW5kaWRhdGUtcHJldHR5
LWRpZmYuaHRtbFVUBQAD8lIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMStW0fmTh5mpwAA
ABoBAAApABgAAAAAAAEAAACkgewOAwByZXRyaWVzL21lZGlhL3ZpZGVvLXNyYy1jaGFuZ2UtYWN0
dWFsLnR4dFVUBQADEFMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMStW0cBtiIzrwEAAOwD
AAAnABgAAAAAAAEAAACkgfYPAwByZXRyaWVzL21lZGlhL3ZpZGVvLXNyYy1jaGFuZ2UtZGlmZi50
eHRVVAUAAxBTMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADErVtHdl4GtCABAACzAgAAKwAY
AAAAAAABAAAApIEGEgMAcmV0cmllcy9tZWRpYS92aWRlby1zcmMtY2hhbmdlLWV4cGVjdGVkLnR4
dFVUBQADEFMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMStW0fCDM+HBwkAABQoAAAvABgA
AAAAAAEAAACkgYsTAwByZXRyaWVzL21lZGlhL3ZpZGVvLXNyYy1jaGFuZ2UtcHJldHR5LWRpZmYu
aHRtbFVUBQADEFMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPStW0cAAAAAAAAAAAAAAAAS
ABgAAAAAAAAAEADtQfscAwByZXRyaWVzL21lZGlhL1czQy9VVAUAA2xTMFZ1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADlrVtHAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UFHHQMAcmV0cmllcy9t
ZWRpYS9XM0MvYXVkaW8vVVQFAANNUzBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA5a1bRwAA
AAAAAAAAAAAAAB4AGAAAAAAAAAAQAO1BmR0DAHJldHJpZXMvbWVkaWEvVzNDL2F1ZGlvL2Vycm9y
L1VUBQADTVMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOWtW0e0T1gjoAAAAM0AAABNABgA
AAAAAAEAAACkgfEdAwByZXRyaWVzL21lZGlhL1czQy9hdWRpby9lcnJvci9lcnJvcl9vbmVycm9y
X2NhbGxlZF9vbl9ib2d1c19zb3VyY2UtYWN0dWFsLnR4dFVUBQADTVMwVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOWtW0eQqRP3KgEAAC0CAABLABgAAAAAAAEAAACkgRgfAwByZXRyaWVzL21l
ZGlhL1czQy9hdWRpby9lcnJvci9lcnJvcl9vbmVycm9yX2NhbGxlZF9vbl9ib2d1c19zb3VyY2Ut
ZGlmZi50eHRVVAUAA01TMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADlrVtHqPdeNYwAAAC4
AAAATwAYAAAAAAABAAAApIHHIAMAcmV0cmllcy9tZWRpYS9XM0MvYXVkaW8vZXJyb3IvZXJyb3Jf
b25lcnJvcl9jYWxsZWRfb25fYm9ndXNfc291cmNlLWV4cGVjdGVkLnR4dFVUBQADTVMwVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOWtW0cqsQfuVwgAAI4eAABTABgAAAAAAAEAAACkgdwhAwBy
ZXRyaWVzL21lZGlhL1czQy9hdWRpby9lcnJvci9lcnJvcl9vbmVycm9yX2NhbGxlZF9vbl9ib2d1
c19zb3VyY2UtcHJldHR5LWRpZmYuaHRtbFVUBQADTVMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAPStW0cAAAAAAAAAAAAAAAAYABgAAAAAAAAAEADtQcAqAwByZXRyaWVzL21lZGlhL1czQy92
aWRlby9VVAUAA2xTMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAD0rVtHAAAAAAAAAAAAAAAA
HgAYAAAAAAAAABAA7UESKwMAcmV0cmllcy9tZWRpYS9XM0MvdmlkZW8vZXJyb3IvVVQFAANsUzBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9K1bR+svdQqhAAAAzgAAAE0AGAAAAAAAAQAAAKSB
aisDAHJldHJpZXMvbWVkaWEvVzNDL3ZpZGVvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29u
X2JvZ3VzX3NvdXJjZS1hY3R1YWwudHh0VVQFAANsUzBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA9K1bR+LFEpUrAQAALQIAAEsAGAAAAAAAAQAAAKSBkiwDAHJldHJpZXMvbWVkaWEvVzNDL3Zp
ZGVvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1kaWZmLnR4dFVU
BQADbFMwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPStW0f0yb+MjQAAALkAAABPABgAAAAA
AAEAAACkgUIuAwByZXRyaWVzL21lZGlhL1czQy92aWRlby9lcnJvci9lcnJvcl9vbmVycm9yX2Nh
bGxlZF9vbl9ib2d1c19zb3VyY2UtZXhwZWN0ZWQudHh0VVQFAANsUzBWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA9K1bRzcBTDNXCAAAjh4AAFMAGAAAAAAAAQAAAKSBWC8DAHJldHJpZXMvbWVk
aWEvVzNDL3ZpZGVvL2Vycm9yL2Vycm9yX29uZXJyb3JfY2FsbGVkX29uX2JvZ3VzX3NvdXJjZS1w
cmV0dHktZGlmZi5odG1sVVQFAANsUzBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA9q1bR3Zd
C9BMBQgAAWUrAAoAGAAAAAAAAQAAAKSBPDgDAHN0YXRzLmpzb25VVAUAA3BTMFZ1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAAAdrVtHAAAAAAAAAAAAAAAACAAYAAAAAAAAABAA7UHMPQsAc3RvcmFn
ZS9VVAUAA9lRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAjrVtHAAAAAAAAAAAAAAAADwAY
AAAAAAAAABAA7UEOPgsAc3RvcmFnZS93ZWJzcWwvVVQFAAPiUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAHa1bR6sPcR6wAAAA7gAAAC0AGAAAAAAAAQAAAKSBVz4LAHN0b3JhZ2Uvd2Vic3Fs
L2FsdGVyLXRvLWluZm8tdGFibGUtc3RkZXJyLnR4dFVUBQAD2VEwVnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAB2tW0erD3EesAAAAO4AAAA1ABgAAAAAAAEAAACkgW4/CwBzdG9yYWdlL3dlYnNx
bC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2Utc3RkZXJyLnR4dFVUBQAD2VEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAB2tW0erD3EesAAAAO4AAABGABgAAAAAAAEAAACkgY1ACwBzdG9y
YWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1uby1jcmFzaC1vbi1wcmVmbGlnaHQtZmFpbHVyZS1z
dGRlcnIudHh0VVQFAAPZUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHa1bR2w/2n22AAAA
3AEAACgAGAAAAAAAAQAAAKSBvUELAHN0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLXN0ZGVy
ci50eHRVVAUAA9lRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdrVtHqw9xHrAAAADuAAAA
MgAYAAAAAAABAAAApIHVQgsAc3RvcmFnZS93ZWJzcWwvY2xvc2UtZHVyaW5nLXN0cmVzcy10ZXN0
LXN0ZGVyci50eHRVVAUAA9pRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdrVtHqw9xHrAA
AADuAAAANAAYAAAAAAABAAAApIHxQwsAc3RvcmFnZS93ZWJzcWwvZGF0YWJhc2UtbG9jay1hZnRl
ci1yZWxvYWQtc3RkZXJyLnR4dFVUBQAD2lEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2t
W0erD3EesAAAAO4AAAApABgAAAAAAAEAAACkgQ9FCwBzdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0
ZW1lbnQtc3RkZXJyLnR4dFVUBQAD2lEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2tW0er
D3EesAAAAO4AAAAqABgAAAAAAAEAAACkgSJGCwBzdG9yYWdlL3dlYnNxbC9leGVjdXRlLXNxbC1h
cmdzLXN0ZGVyci50eHRVVAUAA9pRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgrVtHqw9x
HrAAAADuAAAAMgAYAAAAAAABAAAApIE2RwsAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtcm93
c0FmZmVjdGVkLXN0ZGVyci50eHRVVAUAA9tRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAg
rVtHqw9xHrAAAADuAAAAPwAYAAAAAAABAAAApIFSSAsAc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZXNx
bC1hY2NlcHRzLW9ubHktb25lLXN0YXRlbWVudC1zdGRlcnIudHh0VVQFAAPbUTBWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAIa1bR6sPcR6wAAAA7gAAAC4AGAAAAAAAAQAAAKSBe0kLAHN0b3Jh
Z2Uvd2Vic3FsL2hhc2gtY2hhbmdlLXdpdGgteGhyLXN0ZGVyci50eHRVVAUAA91RMFZ1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAhrVtHbD/afbYAAADcAQAAPwAYAAAAAAABAAAApIGTSgsAc3Rv
cmFnZS93ZWJzcWwvbXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVjdGlvbi1zdGRlcnIu
dHh0VVQFAAPdUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIa1bR6sPcR6wAAAA7gAAAEQA
GAAAAAAAAQAAAKSBwksLAHN0b3JhZ2Uvd2Vic3FsL211bHRpcGxlLXRyYW5zYWN0aW9ucy1vbi1k
aWZmZXJlbnQtaGFuZGxlcy1zdGRlcnIudHh0VVQFAAPdUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIa1bR6sPcR6wAAAA7gAAAC8AGAAAAAAAAQAAAKSB8EwLAHN0b3JhZ2Uvd2Vic3FsL211
bHRpcGxlLXRyYW5zYWN0aW9ucy1zdGRlcnIudHh0VVQFAAPdUTBWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAIa1bR6sPcR6wAAAA7gAAACgAGAAAAAAAAQAAAKSBCU4LAHN0b3JhZ2Uvd2Vic3Fs
L251bGwtY2FsbGJhY2tzLXN0ZGVyci50eHRVVAUAA91RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAhrVtHbD/afbYAAADcAQAASAAYAAAAAAABAAAApIEbTwsAc3RvcmFnZS93ZWJzcWwvb3Bl
bi1kYXRhYmFzZS1jcmVhdGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0VVQF
AAPdUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIa1bR2w/2n22AAAA3AEAADkAGAAAAAAA
AQAAAKSBU1ALAHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2st
c3RkZXJyLnR4dFVUBQAD3lEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACGtW0erD3EesAAA
AO4AAAA1ABgAAAAAAAEAAACkgXxRCwBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWVtcHR5
LXZlcnNpb24tc3RkZXJyLnR4dFVUBQAD3lEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACGt
W0erD3EesAAAAO4AAAA0ABgAAAAAAAEAAACkgZtSCwBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFi
YXNlLWV4cGFuZC1xdW90YS1zdGRlcnIudHh0VVQFAAPeUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAIa1bR6sPcR6wAAAA7gAAADkAGAAAAAAAAQAAAKSBuVMLAHN0b3JhZ2Uvd2Vic3FsL29w
ZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24tc3RkZXJyLnR4dFVUBQAD3lEwVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIACGtW0eaUpebxQAAAOIBAABFABgAAAAAAAEAAACkgdxUCwBzdG9y
YWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLXdoaWxlLXRyYW5zYWN0aW9uLWluLXByb2dyZXNzLXN0
ZGVyci50eHRVVAUAA95RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAirVtHqw9xHrAAAADu
AAAAOQAYAAAAAAABAAAApIEgVgsAc3RvcmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2luZy1ub3Jl
YWQtbm93cml0ZS1zdGRlcnIudHh0VVQFAAPfUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
Iq1bR6sPcR6wAAAA7gAAAEcAGAAAAAAAAQAAAKSBQ1cLAHN0b3JhZ2Uvd2Vic3FsL3JlYWQtYW5k
LXdyaXRlLXRyYW5zYWN0aW9ucy1kb250LXJ1bi10b2dldGhlci1zdGRlcnIudHh0VVQFAAPfUTBW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIq1bR6sPcR6wAAAA7gAAAEAAGAAAAAAAAQAAAKSB
dFgLAHN0b3JhZ2Uvd2Vic3FsL3JlYWQtdHJhbnNhY3Rpb25zLXJ1bm5pbmctY29uY3VycmVudGx5
LXN0ZGVyci50eHRVVAUAA99RMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAirVtHqw9xHrAA
AADuAAAAKAAYAAAAAAABAAAApIGeWQsAc3RvcmFnZS93ZWJzcWwvc3FsLWRhdGEtdHlwZXMtc3Rk
ZXJyLnR4dFVUBQAD31EwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACKtW0dsP9p9tgAAANwB
AABBABgAAAAAAAEAAACkgbBaCwBzdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJh
Y2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUBQAD31EwVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACKtW0erD3EesAAAAO4AAAAyABgAAAAAAAEAAACkgeFbCwBzdG9yYWdlL3dlYnNxbC9z
dGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2stc3RkZXJyLnR4dFVUBQAD4FEwVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACKtW0dsP9p9tgAAANwBAABDABgAAAAAAAEAAACkgf1cCwBzdG9yYWdlL3dl
YnNxbC9zdGF0ZW1lbnQtc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC1zdGRlcnIudHh0
VVQFAAPgUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIq1bR6sPcR6wAAAA7gAAACoAGAAA
AAAAAQAAAKSBMF4LAHN0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2stc3RkZXJyLnR4dFVU
BQAD4FEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACKtW0erD3EesAAAAO4AAABDABgAAAAA
AAEAAACkgURfCwBzdG9yYWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLXdoZW4tcGFnZS1kZWZl
cnMtbG9hZGluZy1zdGRlcnIudHh0VVQFAAPgUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
I61bR6sPcR6wAAAA7gAAACkAGAAAAAAAAQAAAKSBcWALAHN0b3JhZ2Uvd2Vic3FsL3Rlc3QtYXV0
aG9yaXplci1zdGRlcnIudHh0VVQFAAPhUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI61b
R6sPcR6wAAAA7gAAAD4AGAAAAAAAAQAAAKSBhGELAHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9u
LWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQFAAPhUTBWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAI61bR2w/2n22AAAA3AEAAD0AGAAAAAAAAQAAAKSBrGILAHN0b3JhZ2Uv
d2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLXN0ZGVyci50eHRVVAUA
A+FRMFZ1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjrVtHbD/afbYAAADcAQAAQwAYAAAAAAAB
AAAApIHZYwsAc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2staXNvbGF0
ZWQtd29ybGQtc3RkZXJyLnR4dFVUBQAD4lEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACOt
W0erD3EesAAAAO4AAAA0ABgAAAAAAAEAAACkgQxlCwBzdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlv
bi1lcnJvci1jYWxsYmFjay1zdGRlcnIudHh0VVQFAAPiUTBWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAI61bR2w/2n22AAAA3AEAAEUAGAAAAAAAAQAAAKSBKmYLAHN0b3JhZ2Uvd2Vic3FsL3Ry
YW5zYWN0aW9uLXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQtc3RkZXJyLnR4dFVUBQAD
4lEwVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFmtW0cAAAAAAAAAAAAAAAAEABgAAAAAAAAA
EADtQV9nCwBzdmcvVVQFAANKUjBWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAWa1bRwAAAAAA
AAAAAAAAAAsAGAAAAAAAAAAQAO1BnWcLAHN2Zy9jdXN0b20vVVQFAANKUjBWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAWa1bR6puyRh/AAAAjQAAACQAGAAAAAAAAQAAAKSB4mcLAHN2Zy9jdXN0
b20vemVyby1kYXNoYXJyYXktc3RkZXJyLnR4dFVUBQADSlIwVnV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAADetW0cAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQb9oCwBzdmcvc3Ryb2tlL1VUBQAD
CVIwVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADetW0eYaVEKgAAAAI0AAAAlABgAAAAAAAEA
AACkgQRpCwBzdmcvc3Ryb2tlL3plcm8td2lkdGgtaGFuZy1zdGRlcnIudHh0VVQFAAMJUjBWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAg61bR4DSrgJxxQAAmowTABkAGAAAAAAAAQAAAKSB42kL
AHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA5VSMFZ1eAsAAQT1AQAABBQAAABQSwUGAAAA
AE4BTgHxogAApy8MAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264214</attachid>
            <date>2015-10-28 09:09:51 -0700</date>
            <delta_ts>2015-10-28 09:25:23 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>media_player_stream_patch_15.txt</filename>
            <type>text/plain</type>
            <size>128478</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9u
KTogTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0aGUKKyAgICAgICAgICBp
bnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAgIChXZWJDb3JlOjpBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21D
b25uZWN0aW9uKTogRG9uJ3QgYmxvY2sKKyAgICAgICAgICBpZiBpdCBpc24ndCBwb3NzaWJsZSB0
byBhY3F1aXJlIHRoZSBsb2NrLiBIb2xkIHRoZSBsb2NrIHdoaWxlIGNhbGxpbmcgb2JzZXJ2ZXJz
LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZnJlc2hDYXB0dXJlRGV2aWNl
TGlzdCk6IERvbid0IGluY2x1ZGUgZGV2aWNlcyB0aGF0IGNhbid0IGJlIHVzZWQuCisgICAgICAg
IChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyk6ICBVc2UgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRAor
ICAgICAgICAgIHNvIGNvbnN0cmFpbnRzIGFyZSBjb25zaWRlcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRCk6IERvbid0IGNvbnNpZGVy
IGRpc2FibGVkIGRldmljZXMuIEFsd2F5cworICAgICAgICAgIGNyZWF0ZSBhIG5ldyBjYXB0dXJl
IGRldmljZSBzbyBlYWNoIHRyYWNrIHN0YXJ0cyBvdXQgd2l0aCBhIHVuaXF1ZSBzb3VyY2UuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFD
YXB0dXJlU291cmNlKTogUmVtb3ZlIEtWTyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogbV9pc1J1bm5pbmcgaXMg
Y2hhbmdlZCBpbiBjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IE5l
dy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24p
OiBBZGQgS1ZPYnNlcnZlcnMgZm9yIHRoZSBwcm9wZXJ0aWVzIHdlIGNhcmUgYWJvdXQuCisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQpOiBOZXcsIGNsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25J
c1J1bm5pbmdEaWRDaGFuZ2UpOiBEaXNwYXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgCisgICAgICAg
ICAgdG8gc2V0IG1faXNSdW5uaW5nLCBjYWxsIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSBzbyBv
YnNlcnZlcnMgY2FuIGZpbmQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6c2Vzc2lvbktWT1Byb3Bl
cnRpZXMpOgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBk
aXNjb25uZWN0XSk6CisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIGNhcHR1cmVPdXRwdXQ6ZGlkT3V0cHV0U2FtcGxlQnVmZmVyOmZyb21Db25uZWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBSZXNwb25kCisgICAg
ICAgICAgdG8gcnVubmluZyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1
cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcpOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nOl0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBQYXJ0aWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24pOiAgTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0
aGUKKyAgICAgICAgICBpbnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAg
IChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlRnJhbWVyYXRlKTogUmVuYW1l
ZCBmcm9tIGNhbGN1bGF0ZUZyYW1lcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFJldHVybiBhbiBJbWFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJh
bWVyYXRlKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOiBBdWRpb0NvbnZlcnRlclJlZiBpcworICAgICAgICAgIG5vdCBhIENGL09i
akMgb2JqZWN0IHNvIHdlIGNhbid0IHVzZSBhIFJldGFpblB0cjw+IGZvciBpdC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6IEZpeCB0eXBvIGluIGxvZ2dpbmcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2U6OmNhcGFiaWxpdGllcyk6IFVwZGF0ZSBmb3Ig
Y2FwYWJpbGl0aWVzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGll
cyBjaGFuZ2UuCisKIDIwMTUtMTAtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDYW5jZWwgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2tzIGxp
a2Ugd2UgZG8gY29udGVudCBwb2xpY3kgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bTo6bG9va1VwKGNvbnN0IFUKIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29u
dGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4+KCkpKTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJl
YW0pCkBAIC05NSw3ICs5NSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0UHVibGljU3RyZWFtKHRoaXMpOwogfQogCiBNZWRpYVN0
cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1Qcml2YXRlKQpAQCAtMTA1LDcgKzEwNiw4IEBA
IE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KICAgICAsIG1fYWN0aXZp
dHlFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0UHVibGljU3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBt
X3ByaXZhdGUtPnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0
cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsK
QEAgLTExNiw3ICsxMTgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1
dGlvbgogCiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPnNldFB1YmxpY1N0cmVhbShudWxscHRy
KTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2Vy
dmVyKHRoaXMpOwogfQogCiBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgp
CkBAIC0xOTksMTIgKzIwNCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayhNZWRp
YVN0cmVhCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRlcm5h
bEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4dCwgdHJhY2tQcml2YXRl
KSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKKyAgICBpZiAoIWdldFRyYWNrQnlJZCh0cmFj
a1ByaXZhdGUuaWQoKSkpCisgICAgICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZv
cm0pOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiB0cmFjayA9IGdldFRyYWNrQnlJZCh0cmFja1ByaXZhdGUuaWQoKSk7CisgICAgQVNTRVJUKHRy
YWNrKTsKICAgICBpbnRlcm5hbFJlbW92ZVRyYWNrKFdURjo6bW92ZSh0cmFjayksIFN0cmVhbU1v
ZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKQEAgLTI1NCw2ICsyNjEsNyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlCiAgICAgZXZlbnRzLnN3YXAobV9zY2hlZHVsZWRB
Y3Rpdml0eUV2ZW50cyk7CiAKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGJlIHJpZ2h0LCB0aGUgZXZlbnQgdHlwZSBpcyBzZXQg
ZnJvbSBtX2lzQWN0aXZlIGluIHNjaGVkdWxlQWN0aXZlU3RhdGVDaGFuZ2UhCiAgICAgICAgIG1f
aXNBY3RpdmUgPSBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudDsKICAg
ICAgICAgZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNlKCkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxl
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgeworY2xhc3Mg
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVh
bUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAot
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6cmVmOwotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgogICAgIHZp
cnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5nZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVu
ZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tQcm9kdWNpbmdEYXRh
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tS
ZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVy
aW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE5MTYzNykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRy
YWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDksMTQgKzY0OSwxMyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVT
dHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFT
dHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBBU1NFUlQocHJpdmF0ZVN0cmVh
bS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRoaXMgY2xhc3Mgc2hvdWxkbid0IGtub3cg
dGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlzIGEgTWVkaWFTdHJlYW0hCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHByaXZh
dGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25h
bGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQocHJpdmF0ZVN0
cmVhbS0+cHVibGljU3RyZWFtKCkpOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0g
PSBwcml2YXRlU3RyZWFtLT5wdWJsaWNTdHJlYW0oKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjEgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworCitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDKCk7CkBAIC01OCwxMTYgKzU1LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmKTsKIAotICAgIHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKik7Ci0gICAgdm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQotICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKLSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0
YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAg
IHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1w
bGVtZW50IG5lY2Vzc2FyeSBjb25mb3JtYXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVs
ZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZSB7IH07CisgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBG
SVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQgbmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRh
cmQgaW4gSFRNTE1lZGlhRWxlbWVudCBmb3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlk
ZSB7IH07CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopIG92ZXJyaWRlOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2
b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lk
IGNhbmNlbExvYWQoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJy
aWRlOwotICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsK
LQogICAgIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsK
LQogICAgIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBi
b29sKTsKICAgICB2b2lkIHNldE11dGVkKGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9y
dHNNdXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1
cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5p
bmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5h
dHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhh
c1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
VmlzaWJsZShib29sKSBvdmVycmlkZSB7IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBk
dXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50
TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92
ZXJyaWRlIHsgfTsKLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IHNldFJhdGVEb3VibGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUg
bWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWlu
TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9v
bCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRp
bmdQcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUo
Y29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlIHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYpIG92ZXJyaWRlOworICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6
OkhhdmVNZXRhZGF0YTsgfQogCi0gICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1v
dmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFz
U2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXll
cjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
TWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9U
cmFjaygpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CiAKICAgICBib29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0g
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZik7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5
U3RhdGUoKTsKKworICAgIGVudW0gUmVuZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRl
cmluZ01vZGVVbmNoYW5nZWQsCisgICAgICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07
CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0
U2l6ZSYpOworCisgICAgdm9pZCBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNl
dFBhdXNlZEltYWdlVmlzaWJsZShib29sKTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRh
c2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDOworICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAg
ICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoKSBvdmVycmlkZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsK
KyAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rv
cnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5
OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJp
dmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZBc3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZD
YXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxB
VlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0g
ICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJ
bWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFp
blB0cjxpZD4gbV9kdXJhdGlvbk9ic2VydmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Np
b24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0
d29ya1N0YXRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAg
ICBNZWRpYVRpbWUgbV9sYXN0U2Vla1RpbWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29s
IG1fcGxheWluZzsKLSAgICBib29sIG1fc2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRl
ZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9sb2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVk
aWFTdHJlYW1Qcml2YXRlPiBtX21lZGlhU3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFp
blB0cjxDQUxheWVyPiBtX3ByZXZpZXdMYXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0
Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dyb3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiBtX3BhdXNlZEltYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsK
KyAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5
ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsg
TWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nIH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6
ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5l
d0ZyYW1lIHtmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9
OwogICAgIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkx
NjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxOCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShB
VkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0
ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9y
dCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNp
bXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5oIgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9u
L0FWVGltZS5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4KICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
NTAsMTggKzQ2LDYgQEAKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRp
b24pCiAKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1T
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllcikKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Np
b24pOwotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1A
aW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lvbiA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBl
bmQKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0
LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCi0gICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1f
cmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAg
ICAsIG1fcGxheWluZygwKQotICAgICwgbV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29t
cGxldGVkKHRydWUpCi0gICAgLCBtX2xvYWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9j
bG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyglcCkiLCB0aGlzKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFT
dHJlYW1Qcml2YXRlKQorICAgICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21hIG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZG
b3VuZGF0aW9uTGlicmFyeSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxh
YmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUo
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwot
ICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0
eXBlTGlzdEluaXRpYWxpemVkKQotICAgICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJ
bml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0
Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5
cGUgaW4gdHlwZXMpCi0gICAgICAgIGNhY2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICBy
ZXR1cm4gY2FjaGU7CisgICAgcmV0dXJuIEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVN
ZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBl
cykKIHsKLSAgICB0eXBlcyA9IG1pbWVUeXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBjYWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5OCwxNzIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBNZWRpYVBsYXllclByaQogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgT3ZlcnJpZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRp
YSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6
Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqKQoreworICAgIC8vIFRoaXMgbWVkaWEgZW5naW5lIG9ubHkgc3VwcG9ydHMgTWVkaWFTdHJl
YW0gVVJMcy4KKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAgICBzZXRO
ZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkZvcm1hdEVycm9yKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQoTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKCVwKSIsIHRoaXMpOwogCi0gICAgbV9NZWRpYVN0cmVhbVBy
aXZhdGUgPSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoKnRoaXMsIHN0cmVhbSk7
Ci0gICAgZm9yIChhdXRvIHRyYWNrIDogc3RyZWFtLnRyYWNrcygpKSB7Ci0gICAgICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlLT5hZGRUcmFjayhXVEY6Om1vdmUodHJhY2spKTsKLSAgICAgICAgaWYg
KCF0cmFjay0+ZW5kZWQoKSkgewotICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsKLSAgICAgICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKHRydWUpOwotICAg
ICAgICB9Ci0gICAgfQorICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlID0gJnN0cmVhbTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKwogICAgIG1fcHJldmlld0xheWVyID0g
bnVsbHB0cjsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRy
YWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvKQotICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIgPSBzdGF0aWNfY2Fz
dDxBVlZpZGVvQ2FwdHVyZVNvdXJjZSo+KHRyYWNrLT5zb3VyY2UoKSktPnByZXZpZXdMYXllcigp
OwotICAgIH0KLSAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2Rl
Q2hhbmdlZChtX3BsYXllcik7CisKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10gewor
ICAgICAgICBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OklkbGUpOworICAgICAgICBpZiAo
bV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkKKyAg
ICAgICAgICAgIHRoaXMtPnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVNZXRhZGF0YSk7CisgICAgfSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNhbmNlbExvYWQoJXApIiwgdGhpcyk7CisgICAg
cGF1c2UoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnByZXBhcmVUb1BsYXkoKQogewotfQotCi1QbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0Ci17Ci0gICAgUGxhdGZv
cm1NZWRpYSBwbTsKLSAgICBwbS50eXBlID0gUGxhdGZvcm1NZWRpYTo6QVZGb3VuZGF0aW9uQXNz
ZXRUeXBlOwotICAgIHBtLm1lZGlhLmF2ZkFzc2V0ID0gbV9hc3NldC5nZXQoKTsKLSAgICByZXR1
cm4gcG07CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpwcmVwYXJlVG9QbGF5KCVwKSIsIHRoaXMpOwogfQogCiBQbGF0Zm9ybUxheWVyKiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAog
ewotICAgIGlmICghbV9wcmV2aWV3TGF5ZXIpCisgICAgaWYgKCFtX3ZpZGVvQmFja2dyb3VuZExh
eWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGxh
dGZvcm1MYXllcio+KG1fcHJldmlld0xheWVyKTsKKworICAgIHJldHVybiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyLmdldCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cGxheSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKGJvb2wgdmlzaWJsZSkKIHsKLSAgICBhdXRvIHdlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzXSB7
Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHdl
YWtUaGlzLmdldCgpLT5wbGF5SW50ZXJuYWwoKTsKLSAgICB9KTsKKyAgICBpZiAoIW1ldGFEYXRh
QXZhaWxhYmxlKCkgfHwgIW1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICh2aXNpYmxlID09IG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0
aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOjBdOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2Fi
bGVBY3Rpb25zOllFU107CisKKyAgICBkbyB7CisgICAgICAgIGlmICh2aXNpYmxlKSB7CisgICAg
ICAgICAgICBtX2Nsb2NrLT5zdG9wKCk7CisKKyAgICAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+Y3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICAgICAg
ICAgIGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIG1f
cGF1c2VkSW1hZ2UgPSBpbWFnZS0+Z2V0Q0dJbWFnZVJlZigpOworICAgICAgICAgICAgaWYgKCFt
X3BhdXNlZEltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBtX3Zp
ZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmNvbnRlbnRzID0gc3RhdGljX2Nhc3Q8aWQ+KG1fcGF1
c2VkSW1hZ2UuZ2V0KCkpOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVu
ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFsc2U7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5pc1By
b2R1Y2luZ0RhdGEoKSkgeworICAgICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgbV9jbG9jay0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0g
ZmFsc2U7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSBmYWxzZTsK
KyAgICAgICAgICAgIFttX3ZpZGVvQmFja2dyb3VuZExheWVyIHNldENvbnRlbnRzOm5pbF07Cisg
ICAgICAgICAgICBtX3BhdXNlZEltYWdlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gd2hp
bGUgKDApOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCgpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiB7Ci0gICAgbV9wbGF5aW5n
ID0gdHJ1ZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXkoJXApIiwgdGhpcyk7CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2hhdmVFdmVyUGxheWVkID0g
dHJ1ZTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogewotICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
d2Vha1RoaXMuZ2V0KCktPnBhdXNlSW50ZXJuYWwoKTsKLSAgICB9KTsKLX0KKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCVwKSIsIHRo
aXMpOwogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJ
bnRlcm5hbCgpCi17Ci0gICAgbV9wbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9N
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0
b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKHRydWUpOworICAg
IG1fcGxheWluZyA9IGZhbHNlOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICAvLyBTaG91bGRuJ3QgYmUgYWJsZSB0
byBwYXVzZSBzdHJlYW1zCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhbV9wbGF5aW5n
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omlu
dGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbCBpbnRlcm5hbCkKIHsKKyAgICBpZiAo
IWludGVybmFsKQorICAgICAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKworICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFNldCB2b2x1
bWUgb25jZSB3ZSBhY3R1YWxseSBwbGF5IGF1ZGlvLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbFNldFZvbHVtZSh2b2x1bWUsIGZh
bHNlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJl
YW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c2V0TXV0ZWQobXV0ZWQpOwotICAgIH0KLX0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKCVwKSIsIHRoaXMpOwogCi1GbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGZsb2F0U2l6ZSgwLCAwKTsKLSAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7Ci0gICAg
ICAgICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogc291cmNlID0gKEFWVmlkZW9DYXB0dXJlU291
cmNlKil0cmFjay0+c291cmNlKCk7Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZS0+c3RvcHBlZCgp
ICYmIHRyYWNrLT5lbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLT53aWR0
aCgpID4gZmxvYXRTaXplLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5z
ZXRXaWR0aChzb3VyY2UtPndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhl
aWdodCgpID4gZmxvYXRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBmbG9hdFNp
emUuc2V0SGVpZ2h0KHNvdXJjZS0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiBmbG9hdFNpemU7CisgICAgaWYgKG11dGVkID09IG1fbXV0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICAKKyAgICBpbnRl
cm5hbFNldFZvbHVtZShtdXRlZCA/IDAgOiBtX3ZvbHVtZSwgdHJ1ZSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewot
ICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNWaWRlbygpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0VmlzaWJsZShib29sKQotewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aGFzQXVkaW8oKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdApAQCAtMjgy
LDE5ICsyNzMsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BCiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FKDE0NzEyNSk6IE11c3QgaW1wbGVtZW50
IHRoaXMgbGF0ZXIKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0Ci17
Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoZG91YmxlKQotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGU7IHRoZXJlZm9y
ZSwgY2Fubm90IHNldCByYXRlCisgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZShtX2Nsb2NrLT5jdXJyZW50VGltZSgpKTsKIH0KIAogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5ldHdvcmtTdGF0ZSgpIGNv
bnN0CkBAIC0zMDcsODUgKzI4NiwxMjggQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQ
bGF5ZXJQcml2YQogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaXplQ2hhbmdlZCgpCitNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRS
ZWFkeVN0YXRlKCkKIHsKLSAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLX0KKyAgICBpZiAo
bV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGE7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4obWluTWVkaWFU
aW1lU2Vla2FibGUoKSwgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSk7Ci19CisgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOworICAgIH0KIAotTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBkdXJhdGlvbk1lZGlhVGltZSgpOworICAg
IHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKLU1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1pbk1lZGlhVGltZVNl
ZWthYmxlKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphY3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKLSAgICByZXR1cm4gc3RhcnRUaW1lKCk7Ci19Cisg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0
YXRlKCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpcywgbmV3UmVhZHlTdGF0ZV0geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworICAgIH0pOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6UmVuZGVyaW5nTW9kZVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJiBz
aXplKQogewotICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgPSBtX2xvYWRpbmdQcm9ncmVzc2Vk
OwotICAgIG1fbG9hZGluZ1Byb2dyZXNzZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gbG9hZGluZ1By
b2dyZXNzZWQ7Ci19CisgICAgaWYgKHNpemUgPT0gbV9pbnRyaW5zaWNTaXplKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCi17Ci0gICAgLy8gTm8t
b3AuCisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsKKworICAgIGlmIChtX3ZpZGVvQmFja2dy
b3VuZExheWVyIHx8ICFtX3BsYXllciB8fCAhbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCisgICAgICAgIHJldHVybiBSZW5k
ZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAh
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIFJl
bmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyaW5nTW9kZUNoYW5nZWQ7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdlRnJvbVNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycygpCiB7Ci0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAg
dm9pZCAqYmFzZUFkZHJlc3MgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MoaW1hZ2VCdWZm
ZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChpbWFnZUJ1ZmZlcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJl
dGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ3JlYXRlV2l0aERhdGEoTlVMTCwgYmFzZUFkZHJlc3MsIGJ5dGVzUGVyUm93ICogaGVpZ2h0
LCBOVUxMKSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHF1YXJ0ekltYWdlID0gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgY29sb3JT
cGFjZS5nZXQoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0LCBwcm92aWRlci5nZXQoKSwgTlVMTCwgdHJ1ZSwga0NHUmVuZGVyaW5n
SW50ZW50RGVmYXVsdCkpOwotICAgIAotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHF1YXJ0ekltYWdlOworICAgIGlm
IChtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBt
X3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JHZXRD
b25zdGFudENvbG9yKGtDR0NvbG9yQ2xlYXIpOworI2lmbmRlZiBOREVCVUcKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyLmdldCgpLm5hbWUgPSBAIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQyBwcmV2aWV3IGJhY2tncm91bmQgbGF5ZXIiOworI2VuZGlmCisKKyAgICBtX3By
ZXZpZXdMYXllciA9IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wbGF0Zm9ybUxheWVyKCk7CisgICAg
bV9wcmV2aWV3TGF5ZXIuZ2V0KCkuY29udGVudHNHcmF2aXR5ID0ga0NBR3Jhdml0eVJlc2l6ZTsK
KyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOworICAg
IG1fcHJldmlld0xheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FMYXllcldpZHRoU2l6
YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKKyAgICBpZiAoIW1fcGxheWluZykKKyAgICAg
ICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0gdHJ1ZTsKKworICAgIFttX3ZpZGVvQmFj
a2dyb3VuZExheWVyIGFkZFN1YmxheWVyOm1fcHJldmlld0xheWVyLmdldCgpXTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogewotICAg
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOworICAgIFJlbmRlcmlu
Z01vZGVTdGF0dXMgc3RhdHVzID0gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKyAgICBib29sIHNp
emVDaGFuZ2VkID0gZmFsc2U7CisKKyAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSA9IG1fbWVk
aWFTdHJlYW1Qcml2YXRlLT5pbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKGludHJpbnNpY1NpemUu
aGVpZ2h0KCkgIT0gbV9pbnRyaW5zaWNTaXplLmhlaWdodCgpIHx8IGludHJpbnNpY1NpemUud2lk
dGgoKSAhPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKSkgeworICAgICAgICBzdGF0dXMgPSB1cGRh
dGVJbnRyaW5zaWNTaXplKGludHJpbnNpY1NpemUpOworICAgICAgICBzaXplQ2hhbmdlZCA9IHRy
dWU7CisgICAgfQorCisgICAgaWYgKG1fd2FpdGluZ0Zvck5ld0ZyYW1lICYmIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc2V0UGF1c2VkSW1hZ2VWaXNp
YmxlKGZhbHNlKTsKKworICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG5ld1JlYWR5U3RhdGUg
PSBjdXJyZW50UmVhZHlTdGF0ZSgpOworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBz
aXplQ2hhbmdlZCwgbmV3UmVhZHlTdGF0ZSwgc3RhdHVzXSB7CisgICAgICAgIGlmIChuZXdSZWFk
eVN0YXRlICE9IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgICAgIHNldFJlYWR5U3RhdGUobmV3UmVh
ZHlTdGF0ZSk7CisKKyAgICAgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBtX3BsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCk7CisgICAgICAgIGlm
IChzaXplQ2hhbmdlZCkgeworICAgICAgICAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7Cisg
ICAgICAgICAgICBpZiAoc3RhdHVzID09IFJlbmRlcmluZ01vZGVDaGFuZ2VkKQorICAgICAgICAg
ICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KG1fcGxheWVyKTsKKyAgICAgICAgfQorICAgIH0pOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRp
bWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUo
KSBjb25zdAogewotICAgIC8vIEZJWE1FKDEyNTE1Nyk6IEltcGxlbWVudCBwYWludGluZy4KKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiB9CiAKLWJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAog
ewotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
VGltZVJhbmdlcz4oKTsKIH0KIAotTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gTWVkaWFQ
bGF5ZXI6OkxpdmVTdHJlYW07CisgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpwcmVwYXJlRm9yUmVuZGVyaW5nKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICAvLyBOby1vcC4KKyAgICBpZiAo
IW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIW1f
aGF2ZUV2ZXJQbGF5ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BsYXlpbmcpCisg
ICAgICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChj
b250ZXh0LCByZWN0KTsKKyAgICBlbHNlIGlmIChtX3BhdXNlZEltYWdlKSB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKKyAgICAgICAgSW50
UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKSk7CisgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3Qu
aGVpZ2h0KCkpLCBtX3BhdXNlZEltYWdlLmdldCgpKTsKKyAgICB9CiB9CiAKIFN0cmluZyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuZ2luZURlc2NyaXB0aW9uKCkgY29u
c3QKQEAgLTM5NCwxNyArNDE2LDYgQEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGTwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAotU3RyaW5nIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkg
Y29uc3QKLXsKLSAgICAvLyBGSVhNRSgxMjUxNTgpOiBpbXBsZW1lbnQgbGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrKCkKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotc2l6ZV90IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gMDsKLX0KLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNob3VsZEJlUGxheWluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxh
eWluZyAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVGdXR1cmVEYXRhOwpAQCAt
NDIwLDYgKzQzMSwyNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
CiAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUpCit7CisgICAgaWYgKG1fbmV0d29ya1N0YXRlID09
IG5ldHdvcmtTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9uZXR3b3JrU3RhdGUgPSBu
ZXR3b3JrU3RhdGU7CisgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJy
ZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoZnVu
Y3Rpb24pOworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXMsIGZ1bmN0aW9uXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9KTsKK30K
KwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQ19oCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotT0JKQ19DTEFTUyBBVkFzc2V0OwotT0JK
Q19DTEFTUyBBVlN0cmVhbURhdGFQYXJzZXI7Ci1PQkpDX0NMQVNTIE5TRXJyb3I7Ci1PQkpDX0NM
QVNTIE5TT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2Ft
cGxlQnVmZmVyUmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENETVNlc3Npb247
Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM7Ci1jbGFzcyBNZWRp
YVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ7Ci1jbGFzcyBQ
bGF0Zm9ybVRpbWVSYW5nZXM7Ci1jbGFzcyBUaW1lUmFuZ2VzOwotCi1jbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBjcmVhdGUo
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRl
Jik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpOwotCi0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBwbGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX3BsYXllcjsgfQotCi0gICAgdmlydHVhbCBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9
IGNsaWVudDsgfQotCi0gICAgTWVkaWFUaW1lIGR1cmF0aW9uKCk7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKLQotICAgIGJvb2wgaGFzQXVkaW8o
KSBjb25zdDsKLSAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHNldFJlYWR5
U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0OwotCi0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRlJik7Ci0KLSAg
ICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIG1fcGxheWVyOwotICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwotfTsKLSAgICAKLX0KLQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKLSNpbXBvcnQg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgotI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNp
bXBvcnQgIlNvZnRMaW5raW5nLmgiCi0jaW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMKLQotUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM+IE1lZGlhU3Ry
ZWFtUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMmIHBhcmVudCwgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKHBhcmVudCwgc3RyZWFtKSk7
Ci19Ci0KLU1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Ok1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYgc3RyZWFtKQotICAgIDogTWVkaWFTdHJlYW1Qcml2YXRlKCpzdHJlYW0uY2xp
ZW50KCkpCi0gICAgLCBtX3BsYXllcigmcGFyZW50KQotewotfQotCi1NZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDOjp+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpCi17Ci19Ci0KLU1lZGlhVGlt
ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpkdXJhdGlvbigpCi17Ci0gICAgcmV0dXJuIE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6YnVmZmVyZWQoKQot
ewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQot
Ci1NZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpyZWFk
eVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKLX0K
LQotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCi17Ci0gICAgbV9wbGF5ZXItPnNldFJlYWR5U3Rh
dGUocmVhZHlTdGF0ZSk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFz
QXVkaW8oKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzQXVkaW8oKTsKLX0KLQot
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGxheWVyLT5oYXNWaWRlbygpOwotfQotCi1GbG9hdFNpemUgTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXll
ci0+bmF0dXJhbFNpemUoKTsKLX0KLSAgICAKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHJl
dmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzEsMTIg
KzMyLDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtUHJpdmF0ZS5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtUHJpdmF0ZS5oIgotCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCkBAIC02MiwyNSArNjUsMzMgQEAgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVk
aWFTdHJlYW1QcgogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShj
b25zdCBTdHJpbmcmIGlkLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJh
Y2tzKQotICAgIDogbV9pZChpZCkKKyAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKKyAgICAs
IG1faWQoaWQpCiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKLSAgICBmb3IgKGF1
dG8mIHRyYWNrIDogdHJhY2tzKQorICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFja3MpIHsKKyAg
ICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3RpdmVTdGF0ZShOb3Rp
ZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwogfQogCi1NZWRpYVN0cmVhbVByaXZhdGU6Ok1l
ZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmIGNsaWVudCkKLSAgICA6
IG1fY2xpZW50KCZjbGllbnQpCitNZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZh
dGUoKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2ZXIoTWVkaWFT
dHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CisgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKCZvYnNlcnZlcik7CiB9CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlhU3RyZWFtUHJp
dmF0ZSgpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoTWVkaWFTdHJl
YW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgbV9jbGllbnQgPSBudWxscHRy
OwotICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBzaXplX3QgcG9zID0gbV9vYnNlcnZlcnMu
ZmluZCgmb2JzZXJ2ZXIpOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAgICAgIG1fb2Jz
ZXJ2ZXJzLnJlbW92ZShwb3MpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBN
ZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrcygpIGNvbnN0CkBAIC05NCwyMSArMTA1LDI5IEBAIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWEKIAogdm9pZCBNZWRpYVN0cmVh
bVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGll
bnRPcHRpb24pCiB7Ci0gICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBhdCBsZWFz
dCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgYm9vbCBuZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwor
ICAgIG1fYWN0aXZlVmlkZW9UcmFjayA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiB0cmFjayA6
IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKwogICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgpKSB7
CiAgICAgICAgICAgICBuZXdBY3RpdmVTdGF0ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmICh0cmFjay0+c291cmNlKCktPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbykgeworICAgICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFj
ayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCisgICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBh
dCBsZWFzdCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgaWYgKG5ld0FjdGl2ZVN0YXRlID09IG1f
aXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBY3RpdmUgPSBuZXdBY3RpdmVT
dGF0ZTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5
Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5hY3RpdmVTdGF0dXNDaGFu
Z2VkKCk7CisgICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246
Ok5vdGlmeSkgeworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisg
ICAgICAgICAgICBvYnNlcnZlci0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOworICAgIH0KIH0KIAog
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiB0cmFjaywgTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikK
QEAgLTExOSw4ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJl
ZlB0cgogICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRP
cHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5k
aWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOworICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0g
Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRpZEFkZFRyYWNrKCp0cmFj
ay5nZXQoKSk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUobm90aWZ5Q2xpZW50T3B0
aW9uKTsKIH0KQEAgLTEzMiwxMiArMTUzLDE0MiBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
cmVtb3ZlVHJhY2soTWVkCiAKICAgICB0cmFjay5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlv
bjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlVHJhY2sodHJhY2spOworICAg
IGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsK
KyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAg
b2JzZXJ2ZXItPmRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3Rp
dmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RhcnRQcm9kdWNpbmdEYXRh
KCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7
CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHRy
YWNrLT5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCitib29sIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFj
a1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPmlzUHJvZHVjaW5nRGF0YSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc1ZpZGVvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc0F1ZGlvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
RmxvYXRTaXplIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aW50cmluc2ljU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgRmxvYXRTaXplIHNpemU7CisKKyAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAg
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcyA9IG1fYWN0aXZlVmlk
ZW9UcmFjay0+c291cmNlKCktPnN0YXRlcygpOworICAgICAgICBzaXplLnNldFdpZHRoKHN0YXRl
cy53aWR0aCgpKTsKKyAgICAgICAgc2l6ZS5zZXRIZWlnaHQoc3RhdGVzLmhlaWdodCgpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gc2l6ZTsKK30KKworUGxhdGZvcm1MYXllciogTWVkaWFTdHJlYW1Q
cml2YXRlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWN0aXZlVmlkZW9U
cmFjaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9hY3RpdmVWaWRl
b1RyYWNrLT5zb3VyY2UoKS0+cGxhdGZvcm1MYXllcigpOworfQorCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdE
aXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYWN0aXZlKCkgJiYgbV9hY3Rp
dmVWaWRlb1RyYWNrKQorICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5wYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAg
ICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsK
KyAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICAgICAgSW50UmVj
dCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0Lmhl
aWdodCgpKSk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocGFpbnRSZWN0LCBDb2xvcjo6Ymxh
Y2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIH0KK30KKworUmVmUHRyPEltYWdlPiBNZWRp
YVN0cmVhbVByaXZhdGU6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAgICBpZiAoIWFjdGl2ZSgp
ICYmICFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPmN1cnJlbnRGcmFtZUltYWdlKCk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkK
K3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2Vy
dmVyLT5jaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAg
c2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tTdGF0
ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVk
VGFzayhbdGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhb
dGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtU
aGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NSwyOCArMzYsMzIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTsKLQotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50IDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWN0
aXZlU3RhdHVzQ2hhbmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVHJhY2soTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotfTsKK2NsYXNzIE1lZGlhU3RyZWFt
OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsK
IHB1YmxpYzoKKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0
dWFsIH5PYnNlcnZlcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2Vk
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICB9OworCiAgICAgc3RhdGljIFJlZlB0cjxNZWRp
YVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJik7CiAKQEAg
LTY0LDggKzY5LDExIEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgTm90aWZ5Q2xpZW50T3B0
aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgdm9pZCBzZXRDbGll
bnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7
IH0KKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNl
cnZlcihPYnNlcnZlciYpOworCisgICAgTWVkaWFTdHJlYW0qIHB1YmxpY1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHVibGljU3RyZWFtOyB9CisgICAgdm9pZCBzZXRQdWJsaWNTdHJlYW0oTWVk
aWFTdHJlYW0qIHN0cmVhbSkgeyBtX3B1YmxpY1N0cmVhbSA9IHN0cmVhbTsgfQogCiAgICAgU3Ry
aW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03NywyMSArODUsNDEgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYm
LCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAgICAg
dm9pZCByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE5vdGlmeUNsaWVudE9w
dGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAotcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmKTsKKyAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OworCisgICAgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1l
SW1hZ2UoKTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBoYXNWaWRlbygpOworICAgIGJv
b2wgaGFzQXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3Q7CisK
KyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgTWVk
aWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLQotICAgIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgdm9pZCB0cmFja011dGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJh
Y2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsK
KworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsK
KworICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFrUHRyRmFjdG9y
eTsKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBNZWRpYVN0cmVhbSog
bV9wdWJsaWNTdHJlYW0geyBudWxscHRyIH07CiAgICAgU3RyaW5nIG1faWQ7Ci0gICAgYm9vbCBt
X2lzQWN0aXZlIHsgZmFsc2UgfTsKLQorICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2Fj
dGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CisgICAgYm9vbCBtX2lzQWN0aXZl
IHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVByaXZh
dGU+PiBNZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE3OCw2ICsxNzgsMTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3Rh
dAogICAgICAgICBvYnNlcnZlci0+dHJhY2tTdGF0ZXNDaGFuZ2VkKCp0aGlzKTsKIH0KIAordm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKQor
eworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2
ZXItPnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRv
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmFibGVk
Q2hhbmdlZCgqdGhpcyk7Cit9CisKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnByZXZl
bnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogewogICAgIHJldHVybiAhbV9pc0VuZGVkOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAg
IH07CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY3Jl
YXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTYyLDYgKzY0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNlLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNl
LT5zdG9wUHJvZHVjaW5nRGF0YSgpOyB9CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSB7IHJl
dHVybiBtX3NvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCk7IH0KIAogICAgIGJvb2wgbXV0ZWQoKSBj
b25zdDsKICAgICB2b2lkIHNldE11dGVkKGJvb2wgbXV0ZWQpIGNvbnN0IHsgbV9zb3VyY2UtPnNl
dE11dGVkKG11dGVkKTsgfQpAQCAtOTgsNyArMTAxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNv
dXJjZVN0b3BwZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdl
ZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZvaWQgc291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKSBvdmVycmlk
ZSBmaW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAK
ICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkocmV2aXNp
b24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMjIgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdGF0ZXNEaWRDaGFuZwogICAgICAgICBvYnNlcnZlci0+
c291cmNlU3RhdGVzQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omlz
UHJvZHVjaW5nRGF0YURpZENoYW5nZSgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQo
KTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKK3sKKyAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2Jz
ZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlRW5hYmxlZENoYW5nZWQoKTsKK30KKwog
Ym9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpyZWFkb25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcmVhZG9ubHk7CkBAIC0xMTksNiArMTM1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wKE9ic2VydmVyKgogICAgIH0KIAogICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAg
cmVzZXQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkocmV2aXNpb24g
MTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw5IEBACiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNDUsNiArNDcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0
UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBj
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
OwpAQCAtNTksNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VT
dG9wcGVkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSA9IDA7CiAKICAgICAgICAg
Ly8gT2JzZXJ2ZXIgc3RhdGUgcXVlcmllcy4KICAgICAgICAgdmlydHVhbCBib29sIHByZXZlbnRT
b3VyY2VGcm9tU3RvcHBpbmcoKSA9IDA7CkBAIC02Niw4ICs3Miw2IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KIAotICAgIGJvb2wgaXNBdWRpb1N0
cmVhbVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdWRpbzsgfQotCiAgICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SUQ7IH0KQEAgLTgy
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkg
Y29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml0
bmVzc1Njb3JlKGNvbnN0IHVuc2lnbmVkIGZpdG5lc3NTY29yZSkgeyBtX2ZpdG5lc3NTY29yZSA9
IGZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpID0gMDsK
ICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpID0g
MDsKICAgICB2b2lkIHN0YXRlc0RpZENoYW5nZWQoKTsKICAgICAKQEAgLTk3LDE5ICsxMDEsMjgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
bW90ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGUoYm9vbCByZW1vdGUpIHsgbV9yZW1v
dGUgPSByZW1vdGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CisKICAg
ICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihP
YnNlcnZlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKIAogICAgIHZvaWQgc3RvcChPYnNlcnZl
ciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAKLSAgICB2b2lkIHJlc2V0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKICAgICB2aXJ0dWFsIEF1ZGlvU291cmNlUHJvdmlk
ZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgCisKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSB7IH0KKwogcHJvdGVj
dGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKIApAQCAtMTI0LDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX211dGVkOwogICAgIGJvb2wgbV9yZWFkb25seTsKICAgICBib29sIG1fcmVtb3RlOworICAg
IGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogICAgIAogICAgIHVuc2lnbmVkIG1fZml0bmVzc1Nj
b3JlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEyIEBAIHByaXZhdGU6
CiAgICAgQVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+QVZB
dWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICAKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNhcHR1
cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNz
aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UubW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE2IEBACiAKICNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5r
LmgiCiAKK3R5cGVkZWYgQVZDYXB0dXJlQXVkaW9DaGFubmVsIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5l
bFR5cGU7Cit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1cmVBdWRpb0Rh
dGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVDb25uZWN0aW9uIEFWQ2FwdHVyZUNvbm5l
Y3Rpb25UeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVEZXZpY2UgQVZDYXB0dXJlRGV2aWNlVHlwZTsK
IHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlSW5wdXQgQVZDYXB0dXJlRGV2aWNlSW5wdXRUeXBlOwog
dHlwZWRlZiBBVkNhcHR1cmVPdXRwdXQgQVZDYXB0dXJlT3V0cHV0VHlwZTsKLXR5cGVkZWYgQVZD
YXB0dXJlQXVkaW9EYXRhT3V0cHV0IEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCitTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0NoYW5uZWwpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtNzcsMTAgKzc5LDEwIEBAIEFWQXVkaW9DYXB0
dXJlU291cmNlOjp+QVZBdWRpb0NhcHR1cmVTb3UKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMo
KSBjb25zdAordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJmNhcGFiaWxpdGllcykKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBmaW5p
c2ggdGhpcyBpbXBsZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJl
YWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogCiB2b2lkIEFWQXVkaW9D
YXB0dXJlU291cmNlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtOTAsMTEgKzkyLDggQEAgdm9pZCBBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKAogCiB2b2lkIEFWQXVkaW9DYXB0dXJlU291
cmNlOjphZGRPYnNlcnZlcihBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVy
KQogewotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0gICAgICAgIG1f
b2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7Ci0gICAgfQotCisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbG9jayk7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKICAgICBpZiAobV9p
bnB1dERlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSkKICAgICAgICAgb2JzZXJ2ZXItPnByZXBhcmUo
bV9pbnB1dERlc2NyaXB0aW9uLmdldCgpKTsKIH0KQEAgLTExMCwxNiArMTA5LDQwIEBAIHZvaWQg
QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnJlbW92ZU9ic2VydmUKIHZvaWQgQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVE
ZXZpY2VJbnB1dFR5cGU+IGF1ZGlvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlu
cHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBB
U1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDphdWRpb0luLmdldCgpXSk7Ci0gICAgaWYgKFtz
ZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07Ci0gICAgCisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2Fu
QWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIGF1ZGlv
IGlucHV0IGRldmljZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNz
aW9uKCkgYWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07CisKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJl
QXVkaW9EYXRhT3V0cHV0VHlwZT4gYXVkaW9PdXRwdXQgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVy
ZUF1ZGlvRGF0YU91dHB1dEluc3RhbmNlKCkgaW5pdF0pOwogICAgIHNldEF1ZGlvU2FtcGxlQnVm
ZmVyRGVsZWdhdGUoYXVkaW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vzc2lvbigpIGNh
bkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lvbigpIGNhbkFk
ZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkT3V0cHV0
OmF1ZGlvT3V0cHV0LmdldCgpXTsKLSAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IGFkb3B0TlMoW2F1
ZGlvT3V0cHV0LmdldCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW9d
KTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCld
KSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1
cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCBhdWRpbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBk
ZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXTsKKyAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IFth
dWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlv
XTsKK30KKwordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lv
bigpCit7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKworICAgICAg
ICBtX2F1ZGlvQ29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1faW5wdXREZXNjcmlwdGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPigpOworCisg
ICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9i
c2VydmVyLT51bnByZXBhcmUoKTsKKyAgICAgICAgbV9vYnNlcnZlcnMuc2hyaW5rKDApOworICAg
IH0KKworICAgIC8vIERvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiBkZXN0cm95aW5nIHRoZSBhdWRp
byBwcm92aWRlciwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byB0aGlzIG9iamVjdAorICAgIC8vIHRv
IHJlbW92ZSBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIuCisgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVy
ID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24mIGEsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYg
YikKQEAgLTE0MSwyNyArMTY0LDMwIEBAIHN0YXRpYyBib29sIG9wZXJhdG9yIT0oY29uc3QgQXVk
aW9TdHJlYW0KIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91
dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKikKIHsK
LSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnM7Ci0gICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKLSAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMsIG9i
c2VydmVycyk7Ci0gICAgfQorICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CiAK
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIpOwogICAgIGlmICghZm9ybWF0
RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybjsKIAorICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtX2xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIGlmICghbG9jay5vd25zX2xv
Y2soKSkgeworICAgICAgICAvLyBGYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jaywganVzdCByZXR1
cm4gaW5zdGVhZCBvZiBibG9ja2luZy4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogc3RyZWFtRGVzY3JpcHRpb24gPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqc3RyZWFtRGVzY3JpcHRpb24pIHsK
ICAgICAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24+KCpzdHJlYW1EZXNjcmlwdGlvbik7Ci0gICAgICAgIGZvciAoYXV0
byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKICAgICAgICAgICAgIG9ic2VydmVyLT5wcmVwYXJlKG1faW5wdXREZXNjcmlw
dGlvbi5nZXQoKSk7CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG9ic2VydmVy
cykKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAgICAgIG9ic2Vy
dmVyLT5wcm9jZXNzKGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVCdWZmZXIpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNl
TWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkocmV2aXNpb24gMTkxNjM3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1h
bmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAzLDEwICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIG1fZ3JvdXBJRDsKIAogICAgIFN0cmluZyBtX2F1ZGlvU291cmNlSWQ7Ci0gICAgUmVmUHRy
PEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0KICAg
ICBTdHJpbmcgbV92aWRlb1NvdXJjZUlkOwotICAgIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJj
ZT4gbV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiB9
OwpAQCAtMTQ2LDcgKzE0MywxMCBAQCBzdGF0aWMgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZUxp
c3QoKQogICAgIAogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlIGluIFtBVkNh
cHR1cmVEZXZpY2UgZGV2aWNlc10pIHsKICAgICAgICAgQ2FwdHVyZURldmljZSBzb3VyY2U7Ci0g
ICAgICAgIAorCisgICAgICAgIGlmICghW2RldmljZSBpc0Nvbm5lY3RlZF0gfHwgW2RldmljZSBp
c0luVXNlQnlBbm90aGVyQXBwbGljYXRpb25dIHx8IFtkZXZpY2UgaXNTdXNwZW5kZWRdKQorICAg
ICAgICAgICAgY29udGludWU7CisKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlRnJvbURldmlj
ZUlEKGRldmljZS51bmlxdWVJRCwgc291cmNlKSkgewogICAgICAgICAgICAgLy8gQW4gQVZDYXB0
dXJlRGV2aWNlIGhhcyBhIHVuaXF1ZSBJRCwgYnV0IHdlIGNhbid0IHVzZSBpdCBmb3IgdGhlIHNv
dXJjZSBJRCBiZWNhdXNlOgogICAgICAgICAgICAgLy8gMS4gaWYgaXQgcHJvdmlkZXMgYm90aCBh
dWRpbyBhbmQgdmlkZW8gd2Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSB0d28gc291cmNlcyBmb3IgaXQK
QEAgLTM4OCwyNCArMzg4LDIwIEBAIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+
IEFWQ2EKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciB0aGUgY29uc3RyYWludHMg
d2hlbiBjaG9vc2luZyBhbW9uZyBtdWx0aXBsZSBkZXZpY2VzLiBGb3Igbm93IGp1c3Qgc2VsZWN0
IHRoZSBmaXJzdCBhdmFpbGFibGUKLSAgICAgICAgLy8gZGV2aWNlIG9mIHRoZSBhcHByb3ByaWF0
ZSB0eXBlLgogICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAm
JiAhY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBpZiAoIWNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKSB7Ci0gICAg
ICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmlj
ZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAgICAgICAgICAgICAgY2FwdHVyZURl
dmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQsIGNvbnN0cmFpbnRz
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2Fw
dHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpOworICAgICAgICAgICAgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2UgPSBBVkNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzb3VyY2VXaXRoVUlEKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvLCBjb25zdHJhaW50cy5nZXQoKSk7CisgICAgICAgICAg
ICBpZiAoIWNhcHR1cmVTb3VyY2UpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW8gJiYgIWNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkgewot
ICAgICAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVE
ZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSURd
OwotICAgICAgICAgICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAgICAgICAgICAgIGNhcHR1
cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJh
aW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5k
KGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKTsKKyAgICAgICAgICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlID0gQVZDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlE
LCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgY29uc3RyYWludHMuZ2V0KCkpOworICAgICAg
ICAgICAgaWYgKCFjYXB0dXJlU291cmNlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigp
KTsKICAgICAgICAgfQogICAgIH0KICAgICBzdGQ6OnNvcnQoYmVzdFNvdXJjZXNMaXN0LmJlZ2lu
KCksIGJlc3RTb3VyY2VzTGlzdC5lbmQoKSwgc29ydEJhc2VkT2ZmRml0bmVzc1Njb3JlKTsKQEAg
LTQxNiw0MSArNDEyLDQxIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBBVkNhcHR1cmVE
ZXYKIHsKICAgICBpZiAoIWlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIAor
CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzID0gY2FwdHVyZURldmljZUxpc3Qo
KTsKLSAgICBmb3IgKGF1dG8gY2FwdHVyZURldmljZSA6IGRldmljZXMpIHsKLSAgICAgICAgaWYg
KCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKKyAgICBmb3IgKGF1dG8mIGNhcHR1cmVEZXZpY2Ug
OiBkZXZpY2VzKSB7CisgICAgICAgIGlmIChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlE
ICE9IGRldmljZVVJRCB8fCAhY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICBpZiAoY2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRCAh
PSBkZXZpY2VVSUQpCisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvICYmIGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlbyAmJiBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBb
QVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVy
ZURldmljZUlEXTsKKyAgICAgICAgQVNTRVJUKGRldmljZSk7CisKKyAgICAgICAgUmVmUHRyPEFW
TWVkaWFDYXB0dXJlU291cmNlPiBjYXB0dXJlU291cmNlOworICAgICAgICBpZiAodHlwZSA9PSBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKKyAgICAgICAgICAgIGNhcHR1cmVTb3VyY2UgPSBB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlv
U291cmNlSWQsIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FwdHVy
ZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2
aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwogCiAgICAgICAgIGlmIChjb25zdHJh
aW50cykgewogICAgICAgICAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsKICAgICAgICAg
ICAgIEFWQ2FwdHVyZVNlc3Npb25UeXBlICpzZXNzaW9uID0gbmlsOwogCi0gICAgICAgICAgICBp
ZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiBjYXB0dXJlRGV2aWNlLm1f
dmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNl
Lm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwotICAgICAgICAgICAgZWxz
ZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAmJiBjYXB0dXJlRGV2aWNl
Lm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2
aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOworICAgICAgICAgICAg
aWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pCisgICAgICAgICAgICAgICAg
c2Vzc2lvbiA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgICAgICAgICAgICAgc2Vz
c2lvbiA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKICAgICAgICAgICAgIEFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKHNl
c3Npb24sIHR5cGUsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpOwogCiAgICAgICAg
ICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEFWQ2FwdHVyZURldmljZVR5
cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVE
ZXZpY2UubV9jYXB0dXJlRGV2aWNlSURdOwotICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAg
ICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgIWNhcHR1cmVEZXZp
Y2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKCFjYXB0dXJl
RGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0
dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9DYXB0dXJlU291
cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZCwgY29uc3Ry
YWludHMpOwotICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFD
YXB0dXJlU291cmNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlZpZGVvICYmICFjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1
cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNh
cHR1cmVTb3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVy
ZURldmljZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIHJldHVy
biBjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKLSAgICAgICAgfQor
ICAgICAgICByZXR1cm4gY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBudWxscHRyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
Vk1lZGlhQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0NSArNTIsNTIgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVC
dWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwg
QVZDYXB0dXJlQ29ubmVjdGlvbiopID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlU2Vz
c2lvblN0b3BwZWRSdW5uaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTZXNzaW9uSXNS
dW5uaW5nRGlkQ2hhbmdlKGJvb2wpOwogICAgIAogICAgIEFWQ2FwdHVyZVNlc3Npb24gKnNlc3Np
b24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KIAorICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
b3ZlcnJpZGU7CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2lzUnVubmluZzsgfQorCisgICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByb3RlY3RlZDoKICAgICBBVk1lZGlhQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOwogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1
ZGlvU291cmNlUHJvdmlkZXIoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXR1cENh
cHR1cmVTZXNzaW9uKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNz
aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdGF0ZXMoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYpID0gMDsKIAogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KKwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMq
IGN1cnJlbnRTdGF0ZXMoKSB7IHJldHVybiAmbV9jdXJyZW50U3RhdGVzOyB9CiAgICAgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMoKSB7IHJldHVybiBtX2NvbnN0cmFpbnRzLmdldCgpOyB9
CiAKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0
aWVzKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUo
QVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1NhbXBsZUJ1ZmZl
ckRlbGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwogCiAgICAgdm9pZCBzY2hlZHVs
ZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+KTsKIAotICAgIHZvaWQgc3RhdGVz
RGlkQ2hhbmdlZCgpIHsgfQotICAgIAogcHJpdmF0ZToKICAgICB2b2lkIHNldHVwU2Vzc2lvbigp
OwotICAgIFdlYWtQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIHZvaWQgcmVzZXQo
KSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PEFWTWVkaWFDYXB0dXJlU291cmNlPiBt
X3dlYWtQdHJGYWN0b3J5OwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3Vy
Y2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
IG1fY29uc3RyYWludHM7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMgbV9jdXJy
ZW50U3RhdGVzOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAg
ICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7Ci0gICAgCi0gICAgYm9vbCBt
X2lzUnVubmluZzsKKyAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2V9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NCwxMiArOTQsMTQg
QEAgQGludGVyZmFjZSBXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYgogCiAtKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KEFWTWVkaWFDYXB0dXJlU291cmNlKiljYWxsYmFjazsKIC0odm9pZClkaXNj
b25uZWN0OwotLSh2b2lkKWNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmc6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uOwogLSh2b2lkKWNhcHR1cmVPdXRwdXQ6KEFWQ2FwdHVyZU91dHB1
dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNhbXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZm
ZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9uOihBVkNhcHR1cmVDb25uZWN0aW9uVHlw
ZSAqKWNvbm5lY3Rpb247CistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9m
T2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoo
dm9pZCopY29udGV4dDsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgTlNB
cnJheSogc2Vzc2lvbktWT1Byb3BlcnRpZXMoKTsKKwogc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3Qg
Z2xvYmFBdWRpb0NhcHR1cmVTZXJpYWxRdWV1ZSgpCiB7CiAgICAgc3RhdGljIGRpc3BhdGNoX3F1
ZXVlX3QgZ2xvYmFsUXVldWU7CkBAIC0xMjcsNyArMTI5LDYgQEAgQVZNZWRpYUNhcHR1cmVTb3Vy
Y2U6OkFWTWVkaWFDYXB0dXJlU291cgogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dl
YkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNr
OnRoaXNdKSkKICAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCiAgICAgLCBtX2Rldmlj
ZShkZXZpY2UpCi0gICAgLCBtX2lzUnVubmluZyhmYWxzZSkKIHsKICAgICBzZXROYW1lKGRldmlj
ZS5sb2NhbGl6ZWROYW1lKTsKICAgICBzZXRQZXJzaXN0ZW50SUQoZGV2aWNlLnVuaXF1ZUlEKTsK
QEAgLTEzNiw5ICsxMzcsMTMgQEAgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJl
U291cgogCiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFDYXB0dXJlU291cmNlKCkKIHsK
LSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpXTsKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlzY29ubmVjdF07
Ci0gICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107CisKKyAgICBpZiAobV9zZXNzaW9u
KSB7CisgICAgICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRp
ZXMoKSkKKyAgICAgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lXTsKKyAgICAgICAgW21fc2Vzc2lvbi5n
ZXQoKSBzdG9wUnVubmluZ107CisgICAgfQogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEoKQpAQCAtMTUwLDggKzE1NSw2IEBAIHZvaWQgQVZNZWRpYUNh
cHR1cmVTb3VyY2U6OnN0YXJ0UHJvZHVjaW4KICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFtt
X3Nlc3Npb24uZ2V0KCkgc3RhcnRSdW5uaW5nXTsKLQotICAgIG1faXNSdW5uaW5nID0gdHJ1ZTsK
IH0KIAogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQpAQCAt
MTYwLDggKzE2Myw2IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmcK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107Ci0K
LSAgICBtX2lzUnVubmluZyA9IHRydWU7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
dGF0ZXMmIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdGF0ZXMoKQpAQCAtMTcwLDIxICsxNzEsNDcg
QEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgQVZNZWRpYQogICAgIHJldHVybiBt
X2N1cnJlbnRTdGF0ZXM7CiB9CiAKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKK3sKKyAgICBpZiAoIW1f
Y2FwYWJpbGl0aWVzKSB7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKCk7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzLT5zZXRT
b3VyY2VJZChtX2N1cnJlbnRTdGF0ZXMuc291cmNlSWQoKSk7CisgICAgICAgIGluaXRpYWxpemVD
YXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKKyAgICB9CisgICAgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzOworfQorCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Np
b24oKQogewogICAgIGlmIChtX3Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2Vz
c2lvbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNlKCkgaW5pdF0pOwot
ICAgIAotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2
ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKGNhcHR1cmVTZXNzaW9u
U3RvcHBlZFJ1bm5pbmc6KSBuYW1lOkFWQ2FwdHVyZVNlc3Npb25EaWRTdG9wUnVubmluZ05vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAKKyAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGlu
IHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkpCisgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgYWRkT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lIG9wdGlvbnM6TlNL
ZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopbmlsXTsKKwogICAgIHNl
dHVwQ2FwdHVyZVNlc3Npb24oKTsKIH0KLSAKLXZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNh
cHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKQorCit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNl
OjpyZXNldCgpCiB7Ci0gICAgc3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpyZXNldCgpOworICAgIG1faXNSdW5uaW5nID0gZmFsc2U7CisgICAgZm9yIChOU1N0
cmluZyAqa2V5TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICBbbV9zZXNz
aW9uLmdldCgpIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6
a2V5TmFtZV07CisgICAgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpOworICAgIG1fc2Vzc2lvbiA9
IG51bGxwdHI7Cit9CisKK3ZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9u
SXNSdW5uaW5nRGlkQ2hhbmdlKGJvb2wgc3RhdGUpCit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRh
c2soW3RoaXMsIHN0YXRlXSB7CisgICAgICAgIGlmIChzdGF0ZSA9PSBtX2lzUnVubmluZykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2lzUnVubmluZyA9IHN0YXRlOworICAgICAg
ICBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBBVk1lZGlh
Q2FwdHVyZVNvdXJjZTo6c2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVWaWRl
b0RhdGFPdXRwdXRUeXBlKiB2aWRlb091dHB1dCkKQEAgLTIxNiw2ICsyNDMsMTIgQEAgQXVkaW9T
b3VyY2VQcm92aWRlciogQVZNZWRpYUNhcHR1cmVTb3VyYwogICAgIHJldHVybiBudWxscHRyOwog
fQogCitOU0FycmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpCit7CisgICAgc3RhdGljIE5TQXJy
YXkqIGtleXMgPSBAW0AicnVubmluZyJdOworICAgIHJldHVybiBrZXlzOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZNZWRpYUNhcHR1cmVT
b3VyY2VPYnNlcnZlcgpAQCAtMjM1LDI1ICsyNjgsMzYgQEAgLSAodm9pZClkaXNjb25uZWN0CiAg
ICAgbV9jYWxsYmFjayA9IDA7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVu
bmluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKHZvaWQpY2FwdHVyZU91dHB1
dDooQVZDYXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVm
ZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2Fw
dHVyZUNvbm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgogewotICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwotCiAgICAgaWYgKCFtX2NhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBp
ZiAobV9jYWxsYmFjaykKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPmNhcHR1cmVTZXNzaW9uU3Rv
cHBlZFJ1bm5pbmcoKTsKLSAgICB9KTsKKyAgICBtX2NhbGxiYWNrLT5jYXB0dXJlT3V0cHV0RGlk
T3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oY2FwdHVyZU91dHB1dCwgc2FtcGxlQnVm
ZmVyLCBjb25uZWN0aW9uKTsKIH0KIAotLSAodm9pZCljYXB0dXJlT3V0cHV0OihBVkNhcHR1cmVP
dXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZmZXI6KENNU2FtcGxl
QnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0dXJlQ29ubmVjdGlv
blR5cGUgKiljb25uZWN0aW9uCistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRo
IG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4
dDoodm9pZCopY29udGV4dAogeworICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKKwogICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNhbXBsZUJ1ZmZlciwgY29ubmVjdGlvbik7Cisg
ICAgaWQgbmV3VmFsdWUgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdL
ZXldOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGJvb2wgd2lsbENoYW5nZSA9IFtbY2hhbmdl
IHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29s
VmFsdWVdOworCisgICAgaWYgKHdpbGxDaGFuZ2UpCisgICAgICAgIExPRyhNZWRpYSwgIldlYkNv
cmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyOjpvYnNlcnZlVmFsdWVGb3JLZXlQYXRoKCVw
KSAtIHdpbGwgY2hhbmdlLCBrZXlQYXRoID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5n
XSk7CisgICAgZWxzZSB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gdmFsdWVTdHJpbmcg
PSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUAiLCBuZXdWYWx1
ZV0pOworICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNl
cnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aCglcCkgLSBkaWQgY2hhbmdlLCBrZXlQYXRoID0g
JXMsIHZhbHVlID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5nXSwgW3ZhbHVlU3RyaW5n
LmdldCgpIFVURjhTdHJpbmddKTsKKyAgICB9CisjZW5kaWYKKworICAgIG1fY2FsbGJhY2stPmNh
cHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKFtuZXdWYWx1ZSBib29sVmFsdWVdKTsKIH0K
IAogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
VmlkZW9DYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRl
ICJBVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIgogCi1PQkpDX0NMQVNTIEFWQ2FwdHVyZVZpZGVvUHJl
dmlld0xheWVyOworT0JKQ19DTEFTUyBDQUxheWVyOwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdl
ICpDR0ltYWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlw
dGlvbiAqQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKQEAgLTQ4LDM2ICs0OCwzOCBAQCBwdWJsaWM6
CiAgICAgaW50MzJfdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQz
Ml90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKLSAgICBBVkNhcHR1cmVW
aWRlb1ByZXZpZXdMYXllciogcHJldmlld0xheWVyKCkgeyByZXR1cm4gbV92aWRlb1ByZXZpZXdM
YXllci5nZXQoKTsgfQotICAgIENNU2FtcGxlQnVmZmVyUmVmIGN1cnJlbnRGcmFtZVNhbXBsZUJ1
ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdldCgpOyB9Ci0gICAgdm9pZCBwYWludEN1
cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsK
LSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lSW1hZ2UoKTsKLQogcHJpdmF0
ZToKICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9t
aWNTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKICAgICB2aXJ0dWFsIH5B
VlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNzaW9uKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisK
ICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJikgb3ZlcnJpZGU7CiAKICAgICBib29sIGFwcGx5Q29uc3RyYWludHMoTWVkaWFDb25z
dHJhaW50cyopOwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3RyYWludChmbG9hdCBtaW5GcmFt
ZVJhdGUsIGZsb2F0IG1heEZyYW1lUmF0ZSk7CiAKLSAgICBib29sIGNhbGN1bGF0ZUZyYW1lcmF0
ZShDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgYm9vbCB1cGRhdGVGcmFtZXJhdGUoQ01TYW1wbGVC
dWZmZXJSZWYpOwogCiAgICAgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVy
RnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2Fw
dHVyZUNvbm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2Nlc3NOZXdGcmFtZShSZXRh
aW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+KTsKIAotICAgIFJldGFpblB0cjxBVkNhcHR1cmVDb25u
ZWN0aW9uPiBtX3ZpZGVvQ29ubmVjdGlvbjsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9Q
cmV2aWV3TGF5ZXI+IG1fdmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgdm9pZCBwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CisK
KyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lQ0dJbWFnZSgpOworICAgIFJl
ZlB0cjxJbWFnZT4gY3VycmVudEZyYW1lSW1hZ2UoKSBvdmVycmlkZTsKKwogICAgIFJldGFpblB0
cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9idWZmZXI7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IG1fbGFzdEltYWdlOwogICAgIFZlY3RvcjxGbG9hdDY0PiBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBz
OwotICAgIEZsb2F0NjQgbV9mcmFtZVJhdGU7Ci0gICAgaW50MzJfdCBtX3dpZHRoOwotICAgIGlu
dDMyX3QgbV9oZWlnaHQ7CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92
aWRlb1ByZXZpZXdMYXllcjsKKyAgICBGbG9hdDY0IG1fZnJhbWVSYXRlIHsgMCB9OworICAgIGlu
dDMyX3QgbV93aWR0aCB7IDAgfTsKKyAgICBpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMCAr
MzEsMTIgQEAKICNpbXBvcnQgIkFWQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbXBvcnQgIkJs
b2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBvcnQg
IkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgi
CiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5o
IgorI2ltcG9ydCAiUGxhdGZvcm1MYXllci5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJj
ZVN0YXRlcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CkBAIC05OCw5ICsxMDAsNiBAQCBSZWZQdHI8QVZNZWRpYUNhcHR1
cmVTb3VyY2U+IEFWVmlkZW9DYXB0CiAKIEFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2Fw
dHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkKICAgICA6IEFW
TWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVv
LCBjb25zdHJhaW50KQotICAgICwgbV9mcmFtZVJhdGUoMCkKLSAgICAsIG1fd2lkdGgoMCkKLSAg
ICAsIG1faGVpZ2h0KDApCiB7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VJZChpZCk7
CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VT
dGF0ZXM6OkNhbWVyYSk7CkBAIC0xMTAsMTAgKzEwOSwxMSBAQCBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6fkFWVmlkZW9DYXB0dXJlU291CiB7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QK
K3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgLy8gRklYTUU6IGZpbmlzaCB0aGlzIGltcGxl
bWVudGF0aW9uCisgICAgY2FwYWJpbGl0aWVzLnNldFNvdXJjZUlkKGN1cnJlbnRTdGF0ZXMoKS0+
c291cmNlSWQoKSk7CisgICAgY2FwYWJpbGl0aWVzLmFkZFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlczo6Q2FtZXJhKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
dXBkYXRlU3RhdGVzKCkKQEAgLTIxOCw5ICsyMTgsMTMgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6YXBwbHlDb25zdHJhaQogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0
dXJlU2Vzc2lvbigpCiB7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUlucHV0VHlwZT4g
dmlkZW9JbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlRGV2aWNlSW5wdXRJbnN0YW5jZSgpIGlu
aXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9yOm5pbF0pOwotICAgIEFTU0VSVChbc2Vzc2lvbigp
IGNhbkFkZElucHV0OnZpZGVvSW4uZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Npb24oKSBjYW5BZGRJ
bnB1dDp2aWRlb0luLmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2aWRlb0lu
LmdldCgpXTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgp
XSkgeworICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0
dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gaW5wdXQgZGV2aWNlIiwgdGhpcyk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2Vzc2lvbigpIGFkZElucHV0OnZpZGVv
SW4uZ2V0KCldOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKCkpCiAgICAgICAgIGFwcGx5Q29uc3Ry
YWludHMoY29uc3RyYWludHMoKSk7CkBAIC0yMzEsMTUgKzIzNSwyNiBAQCB2b2lkIEFWVmlkZW9D
YXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG5pbF0pOwogICAgIFt2aWRlb091dHB1dCBz
ZXRWaWRlb1NldHRpbmdzOnNldHRpbmdzRGljdGlvbmFyeS5nZXQoKV07CiAgICAgc2V0VmlkZW9T
YW1wbGVCdWZmZXJEZWxlZ2F0ZSh2aWRlb091dHB1dC5nZXQoKSk7Ci0gICAgQVNTRVJUKFtzZXNz
aW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9u
KCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBh
ZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldOwogCi0gICAgbV92aWRlb0Nvbm5lY3Rpb24gPSBh
ZG9wdE5TKFt2aWRlb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlh
VHlwZVZpZGVvXSk7Ci0gICAgbV92aWRlb1ByZXZpZXdMYXllciA9IGFkb3B0TlMoW1tBVkNhcHR1
cmVWaWRlb1ByZXZpZXdMYXllciBhbGxvY10gaW5pdFdpdGhTZXNzaW9uOnNlc3Npb24oKV0pOwor
ICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldKSB7Cisg
ICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNz
aW9uKCVwKSwgdW5hYmxlIHRvIGFkZCB2aWRlbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBkZWxlZ2F0
ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkgYWRkT3V0
cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKK30KKwordm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpCit7CisgICAgbV92aWRlb1ByZXZpZXdMYXllciA9IG51
bGxwdHI7CisgICAgbV9idWZmZXIgPSBudWxscHRyOworICAgIG1fbGFzdEltYWdlID0gbnVsbHB0
cjsKKyAgICBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBzLmNsZWFyKCk7CisgICAgbV9mcmFtZVJhdGUg
PSAwOworICAgIG1fd2lkdGggPSAwOworICAgIG1faGVpZ2h0ID0gMDsKIH0KIAotYm9vbCBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlcikKK2Jvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1lcmF0ZShD
TVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiB7CiAgICAgQ01UaW1lIHNhbXBsZVRpbWUg
PSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwog
ICAgIGlmICghQ01USU1FX0lTX05VTUVSSUMoc2FtcGxlVGltZSkpCkBAIC0yNjEsMTMgKzI3Niwx
OSBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYWxjdWxhdGVGcmFtCiAKIHZvaWQgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZm
ZXJSZWY+IHNhbXBsZUJ1ZmZlcikKIHsKKyAgICAvLyBJZ25vcmUgZnJhbWVzIGRlbGl2ZXJlZCB3
aGVuIHRoZSBzZXNzaW9uIGlzIG5vdCBydW5uaW5nLCB3ZSB3YW50IHRvIGhhbmcgb250byB0aGUg
bGFzdCBpbWFnZQorICAgIC8vIGRlbGl2ZXJlZCBiZWZvcmUgaXQgc3RvcHBlZC4KKyAgICBpZiAo
bV9sYXN0SW1hZ2UgJiYgKCFpc1Byb2R1Y2luZ0RhdGEoKSB8fCAhZW5hYmxlZCgpKSkKKyAgICAg
ICAgcmV0dXJuOworCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlv
biA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLmdldCgp
KTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICB1
cGRhdGVGcmFtZXJhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKKwogICAgIGJvb2wgc3RhdGVzQ2hh
bmdlZCA9IGZhbHNlOwogCi0gICAgc3RhdGVzQ2hhbmdlZCA9IGNhbGN1bGF0ZUZyYW1lcmF0ZShz
YW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgIG1fYnVmZmVyID0gc2FtcGxlQnVmZmVyOwogICAgIG1f
bGFzdEltYWdlID0gbnVsbHB0cjsKIApAQCAtMjkxLDcgKzMxMiwyMyBAQCB2b2lkIEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0CiAgICAgfSk7CiB9CiAKLVJldGFpblB0cjxDR0lt
YWdlUmVmPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQorUmVmUHRy
PEltYWdlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQoreworICAg
IGlmICghY3VycmVudEZyYW1lQ0dJbWFnZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3Jl
YXRlKGltYWdlUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworCisgICAgaWYgKCFpbWFnZUJ1
ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLCBpbWFnZVJlY3QpOworCisgICAgcmV0dXJu
IGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoKTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IEFW
VmlkZW9DYXB0dXJlU291cmNlOjpjdXJyZW50RnJhbWVDR0ltYWdlKCkKIHsKICAgICBpZiAobV9s
YXN0SW1hZ2UpCiAgICAgICAgIHJldHVybiBtX2xhc3RJbWFnZTsKQEAgLTMxOCw3ICszNTUsNyBA
QCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyCiAKIHZvaWQgQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmIChjb250ZXh0LnBh
aW50aW5nRGlzYWJsZWQoKSB8fCAhY3VycmVudEZyYW1lSW1hZ2UoKSkKKyAgICBpZiAoY29udGV4
dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRl
eHQpOwpAQCAtMzI5LDYgKzM2NiwxOSBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpwYWlu
dEN1cnJlbnRGCiAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0
KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQo
KSksIG1fbGFzdEltYWdlLmdldCgpKTsKIH0KIAorUGxhdGZvcm1MYXllciogQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3ZpZGVvUHJldmll
d0xheWVyKQorICAgICAgICByZXR1cm4gbV92aWRlb1ByZXZpZXdMYXllci5nZXQoKTsKKworICAg
IG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZVZpZGVvUHJldmll
d0xheWVySW5zdGFuY2UoKSBpbml0V2l0aFNlc3Npb246c2Vzc2lvbigpXSk7CisjaWZuZGVmIE5E
RUJVRworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb0NhcHR1
cmVTb3VyY2UgcHJldmlldyBsYXllciI7CisjZW5kaWYKKworICAgIHJldHVybiBtX3ZpZGVvUHJl
dmlld0xheWVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICBzaXplX3QgbV9s
aXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdWZmZXJMaXN0
PiBtX2xpc3Q7Ci0gICAgUmV0YWluUHRyPEF1ZGlvQ29udmVydGVyUmVmPiBtX2NvbnZlcnRlcjsK
KyAgICBBdWRpb0NvbnZlcnRlclJlZiBtX2NvbnZlcnRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRpb247CiAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlw
dGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCShyZXZp
c2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTczLDYg
KzczLDExIEBAIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1MKIAogV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
QygpCiB7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBtYWtlIGFu
ZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAgICBBdWRpb0Nv
bnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxw
dHI7CisgICAgfQogICAgIGlmIChtX2Nvbm5lY3RlZCkKICAgICAgICAgbV9jYXB0dXJlU291cmNl
LT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKIH0KQEAgLTEyMyw3ICsxMjgsNyBAQCB2b2lkIFdlYkF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92CiAgICAgbV9yZWFkQ291bnQgKz0gZnJhbWVz
VG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0NvbnZlcnRl
ckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3Ms
IG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJDb252
ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlciwgZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0
KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0xODAs
OSArMTg1LDE5IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXAKICAg
ICBtX291dHB1dERlc2NyaXB0aW9uLT5tQnl0ZXNQZXJGcmFtZSA9IHNpemVvZihGbG9hdDMyKTsK
ICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5tRm9ybWF0RmxhZ3MgfD0ga0F1ZGlvRm9ybWF0Rmxh
Z0lzTm9uSW50ZXJsZWF2ZWQ7CiAKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAgICAgLy8g
RklYTUU6IG1ha2UgYW5kIHVzZSBhIHNtYXJ0IHBvaW50ZXIgZm9yIEF1ZGlvQ29udmVydGVyCisg
ICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIG1fY29u
dmVydGVyID0gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAh
PSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRlclJlZiBvdXRD
b252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyhtX2lucHV0RGVz
Y3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIp
OworICAgICAgICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRlck5ldyhtX2lucHV0RGVzY3Jp
cHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOwor
ICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSglcCkgLSBBdWRpb0NvbnZlcnRlck5ldyByZXR1cm5l
ZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
ICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0yMjEsNiAr
MjM2LDExIEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHIKICAgICBt
X3JpbmdCdWZmZXIgPSBudWxscHRyOwogICAgIG1fbGlzdCA9IG51bGxwdHI7CiAgICAgbV9saXN0
QnVmZmVyU2l6ZSA9IDA7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1F
OiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAg
ICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRl
ciA9IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpwcm9jZXNzKENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIENNU2FtcGxlQnVmZmVyUmVmIHNh
bXBsZUJ1ZmZlcikKQEAgLTIzNCw3ICsyNTQsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpwcm9jCiAgICAgT1NTdGF0dXMgZXJyID0gQ01TYW1wbGVCdWZmZXJHZXRBdWRp
b0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIs
IG1fbGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVs
dCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1
ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKTsKIAogICAgIGlmIChlcnIp
IHsKLSAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
b2VzcyglcCkgLSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJs
b2NrQnVmZmVyIHJldHVybmVkIGVycm9yICVpIiwgdGhpcywgZXJyKTsKKyAgICAgICAgTE9HKE1l
ZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoJXApIC0gQ01TYW1w
bGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciByZXR1cm5l
ZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZU93ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRj
L1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBA
QCBSZWFsdGltZU1lZGlhU291cmNlT3dyKE93ck1lZGlhU291cmNlKiBtCiAKICAgICB2aXJ0dWFs
IH5SZWFsdGltZU1lZGlhU291cmNlT3dyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVy
biBtX2NhcGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9
CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7
IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KIAogICAgIE93ck1lZGlhU291cmNlKiBtZWRpYVNv
dXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Nb2NrU291cmNlKCkg
eyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZp
cnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0K
IAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxp
dGllczsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTEwLTI3ICBFcmljIENhcmxz
b24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUGxh
eSBNZWRpYVN0cmVhbSB0aHJvdWdoIG1lZGlhIGVsZW1lbnQgYW5kIHJlbmRlcmVkIHRvIGNhbnZh
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDQ5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbDoKKyAgICAgICAg
KiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC10cmFja3MtdG8taW5hY3RpdmUtc3Ry
ZWFtLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jb25zdHJ1
Y3Qtd2l0aC1lbmRlZC10cmFja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
cmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanM6CisgICAgICAgIChyZWplY3QpOgorICAg
ICAgICAoZ2V0VXNlck1lZGlhKToKKwogMjAxNS0xMC0yNyAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogU3VwcG9ydCBJREJPYmplY3RTdG9y
ZS5wdXQvZ2V0IHN1cHBvcnQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbAkocmV2
aXNpb24gMTkxNjM3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS1hZGQtZW5kZWQtdHJhY2tzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAK
ICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2F1ZGlvVHJhY2sucmVhZHlT
dGF0ZScsICdlbmRlZCcpOwogCiAgICAgICAgICAgICAgICAgZGVidWcoIioqKiBjb25zdHJ1Y3Qg
bmV3ICdlbXB0eScgc3RyZWFtMiIpCi0gICAgICAgICAgICAgICAgc3RyZWFtMiA9IG5ldyB3ZWJr
aXRNZWRpYVN0cmVhbSgpOworICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBuZXcgTWVkaWFTdHJl
YW0oKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRUcmFja3MoKS5sZW5n
dGgnLCAnMCcpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0yLmFjdGl2ZScsICdm
YWxzZScpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LWFkZC10cmFja3MtdG8taW5hY3RpdmUtc3RyZWFtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZl
LXN0cmVhbS5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLWFkZC10cmFja3MtdG8taW5hY3RpdmUtc3RyZWFtLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTIxLDcgKzIxLDcgQEAKIAogICAgICAgICAgICAgZnVuY3Rpb24gY3Jl
YXRlU3RyZWFtQW5kQWRkVHJhY2tzKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBz
dHJlYW0yID0gbmV3IHdlYmtpdE1lZGlhU3RyZWFtKCk7CisgICAgICAgICAgICAgICAgc3RyZWFt
MiA9IG5ldyBNZWRpYVN0cmVhbSgpOwogICAgICAgICAgICAgICAgIGRlYnVnKCJNZWRpYVN0cmVh
bSB3aXRob3V0IHRyYWNrcyBjcmVhdGVkLiIpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdz
dHJlYW0yLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKICAgICAgICAgICAgICAgICBh
dWRpb1RyYWNrID0gc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpWzBdOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jb25zdHJ1Y3Qtd2l0aC1lbmRlZC10cmFj
a3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtLWNvbnN0cnVjdC13aXRoLWVuZGVkLXRyYWNrcy5odG1sCShyZXZpc2lvbiAxOTE2Mzcp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNvbnN0cnVjdC13
aXRoLWVuZGVkLXRyYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTIgQEAK
ICAgICAgICAgICAgICAgICB2YXIgdHJhY2tzQXJyYXkgPSBbXTsKICAgICAgICAgICAgICAgICB0
cmFja3NBcnJheS5wdXNoKHZpZGVvVHJhY2spOwogICAgICAgICAgICAgICAgIHRyYWNrc0FycmF5
LnB1c2goYXVkaW9UcmFjayk7Ci0gICAgICAgICAgICAgICAgbmV3TWVkaWFTdHJlYW0gPSBuZXcg
d2Via2l0TWVkaWFTdHJlYW0odHJhY2tzQXJyYXkpOworICAgICAgICAgICAgICAgIG5ld01lZGlh
U3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKHRyYWNrc0FycmF5KTsKIAogICAgICAgICAgICAgICAg
IHNob3VsZEV2YWx1YXRlVG8oJ25ld01lZGlhU3RyZWFtLmFjdGl2ZScsIGZhbHNlKTsKICAgICAg
ICAgICAgICAgICBzaG91bGROb3RCZSgnbWVkaWFTdHJlYW0uaWQnLCAnbmV3TWVkaWFTdHJlYW0u
aWQnKTsKIAotICAgICAgICAgICAgICAgIG1lZGlhU3RyZWFtQ29weSA9IG5ldyB3ZWJraXRNZWRp
YVN0cmVhbShuZXdNZWRpYVN0cmVhbSk7CisgICAgICAgICAgICAgICAgbWVkaWFTdHJlYW1Db3B5
ID0gbmV3IE1lZGlhU3RyZWFtKG5ld01lZGlhU3RyZWFtKTsKICAgICAgICAgICAgICAgICBzaG91
bGRFdmFsdWF0ZVRvKCdtZWRpYVN0cmVhbUNvcHkuYWN0aXZlJywgZmFsc2UpOwogICAgICAgICAg
ICAgICAgIHNob3VsZE5vdEJlKCdtZWRpYVN0cmVhbUNvcHkuaWQnLCAnbmV3TWVkaWFTdHJlYW0u
aWQnKTsKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNv
bnN0cnVjdG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQAogICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KICAgICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAgICAgICAgIDxzY3JpcHQ+Ci0g
ICAgICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgd2Via2l0TWVkaWFTdHJlYW0uIik7CisgICAg
ICAgICAgICBkZXNjcmlwdGlvbigiVGVzdHMgTWVkaWFTdHJlYW0uIik7CiAKICAgICAgICAgICAg
IHZhciB1bmRlZmluZWQ7CiAgICAgICAgICAgICB2YXIgc3RyZWFtOwpAQCAtNDcsMzAgKzQ3LDMw
IEBACiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2xvY2FsU3RyZWFtLmdldEF1ZGlvVHJhY2tz
KCkubGVuZ3RoJywgJzEnKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnbG9jYWxTdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwogCi0gICAgICAgICAgICAgICAgc2hvdWxk
QmVUcnVlKCJ0eXBlb2Ygd2Via2l0TWVkaWFTdHJlYW0gPT09ICdvYmplY3QnIik7CisgICAgICAg
ICAgICAgICAgc2hvdWxkQmVUcnVlKCJ0eXBlb2YgTWVkaWFTdHJlYW0gPT09ICdvYmplY3QnIik7
CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdjaGVja0lkQXR0cmlidXRlKGxvY2FsU3Ry
ZWFtLmlkKScpOwogICAgICAgICAgICAgICAgIHRlc3RDb25zdHJ1Y3Rvcihsb2NhbFN0cmVhbSk7
CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RDb25zdHJ1Y3Rvcihz
KSB7CiAgICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICBzaG91bGRU
aHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKGRvY3VtZW50KScpOwotICAgICAgICAgICAgICAg
IHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oW2RvY3VtZW50XSknKTsKLSAgICAg
ICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKVswXSwgZG9jdW1lbnRdKScpOwotICAgICAgICAgICAgICAgIHNob3VsZFRo
cm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oW251bGxdKScpOwotICAgICAgICAgICAgICAgIHNo
b3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oW3VuZGVmaW5lZF0pJyk7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShudWxsKScpOwotICAg
ICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0odW5kZWZpbmVk
KScpOwotCi0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJl
YW0oKSIsIDAsIDApOwotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1l
ZGlhU3RyZWFtKFtdKSIsIDAsIDApOwotCi0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJu
ZXcgd2Via2l0TWVkaWFTdHJlYW0oc3RyZWFtKSIsIHMuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgs
IHMuZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgpOwotCi0gICAgICAgICAgICAgICAgdmVyaWZ5U3Ry
ZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdXSki
LCAxLCAwKTsKLSAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0
cmVhbShbc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDAsIDEpOwotICAgICAgICAgICAg
ICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKVswXSwgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDEsIDEpOwotICAgICAg
ICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXSwgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygn
bmV3IE1lZGlhU3RyZWFtKGRvY3VtZW50KScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93
KCduZXcgTWVkaWFTdHJlYW0oW2RvY3VtZW50XSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRU
aHJvdygnbmV3IE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgZG9jdW1l
bnRdKScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0oW251
bGxdKScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0oW3Vu
ZGVmaW5lZF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyBNZWRpYVN0cmVh
bShudWxsKScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0o
dW5kZWZpbmVkKScpOworCisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgTWVkaWFT
dHJlYW0oKSIsIDAsIDApOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlh
U3RyZWFtKFtdKSIsIDAsIDApOworCisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcg
TWVkaWFTdHJlYW0oc3RyZWFtKSIsIHMuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIHMuZ2V0Vmlk
ZW9UcmFja3MoKS5sZW5ndGgpOworCisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcg
TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdXSkiLCAxLCAwKTsKKyAgICAg
ICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldFZpZGVv
VHJhY2tzKClbMF1dKSIsIDAsIDEpOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3
IE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgc3RyZWFtLmdldFZpZGVv
VHJhY2tzKClbMF1dKSIsIDEsIDEpOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3
IE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgc3RyZWFtLmdldEF1ZGlv
VHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKIAogICAg
ICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQpAQCAtODQsNyArODQs
NyBAQAogICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBjb25zdHJ1Y3RlZCcpOwog
ICAgICAgICAgICAgICAgIHNob3VsZEJlTm9uTnVsbChuZXdTdHJlYW0pOwogICAgICAgICAgICAg
ICAgIHNob3VsZEJlRGVmaW5lZChuZXdTdHJlYW0pOwotICAgICAgICAgICAgICAgIHNob3VsZEJl
KCJuZXdTdHJlYW0uY29uc3RydWN0b3IudG9TdHJpbmcoKSIsICInW29iamVjdCB3ZWJraXRNZWRp
YVN0cmVhbUNvbnN0cnVjdG9yXSciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgibmV3U3Ry
ZWFtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgTWVkaWFTdHJlYW1Db25zdHJ1
Y3Rvcl0nIik7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ25ld1N0cmVhbS5nZXRBdWRpb1Ry
YWNrcygpLmxlbmd0aCcsICduQXVkaW8nKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnbmV3
U3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJ25WaWRlbycpOwogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
ay1vbmVuZGVkLmh0bWwJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1vbmVuZGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTE4LDcgKzE4LDcgQEAKICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAg
ICBuYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrLCBlcnJv
cik7CiAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICB0
ZXN0RmFpbGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ2dldFVzZXJNZWRpYSB0aHJldyBleGNlcHRp
b24gOicgKyBlKTsKICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICAgICAg
ZnVuY3Rpb24gZ290U3RyZWFtMihzKSB7CiAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwogICAg
ICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ2dvdFN0cmVhbTIgd2FzIGNhbGxlZC4nKTsKLSAgICAg
ICAgICAgICAgICBzdHJlYW0gPSBuZXcgd2Via2l0TWVkaWFTdHJlYW0ocyk7CisgICAgICAgICAg
ICAgICAgc3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKHMpOwogICAgICAgICAgICAgICAgIHRyYWNr
ID0gc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CiAgICAgICAgICAgICAgICAgdHJhY2tDbG9u
ZSA9IHRyYWNrLmNsb25lKCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgndHJhY2su
cmVhZHlTdGF0ZSA9PSAiZW5kZWQiJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMJ
KHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBA
IGZ1bmN0aW9uIGdldFVzZXJNZWRpYShwZXJtaXNzaW9uLCBjb25zdHIKICAgICBlbHNlIHsKICAg
ICAgICAgZGVidWcoIlRoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVu
bmVyIik7CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoY29uc3RyYWludHMpLnRo
ZW4oc3VjY2Vzc0NhbGxiYWNrLCByZWplY3QpLmNhdGNoKGRlZmF1bHRSZWplY3RPckNhdGNoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264215</attachid>
            <date>2015-10-28 09:25:23 -0700</date>
            <delta_ts>2015-10-28 09:37:27 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>media_player_stream_patch_15.txt</filename>
            <type>text/plain</type>
            <size>128529</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9u
KTogTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0aGUKKyAgICAgICAgICBp
bnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAgIChXZWJDb3JlOjpBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21D
b25uZWN0aW9uKTogRG9uJ3QgYmxvY2sKKyAgICAgICAgICBpZiBpdCBpc24ndCBwb3NzaWJsZSB0
byBhY3F1aXJlIHRoZSBsb2NrLiBIb2xkIHRoZSBsb2NrIHdoaWxlIGNhbGxpbmcgb2JzZXJ2ZXJz
LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZnJlc2hDYXB0dXJlRGV2aWNl
TGlzdCk6IERvbid0IGluY2x1ZGUgZGV2aWNlcyB0aGF0IGNhbid0IGJlIHVzZWQuCisgICAgICAg
IChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyk6ICBVc2UgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRAor
ICAgICAgICAgIHNvIGNvbnN0cmFpbnRzIGFyZSBjb25zaWRlcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRCk6IERvbid0IGNvbnNpZGVy
IGRpc2FibGVkIGRldmljZXMuIEFsd2F5cworICAgICAgICAgIGNyZWF0ZSBhIG5ldyBjYXB0dXJl
IGRldmljZSBzbyBlYWNoIHRyYWNrIHN0YXJ0cyBvdXQgd2l0aCBhIHVuaXF1ZSBzb3VyY2UuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFD
YXB0dXJlU291cmNlKTogUmVtb3ZlIEtWTyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogbV9pc1J1bm5pbmcgaXMg
Y2hhbmdlZCBpbiBjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IE5l
dy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24p
OiBBZGQgS1ZPYnNlcnZlcnMgZm9yIHRoZSBwcm9wZXJ0aWVzIHdlIGNhcmUgYWJvdXQuCisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQpOiBOZXcsIGNsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25J
c1J1bm5pbmdEaWRDaGFuZ2UpOiBEaXNwYXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgCisgICAgICAg
ICAgdG8gc2V0IG1faXNSdW5uaW5nLCBjYWxsIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSBzbyBv
YnNlcnZlcnMgY2FuIGZpbmQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6c2Vzc2lvbktWT1Byb3Bl
cnRpZXMpOgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBk
aXNjb25uZWN0XSk6CisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIGNhcHR1cmVPdXRwdXQ6ZGlkT3V0cHV0U2FtcGxlQnVmZmVyOmZyb21Db25uZWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBSZXNwb25kCisgICAg
ICAgICAgdG8gcnVubmluZyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1
cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcpOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nOl0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBQYXJ0aWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24pOiAgTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0
aGUKKyAgICAgICAgICBpbnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAg
IChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlRnJhbWVyYXRlKTogUmVuYW1l
ZCBmcm9tIGNhbGN1bGF0ZUZyYW1lcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFJldHVybiBhbiBJbWFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJh
bWVyYXRlKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOiBBdWRpb0NvbnZlcnRlclJlZiBpcworICAgICAgICAgIG5vdCBhIENGL09i
akMgb2JqZWN0IHNvIHdlIGNhbid0IHVzZSBhIFJldGFpblB0cjw+IGZvciBpdC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6IEZpeCB0eXBvIGluIGxvZ2dpbmcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2U6OmNhcGFiaWxpdGllcyk6IFVwZGF0ZSBmb3Ig
Y2FwYWJpbGl0aWVzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGll
cyBjaGFuZ2UuCisKIDIwMTUtMTAtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDYW5jZWwgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2tzIGxp
a2Ugd2UgZG8gY29udGVudCBwb2xpY3kgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bTo6bG9va1VwKGNvbnN0IFUKIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29u
dGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4+KCkpKTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJl
YW0pCkBAIC05NSw3ICs5NSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0UHVibGljU3RyZWFtKHRoaXMpOwogfQogCiBNZWRpYVN0
cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1Qcml2YXRlKQpAQCAtMTA1LDcgKzEwNiw4IEBA
IE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KICAgICAsIG1fYWN0aXZp
dHlFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0UHVibGljU3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBt
X3ByaXZhdGUtPnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0
cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsK
QEAgLTExNiw3ICsxMTgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1
dGlvbgogCiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPnNldFB1YmxpY1N0cmVhbShudWxscHRy
KTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2Vy
dmVyKHRoaXMpOwogfQogCiBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgp
CkBAIC0xOTksMTIgKzIwNCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayhNZWRp
YVN0cmVhCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRlcm5h
bEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4dCwgdHJhY2tQcml2YXRl
KSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKKyAgICBpZiAoIWdldFRyYWNrQnlJZCh0cmFj
a1ByaXZhdGUuaWQoKSkpCisgICAgICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZv
cm0pOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiB0cmFjayA9IGdldFRyYWNrQnlJZCh0cmFja1ByaXZhdGUuaWQoKSk7CisgICAgQVNTRVJUKHRy
YWNrKTsKICAgICBpbnRlcm5hbFJlbW92ZVRyYWNrKFdURjo6bW92ZSh0cmFjayksIFN0cmVhbU1v
ZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKQEAgLTI1NCw2ICsyNjEsNyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlCiAgICAgZXZlbnRzLnN3YXAobV9zY2hlZHVsZWRB
Y3Rpdml0eUV2ZW50cyk7CiAKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGJlIHJpZ2h0LCB0aGUgZXZlbnQgdHlwZSBpcyBzZXQg
ZnJvbSBtX2lzQWN0aXZlIGluIHNjaGVkdWxlQWN0aXZlU3RhdGVDaGFuZ2UhCiAgICAgICAgIG1f
aXNBY3RpdmUgPSBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudDsKICAg
ICAgICAgZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNlKCkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxl
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgeworY2xhc3Mg
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVh
bUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAot
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6cmVmOwotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgogICAgIHZp
cnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5nZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVu
ZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tQcm9kdWNpbmdEYXRh
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tS
ZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVy
aW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE5MTYzNykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRy
YWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDksMTQgKzY0OSwxMyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVT
dHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFT
dHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBBU1NFUlQocHJpdmF0ZVN0cmVh
bS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRoaXMgY2xhc3Mgc2hvdWxkbid0IGtub3cg
dGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlzIGEgTWVkaWFTdHJlYW0hCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHByaXZh
dGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25h
bGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQocHJpdmF0ZVN0
cmVhbS0+cHVibGljU3RyZWFtKCkpOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0g
PSBwcml2YXRlU3RyZWFtLT5wdWJsaWNTdHJlYW0oKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjEgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworCitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDKCk7CkBAIC01OCwxMTYgKzU1LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmKTsKIAotICAgIHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKik7Ci0gICAgdm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQotICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKLSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0
YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAg
IHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1w
bGVtZW50IG5lY2Vzc2FyeSBjb25mb3JtYXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVs
ZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZSB7IH07CisgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBG
SVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQgbmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRh
cmQgaW4gSFRNTE1lZGlhRWxlbWVudCBmb3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlk
ZSB7IH07CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopIG92ZXJyaWRlOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2
b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lk
IGNhbmNlbExvYWQoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJy
aWRlOwotICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsK
LQogICAgIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsK
LQogICAgIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBi
b29sKTsKICAgICB2b2lkIHNldE11dGVkKGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9y
dHNNdXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1
cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5p
bmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5h
dHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhh
c1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
VmlzaWJsZShib29sKSBvdmVycmlkZSB7IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBk
dXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50
TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92
ZXJyaWRlIHsgfTsKLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IHNldFJhdGVEb3VibGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUg
bWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWlu
TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9v
bCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRp
bmdQcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUo
Y29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlIHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYpIG92ZXJyaWRlOworICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6
OkhhdmVNZXRhZGF0YTsgfQogCi0gICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1v
dmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFz
U2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXll
cjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
TWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9U
cmFjaygpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CiAKICAgICBib29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0g
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZik7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5
U3RhdGUoKTsKKworICAgIGVudW0gUmVuZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRl
cmluZ01vZGVVbmNoYW5nZWQsCisgICAgICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07
CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0
U2l6ZSYpOworCisgICAgdm9pZCBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNl
dFBhdXNlZEltYWdlVmlzaWJsZShib29sKTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRh
c2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDOworICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAg
ICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoKSBvdmVycmlkZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsK
KyAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rv
cnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5
OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJp
dmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZBc3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZD
YXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxB
VlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0g
ICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJ
bWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFp
blB0cjxpZD4gbV9kdXJhdGlvbk9ic2VydmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Np
b24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0
d29ya1N0YXRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAg
ICBNZWRpYVRpbWUgbV9sYXN0U2Vla1RpbWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29s
IG1fcGxheWluZzsKLSAgICBib29sIG1fc2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRl
ZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9sb2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVk
aWFTdHJlYW1Qcml2YXRlPiBtX21lZGlhU3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFp
blB0cjxDQUxheWVyPiBtX3ByZXZpZXdMYXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0
Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dyb3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiBtX3BhdXNlZEltYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsK
KyAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5
ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsg
TWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nIH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6
ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5l
d0ZyYW1lIHtmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9
OwogICAgIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkx
NjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxOCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShB
VkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0
ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9y
dCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNp
bXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5oIgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9u
L0FWVGltZS5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4KICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
NTAsMTggKzQ2LDYgQEAKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRp
b24pCiAKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1T
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllcikKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Np
b24pOwotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1A
aW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lvbiA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBl
bmQKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0
LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCi0gICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1f
cmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAg
ICAsIG1fcGxheWluZygwKQotICAgICwgbV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29t
cGxldGVkKHRydWUpCi0gICAgLCBtX2xvYWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9j
bG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyglcCkiLCB0aGlzKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFT
dHJlYW1Qcml2YXRlKQorICAgICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21hIG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZG
b3VuZGF0aW9uTGlicmFyeSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxh
YmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUo
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwot
ICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0
eXBlTGlzdEluaXRpYWxpemVkKQotICAgICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJ
bml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0
Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5
cGUgaW4gdHlwZXMpCi0gICAgICAgIGNhY2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICBy
ZXR1cm4gY2FjaGU7CisgICAgcmV0dXJuIEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVN
ZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBl
cykKIHsKLSAgICB0eXBlcyA9IG1pbWVUeXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBjYWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5OCwxNzIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBNZWRpYVBsYXllclByaQogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgT3ZlcnJpZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRp
YSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6
Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqKQoreworICAgIC8vIFRoaXMgbWVkaWEgZW5naW5lIG9ubHkgc3VwcG9ydHMgTWVkaWFTdHJl
YW0gVVJMcy4KKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAgICBzZXRO
ZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkZvcm1hdEVycm9yKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQoTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKCVwKSIsIHRoaXMpOwogCi0gICAgbV9NZWRpYVN0cmVhbVBy
aXZhdGUgPSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoKnRoaXMsIHN0cmVhbSk7
Ci0gICAgZm9yIChhdXRvIHRyYWNrIDogc3RyZWFtLnRyYWNrcygpKSB7Ci0gICAgICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlLT5hZGRUcmFjayhXVEY6Om1vdmUodHJhY2spKTsKLSAgICAgICAgaWYg
KCF0cmFjay0+ZW5kZWQoKSkgewotICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsKLSAgICAgICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKHRydWUpOwotICAg
ICAgICB9Ci0gICAgfQorICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlID0gJnN0cmVhbTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKwogICAgIG1fcHJldmlld0xheWVyID0g
bnVsbHB0cjsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRy
YWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvKQotICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIgPSBzdGF0aWNfY2Fz
dDxBVlZpZGVvQ2FwdHVyZVNvdXJjZSo+KHRyYWNrLT5zb3VyY2UoKSktPnByZXZpZXdMYXllcigp
OwotICAgIH0KLSAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2Rl
Q2hhbmdlZChtX3BsYXllcik7CisKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10gewor
ICAgICAgICBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OklkbGUpOworICAgICAgICBpZiAo
bV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkKKyAg
ICAgICAgICAgIHRoaXMtPnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVNZXRhZGF0YSk7CisgICAgfSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNhbmNlbExvYWQoJXApIiwgdGhpcyk7CisgICAg
cGF1c2UoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnByZXBhcmVUb1BsYXkoKQogewotfQotCi1QbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0Ci17Ci0gICAgUGxhdGZv
cm1NZWRpYSBwbTsKLSAgICBwbS50eXBlID0gUGxhdGZvcm1NZWRpYTo6QVZGb3VuZGF0aW9uQXNz
ZXRUeXBlOwotICAgIHBtLm1lZGlhLmF2ZkFzc2V0ID0gbV9hc3NldC5nZXQoKTsKLSAgICByZXR1
cm4gcG07CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpwcmVwYXJlVG9QbGF5KCVwKSIsIHRoaXMpOwogfQogCiBQbGF0Zm9ybUxheWVyKiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAog
ewotICAgIGlmICghbV9wcmV2aWV3TGF5ZXIpCisgICAgaWYgKCFtX3ZpZGVvQmFja2dyb3VuZExh
eWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGxh
dGZvcm1MYXllcio+KG1fcHJldmlld0xheWVyKTsKKworICAgIHJldHVybiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyLmdldCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cGxheSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKGJvb2wgdmlzaWJsZSkKIHsKLSAgICBhdXRvIHdlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzXSB7
Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHdl
YWtUaGlzLmdldCgpLT5wbGF5SW50ZXJuYWwoKTsKLSAgICB9KTsKKyAgICBpZiAoIW1ldGFEYXRh
QXZhaWxhYmxlKCkgfHwgIW1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICh2aXNpYmxlID09IG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0
aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOjBdOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2Fi
bGVBY3Rpb25zOllFU107CisKKyAgICBkbyB7CisgICAgICAgIGlmICh2aXNpYmxlKSB7CisgICAg
ICAgICAgICBtX2Nsb2NrLT5zdG9wKCk7CisKKyAgICAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+Y3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICAgICAg
ICAgIGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIG1f
cGF1c2VkSW1hZ2UgPSBpbWFnZS0+Z2V0Q0dJbWFnZVJlZigpOworICAgICAgICAgICAgaWYgKCFt
X3BhdXNlZEltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBtX3Zp
ZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmNvbnRlbnRzID0gc3RhdGljX2Nhc3Q8aWQ+KG1fcGF1
c2VkSW1hZ2UuZ2V0KCkpOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVu
ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFsc2U7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5pc1By
b2R1Y2luZ0RhdGEoKSkgeworICAgICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgbV9jbG9jay0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0g
ZmFsc2U7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSBmYWxzZTsK
KyAgICAgICAgICAgIFttX3ZpZGVvQmFja2dyb3VuZExheWVyIHNldENvbnRlbnRzOm5pbF07Cisg
ICAgICAgICAgICBtX3BhdXNlZEltYWdlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gd2hp
bGUgKDApOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCgpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiB7Ci0gICAgbV9wbGF5aW5n
ID0gdHJ1ZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXkoJXApIiwgdGhpcyk7CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2hhdmVFdmVyUGxheWVkID0g
dHJ1ZTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogewotICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
d2Vha1RoaXMuZ2V0KCktPnBhdXNlSW50ZXJuYWwoKTsKLSAgICB9KTsKLX0KKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCVwKSIsIHRo
aXMpOwogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJ
bnRlcm5hbCgpCi17Ci0gICAgbV9wbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9N
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0
b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKHRydWUpOworICAg
IG1fcGxheWluZyA9IGZhbHNlOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICAvLyBTaG91bGRuJ3QgYmUgYWJsZSB0
byBwYXVzZSBzdHJlYW1zCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhbV9wbGF5aW5n
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omlu
dGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbCBpbnRlcm5hbCkKIHsKKyAgICBpZiAo
IWludGVybmFsKQorICAgICAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKworICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFNldCB2b2x1
bWUgb25jZSB3ZSBhY3R1YWxseSBwbGF5IGF1ZGlvLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbFNldFZvbHVtZSh2b2x1bWUsIGZh
bHNlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJl
YW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c2V0TXV0ZWQobXV0ZWQpOwotICAgIH0KLX0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKCVwKSIsIHRoaXMpOwogCi1GbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGZsb2F0U2l6ZSgwLCAwKTsKLSAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7Ci0gICAg
ICAgICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogc291cmNlID0gKEFWVmlkZW9DYXB0dXJlU291
cmNlKil0cmFjay0+c291cmNlKCk7Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZS0+c3RvcHBlZCgp
ICYmIHRyYWNrLT5lbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLT53aWR0
aCgpID4gZmxvYXRTaXplLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5z
ZXRXaWR0aChzb3VyY2UtPndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhl
aWdodCgpID4gZmxvYXRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBmbG9hdFNp
emUuc2V0SGVpZ2h0KHNvdXJjZS0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiBmbG9hdFNpemU7CisgICAgaWYgKG11dGVkID09IG1fbXV0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICAKKyAgICBpbnRl
cm5hbFNldFZvbHVtZShtdXRlZCA/IDAgOiBtX3ZvbHVtZSwgdHJ1ZSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewot
ICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNWaWRlbygpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0VmlzaWJsZShib29sKQotewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aGFzQXVkaW8oKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdApAQCAtMjgy
LDE5ICsyNzMsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BCiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FKDE0NzEyNSk6IE11c3QgaW1wbGVtZW50
IHRoaXMgbGF0ZXIKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0Ci17
Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoZG91YmxlKQotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGU7IHRoZXJlZm9y
ZSwgY2Fubm90IHNldCByYXRlCisgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZShtX2Nsb2NrLT5jdXJyZW50VGltZSgpKTsKIH0KIAogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5ldHdvcmtTdGF0ZSgpIGNv
bnN0CkBAIC0zMDcsODUgKzI4NiwxMjggQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQ
bGF5ZXJQcml2YQogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaXplQ2hhbmdlZCgpCitNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRS
ZWFkeVN0YXRlKCkKIHsKLSAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLX0KKyAgICBpZiAo
bV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGE7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4obWluTWVkaWFU
aW1lU2Vla2FibGUoKSwgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSk7Ci19CisgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOworICAgIH0KIAotTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBkdXJhdGlvbk1lZGlhVGltZSgpOworICAg
IHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKLU1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1pbk1lZGlhVGltZVNl
ZWthYmxlKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphY3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKLSAgICByZXR1cm4gc3RhcnRUaW1lKCk7Ci19Cisg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0
YXRlKCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpcywgbmV3UmVhZHlTdGF0ZV0geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworICAgIH0pOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6UmVuZGVyaW5nTW9kZVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJiBz
aXplKQogewotICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgPSBtX2xvYWRpbmdQcm9ncmVzc2Vk
OwotICAgIG1fbG9hZGluZ1Byb2dyZXNzZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gbG9hZGluZ1By
b2dyZXNzZWQ7Ci19CisgICAgaWYgKHNpemUgPT0gbV9pbnRyaW5zaWNTaXplKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCi17Ci0gICAgLy8gTm8t
b3AuCisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsKKworICAgIGlmIChtX3ZpZGVvQmFja2dy
b3VuZExheWVyIHx8ICFtX3BsYXllciB8fCAhbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCisgICAgICAgIHJldHVybiBSZW5k
ZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAh
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIFJl
bmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyaW5nTW9kZUNoYW5nZWQ7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdlRnJvbVNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycygpCiB7Ci0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAg
dm9pZCAqYmFzZUFkZHJlc3MgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MoaW1hZ2VCdWZm
ZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChpbWFnZUJ1ZmZlcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJl
dGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ3JlYXRlV2l0aERhdGEoTlVMTCwgYmFzZUFkZHJlc3MsIGJ5dGVzUGVyUm93ICogaGVpZ2h0
LCBOVUxMKSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHF1YXJ0ekltYWdlID0gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgY29sb3JT
cGFjZS5nZXQoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0LCBwcm92aWRlci5nZXQoKSwgTlVMTCwgdHJ1ZSwga0NHUmVuZGVyaW5n
SW50ZW50RGVmYXVsdCkpOwotICAgIAotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHF1YXJ0ekltYWdlOworICAgIGlm
IChtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBt
X3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JHZXRD
b25zdGFudENvbG9yKGtDR0NvbG9yQ2xlYXIpOworI2lmbmRlZiBOREVCVUcKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyLmdldCgpLm5hbWUgPSBAIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQyBwcmV2aWV3IGJhY2tncm91bmQgbGF5ZXIiOworI2VuZGlmCisKKyAgICBtX3By
ZXZpZXdMYXllciA9IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wbGF0Zm9ybUxheWVyKCk7CisgICAg
bV9wcmV2aWV3TGF5ZXIuZ2V0KCkuY29udGVudHNHcmF2aXR5ID0ga0NBR3Jhdml0eVJlc2l6ZTsK
KyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOworICAg
IG1fcHJldmlld0xheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FMYXllcldpZHRoU2l6
YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKKyAgICBpZiAoIW1fcGxheWluZykKKyAgICAg
ICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0gdHJ1ZTsKKworICAgIFttX3ZpZGVvQmFj
a2dyb3VuZExheWVyIGFkZFN1YmxheWVyOm1fcHJldmlld0xheWVyLmdldCgpXTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogewotICAg
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOworICAgIFJlbmRlcmlu
Z01vZGVTdGF0dXMgc3RhdHVzID0gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKyAgICBib29sIHNp
emVDaGFuZ2VkID0gZmFsc2U7CisKKyAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSA9IG1fbWVk
aWFTdHJlYW1Qcml2YXRlLT5pbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKGludHJpbnNpY1NpemUu
aGVpZ2h0KCkgIT0gbV9pbnRyaW5zaWNTaXplLmhlaWdodCgpIHx8IGludHJpbnNpY1NpemUud2lk
dGgoKSAhPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKSkgeworICAgICAgICBzdGF0dXMgPSB1cGRh
dGVJbnRyaW5zaWNTaXplKGludHJpbnNpY1NpemUpOworICAgICAgICBzaXplQ2hhbmdlZCA9IHRy
dWU7CisgICAgfQorCisgICAgaWYgKG1fd2FpdGluZ0Zvck5ld0ZyYW1lICYmIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc2V0UGF1c2VkSW1hZ2VWaXNp
YmxlKGZhbHNlKTsKKworICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG5ld1JlYWR5U3RhdGUg
PSBjdXJyZW50UmVhZHlTdGF0ZSgpOworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBz
aXplQ2hhbmdlZCwgbmV3UmVhZHlTdGF0ZSwgc3RhdHVzXSB7CisgICAgICAgIGlmIChuZXdSZWFk
eVN0YXRlICE9IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgICAgIHNldFJlYWR5U3RhdGUobmV3UmVh
ZHlTdGF0ZSk7CisKKyAgICAgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBtX3BsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCk7CisgICAgICAgIGlm
IChzaXplQ2hhbmdlZCkgeworICAgICAgICAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7Cisg
ICAgICAgICAgICBpZiAoc3RhdHVzID09IFJlbmRlcmluZ01vZGVDaGFuZ2VkKQorICAgICAgICAg
ICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KG1fcGxheWVyKTsKKyAgICAgICAgfQorICAgIH0pOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRp
bWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUo
KSBjb25zdAogewotICAgIC8vIEZJWE1FKDEyNTE1Nyk6IEltcGxlbWVudCBwYWludGluZy4KKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiB9CiAKLWJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAog
ewotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
VGltZVJhbmdlcz4oKTsKIH0KIAotTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gTWVkaWFQ
bGF5ZXI6OkxpdmVTdHJlYW07CisgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpwcmVwYXJlRm9yUmVuZGVyaW5nKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICAvLyBOby1vcC4KKyAgICBpZiAo
IW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIW1f
aGF2ZUV2ZXJQbGF5ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BsYXlpbmcpCisg
ICAgICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChj
b250ZXh0LCByZWN0KTsKKyAgICBlbHNlIGlmIChtX3BhdXNlZEltYWdlKSB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKKyAgICAgICAgSW50
UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKSk7CisgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3Qu
aGVpZ2h0KCkpLCBtX3BhdXNlZEltYWdlLmdldCgpKTsKKyAgICB9CiB9CiAKIFN0cmluZyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuZ2luZURlc2NyaXB0aW9uKCkgY29u
c3QKQEAgLTM5NCwxNyArNDE2LDYgQEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGTwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAotU3RyaW5nIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkg
Y29uc3QKLXsKLSAgICAvLyBGSVhNRSgxMjUxNTgpOiBpbXBsZW1lbnQgbGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrKCkKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotc2l6ZV90IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gMDsKLX0KLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNob3VsZEJlUGxheWluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxh
eWluZyAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVGdXR1cmVEYXRhOwpAQCAt
NDIwLDYgKzQzMSwyNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
CiAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUpCit7CisgICAgaWYgKG1fbmV0d29ya1N0YXRlID09
IG5ldHdvcmtTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9uZXR3b3JrU3RhdGUgPSBu
ZXR3b3JrU3RhdGU7CisgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJy
ZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoZnVu
Y3Rpb24pOworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXMsIGZ1bmN0aW9uXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9KTsKK30K
KwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQ19oCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotT0JKQ19DTEFTUyBBVkFzc2V0OwotT0JK
Q19DTEFTUyBBVlN0cmVhbURhdGFQYXJzZXI7Ci1PQkpDX0NMQVNTIE5TRXJyb3I7Ci1PQkpDX0NM
QVNTIE5TT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2Ft
cGxlQnVmZmVyUmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENETVNlc3Npb247
Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM7Ci1jbGFzcyBNZWRp
YVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ7Ci1jbGFzcyBQ
bGF0Zm9ybVRpbWVSYW5nZXM7Ci1jbGFzcyBUaW1lUmFuZ2VzOwotCi1jbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBjcmVhdGUo
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRl
Jik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpOwotCi0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBwbGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX3BsYXllcjsgfQotCi0gICAgdmlydHVhbCBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9
IGNsaWVudDsgfQotCi0gICAgTWVkaWFUaW1lIGR1cmF0aW9uKCk7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKLQotICAgIGJvb2wgaGFzQXVkaW8o
KSBjb25zdDsKLSAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHNldFJlYWR5
U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0OwotCi0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRlJik7Ci0KLSAg
ICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIG1fcGxheWVyOwotICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwotfTsKLSAgICAKLX0KLQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKLSNpbXBvcnQg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgotI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNp
bXBvcnQgIlNvZnRMaW5raW5nLmgiCi0jaW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMKLQotUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM+IE1lZGlhU3Ry
ZWFtUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMmIHBhcmVudCwgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKHBhcmVudCwgc3RyZWFtKSk7
Ci19Ci0KLU1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Ok1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYgc3RyZWFtKQotICAgIDogTWVkaWFTdHJlYW1Qcml2YXRlKCpzdHJlYW0uY2xp
ZW50KCkpCi0gICAgLCBtX3BsYXllcigmcGFyZW50KQotewotfQotCi1NZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDOjp+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpCi17Ci19Ci0KLU1lZGlhVGlt
ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpkdXJhdGlvbigpCi17Ci0gICAgcmV0dXJuIE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6YnVmZmVyZWQoKQot
ewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQot
Ci1NZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpyZWFk
eVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKLX0K
LQotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCi17Ci0gICAgbV9wbGF5ZXItPnNldFJlYWR5U3Rh
dGUocmVhZHlTdGF0ZSk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFz
QXVkaW8oKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzQXVkaW8oKTsKLX0KLQot
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGxheWVyLT5oYXNWaWRlbygpOwotfQotCi1GbG9hdFNpemUgTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXll
ci0+bmF0dXJhbFNpemUoKTsKLX0KLSAgICAKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHJl
dmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzEsMTIg
KzMyLDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtUHJpdmF0ZS5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtUHJpdmF0ZS5oIgotCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCkBAIC02MiwyNSArNjUsMzMgQEAgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVk
aWFTdHJlYW1QcgogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShj
b25zdCBTdHJpbmcmIGlkLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJh
Y2tzKQotICAgIDogbV9pZChpZCkKKyAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKKyAgICAs
IG1faWQoaWQpCiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKLSAgICBmb3IgKGF1
dG8mIHRyYWNrIDogdHJhY2tzKQorICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFja3MpIHsKKyAg
ICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3RpdmVTdGF0ZShOb3Rp
ZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwogfQogCi1NZWRpYVN0cmVhbVByaXZhdGU6Ok1l
ZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmIGNsaWVudCkKLSAgICA6
IG1fY2xpZW50KCZjbGllbnQpCitNZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZh
dGUoKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2ZXIoTWVkaWFT
dHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CisgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKCZvYnNlcnZlcik7CiB9CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlhU3RyZWFtUHJp
dmF0ZSgpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoTWVkaWFTdHJl
YW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgbV9jbGllbnQgPSBudWxscHRy
OwotICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBzaXplX3QgcG9zID0gbV9vYnNlcnZlcnMu
ZmluZCgmb2JzZXJ2ZXIpOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAgICAgIG1fb2Jz
ZXJ2ZXJzLnJlbW92ZShwb3MpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBN
ZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrcygpIGNvbnN0CkBAIC05NCwyMSArMTA1LDI5IEBAIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWEKIAogdm9pZCBNZWRpYVN0cmVh
bVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGll
bnRPcHRpb24pCiB7Ci0gICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBhdCBsZWFz
dCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgYm9vbCBuZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwor
ICAgIG1fYWN0aXZlVmlkZW9UcmFjayA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiB0cmFjayA6
IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKwogICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgpKSB7
CiAgICAgICAgICAgICBuZXdBY3RpdmVTdGF0ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmICh0cmFjay0+c291cmNlKCktPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbykgeworICAgICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFj
ayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCisgICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBh
dCBsZWFzdCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgaWYgKG5ld0FjdGl2ZVN0YXRlID09IG1f
aXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBY3RpdmUgPSBuZXdBY3RpdmVT
dGF0ZTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5
Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5hY3RpdmVTdGF0dXNDaGFu
Z2VkKCk7CisgICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246
Ok5vdGlmeSkgeworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisg
ICAgICAgICAgICBvYnNlcnZlci0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOworICAgIH0KIH0KIAog
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiB0cmFjaywgTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikK
QEAgLTExOSw4ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJl
ZlB0cgogICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRP
cHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5k
aWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOworICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0g
Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRpZEFkZFRyYWNrKCp0cmFj
ay5nZXQoKSk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUobm90aWZ5Q2xpZW50T3B0
aW9uKTsKIH0KQEAgLTEzMiwxMiArMTUzLDE0MiBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
cmVtb3ZlVHJhY2soTWVkCiAKICAgICB0cmFjay5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlv
bjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlVHJhY2sodHJhY2spOworICAg
IGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsK
KyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAg
b2JzZXJ2ZXItPmRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3Rp
dmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RhcnRQcm9kdWNpbmdEYXRh
KCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7
CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHRy
YWNrLT5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCitib29sIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFj
a1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPmlzUHJvZHVjaW5nRGF0YSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc1ZpZGVvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc0F1ZGlvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
RmxvYXRTaXplIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aW50cmluc2ljU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgRmxvYXRTaXplIHNpemU7CisKKyAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAg
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcyA9IG1fYWN0aXZlVmlk
ZW9UcmFjay0+c291cmNlKCktPnN0YXRlcygpOworICAgICAgICBzaXplLnNldFdpZHRoKHN0YXRl
cy53aWR0aCgpKTsKKyAgICAgICAgc2l6ZS5zZXRIZWlnaHQoc3RhdGVzLmhlaWdodCgpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gc2l6ZTsKK30KKworUGxhdGZvcm1MYXllciogTWVkaWFTdHJlYW1Q
cml2YXRlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWN0aXZlVmlkZW9U
cmFjaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9hY3RpdmVWaWRl
b1RyYWNrLT5zb3VyY2UoKS0+cGxhdGZvcm1MYXllcigpOworfQorCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdE
aXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYWN0aXZlKCkgJiYgbV9hY3Rp
dmVWaWRlb1RyYWNrKQorICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5wYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAg
ICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsK
KyAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICAgICAgSW50UmVj
dCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0Lmhl
aWdodCgpKSk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocGFpbnRSZWN0LCBDb2xvcjo6Ymxh
Y2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIH0KK30KKworUmVmUHRyPEltYWdlPiBNZWRp
YVN0cmVhbVByaXZhdGU6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAgICBpZiAoIWFjdGl2ZSgp
ICYmICFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPmN1cnJlbnRGcmFtZUltYWdlKCk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkK
K3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2Vy
dmVyLT5jaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAg
c2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tTdGF0
ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVk
VGFzayhbdGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhb
dGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtU
aGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NSwyOCArMzYsMzIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTsKLQotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50IDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWN0
aXZlU3RhdHVzQ2hhbmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVHJhY2soTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotfTsKK2NsYXNzIE1lZGlhU3RyZWFt
OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsK
IHB1YmxpYzoKKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0
dWFsIH5PYnNlcnZlcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2Vk
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICB9OworCiAgICAgc3RhdGljIFJlZlB0cjxNZWRp
YVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJik7CiAKQEAg
LTY0LDggKzY5LDExIEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgTm90aWZ5Q2xpZW50T3B0
aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgdm9pZCBzZXRDbGll
bnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7
IH0KKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNl
cnZlcihPYnNlcnZlciYpOworCisgICAgTWVkaWFTdHJlYW0qIHB1YmxpY1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHVibGljU3RyZWFtOyB9CisgICAgdm9pZCBzZXRQdWJsaWNTdHJlYW0oTWVk
aWFTdHJlYW0qIHN0cmVhbSkgeyBtX3B1YmxpY1N0cmVhbSA9IHN0cmVhbTsgfQogCiAgICAgU3Ry
aW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03NywyMSArODUsNDEgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYm
LCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAgICAg
dm9pZCByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE5vdGlmeUNsaWVudE9w
dGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAotcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmKTsKKyAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OworCisgICAgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1l
SW1hZ2UoKTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBoYXNWaWRlbygpOworICAgIGJv
b2wgaGFzQXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3Q7CisK
KyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgTWVk
aWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLQotICAgIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgdm9pZCB0cmFja011dGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJh
Y2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsK
KworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsK
KworICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFrUHRyRmFjdG9y
eTsKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBNZWRpYVN0cmVhbSog
bV9wdWJsaWNTdHJlYW0geyBudWxscHRyIH07CiAgICAgU3RyaW5nIG1faWQ7Ci0gICAgYm9vbCBt
X2lzQWN0aXZlIHsgZmFsc2UgfTsKLQorICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2Fj
dGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CisgICAgYm9vbCBtX2lzQWN0aXZl
IHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVByaXZh
dGU+PiBNZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE3OCw2ICsxNzgsMTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3Rh
dAogICAgICAgICBvYnNlcnZlci0+dHJhY2tTdGF0ZXNDaGFuZ2VkKCp0aGlzKTsKIH0KIAordm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKQor
eworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2
ZXItPnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRv
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmFibGVk
Q2hhbmdlZCgqdGhpcyk7Cit9CisKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnByZXZl
bnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogewogICAgIHJldHVybiAhbV9pc0VuZGVkOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAg
IH07CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY3Jl
YXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTYyLDYgKzY0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNlLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNl
LT5zdG9wUHJvZHVjaW5nRGF0YSgpOyB9CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSB7IHJl
dHVybiBtX3NvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCk7IH0KIAogICAgIGJvb2wgbXV0ZWQoKSBj
b25zdDsKICAgICB2b2lkIHNldE11dGVkKGJvb2wgbXV0ZWQpIGNvbnN0IHsgbV9zb3VyY2UtPnNl
dE11dGVkKG11dGVkKTsgfQpAQCAtOTgsNyArMTAxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNv
dXJjZVN0b3BwZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdl
ZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZvaWQgc291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKSBvdmVycmlk
ZSBmaW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAK
ICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkocmV2aXNp
b24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMjIgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdGF0ZXNEaWRDaGFuZwogICAgICAgICBvYnNlcnZlci0+
c291cmNlU3RhdGVzQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omlz
UHJvZHVjaW5nRGF0YURpZENoYW5nZSgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQo
KTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKK3sKKyAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2Jz
ZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlRW5hYmxlZENoYW5nZWQoKTsKK30KKwog
Ym9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpyZWFkb25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcmVhZG9ubHk7CkBAIC0xMTksNiArMTM1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wKE9ic2VydmVyKgogICAgIH0KIAogICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAg
cmVzZXQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkocmV2aXNpb24g
MTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw5IEBACiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNDUsNiArNDcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0
UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBj
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
OwpAQCAtNTksNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VT
dG9wcGVkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSA9IDA7CiAKICAgICAgICAg
Ly8gT2JzZXJ2ZXIgc3RhdGUgcXVlcmllcy4KICAgICAgICAgdmlydHVhbCBib29sIHByZXZlbnRT
b3VyY2VGcm9tU3RvcHBpbmcoKSA9IDA7CkBAIC02Niw4ICs3Miw2IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KIAotICAgIGJvb2wgaXNBdWRpb1N0
cmVhbVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdWRpbzsgfQotCiAgICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SUQ7IH0KQEAgLTgy
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkg
Y29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml0
bmVzc1Njb3JlKGNvbnN0IHVuc2lnbmVkIGZpdG5lc3NTY29yZSkgeyBtX2ZpdG5lc3NTY29yZSA9
IGZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpID0gMDsK
ICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpID0g
MDsKICAgICB2b2lkIHN0YXRlc0RpZENoYW5nZWQoKTsKICAgICAKQEAgLTk3LDE5ICsxMDEsMjgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
bW90ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGUoYm9vbCByZW1vdGUpIHsgbV9yZW1v
dGUgPSByZW1vdGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CisKICAg
ICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihP
YnNlcnZlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKIAogICAgIHZvaWQgc3RvcChPYnNlcnZl
ciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAKLSAgICB2b2lkIHJlc2V0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKICAgICB2aXJ0dWFsIEF1ZGlvU291cmNlUHJvdmlk
ZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgCisKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSB7IH0KKwogcHJvdGVj
dGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKIApAQCAtMTI0LDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX211dGVkOwogICAgIGJvb2wgbV9yZWFkb25seTsKICAgICBib29sIG1fcmVtb3RlOworICAg
IGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogICAgIAogICAgIHVuc2lnbmVkIG1fZml0bmVzc1Nj
b3JlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEyIEBAIHByaXZhdGU6
CiAgICAgQVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+QVZB
dWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICAKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNhcHR1
cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNz
aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UubW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE2IEBACiAKICNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5r
LmgiCiAKK3R5cGVkZWYgQVZDYXB0dXJlQXVkaW9DaGFubmVsIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5l
bFR5cGU7Cit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1cmVBdWRpb0Rh
dGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVDb25uZWN0aW9uIEFWQ2FwdHVyZUNvbm5l
Y3Rpb25UeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVEZXZpY2UgQVZDYXB0dXJlRGV2aWNlVHlwZTsK
IHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlSW5wdXQgQVZDYXB0dXJlRGV2aWNlSW5wdXRUeXBlOwog
dHlwZWRlZiBBVkNhcHR1cmVPdXRwdXQgQVZDYXB0dXJlT3V0cHV0VHlwZTsKLXR5cGVkZWYgQVZD
YXB0dXJlQXVkaW9EYXRhT3V0cHV0IEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCitTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0NoYW5uZWwpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtNzcsMTAgKzc5LDEwIEBAIEFWQXVkaW9DYXB0
dXJlU291cmNlOjp+QVZBdWRpb0NhcHR1cmVTb3UKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMo
KSBjb25zdAordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJmNhcGFiaWxpdGllcykKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBmaW5p
c2ggdGhpcyBpbXBsZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJl
YWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogCiB2b2lkIEFWQXVkaW9D
YXB0dXJlU291cmNlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtOTAsMTEgKzkyLDggQEAgdm9pZCBBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKAogCiB2b2lkIEFWQXVkaW9DYXB0dXJlU291
cmNlOjphZGRPYnNlcnZlcihBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVy
KQogewotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0gICAgICAgIG1f
b2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7Ci0gICAgfQotCisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbG9jayk7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKICAgICBpZiAobV9p
bnB1dERlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSkKICAgICAgICAgb2JzZXJ2ZXItPnByZXBhcmUo
bV9pbnB1dERlc2NyaXB0aW9uLmdldCgpKTsKIH0KQEAgLTExMCwxNiArMTA5LDQwIEBAIHZvaWQg
QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnJlbW92ZU9ic2VydmUKIHZvaWQgQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVE
ZXZpY2VJbnB1dFR5cGU+IGF1ZGlvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlu
cHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBB
U1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDphdWRpb0luLmdldCgpXSk7Ci0gICAgaWYgKFtz
ZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07Ci0gICAgCisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2Fu
QWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIGF1ZGlv
IGlucHV0IGRldmljZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNz
aW9uKCkgYWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07CisKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJl
QXVkaW9EYXRhT3V0cHV0VHlwZT4gYXVkaW9PdXRwdXQgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVy
ZUF1ZGlvRGF0YU91dHB1dEluc3RhbmNlKCkgaW5pdF0pOwogICAgIHNldEF1ZGlvU2FtcGxlQnVm
ZmVyRGVsZWdhdGUoYXVkaW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vzc2lvbigpIGNh
bkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lvbigpIGNhbkFk
ZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkT3V0cHV0
OmF1ZGlvT3V0cHV0LmdldCgpXTsKLSAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IGFkb3B0TlMoW2F1
ZGlvT3V0cHV0LmdldCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW9d
KTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCld
KSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1
cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCBhdWRpbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBk
ZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXTsKKyAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IFth
dWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlv
XTsKK30KKwordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lv
bigpCit7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKworICAgICAg
ICBtX2F1ZGlvQ29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1faW5wdXREZXNjcmlwdGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPigpOworCisg
ICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9i
c2VydmVyLT51bnByZXBhcmUoKTsKKyAgICAgICAgbV9vYnNlcnZlcnMuc2hyaW5rKDApOworICAg
IH0KKworICAgIC8vIERvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiBkZXN0cm95aW5nIHRoZSBhdWRp
byBwcm92aWRlciwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byB0aGlzIG9iamVjdAorICAgIC8vIHRv
IHJlbW92ZSBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIuCisgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVy
ID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24mIGEsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYg
YikKQEAgLTE0MSwyNyArMTY0LDMwIEBAIHN0YXRpYyBib29sIG9wZXJhdG9yIT0oY29uc3QgQXVk
aW9TdHJlYW0KIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91
dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKikKIHsK
LSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnM7Ci0gICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKLSAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMsIG9i
c2VydmVycyk7Ci0gICAgfQorICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CiAK
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIpOwogICAgIGlmICghZm9ybWF0
RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybjsKIAorICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtX2xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIGlmICghbG9jay5vd25zX2xv
Y2soKSkgeworICAgICAgICAvLyBGYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jaywganVzdCByZXR1
cm4gaW5zdGVhZCBvZiBibG9ja2luZy4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogc3RyZWFtRGVzY3JpcHRpb24gPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqc3RyZWFtRGVzY3JpcHRpb24pIHsK
ICAgICAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24+KCpzdHJlYW1EZXNjcmlwdGlvbik7Ci0gICAgICAgIGZvciAoYXV0
byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKICAgICAgICAgICAgIG9ic2VydmVyLT5wcmVwYXJlKG1faW5wdXREZXNjcmlw
dGlvbi5nZXQoKSk7CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG9ic2VydmVy
cykKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAgICAgIG9ic2Vy
dmVyLT5wcm9jZXNzKGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVCdWZmZXIpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNl
TWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkocmV2aXNpb24gMTkxNjM3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1h
bmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAzLDEwICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIG1fZ3JvdXBJRDsKIAogICAgIFN0cmluZyBtX2F1ZGlvU291cmNlSWQ7Ci0gICAgUmVmUHRy
PEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0KICAg
ICBTdHJpbmcgbV92aWRlb1NvdXJjZUlkOwotICAgIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJj
ZT4gbV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiB9
OwpAQCAtMTQ2LDcgKzE0MywxMCBAQCBzdGF0aWMgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZUxp
c3QoKQogICAgIAogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlIGluIFtBVkNh
cHR1cmVEZXZpY2UgZGV2aWNlc10pIHsKICAgICAgICAgQ2FwdHVyZURldmljZSBzb3VyY2U7Ci0g
ICAgICAgIAorCisgICAgICAgIGlmICghW2RldmljZSBpc0Nvbm5lY3RlZF0gfHwgW2RldmljZSBp
c0luVXNlQnlBbm90aGVyQXBwbGljYXRpb25dIHx8IFtkZXZpY2UgaXNTdXNwZW5kZWRdKQorICAg
ICAgICAgICAgY29udGludWU7CisKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlRnJvbURldmlj
ZUlEKGRldmljZS51bmlxdWVJRCwgc291cmNlKSkgewogICAgICAgICAgICAgLy8gQW4gQVZDYXB0
dXJlRGV2aWNlIGhhcyBhIHVuaXF1ZSBJRCwgYnV0IHdlIGNhbid0IHVzZSBpdCBmb3IgdGhlIHNv
dXJjZSBJRCBiZWNhdXNlOgogICAgICAgICAgICAgLy8gMS4gaWYgaXQgcHJvdmlkZXMgYm90aCBh
dWRpbyBhbmQgdmlkZW8gd2Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSB0d28gc291cmNlcyBmb3IgaXQK
QEAgLTM4OCwyNCArMzg4LDIwIEBAIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+
IEFWQ2EKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKICAgICAgICAgICAg
IGNvbnRpbnVlOwogCi0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciB0aGUgY29uc3RyYWludHMg
d2hlbiBjaG9vc2luZyBhbW9uZyBtdWx0aXBsZSBkZXZpY2VzLiBGb3Igbm93IGp1c3Qgc2VsZWN0
IHRoZSBmaXJzdCBhdmFpbGFibGUKLSAgICAgICAgLy8gZGV2aWNlIG9mIHRoZSBhcHByb3ByaWF0
ZSB0eXBlLgogICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAm
JiAhY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBpZiAoIWNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKSB7Ci0gICAg
ICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmlj
ZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0g
ICAgICAgICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAgICAgICAgICAgICAgY2FwdHVyZURl
dmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQsIGNvbnN0cmFpbnRz
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2Fw
dHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpOworICAgICAgICAgICAgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2UgPSBBVkNhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzb3VyY2VXaXRoVUlEKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvLCBjb25zdHJhaW50cy5nZXQoKSk7CisgICAgICAgICAg
ICBpZiAoIWNhcHR1cmVTb3VyY2UpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW8gJiYgIWNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAg
ICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkgewot
ICAgICAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVE
ZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSURd
OwotICAgICAgICAgICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAgICAgICAgICAgIGNhcHR1
cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJh
aW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5k
KGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKTsKKyAgICAgICAgICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlID0gQVZDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlE
LCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbywgY29uc3RyYWludHMuZ2V0KCkpOworICAgICAg
ICAgICAgaWYgKCFjYXB0dXJlU291cmNlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisg
ICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigp
KTsKICAgICAgICAgfQogICAgIH0KICAgICBzdGQ6OnNvcnQoYmVzdFNvdXJjZXNMaXN0LmJlZ2lu
KCksIGJlc3RTb3VyY2VzTGlzdC5lbmQoKSwgc29ydEJhc2VkT2ZmRml0bmVzc1Njb3JlKTsKQEAg
LTQxNiw0MSArNDEyLDQxIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBBVkNhcHR1cmVE
ZXYKIHsKICAgICBpZiAoIWlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIAor
CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzID0gY2FwdHVyZURldmljZUxpc3Qo
KTsKLSAgICBmb3IgKGF1dG8gY2FwdHVyZURldmljZSA6IGRldmljZXMpIHsKLSAgICAgICAgaWYg
KCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKKyAgICBmb3IgKGF1dG8mIGNhcHR1cmVEZXZpY2Ug
OiBkZXZpY2VzKSB7CisgICAgICAgIGlmIChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlE
ICE9IGRldmljZVVJRCB8fCAhY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAotICAgICAgICBpZiAoY2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRCAh
PSBkZXZpY2VVSUQpCisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvICYmIGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlbyAmJiBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBb
QVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVy
ZURldmljZUlEXTsKKyAgICAgICAgQVNTRVJUKGRldmljZSk7CisKKyAgICAgICAgUmVmUHRyPEFW
TWVkaWFDYXB0dXJlU291cmNlPiBjYXB0dXJlU291cmNlOworICAgICAgICBpZiAodHlwZSA9PSBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKKyAgICAgICAgICAgIGNhcHR1cmVTb3VyY2UgPSBB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlv
U291cmNlSWQsIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FwdHVy
ZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2
aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwogCiAgICAgICAgIGlmIChjb25zdHJh
aW50cykgewogICAgICAgICAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsKICAgICAgICAg
ICAgIEFWQ2FwdHVyZVNlc3Npb25UeXBlICpzZXNzaW9uID0gbmlsOwogCi0gICAgICAgICAgICBp
ZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiBjYXB0dXJlRGV2aWNlLm1f
dmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNl
Lm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwotICAgICAgICAgICAgZWxz
ZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAmJiBjYXB0dXJlRGV2aWNl
Lm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2
aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOworICAgICAgICAgICAg
aWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pCisgICAgICAgICAgICAgICAg
c2Vzc2lvbiA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKKyAgICAgICAgICAgIGVsc2UgaWYg
KHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgICAgICAgICAgICAgc2Vz
c2lvbiA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKICAgICAgICAgICAgIEFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKHNl
c3Npb24sIHR5cGUsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpOwogCiAgICAgICAg
ICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEFWQ2FwdHVyZURldmljZVR5
cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVE
ZXZpY2UubV9jYXB0dXJlRGV2aWNlSURdOwotICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAg
ICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgIWNhcHR1cmVEZXZp
Y2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKCFjYXB0dXJl
RGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0
dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9DYXB0dXJlU291
cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZCwgY29uc3Ry
YWludHMpOwotICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFD
YXB0dXJlU291cmNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlZpZGVvICYmICFjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1
cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNh
cHR1cmVTb3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVy
ZURldmljZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIHJldHVy
biBjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKLSAgICAgICAgfQor
ICAgICAgICByZXR1cm4gY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCk7CiAgICAgfQogICAgIAogICAg
IHJldHVybiBudWxscHRyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
Vk1lZGlhQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0NSArNTIsNTIgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVC
dWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwg
QVZDYXB0dXJlQ29ubmVjdGlvbiopID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlU2Vz
c2lvblN0b3BwZWRSdW5uaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTZXNzaW9uSXNS
dW5uaW5nRGlkQ2hhbmdlKGJvb2wpOwogICAgIAogICAgIEFWQ2FwdHVyZVNlc3Npb24gKnNlc3Np
b24oKSBjb25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KIAorICAgIGNvbnN0IFJlYWx0
aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
b3ZlcnJpZGU7CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2lzUnVubmluZzsgfQorCisgICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CiAKIHByb3RlY3RlZDoKICAgICBBVk1lZGlhQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZp
Y2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBQYXNz
UmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOwogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1
ZGlvU291cmNlUHJvdmlkZXIoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXR1cENh
cHR1cmVTZXNzaW9uKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNz
aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdGF0ZXMoKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYpID0gMDsKIAogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kZXZpY2UuZ2V0KCk7IH0KKwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMq
IGN1cnJlbnRTdGF0ZXMoKSB7IHJldHVybiAmbV9jdXJyZW50U3RhdGVzOyB9CiAgICAgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMoKSB7IHJldHVybiBtX2NvbnN0cmFpbnRzLmdldCgpOyB9
CiAKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0
aWVzKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUo
QVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1NhbXBsZUJ1ZmZl
ckRlbGVnYXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwogCiAgICAgdm9pZCBzY2hlZHVs
ZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+KTsKIAotICAgIHZvaWQgc3RhdGVz
RGlkQ2hhbmdlZCgpIHsgfQotICAgIAogcHJpdmF0ZToKICAgICB2b2lkIHNldHVwU2Vzc2lvbigp
OwotICAgIFdlYWtQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIHZvaWQgcmVzZXQo
KSBvdmVycmlkZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PEFWTWVkaWFDYXB0dXJlU291cmNlPiBt
X3dlYWtQdHJGYWN0b3J5OwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3Vy
Y2VPYnNlcnZlcj4gbV9vYmpjT2JzZXJ2ZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+
IG1fY29uc3RyYWludHM7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IG1fY2FwYWJpbGl0aWVzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMgbV9jdXJy
ZW50U3RhdGVzOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAg
ICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7Ci0gICAgCi0gICAgYm9vbCBt
X2lzUnVubmluZzsKKyAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2V9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NCwxMiArOTQsMTQg
QEAgQGludGVyZmFjZSBXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYgogCiAtKGlkKWluaXRX
aXRoQ2FsbGJhY2s6KEFWTWVkaWFDYXB0dXJlU291cmNlKiljYWxsYmFjazsKIC0odm9pZClkaXNj
b25uZWN0OwotLSh2b2lkKWNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmc6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uOwogLSh2b2lkKWNhcHR1cmVPdXRwdXQ6KEFWQ2FwdHVyZU91dHB1
dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNhbXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZm
ZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9uOihBVkNhcHR1cmVDb25uZWN0aW9uVHlw
ZSAqKWNvbm5lY3Rpb247CistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9m
T2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoo
dm9pZCopY29udGV4dDsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgTlNB
cnJheSogc2Vzc2lvbktWT1Byb3BlcnRpZXMoKTsKKwogc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3Qg
Z2xvYmFBdWRpb0NhcHR1cmVTZXJpYWxRdWV1ZSgpCiB7CiAgICAgc3RhdGljIGRpc3BhdGNoX3F1
ZXVlX3QgZ2xvYmFsUXVldWU7CkBAIC0xMjcsNyArMTI5LDYgQEAgQVZNZWRpYUNhcHR1cmVTb3Vy
Y2U6OkFWTWVkaWFDYXB0dXJlU291cgogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dl
YkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNr
OnRoaXNdKSkKICAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCiAgICAgLCBtX2Rldmlj
ZShkZXZpY2UpCi0gICAgLCBtX2lzUnVubmluZyhmYWxzZSkKIHsKICAgICBzZXROYW1lKGRldmlj
ZS5sb2NhbGl6ZWROYW1lKTsKICAgICBzZXRQZXJzaXN0ZW50SUQoZGV2aWNlLnVuaXF1ZUlEKTsK
QEAgLTEzNiw5ICsxMzcsMTMgQEAgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJl
U291cgogCiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFDYXB0dXJlU291cmNlKCkKIHsK
LSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpXTsKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlzY29ubmVjdF07
Ci0gICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107CisKKyAgICBpZiAobV9zZXNzaW9u
KSB7CisgICAgICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRp
ZXMoKSkKKyAgICAgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpj
T2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lXTsKKyAgICAgICAgW21fc2Vzc2lvbi5n
ZXQoKSBzdG9wUnVubmluZ107CisgICAgfQogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEoKQpAQCAtMTUwLDggKzE1NSw2IEBAIHZvaWQgQVZNZWRpYUNh
cHR1cmVTb3VyY2U6OnN0YXJ0UHJvZHVjaW4KICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFtt
X3Nlc3Npb24uZ2V0KCkgc3RhcnRSdW5uaW5nXTsKLQotICAgIG1faXNSdW5uaW5nID0gdHJ1ZTsK
IH0KIAogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQpAQCAt
MTYwLDggKzE2Myw2IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmcK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107Ci0K
LSAgICBtX2lzUnVubmluZyA9IHRydWU7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VT
dGF0ZXMmIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdGF0ZXMoKQpAQCAtMTcwLDIxICsxNzEsNDcg
QEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgQVZNZWRpYQogICAgIHJldHVybiBt
X2N1cnJlbnRTdGF0ZXM7CiB9CiAKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKK3sKKyAgICBpZiAoIW1f
Y2FwYWJpbGl0aWVzKSB7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUNhcGFiaWxpdGllczo6Y3JlYXRlKCk7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzLT5zZXRT
b3VyY2VJZChtX2N1cnJlbnRTdGF0ZXMuc291cmNlSWQoKSk7CisgICAgICAgIGluaXRpYWxpemVD
YXBhYmlsaXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKKyAgICB9CisgICAgcmV0dXJuIG1f
Y2FwYWJpbGl0aWVzOworfQorCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Np
b24oKQogewogICAgIGlmIChtX3Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2Vz
c2lvbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNlKCkgaW5pdF0pOwot
ICAgIAotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2
ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKGNhcHR1cmVTZXNzaW9u
U3RvcHBlZFJ1bm5pbmc6KSBuYW1lOkFWQ2FwdHVyZVNlc3Npb25EaWRTdG9wUnVubmluZ05vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAKKyAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGlu
IHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkpCisgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgYWRkT2Jz
ZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lIG9wdGlvbnM6TlNL
ZXlWYWx1ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopbmlsXTsKKwogICAgIHNl
dHVwQ2FwdHVyZVNlc3Npb24oKTsKIH0KLSAKLXZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNh
cHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKQorCit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNl
OjpyZXNldCgpCiB7Ci0gICAgc3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpyZXNldCgpOworICAgIG1faXNSdW5uaW5nID0gZmFsc2U7CisgICAgZm9yIChOU1N0
cmluZyAqa2V5TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICBbbV9zZXNz
aW9uLmdldCgpIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6
a2V5TmFtZV07CisgICAgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpOworICAgIG1fc2Vzc2lvbiA9
IG51bGxwdHI7Cit9CisKK3ZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9u
SXNSdW5uaW5nRGlkQ2hhbmdlKGJvb2wgc3RhdGUpCit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRh
c2soW3RoaXMsIHN0YXRlXSB7CisgICAgICAgIGlmIChzdGF0ZSA9PSBtX2lzUnVubmluZykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX2lzUnVubmluZyA9IHN0YXRlOworICAgICAg
ICBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBBVk1lZGlh
Q2FwdHVyZVNvdXJjZTo6c2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVWaWRl
b0RhdGFPdXRwdXRUeXBlKiB2aWRlb091dHB1dCkKQEAgLTIxNiw2ICsyNDMsMTIgQEAgQXVkaW9T
b3VyY2VQcm92aWRlciogQVZNZWRpYUNhcHR1cmVTb3VyYwogICAgIHJldHVybiBudWxscHRyOwog
fQogCitOU0FycmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpCit7CisgICAgc3RhdGljIE5TQXJy
YXkqIGtleXMgPSBAW0AicnVubmluZyJdOworICAgIHJldHVybiBrZXlzOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZNZWRpYUNhcHR1cmVT
b3VyY2VPYnNlcnZlcgpAQCAtMjM1LDI1ICsyNjgsMzcgQEAgLSAodm9pZClkaXNjb25uZWN0CiAg
ICAgbV9jYWxsYmFjayA9IDA7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVu
bmluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKHZvaWQpY2FwdHVyZU91dHB1
dDooQVZDYXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVm
ZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2Fw
dHVyZUNvbm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgogewotICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwotCiAgICAgaWYgKCFtX2NhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBp
ZiAobV9jYWxsYmFjaykKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPmNhcHR1cmVTZXNzaW9uU3Rv
cHBlZFJ1bm5pbmcoKTsKLSAgICB9KTsKKyAgICBtX2NhbGxiYWNrLT5jYXB0dXJlT3V0cHV0RGlk
T3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oY2FwdHVyZU91dHB1dCwgc2FtcGxlQnVm
ZmVyLCBjb25uZWN0aW9uKTsKIH0KIAotLSAodm9pZCljYXB0dXJlT3V0cHV0OihBVkNhcHR1cmVP
dXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZmZXI6KENNU2FtcGxl
QnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0dXJlQ29ubmVjdGlv
blR5cGUgKiljb25uZWN0aW9uCistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRo
IG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4
dDoodm9pZCopY29udGV4dAogeworICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKKwogICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNhbXBsZUJ1ZmZlciwgY29ubmVjdGlvbik7Cisg
ICAgaWQgbmV3VmFsdWUgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdL
ZXldOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGJvb2wgd2lsbENoYW5nZSA9IFtbY2hhbmdl
IHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29s
VmFsdWVdOworCisgICAgaWYgKHdpbGxDaGFuZ2UpCisgICAgICAgIExPRyhNZWRpYSwgIldlYkNv
cmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyOjpvYnNlcnZlVmFsdWVGb3JLZXlQYXRoKCVw
KSAtIHdpbGwgY2hhbmdlLCBrZXlQYXRoID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5n
XSk7CisgICAgZWxzZSB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gdmFsdWVTdHJpbmcg
PSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUAiLCBuZXdWYWx1
ZV0pOworICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNl
cnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aCglcCkgLSBkaWQgY2hhbmdlLCBrZXlQYXRoID0g
JXMsIHZhbHVlID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5nXSwgW3ZhbHVlU3RyaW5n
LmdldCgpIFVURjhTdHJpbmddKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlmIChba2V5UGF0aCBp
c0VxdWFsVG9TdHJpbmc6QCJydW5uaW5nIl0pCisgICAgICAgIG1fY2FsbGJhY2stPmNhcHR1cmVT
ZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKFtuZXdWYWx1ZSBib29sVmFsdWVdKTsKIH0KIAogQGVu
ZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgJKHJldmlzaW9uIDE5MTYzNykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJBVk1l
ZGlhQ2FwdHVyZVNvdXJjZS5oIgogCi1PQkpDX0NMQVNTIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xh
eWVyOworT0JKQ19DTEFTUyBDQUxheWVyOwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0lt
YWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiAq
Q01Gb3JtYXREZXNjcmlwdGlvblJlZjsKQEAgLTQ4LDM2ICs0OCwzOCBAQCBwdWJsaWM6CiAgICAg
aW50MzJfdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQzMl90IGhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKLSAgICBBVkNhcHR1cmVWaWRlb1By
ZXZpZXdMYXllciogcHJldmlld0xheWVyKCkgeyByZXR1cm4gbV92aWRlb1ByZXZpZXdMYXllci5n
ZXQoKTsgfQotICAgIENNU2FtcGxlQnVmZmVyUmVmIGN1cnJlbnRGcmFtZVNhbXBsZUJ1ZmZlcigp
IGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdldCgpOyB9Ci0gICAgdm9pZCBwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKLSAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lSW1hZ2UoKTsKLQogcHJpdmF0ZToKICAg
ICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJp
bmcmLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKICAgICB2aXJ0dWFsIH5BVlZpZGVv
Q2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNzaW9uKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisKICAgICB2
b2lkIHVwZGF0ZVN0YXRlcygpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZv
aWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIGFwcGx5Q29uc3RyYWludHMoTWVkaWFDb25zdHJhaW50
cyopOwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3RyYWludChmbG9hdCBtaW5GcmFtZVJhdGUs
IGZsb2F0IG1heEZyYW1lUmF0ZSk7CiAKLSAgICBib29sIGNhbGN1bGF0ZUZyYW1lcmF0ZShDTVNh
bXBsZUJ1ZmZlclJlZik7CisgICAgYm9vbCB1cGRhdGVGcmFtZXJhdGUoQ01TYW1wbGVCdWZmZXJS
ZWYpOwogCiAgICAgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNv
bm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2FwdHVyZUNv
bm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8
Q01TYW1wbGVCdWZmZXJSZWY+KTsKIAotICAgIFJldGFpblB0cjxBVkNhcHR1cmVDb25uZWN0aW9u
PiBtX3ZpZGVvQ29ubmVjdGlvbjsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3
TGF5ZXI+IG1fdmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAg
ICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lQ0dJbWFnZSgpOworICAgIFJlZlB0cjxJ
bWFnZT4gY3VycmVudEZyYW1lSW1hZ2UoKSBvdmVycmlkZTsKKwogICAgIFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gbV9idWZmZXI7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fbGFz
dEltYWdlOwogICAgIFZlY3RvcjxGbG9hdDY0PiBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBzOwotICAg
IEZsb2F0NjQgbV9mcmFtZVJhdGU7Ci0gICAgaW50MzJfdCBtX3dpZHRoOwotICAgIGludDMyX3Qg
bV9oZWlnaHQ7CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb1By
ZXZpZXdMYXllcjsKKyAgICBGbG9hdDY0IG1fZnJhbWVSYXRlIHsgMCB9OworICAgIGludDMyX3Qg
bV93aWR0aCB7IDAgfTsKKyAgICBpbnQzMl90IG1faGVpZ2h0IHsgMCB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMCArMzEsMTIg
QEAKICNpbXBvcnQgIkFWQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbXBvcnQgIkJsb2NrRXhj
ZXB0aW9ucy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBvcnQgIkltYWdl
QnVmZmVyLmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1w
b3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2lt
cG9ydCAiUGxhdGZvcm1MYXllci5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRl
cy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8b2Jq
Yy9ydW50aW1lLmg+CkBAIC05OCw5ICsxMDAsNiBAQCBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3Vy
Y2U+IEFWVmlkZW9DYXB0CiAKIEFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNv
dXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQs
IFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkKICAgICA6IEFWTWVkaWFD
YXB0dXJlU291cmNlKGRldmljZSwgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBjb25z
dHJhaW50KQotICAgICwgbV9mcmFtZVJhdGUoMCkKLSAgICAsIG1fd2lkdGgoMCkKLSAgICAsIG1f
aGVpZ2h0KDApCiB7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VJZChpZCk7CiAgICAg
Y3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6
OkNhbWVyYSk7CkBAIC0xMTAsMTAgKzEwOSwxMSBAQCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFW
VmlkZW9DYXB0dXJlU291CiB7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK3ZvaWQg
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIDA7CisgICAgLy8gRklYTUU6IGZpbmlzaCB0aGlzIGltcGxlbWVudGF0
aW9uCisgICAgY2FwYWJpbGl0aWVzLnNldFNvdXJjZUlkKGN1cnJlbnRTdGF0ZXMoKS0+c291cmNl
SWQoKSk7CisgICAgY2FwYWJpbGl0aWVzLmFkZFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJj
ZVN0YXRlczo6Q2FtZXJhKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRl
U3RhdGVzKCkKQEAgLTIxOCw5ICsyMTgsMTMgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
YXBwbHlDb25zdHJhaQogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vz
c2lvbigpCiB7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUlucHV0VHlwZT4gdmlkZW9J
biA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlRGV2aWNlSW5wdXRJbnN0YW5jZSgpIGluaXRXaXRo
RGV2aWNlOmRldmljZSgpIGVycm9yOm5pbF0pOwotICAgIEFTU0VSVChbc2Vzc2lvbigpIGNhbkFk
ZElucHV0OnZpZGVvSW4uZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDp2
aWRlb0luLmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2aWRlb0luLmdldCgp
XTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSkgewor
ICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vz
c2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gaW5wdXQgZGV2aWNlIiwgdGhpcyk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2Vzc2lvbigpIGFkZElucHV0OnZpZGVvSW4uZ2V0
KCldOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKCkpCiAgICAgICAgIGFwcGx5Q29uc3RyYWludHMo
Y29uc3RyYWludHMoKSk7CkBAIC0yMzEsMTUgKzIzNSwyNiBAQCB2b2lkIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpzZXR1cENhcHR1cmVTCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAsIG5pbF0pOwogICAgIFt2aWRlb091dHB1dCBzZXRWaWRl
b1NldHRpbmdzOnNldHRpbmdzRGljdGlvbmFyeS5nZXQoKV07CiAgICAgc2V0VmlkZW9TYW1wbGVC
dWZmZXJEZWxlZ2F0ZSh2aWRlb091dHB1dC5nZXQoKSk7Ci0gICAgQVNTRVJUKFtzZXNzaW9uKCkg
Y2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9uKCkgY2Fu
QWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRPdXRw
dXQ6dmlkZW9PdXRwdXQuZ2V0KCldOwogCi0gICAgbV92aWRlb0Nvbm5lY3Rpb24gPSBhZG9wdE5T
KFt2aWRlb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZVZp
ZGVvXSk7Ci0gICAgbV92aWRlb1ByZXZpZXdMYXllciA9IGFkb3B0TlMoW1tBVkNhcHR1cmVWaWRl
b1ByZXZpZXdMYXllciBhbGxvY10gaW5pdFdpdGhTZXNzaW9uOnNlc3Npb24oKV0pOworICAgIGlm
ICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldKSB7CisgICAgICAg
IExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCVw
KSwgdW5hYmxlIHRvIGFkZCB2aWRlbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBkZWxlZ2F0ZSIsIHRo
aXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkgYWRkT3V0cHV0OnZp
ZGVvT3V0cHV0LmdldCgpXTsKK30KKwordm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2h1dGRv
d25DYXB0dXJlU2Vzc2lvbigpCit7CisgICAgbV92aWRlb1ByZXZpZXdMYXllciA9IG51bGxwdHI7
CisgICAgbV9idWZmZXIgPSBudWxscHRyOworICAgIG1fbGFzdEltYWdlID0gbnVsbHB0cjsKKyAg
ICBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBzLmNsZWFyKCk7CisgICAgbV9mcmFtZVJhdGUgPSAwOwor
ICAgIG1fd2lkdGggPSAwOworICAgIG1faGVpZ2h0ID0gMDsKIH0KIAotYm9vbCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlcikKK2Jvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1lcmF0ZShDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiB7CiAgICAgQ01UaW1lIHNhbXBsZVRpbWUgPSBDTVNh
bXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgIGlm
ICghQ01USU1FX0lTX05VTUVSSUMoc2FtcGxlVGltZSkpCkBAIC0yNjEsMTMgKzI3NiwxOSBAQCBi
b29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYWxjdWxhdGVGcmFtCiAKIHZvaWQgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+
IHNhbXBsZUJ1ZmZlcikKIHsKKyAgICAvLyBJZ25vcmUgZnJhbWVzIGRlbGl2ZXJlZCB3aGVuIHRo
ZSBzZXNzaW9uIGlzIG5vdCBydW5uaW5nLCB3ZSB3YW50IHRvIGhhbmcgb250byB0aGUgbGFzdCBp
bWFnZQorICAgIC8vIGRlbGl2ZXJlZCBiZWZvcmUgaXQgc3RvcHBlZC4KKyAgICBpZiAobV9sYXN0
SW1hZ2UgJiYgKCFpc1Byb2R1Y2luZ0RhdGEoKSB8fCAhZW5hYmxlZCgpKSkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENN
U2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLmdldCgpKTsKICAg
ICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICB1cGRhdGVG
cmFtZXJhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKKwogICAgIGJvb2wgc3RhdGVzQ2hhbmdlZCA9
IGZhbHNlOwogCi0gICAgc3RhdGVzQ2hhbmdlZCA9IGNhbGN1bGF0ZUZyYW1lcmF0ZShzYW1wbGVC
dWZmZXIuZ2V0KCkpOwogICAgIG1fYnVmZmVyID0gc2FtcGxlQnVmZmVyOwogICAgIG1fbGFzdElt
YWdlID0gbnVsbHB0cjsKIApAQCAtMjkxLDcgKzMxMiwyMyBAQCB2b2lkIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpjYXB0dXJlT3V0cHV0CiAgICAgfSk7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQorUmVmUHRyPEltYWdl
PiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQoreworICAgIGlmICgh
Y3VycmVudEZyYW1lQ0dJbWFnZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEZs
b2F0UmVjdCBpbWFnZVJlY3QoMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGlt
YWdlUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworCisgICAgaWYgKCFpbWFnZUJ1ZmZlcikK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4
dChpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLCBpbWFnZVJlY3QpOworCisgICAgcmV0dXJuIGltYWdl
QnVmZmVyLT5jb3B5SW1hZ2UoKTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjdXJyZW50RnJhbWVDR0ltYWdlKCkKIHsKICAgICBpZiAobV9sYXN0SW1h
Z2UpCiAgICAgICAgIHJldHVybiBtX2xhc3RJbWFnZTsKQEAgLTMxOCw3ICszNTUsNyBAQCBSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyCiAKIHZvaWQgQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmIChjb250ZXh0LnBhaW50aW5n
RGlzYWJsZWQoKSB8fCAhY3VycmVudEZyYW1lSW1hZ2UoKSkKKyAgICBpZiAoY29udGV4dC5wYWlu
dGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpA
QCAtMzI5LDYgKzM2NiwxOSBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpwYWludEN1cnJl
bnRGCiAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIENH
UmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSksIG1f
bGFzdEltYWdlLmdldCgpKTsKIH0KIAorUGxhdGZvcm1MYXllciogQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3ZpZGVvUHJldmlld0xheWVy
KQorICAgICAgICByZXR1cm4gbV92aWRlb1ByZXZpZXdMYXllci5nZXQoKTsKKworICAgIG1fdmlk
ZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVy
SW5zdGFuY2UoKSBpbml0V2l0aFNlc3Npb246c2Vzc2lvbigpXSk7CisjaWZuZGVmIE5ERUJVRwor
ICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UgcHJldmlldyBsYXllciI7CisjZW5kaWYKKworICAgIHJldHVybiBtX3ZpZGVvUHJldmlld0xh
eWVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCSh3b3JraW5n
IGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICBzaXplX3QgbV9saXN0QnVm
ZmVyU2l6ZSB7IDAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdWZmZXJMaXN0PiBtX2xp
c3Q7Ci0gICAgUmV0YWluUHRyPEF1ZGlvQ29udmVydGVyUmVmPiBtX2NvbnZlcnRlcjsKKyAgICBB
dWRpb0NvbnZlcnRlclJlZiBtX2NvbnZlcnRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9T
dHJlYW1CYXNpY0Rlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlx
dWVfcHRyPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDEx
IEBAIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1MKIAogV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7
CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBtYWtlIGFuZCB1c2Ug
YSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAgICBBdWRpb0NvbnZlcnRl
ckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7Cisg
ICAgfQogICAgIGlmIChtX2Nvbm5lY3RlZCkKICAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1v
dmVPYnNlcnZlcih0aGlzKTsKIH0KQEAgLTEyMyw3ICsxMjgsNyBAQCB2b2lkIFdlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92CiAgICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9j
ZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0NvbnZlcnRlckNvbnZl
cnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlz
dC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29t
cGxleEJ1ZmZlcihtX2NvbnZlcnRlciwgZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1f
bGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNl
dENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0xODAsOSArMTg1
LDE5IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXAKICAgICBtX291
dHB1dERlc2NyaXB0aW9uLT5tQnl0ZXNQZXJGcmFtZSA9IHNpemVvZihGbG9hdDMyKTsKICAgICBt
X291dHB1dERlc2NyaXB0aW9uLT5tRm9ybWF0RmxhZ3MgfD0ga0F1ZGlvRm9ybWF0RmxhZ0lzTm9u
SW50ZXJsZWF2ZWQ7CiAKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAgICAgLy8gRklYTUU6
IG1ha2UgYW5kIHVzZSBhIHNtYXJ0IHBvaW50ZXIgZm9yIEF1ZGlvQ29udmVydGVyCisgICAgICAg
IEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIG1fY29udmVydGVy
ID0gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqbV9v
dXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRlclJlZiBvdXRDb252ZXJ0
ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyhtX2lucHV0RGVzY3JpcHRp
b24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAg
ICAgICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRlck5ldyhtX2lucHV0RGVzY3JpcHRpb24u
Z2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAgICAg
ICBpZiAoZXJyKSB7CisgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJlcGFyZSglcCkgLSBBdWRpb0NvbnZlcnRlck5ldyByZXR1cm5lZCBlcnJv
ciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAg
ICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0yMjEsNiArMjM2LDEx
IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHIKICAgICBtX3JpbmdC
dWZmZXIgPSBudWxscHRyOwogICAgIG1fbGlzdCA9IG51bGxwdHI7CiAgICAgbV9saXN0QnVmZmVy
U2l6ZSA9IDA7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBtYWtl
IGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAgICBBdWRp
b0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRlciA9IG51
bGxwdHI7CisgICAgfQogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9jZXNzKENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1
ZmZlcikKQEAgLTIzNCw3ICsyNTQsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpwcm9jCiAgICAgT1NTdGF0dXMgZXJyID0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZl
ckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIsIG1fbGlz
dC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NG
QWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxp
c3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKTsKIAogICAgIGlmIChlcnIpIHsKLSAg
ICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Vzcygl
cCkgLSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVm
ZmVyIHJldHVybmVkIGVycm9yICVpIiwgdGhpcywgZXJyKTsKKyAgICAgICAgTE9HKE1lZGlhLCAi
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoJXApIC0gQ01TYW1wbGVCdWZm
ZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciByZXR1cm5lZCBlcnJv
ciAlaSIsIHRoaXMsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZU93ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCShyZXZpc2lvbiAxOTE2Mzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0
aW1lTWVkaWFTb3VyY2VPd3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBSZWFs
dGltZU1lZGlhU291cmNlT3dyKE93ck1lZGlhU291cmNlKiBtCiAKICAgICB2aXJ0dWFsIH5SZWFs
dGltZU1lZGlhU291cmNlT3dyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2Nh
cGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAg
dmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7IHJldHVy
biBtX2N1cnJlbnRTdGF0ZXM7IH0KIAogICAgIE93ck1lZGlhU291cmNlKiBtZWRpYVNvdXJjZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Nb2NrU291cmNlKCkgeyB9CiAK
LSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBh
YmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIHsg
cmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KIAogICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTEwLTI3ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gUGxheSBNZWRp
YVN0cmVhbSB0aHJvdWdoIG1lZGlhIGVsZW1lbnQgYW5kIHJlbmRlcmVkIHRvIGNhbnZhcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNDQ5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC10cmFja3MtdG8taW5hY3RpdmUtc3RyZWFtLmh0
bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jb25zdHJ1Y3Qtd2l0
aC1lbmRlZC10cmFja3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtQ29uc3RydWN0b3IuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2stb25lbmRlZC5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanM6CisgICAgICAgIChyZWplY3QpOgorICAgICAgICAo
Z2V0VXNlck1lZGlhKToKKwogMjAxNS0xMC0yNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElEQjogU3VwcG9ydCBJREJPYmplY3RTdG9yZS5wdXQv
Z2V0IHN1cHBvcnQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbAkocmV2aXNpb24g
MTkxNjM3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQt
ZW5kZWQtdHJhY2tzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUyLDcgKzUyLDcgQEAKICAgICAg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2F1ZGlvVHJhY2sucmVhZHlTdGF0ZScs
ICdlbmRlZCcpOwogCiAgICAgICAgICAgICAgICAgZGVidWcoIioqKiBjb25zdHJ1Y3QgbmV3ICdl
bXB0eScgc3RyZWFtMiIpCi0gICAgICAgICAgICAgICAgc3RyZWFtMiA9IG5ldyB3ZWJraXRNZWRp
YVN0cmVhbSgpOworICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBuZXcgTWVkaWFTdHJlYW0oKTsK
ICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5nZXRUcmFja3MoKS5sZW5ndGgnLCAn
MCcpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0yLmFjdGl2ZScsICdmYWxzZScp
OwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC10
cmFja3MtdG8taW5hY3RpdmUtc3RyZWFtLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVh
bS5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLWFkZC10cmFja3MtdG8taW5hY3RpdmUtc3RyZWFtLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDcgKzIxLDcgQEAKIAogICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlU3Ry
ZWFtQW5kQWRkVHJhY2tzKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzdHJlYW0y
ID0gbmV3IHdlYmtpdE1lZGlhU3RyZWFtKCk7CisgICAgICAgICAgICAgICAgc3RyZWFtMiA9IG5l
dyBNZWRpYVN0cmVhbSgpOwogICAgICAgICAgICAgICAgIGRlYnVnKCJNZWRpYVN0cmVhbSB3aXRo
b3V0IHRyYWNrcyBjcmVhdGVkLiIpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0y
LmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJzAnKTsKICAgICAgICAgICAgICAgICBhdWRpb1Ry
YWNrID0gc3RyZWFtMS5nZXRBdWRpb1RyYWNrcygpWzBdOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jb25zdHJ1Y3Qtd2l0aC1lbmRlZC10cmFja3MuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
LWNvbnN0cnVjdC13aXRoLWVuZGVkLXRyYWNrcy5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNvbnN0cnVjdC13aXRoLWVu
ZGVkLXRyYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMiArMjksMTIgQEAKICAgICAg
ICAgICAgICAgICB2YXIgdHJhY2tzQXJyYXkgPSBbXTsKICAgICAgICAgICAgICAgICB0cmFja3NB
cnJheS5wdXNoKHZpZGVvVHJhY2spOwogICAgICAgICAgICAgICAgIHRyYWNrc0FycmF5LnB1c2go
YXVkaW9UcmFjayk7Ci0gICAgICAgICAgICAgICAgbmV3TWVkaWFTdHJlYW0gPSBuZXcgd2Via2l0
TWVkaWFTdHJlYW0odHJhY2tzQXJyYXkpOworICAgICAgICAgICAgICAgIG5ld01lZGlhU3RyZWFt
ID0gbmV3IE1lZGlhU3RyZWFtKHRyYWNrc0FycmF5KTsKIAogICAgICAgICAgICAgICAgIHNob3Vs
ZEV2YWx1YXRlVG8oJ25ld01lZGlhU3RyZWFtLmFjdGl2ZScsIGZhbHNlKTsKICAgICAgICAgICAg
ICAgICBzaG91bGROb3RCZSgnbWVkaWFTdHJlYW0uaWQnLCAnbmV3TWVkaWFTdHJlYW0uaWQnKTsK
IAotICAgICAgICAgICAgICAgIG1lZGlhU3RyZWFtQ29weSA9IG5ldyB3ZWJraXRNZWRpYVN0cmVh
bShuZXdNZWRpYVN0cmVhbSk7CisgICAgICAgICAgICAgICAgbWVkaWFTdHJlYW1Db3B5ID0gbmV3
IE1lZGlhU3RyZWFtKG5ld01lZGlhU3RyZWFtKTsKICAgICAgICAgICAgICAgICBzaG91bGRFdmFs
dWF0ZVRvKCdtZWRpYVN0cmVhbUNvcHkuYWN0aXZlJywgZmFsc2UpOwogICAgICAgICAgICAgICAg
IHNob3VsZE5vdEJlKCdtZWRpYVN0cmVhbUNvcHkuaWQnLCAnbmV3TWVkaWFTdHJlYW0uaWQnKTsK
IApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVj
dG9yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbUNvbnN0cnVjdG9yLmh0bWwJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC04LDcgKzgsNyBAQAogICAgICAgICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KICAg
ICAgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAgICAgICAgIDxzY3JpcHQ+Ci0gICAgICAg
ICAgICBkZXNjcmlwdGlvbigiVGVzdHMgd2Via2l0TWVkaWFTdHJlYW0uIik7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgTWVkaWFTdHJlYW0uIik7CiAKICAgICAgICAgICAgIHZhciB1
bmRlZmluZWQ7CiAgICAgICAgICAgICB2YXIgc3RyZWFtOwpAQCAtNDcsMzAgKzQ3LDMwIEBACiAg
ICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2xvY2FsU3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVu
Z3RoJywgJzEnKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnbG9jYWxTdHJlYW0uZ2V0Vmlk
ZW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwogCi0gICAgICAgICAgICAgICAgc2hvdWxkQmVUcnVl
KCJ0eXBlb2Ygd2Via2l0TWVkaWFTdHJlYW0gPT09ICdvYmplY3QnIik7CisgICAgICAgICAgICAg
ICAgc2hvdWxkQmVUcnVlKCJ0eXBlb2YgTWVkaWFTdHJlYW0gPT09ICdvYmplY3QnIik7CiAgICAg
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCdjaGVja0lkQXR0cmlidXRlKGxvY2FsU3RyZWFtLmlk
KScpOwogICAgICAgICAgICAgICAgIHRlc3RDb25zdHJ1Y3Rvcihsb2NhbFN0cmVhbSk7CiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3RDb25zdHJ1Y3RvcihzKSB7CiAg
ICAgICAgICAgICAgICAgc3RyZWFtID0gczsKLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygn
bmV3IHdlYmtpdE1lZGlhU3RyZWFtKGRvY3VtZW50KScpOwotICAgICAgICAgICAgICAgIHNob3Vs
ZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oW2RvY3VtZW50XSknKTsKLSAgICAgICAgICAg
ICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKVswXSwgZG9jdW1lbnRdKScpOwotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCdu
ZXcgd2Via2l0TWVkaWFTdHJlYW0oW251bGxdKScpOwotICAgICAgICAgICAgICAgIHNob3VsZFRo
cm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oW3VuZGVmaW5lZF0pJyk7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShudWxsKScpOwotICAgICAgICAg
ICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0odW5kZWZpbmVkKScpOwot
Ci0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJlYW0oKSIs
IDAsIDApOwotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3Ry
ZWFtKFtdKSIsIDAsIDApOwotCi0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Vi
a2l0TWVkaWFTdHJlYW0oc3RyZWFtKSIsIHMuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIHMuZ2V0
VmlkZW9UcmFja3MoKS5sZW5ndGgpOwotCi0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJu
ZXcgd2Via2l0TWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdXSkiLCAxLCAw
KTsKLSAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShb
c3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDAsIDEpOwotICAgICAgICAgICAgICAgIHZl
cmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3Mo
KVswXSwgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDEsIDEpOwotICAgICAgICAgICAg
ICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0VmlkZW9U
cmFja3MoKVswXSwgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRlb1Ry
YWNrcygpWzBdXSkiLCAxLCAxKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1l
ZGlhU3RyZWFtKGRvY3VtZW50KScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcg
TWVkaWFTdHJlYW0oW2RvY3VtZW50XSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygn
bmV3IE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgZG9jdW1lbnRdKScp
OworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0oW251bGxdKScp
OworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0oW3VuZGVmaW5l
ZF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyBNZWRpYVN0cmVhbShudWxs
KScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0odW5kZWZp
bmVkKScpOworCisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgTWVkaWFTdHJlYW0o
KSIsIDAsIDApOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlhU3RyZWFt
KFtdKSIsIDAsIDApOworCisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgTWVkaWFT
dHJlYW0oc3RyZWFtKSIsIHMuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgsIHMuZ2V0VmlkZW9UcmFj
a3MoKS5sZW5ndGgpOworCisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgTWVkaWFT
dHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdXSkiLCAxLCAwKTsKKyAgICAgICAgICAg
ICAgICB2ZXJpZnlTdHJlYW0oIm5ldyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldFZpZGVvVHJhY2tz
KClbMF1dKSIsIDAsIDEpOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlh
U3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgc3RyZWFtLmdldFZpZGVvVHJhY2tz
KClbMF1dKSIsIDEsIDEpOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlh
U3RyZWFtKFtzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSwgc3RyZWFtLmdldEF1ZGlvVHJhY2tz
KClbMF0sIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKIAogICAgICAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAgICAgICAgfQpAQCAtODQsNyArODQsNyBAQAog
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoJ1N0cmVhbSBjb25zdHJ1Y3RlZCcpOwogICAgICAg
ICAgICAgICAgIHNob3VsZEJlTm9uTnVsbChuZXdTdHJlYW0pOwogICAgICAgICAgICAgICAgIHNo
b3VsZEJlRGVmaW5lZChuZXdTdHJlYW0pOwotICAgICAgICAgICAgICAgIHNob3VsZEJlKCJuZXdT
dHJlYW0uY29uc3RydWN0b3IudG9TdHJpbmcoKSIsICInW29iamVjdCB3ZWJraXRNZWRpYVN0cmVh
bUNvbnN0cnVjdG9yXSciKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZSgibmV3U3RyZWFtLmNv
bnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvcl0n
Iik7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ25ld1N0cmVhbS5nZXRBdWRpb1RyYWNrcygp
Lmxlbmd0aCcsICduQXVkaW8nKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnbmV3U3RyZWFt
LmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJ25WaWRlbycpOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1vbmVu
ZGVkLmh0bWwJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay1vbmVuZGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDcg
KzE4LDcgQEAKICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICBuYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKGRpY3Rpb25hcnksIGNhbGxiYWNrLCBlcnJvcik7CiAg
ICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKCd3ZWJraXRHZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0aW9uIDonICsgZSk7CisgICAgICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoJ2dldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24gOicg
KyBlKTsKICAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQpAQCAtMzYsNyArMzYsNyBAQAogICAgICAgICAgICAgZnVuY3Rp
b24gZ290U3RyZWFtMihzKSB7CiAgICAgICAgICAgICAgICAgZGVidWcoIiIpOwogICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoJ2dvdFN0cmVhbTIgd2FzIGNhbGxlZC4nKTsKLSAgICAgICAgICAg
ICAgICBzdHJlYW0gPSBuZXcgd2Via2l0TWVkaWFTdHJlYW0ocyk7CisgICAgICAgICAgICAgICAg
c3RyZWFtID0gbmV3IE1lZGlhU3RyZWFtKHMpOwogICAgICAgICAgICAgICAgIHRyYWNrID0gc3Ry
ZWFtLmdldEF1ZGlvVHJhY2tzKClbMF07CiAgICAgICAgICAgICAgICAgdHJhY2tDbG9uZSA9IHRy
YWNrLmNsb25lKCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVGYWxzZSgndHJhY2sucmVhZHlT
dGF0ZSA9PSAiZW5kZWQiJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jl
c291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMJKHJldmlz
aW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dl
dFVzZXJNZWRpYS1oZWxwZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBAIGZ1bmN0
aW9uIGdldFVzZXJNZWRpYShwZXJtaXNzaW9uLCBjb25zdHIKICAgICBlbHNlIHsKICAgICAgICAg
ZGVidWcoIlRoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRob3V0IHRoZSB0ZXN0UnVubmVyIik7
CiAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
bmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXRVc2VyTWVkaWEoY29uc3RyYWludHMpLnRoZW4oc3Vj
Y2Vzc0NhbGxiYWNrLCByZWplY3QpLmNhdGNoKGRlZmF1bHRSZWplY3RPckNhdGNoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264217</attachid>
            <date>2015-10-28 09:37:27 -0700</date>
            <delta_ts>2015-10-28 09:57:33 -0700</delta_ts>
            <desc>Another updated patch.</desc>
            <filename>media_player_stream_patch_15.txt</filename>
            <type>text/plain</type>
            <size>128593</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9u
KTogTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0aGUKKyAgICAgICAgICBp
bnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAgIChXZWJDb3JlOjpBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21D
b25uZWN0aW9uKTogRG9uJ3QgYmxvY2sKKyAgICAgICAgICBpZiBpdCBpc24ndCBwb3NzaWJsZSB0
byBhY3F1aXJlIHRoZSBsb2NrLiBIb2xkIHRoZSBsb2NrIHdoaWxlIGNhbGxpbmcgb2JzZXJ2ZXJz
LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZnJlc2hDYXB0dXJlRGV2aWNl
TGlzdCk6IERvbid0IGluY2x1ZGUgZGV2aWNlcyB0aGF0IGNhbid0IGJlIHVzZWQuCisgICAgICAg
IChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyk6ICBVc2UgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRAor
ICAgICAgICAgIHNvIGNvbnN0cmFpbnRzIGFyZSBjb25zaWRlcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRCk6IERvbid0IGNvbnNpZGVy
IGRpc2FibGVkIGRldmljZXMuIEFsd2F5cworICAgICAgICAgIGNyZWF0ZSBhIG5ldyBjYXB0dXJl
IGRldmljZSBzbyBlYWNoIHRyYWNrIHN0YXJ0cyBvdXQgd2l0aCBhIHVuaXF1ZSBzb3VyY2UuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFD
YXB0dXJlU291cmNlKTogUmVtb3ZlIEtWTyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogbV9pc1J1bm5pbmcgaXMg
Y2hhbmdlZCBpbiBjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IE5l
dy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24p
OiBBZGQgS1ZPYnNlcnZlcnMgZm9yIHRoZSBwcm9wZXJ0aWVzIHdlIGNhcmUgYWJvdXQuCisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQpOiBOZXcsIGNsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25J
c1J1bm5pbmdEaWRDaGFuZ2UpOiBEaXNwYXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgCisgICAgICAg
ICAgdG8gc2V0IG1faXNSdW5uaW5nLCBjYWxsIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSBzbyBv
YnNlcnZlcnMgY2FuIGZpbmQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6c2Vzc2lvbktWT1Byb3Bl
cnRpZXMpOgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBk
aXNjb25uZWN0XSk6CisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIGNhcHR1cmVPdXRwdXQ6ZGlkT3V0cHV0U2FtcGxlQnVmZmVyOmZyb21Db25uZWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBSZXNwb25kCisgICAg
ICAgICAgdG8gcnVubmluZyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1
cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcpOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nOl0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBQYXJ0aWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24pOiAgTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0
aGUKKyAgICAgICAgICBpbnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAg
IChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlRnJhbWVyYXRlKTogUmVuYW1l
ZCBmcm9tIGNhbGN1bGF0ZUZyYW1lcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFJldHVybiBhbiBJbWFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJh
bWVyYXRlKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOiBBdWRpb0NvbnZlcnRlclJlZiBpcworICAgICAgICAgIG5vdCBhIENGL09i
akMgb2JqZWN0IHNvIHdlIGNhbid0IHVzZSBhIFJldGFpblB0cjw+IGZvciBpdC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6IEZpeCB0eXBvIGluIGxvZ2dpbmcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2U6OmNhcGFiaWxpdGllcyk6IFVwZGF0ZSBmb3Ig
Y2FwYWJpbGl0aWVzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGll
cyBjaGFuZ2UuCisKIDIwMTUtMTAtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDYW5jZWwgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2tzIGxp
a2Ugd2UgZG8gY29udGVudCBwb2xpY3kgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bTo6bG9va1VwKGNvbnN0IFUKIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29u
dGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4+KCkpKTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJl
YW0pCkBAIC05NSw3ICs5NSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0UHVibGljU3RyZWFtKHRoaXMpOwogfQogCiBNZWRpYVN0
cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1Qcml2YXRlKQpAQCAtMTA1LDcgKzEwNiw4IEBA
IE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KICAgICAsIG1fYWN0aXZp
dHlFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0UHVibGljU3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBt
X3ByaXZhdGUtPnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0
cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsK
QEAgLTExNiw3ICsxMTgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1
dGlvbgogCiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPnNldFB1YmxpY1N0cmVhbShudWxscHRy
KTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2Vy
dmVyKHRoaXMpOwogfQogCiBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgp
CkBAIC0xOTksMTIgKzIwNCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayhNZWRp
YVN0cmVhCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRlcm5h
bEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4dCwgdHJhY2tQcml2YXRl
KSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKKyAgICBpZiAoIWdldFRyYWNrQnlJZCh0cmFj
a1ByaXZhdGUuaWQoKSkpCisgICAgICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZv
cm0pOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiB0cmFjayA9IGdldFRyYWNrQnlJZCh0cmFja1ByaXZhdGUuaWQoKSk7CisgICAgQVNTRVJUKHRy
YWNrKTsKICAgICBpbnRlcm5hbFJlbW92ZVRyYWNrKFdURjo6bW92ZSh0cmFjayksIFN0cmVhbU1v
ZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKQEAgLTI1NCw2ICsyNjEsNyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlCiAgICAgZXZlbnRzLnN3YXAobV9zY2hlZHVsZWRB
Y3Rpdml0eUV2ZW50cyk7CiAKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGJlIHJpZ2h0LCB0aGUgZXZlbnQgdHlwZSBpcyBzZXQg
ZnJvbSBtX2lzQWN0aXZlIGluIHNjaGVkdWxlQWN0aXZlU3RhdGVDaGFuZ2UhCiAgICAgICAgIG1f
aXNBY3RpdmUgPSBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudDsKICAg
ICAgICAgZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNlKCkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxl
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgeworY2xhc3Mg
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVh
bUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAot
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6cmVmOwotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgogICAgIHZp
cnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5nZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVu
ZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tQcm9kdWNpbmdEYXRh
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tS
ZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVy
aW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE5MTYzNykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRy
YWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDksMTQgKzY0OSwxMyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVT
dHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFT
dHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBBU1NFUlQocHJpdmF0ZVN0cmVh
bS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRoaXMgY2xhc3Mgc2hvdWxkbid0IGtub3cg
dGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlzIGEgTWVkaWFTdHJlYW0hCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHByaXZh
dGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25h
bGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQocHJpdmF0ZVN0
cmVhbS0+cHVibGljU3RyZWFtKCkpOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0g
PSBwcml2YXRlU3RyZWFtLT5wdWJsaWNTdHJlYW0oKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjEgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworCitjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2
YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgZXhwbGljaXQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1l
ZGlhUGxheWVyKik7CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDKCk7CkBAIC01OCwxMTYgKzU1LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQg
Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1l
ZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUgc3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3Vw
cG9ydFBhcmFtZXRlcnMmKTsKIAotICAgIHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVm
ZmVyRGlzcGxheUxheWVyKik7Ci0gICAgdm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVC
dWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQotICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsKLSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZT
YW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVyKik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0
YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUo
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAg
IHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dl
YWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1w
bGVtZW50IG5lY2Vzc2FyeSBjb25mb3JtYXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVs
ZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZSB7IH07CisgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBG
SVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQgbmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRh
cmQgaW4gSFRNTE1lZGlhRWxlbWVudCBmb3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZv
aWQgbG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlk
ZSB7IH07CisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopIG92ZXJyaWRlOwogI2VuZGlmCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2
b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lk
IGNhbmNlbExvYWQoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJy
aWRlOwotICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQogCiAgICAgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsK
LQogICAgIHZvaWQgcGF1c2UoKSBvdmVycmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsK
LQogICAgIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVt
ZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBi
b29sKTsKICAgICB2b2lkIHNldE11dGVkKGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9y
dHNNdXRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1
cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5p
bmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5h
dHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhh
c1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJy
aWRlOwogCi0gICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0
VmlzaWJsZShib29sKSBvdmVycmlkZSB7IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBk
dXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50
TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92
ZXJyaWRlIHsgfTsKLSAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lk
IHNldFJhdGVEb3VibGUoZG91YmxlKSBvdmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtVGltZVJhbmdlcz4gc2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUg
bWF4TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWlu
TWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9v
bCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRp
bmdQcm9ncmVzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAg
dm9pZCBzZXRTaXplKGNvbnN0IEludFNpemUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUo
Y29uc3QgSW50U2l6ZSYpIG92ZXJyaWRlIHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWlu
dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0
UmVjdCYpIG92ZXJyaWRlOworICAgIGJvb2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJl
dHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6
OkhhdmVNZXRhZGF0YTsgfQogCi0gICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5n
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1v
dmllTG9hZFR5cGUgbW92aWVMb2FkVHlwZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFz
U2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
LSAgICB2b2lkIHByZXBhcmVGb3JSZW5kZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXll
cjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxvYWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
TWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9U
cmFjaygpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIHNpemVfdCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAwOyB9CiAKICAgICBib29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0g
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNh
bXBsZUJ1ZmZlclJlZik7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5
U3RhdGUoKTsKKworICAgIGVudW0gUmVuZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRl
cmluZ01vZGVVbmNoYW5nZWQsCisgICAgICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07
CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0
U2l6ZSYpOworCisgICAgdm9pZCBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNl
dFBhdXNlZEltYWdlVmlzaWJsZShib29sKTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRh
c2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDOworICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAg
ICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoKSBvdmVycmlkZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsK
KyAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rv
cnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5
OwotICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJp
dmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZBc3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZD
YXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxB
VlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0g
ICAgVmVjdG9yPFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBs
ZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJ
bWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFp
blB0cjxpZD4gbV9kdXJhdGlvbk9ic2VydmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Np
b24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0
d29ya1N0YXRlOwotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAg
ICBNZWRpYVRpbWUgbV9sYXN0U2Vla1RpbWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29s
IG1fcGxheWluZzsKLSAgICBib29sIG1fc2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRl
ZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9sb2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVk
aWFTdHJlYW1Qcml2YXRlPiBtX21lZGlhU3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFp
blB0cjxDQUxheWVyPiBtX3ByZXZpZXdMYXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0
Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dyb3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiBtX3BhdXNlZEltYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsK
KyAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5
ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsg
TWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nIH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6
ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNl
IH07CisgICAgYm9vbCBtX211dGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5l
d0ZyYW1lIHtmYWxzZSB9OworICAgIGJvb2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9
OwogICAgIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkx
NjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCwxOCArMjgsMTQgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShB
VkZPVU5EQVRJT04pCiAKKyNpbXBvcnQgIkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0
ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9y
dCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNp
bXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5oIgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRh
dGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9u
L0FWVGltZS5oPgogI2ltcG9ydCA8UXVhcnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFy
dHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4KICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
NTAsMTggKzQ2LDYgQEAKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRp
b24pCiAKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1T
T0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllcikKLVNPRlRfTElOS19DTEFTU19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNz
ZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Np
b24pOwotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1A
aW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lvbiA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRVUkw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBl
bmQKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0
LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVy
KiBwbGF5ZXIpCiAgICAgOiBtX3BsYXllcihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5
KHRoaXMpCi0gICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1f
cmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAg
ICAsIG1fcGxheWluZygwKQotICAgICwgbV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29t
cGxldGVkKHRydWUpCi0gICAgLCBtX2xvYWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9j
bG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyglcCkiLCB0aGlzKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0co
TWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFT
dHJlYW1Qcml2YXRlKQorICAgICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2
ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21hIG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZG
b3VuZGF0aW9uTGlicmFyeSgpCi0gICAgICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxh
YmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUo
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwot
ICAgIHN0YXRpYyBib29sIHR5cGVMaXN0SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0
eXBlTGlzdEluaXRpYWxpemVkKQotICAgICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJ
bml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0
Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5
cGUgaW4gdHlwZXMpCi0gICAgICAgIGNhY2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICBy
ZXR1cm4gY2FjaGU7CisgICAgcmV0dXJuIEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVN
ZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBl
cykKIHsKLSAgICB0eXBlcyA9IG1pbWVUeXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBjYWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5OCwxNzIgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlw
ZSBNZWRpYVBsYXllclByaQogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2UgT3ZlcnJpZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRp
YSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6
Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6bG9hZChjb25zdCBTdHJpbmcmLCBNZWRpYVNvdXJjZVByaXZhdGVDbGll
bnQqKQoreworICAgIC8vIFRoaXMgbWVkaWEgZW5naW5lIG9ubHkgc3VwcG9ydHMgTWVkaWFTdHJl
YW0gVVJMcy4KKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAgICBzZXRO
ZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkZvcm1hdEVycm9yKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQoTWVkaWFTdHJlYW1Q
cml2YXRlJiBzdHJlYW0pCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKCVwKSIsIHRoaXMpOwogCi0gICAgbV9NZWRpYVN0cmVhbVBy
aXZhdGUgPSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoKnRoaXMsIHN0cmVhbSk7
Ci0gICAgZm9yIChhdXRvIHRyYWNrIDogc3RyZWFtLnRyYWNrcygpKSB7Ci0gICAgICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlLT5hZGRUcmFjayhXVEY6Om1vdmUodHJhY2spKTsKLSAgICAgICAgaWYg
KCF0cmFjay0+ZW5kZWQoKSkgewotICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsKLSAgICAgICAgICAgIHRyYWNrLT5zZXRFbmFibGVkKHRydWUpOwotICAg
ICAgICB9Ci0gICAgfQorICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlID0gJnN0cmVhbTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKwogICAgIG1fcHJldmlld0xheWVyID0g
bnVsbHB0cjsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRy
YWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvKQotICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIgPSBzdGF0aWNfY2Fz
dDxBVlZpZGVvQ2FwdHVyZVNvdXJjZSo+KHRyYWNrLT5zb3VyY2UoKSktPnByZXZpZXdMYXllcigp
OwotICAgIH0KLSAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2Rl
Q2hhbmdlZChtX3BsYXllcik7CisKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10gewor
ICAgICAgICBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OklkbGUpOworICAgICAgICBpZiAo
bV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSkKKyAg
ICAgICAgICAgIHRoaXMtPnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVNZXRhZGF0YSk7CisgICAgfSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNhbmNlbExvYWQoJXApIiwgdGhpcyk7CisgICAg
cGF1c2UoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnByZXBhcmVUb1BsYXkoKQogewotfQotCi1QbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0Ci17Ci0gICAgUGxhdGZv
cm1NZWRpYSBwbTsKLSAgICBwbS50eXBlID0gUGxhdGZvcm1NZWRpYTo6QVZGb3VuZGF0aW9uQXNz
ZXRUeXBlOwotICAgIHBtLm1lZGlhLmF2ZkFzc2V0ID0gbV9hc3NldC5nZXQoKTsKLSAgICByZXR1
cm4gcG07CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpwcmVwYXJlVG9QbGF5KCVwKSIsIHRoaXMpOwogfQogCiBQbGF0Zm9ybUxheWVyKiBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAog
ewotICAgIGlmICghbV9wcmV2aWV3TGF5ZXIpCisgICAgaWYgKCFtX3ZpZGVvQmFja2dyb3VuZExh
eWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGxh
dGZvcm1MYXllcio+KG1fcHJldmlld0xheWVyKTsKKworICAgIHJldHVybiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyLmdldCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cGxheSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKGJvb2wgdmlzaWJsZSkKIHsKLSAgICBhdXRvIHdlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzXSB7
Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHdl
YWtUaGlzLmdldCgpLT5wbGF5SW50ZXJuYWwoKTsKLSAgICB9KTsKKyAgICBpZiAoIW1ldGFEYXRh
QXZhaWxhYmxlKCkgfHwgIW1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICh2aXNpYmxlID09IG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0
aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOjBdOworICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2Fi
bGVBY3Rpb25zOllFU107CisKKyAgICBkbyB7CisgICAgICAgIGlmICh2aXNpYmxlKSB7CisgICAg
ICAgICAgICBtX2Nsb2NrLT5zdG9wKCk7CisKKyAgICAgICAgICAgIFJlZlB0cjxJbWFnZT4gaW1h
Z2UgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+Y3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICAgICAg
ICAgIGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIG1f
cGF1c2VkSW1hZ2UgPSBpbWFnZS0+Z2V0Q0dJbWFnZVJlZigpOworICAgICAgICAgICAgaWYgKCFt
X3BhdXNlZEltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBtX3Zp
ZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmNvbnRlbnRzID0gc3RhdGljX2Nhc3Q8aWQ+KG1fcGF1
c2VkSW1hZ2UuZ2V0KCkpOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVu
ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFsc2U7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5pc1By
b2R1Y2luZ0RhdGEoKSkgeworICAgICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgbV9jbG9jay0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0g
ZmFsc2U7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSBmYWxzZTsK
KyAgICAgICAgICAgIFttX3ZpZGVvQmFja2dyb3VuZExheWVyIHNldENvbnRlbnRzOm5pbF07Cisg
ICAgICAgICAgICBtX3BhdXNlZEltYWdlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gd2hp
bGUgKDApOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCgpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiB7Ci0gICAgbV9wbGF5aW5n
ID0gdHJ1ZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXkoJXApIiwgdGhpcyk7CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2hhdmVFdmVyUGxheWVkID0g
dHJ1ZTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogewotICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
d2Vha1RoaXMuZ2V0KCktPnBhdXNlSW50ZXJuYWwoKTsKLSAgICB9KTsKLX0KKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCVwKSIsIHRo
aXMpOwogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJ
bnRlcm5hbCgpCi17Ci0gICAgbV9wbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9N
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0
b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKHRydWUpOworICAg
IG1fcGxheWluZyA9IGZhbHNlOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICAvLyBTaG91bGRuJ3QgYmUgYWJsZSB0
byBwYXVzZSBzdHJlYW1zCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhbV9wbGF5aW5n
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omlu
dGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbCBpbnRlcm5hbCkKIHsKKyAgICBpZiAo
IWludGVybmFsKQorICAgICAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKworICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFNldCB2b2x1
bWUgb25jZSB3ZSBhY3R1YWxseSBwbGF5IGF1ZGlvLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbFNldFZvbHVtZSh2b2x1bWUsIGZh
bHNlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJl
YW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c2V0TXV0ZWQobXV0ZWQpOwotICAgIH0KLX0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKCVwKSIsIHRoaXMpOwogCi1GbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGZsb2F0U2l6ZSgwLCAwKTsKLSAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7Ci0gICAg
ICAgICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogc291cmNlID0gKEFWVmlkZW9DYXB0dXJlU291
cmNlKil0cmFjay0+c291cmNlKCk7Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZS0+c3RvcHBlZCgp
ICYmIHRyYWNrLT5lbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLT53aWR0
aCgpID4gZmxvYXRTaXplLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5z
ZXRXaWR0aChzb3VyY2UtPndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhl
aWdodCgpID4gZmxvYXRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBmbG9hdFNp
emUuc2V0SGVpZ2h0KHNvdXJjZS0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiBmbG9hdFNpemU7CisgICAgaWYgKG11dGVkID09IG1fbXV0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICAKKyAgICBpbnRl
cm5hbFNldFZvbHVtZShtdXRlZCA/IDAgOiBtX3ZvbHVtZSwgdHJ1ZSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewot
ICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNWaWRlbygpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0VmlzaWJsZShib29sKQotewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aGFzQXVkaW8oKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdApAQCAtMjgy
LDE5ICsyNzMsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BCiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FKDE0NzEyNSk6IE11c3QgaW1wbGVtZW50
IHRoaXMgbGF0ZXIKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0Ci17
Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoZG91YmxlKQotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGU7IHRoZXJlZm9y
ZSwgY2Fubm90IHNldCByYXRlCisgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZShtX2Nsb2NrLT5jdXJyZW50VGltZSgpKTsKIH0KIAogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5ldHdvcmtTdGF0ZSgpIGNv
bnN0CkBAIC0zMDcsODUgKzI4NiwxMjggQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQ
bGF5ZXJQcml2YQogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaXplQ2hhbmdlZCgpCitNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRS
ZWFkeVN0YXRlKCkKIHsKLSAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLX0KKyAgICBpZiAo
bV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGE7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4obWluTWVkaWFU
aW1lU2Vla2FibGUoKSwgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSk7Ci19CisgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOworICAgIH0KIAotTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBkdXJhdGlvbk1lZGlhVGltZSgpOworICAg
IHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKLU1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1pbk1lZGlhVGltZVNl
ZWthYmxlKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphY3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKLSAgICByZXR1cm4gc3RhcnRUaW1lKCk7Ci19Cisg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0
YXRlKCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpcywgbmV3UmVhZHlTdGF0ZV0geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworICAgIH0pOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6UmVuZGVyaW5nTW9kZVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJiBz
aXplKQogewotICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgPSBtX2xvYWRpbmdQcm9ncmVzc2Vk
OwotICAgIG1fbG9hZGluZ1Byb2dyZXNzZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gbG9hZGluZ1By
b2dyZXNzZWQ7Ci19CisgICAgaWYgKHNpemUgPT0gbV9pbnRyaW5zaWNTaXplKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCi17Ci0gICAgLy8gTm8t
b3AuCisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsKKworICAgIGlmIChtX3ZpZGVvQmFja2dy
b3VuZExheWVyIHx8ICFtX3BsYXllciB8fCAhbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCisgICAgICAgIHJldHVybiBSZW5k
ZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAh
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIFJl
bmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyaW5nTW9kZUNoYW5nZWQ7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdlRnJvbVNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycygpCiB7Ci0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAg
dm9pZCAqYmFzZUFkZHJlc3MgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MoaW1hZ2VCdWZm
ZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChpbWFnZUJ1ZmZlcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJl
dGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ3JlYXRlV2l0aERhdGEoTlVMTCwgYmFzZUFkZHJlc3MsIGJ5dGVzUGVyUm93ICogaGVpZ2h0
LCBOVUxMKSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHF1YXJ0ekltYWdlID0gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgY29sb3JT
cGFjZS5nZXQoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0LCBwcm92aWRlci5nZXQoKSwgTlVMTCwgdHJ1ZSwga0NHUmVuZGVyaW5n
SW50ZW50RGVmYXVsdCkpOwotICAgIAotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHF1YXJ0ekltYWdlOworICAgIGlm
IChtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBt
X3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JHZXRD
b25zdGFudENvbG9yKGtDR0NvbG9yQ2xlYXIpOworI2lmbmRlZiBOREVCVUcKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyLmdldCgpLm5hbWUgPSBAIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQyBwcmV2aWV3IGJhY2tncm91bmQgbGF5ZXIiOworI2VuZGlmCisKKyAgICBtX3By
ZXZpZXdMYXllciA9IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wbGF0Zm9ybUxheWVyKCk7CisgICAg
bV9wcmV2aWV3TGF5ZXIuZ2V0KCkuY29udGVudHNHcmF2aXR5ID0ga0NBR3Jhdml0eVJlc2l6ZTsK
KyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOworICAg
IG1fcHJldmlld0xheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FMYXllcldpZHRoU2l6
YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKKyAgICBpZiAoIW1fcGxheWluZykKKyAgICAg
ICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0gdHJ1ZTsKKworICAgIFttX3ZpZGVvQmFj
a2dyb3VuZExheWVyIGFkZFN1YmxheWVyOm1fcHJldmlld0xheWVyLmdldCgpXTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogewotICAg
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOworICAgIFJlbmRlcmlu
Z01vZGVTdGF0dXMgc3RhdHVzID0gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKyAgICBib29sIHNp
emVDaGFuZ2VkID0gZmFsc2U7CisKKyAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSA9IG1fbWVk
aWFTdHJlYW1Qcml2YXRlLT5pbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKGludHJpbnNpY1NpemUu
aGVpZ2h0KCkgIT0gbV9pbnRyaW5zaWNTaXplLmhlaWdodCgpIHx8IGludHJpbnNpY1NpemUud2lk
dGgoKSAhPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKSkgeworICAgICAgICBzdGF0dXMgPSB1cGRh
dGVJbnRyaW5zaWNTaXplKGludHJpbnNpY1NpemUpOworICAgICAgICBzaXplQ2hhbmdlZCA9IHRy
dWU7CisgICAgfQorCisgICAgaWYgKG1fd2FpdGluZ0Zvck5ld0ZyYW1lICYmIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc2V0UGF1c2VkSW1hZ2VWaXNp
YmxlKGZhbHNlKTsKKworICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG5ld1JlYWR5U3RhdGUg
PSBjdXJyZW50UmVhZHlTdGF0ZSgpOworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBz
aXplQ2hhbmdlZCwgbmV3UmVhZHlTdGF0ZSwgc3RhdHVzXSB7CisgICAgICAgIGlmIChuZXdSZWFk
eVN0YXRlICE9IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgICAgIHNldFJlYWR5U3RhdGUobmV3UmVh
ZHlTdGF0ZSk7CisKKyAgICAgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBtX3BsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCk7CisgICAgICAgIGlm
IChzaXplQ2hhbmdlZCkgeworICAgICAgICAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7Cisg
ICAgICAgICAgICBpZiAoc3RhdHVzID09IFJlbmRlcmluZ01vZGVDaGFuZ2VkKQorICAgICAgICAg
ICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KG1fcGxheWVyKTsKKyAgICAgICAgfQorICAgIH0pOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRp
bWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUo
KSBjb25zdAogewotICAgIC8vIEZJWE1FKDEyNTE1Nyk6IEltcGxlbWVudCBwYWludGluZy4KKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiB9CiAKLWJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAog
ewotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
VGltZVJhbmdlcz4oKTsKIH0KIAotTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gTWVkaWFQ
bGF5ZXI6OkxpdmVTdHJlYW07CisgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpwcmVwYXJlRm9yUmVuZGVyaW5nKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICAvLyBOby1vcC4KKyAgICBpZiAo
IW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIW1f
aGF2ZUV2ZXJQbGF5ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BsYXlpbmcpCisg
ICAgICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChj
b250ZXh0LCByZWN0KTsKKyAgICBlbHNlIGlmIChtX3BhdXNlZEltYWdlKSB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKKyAgICAgICAgSW50
UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKSk7CisgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3Qu
aGVpZ2h0KCkpLCBtX3BhdXNlZEltYWdlLmdldCgpKTsKKyAgICB9CiB9CiAKIFN0cmluZyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuZ2luZURlc2NyaXB0aW9uKCkgY29u
c3QKQEAgLTM5NCwxNyArNDE2LDYgQEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGTwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAotU3RyaW5nIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkg
Y29uc3QKLXsKLSAgICAvLyBGSVhNRSgxMjUxNTgpOiBpbXBsZW1lbnQgbGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrKCkKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotc2l6ZV90IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gMDsKLX0KLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNob3VsZEJlUGxheWluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxh
eWluZyAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVGdXR1cmVEYXRhOwpAQCAt
NDIwLDYgKzQzMSwyNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
CiAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUpCit7CisgICAgaWYgKG1fbmV0d29ya1N0YXRlID09
IG5ldHdvcmtTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9uZXR3b3JrU3RhdGUgPSBu
ZXR3b3JrU3RhdGU7CisgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJy
ZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoZnVu
Y3Rpb24pOworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXMsIGZ1bmN0aW9uXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9KTsKK30K
KwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQ19oCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotT0JKQ19DTEFTUyBBVkFzc2V0OwotT0JK
Q19DTEFTUyBBVlN0cmVhbURhdGFQYXJzZXI7Ci1PQkpDX0NMQVNTIE5TRXJyb3I7Ci1PQkpDX0NM
QVNTIE5TT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2Ft
cGxlQnVmZmVyUmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENETVNlc3Npb247
Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM7Ci1jbGFzcyBNZWRp
YVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ7Ci1jbGFzcyBQ
bGF0Zm9ybVRpbWVSYW5nZXM7Ci1jbGFzcyBUaW1lUmFuZ2VzOwotCi1jbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBjcmVhdGUo
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRl
Jik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpOwotCi0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBwbGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX3BsYXllcjsgfQotCi0gICAgdmlydHVhbCBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9
IGNsaWVudDsgfQotCi0gICAgTWVkaWFUaW1lIGR1cmF0aW9uKCk7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKLQotICAgIGJvb2wgaGFzQXVkaW8o
KSBjb25zdDsKLSAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHNldFJlYWR5
U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0OwotCi0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRlJik7Ci0KLSAg
ICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIG1fcGxheWVyOwotICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwotfTsKLSAgICAKLX0KLQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKLSNpbXBvcnQg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgotI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNp
bXBvcnQgIlNvZnRMaW5raW5nLmgiCi0jaW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMKLQotUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM+IE1lZGlhU3Ry
ZWFtUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMmIHBhcmVudCwgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKHBhcmVudCwgc3RyZWFtKSk7
Ci19Ci0KLU1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Ok1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYgc3RyZWFtKQotICAgIDogTWVkaWFTdHJlYW1Qcml2YXRlKCpzdHJlYW0uY2xp
ZW50KCkpCi0gICAgLCBtX3BsYXllcigmcGFyZW50KQotewotfQotCi1NZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDOjp+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpCi17Ci19Ci0KLU1lZGlhVGlt
ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpkdXJhdGlvbigpCi17Ci0gICAgcmV0dXJuIE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6YnVmZmVyZWQoKQot
ewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQot
Ci1NZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpyZWFk
eVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKLX0K
LQotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCi17Ci0gICAgbV9wbGF5ZXItPnNldFJlYWR5U3Rh
dGUocmVhZHlTdGF0ZSk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFz
QXVkaW8oKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzQXVkaW8oKTsKLX0KLQot
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGxheWVyLT5oYXNWaWRlbygpOwotfQotCi1GbG9hdFNpemUgTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXll
ci0+bmF0dXJhbFNpemUoKTsKLX0KLSAgICAKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHJl
dmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzEsMTIg
KzMyLDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtUHJpdmF0ZS5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtUHJpdmF0ZS5oIgotCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCkBAIC02MiwyNSArNjUsMzMgQEAgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVk
aWFTdHJlYW1QcgogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShj
b25zdCBTdHJpbmcmIGlkLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJh
Y2tzKQotICAgIDogbV9pZChpZCkKKyAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKKyAgICAs
IG1faWQoaWQpCiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKLSAgICBmb3IgKGF1
dG8mIHRyYWNrIDogdHJhY2tzKQorICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFja3MpIHsKKyAg
ICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3RpdmVTdGF0ZShOb3Rp
ZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwogfQogCi1NZWRpYVN0cmVhbVByaXZhdGU6Ok1l
ZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmIGNsaWVudCkKLSAgICA6
IG1fY2xpZW50KCZjbGllbnQpCitNZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZh
dGUoKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2ZXIoTWVkaWFT
dHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CisgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKCZvYnNlcnZlcik7CiB9CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlhU3RyZWFtUHJp
dmF0ZSgpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoTWVkaWFTdHJl
YW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgbV9jbGllbnQgPSBudWxscHRy
OwotICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBzaXplX3QgcG9zID0gbV9vYnNlcnZlcnMu
ZmluZCgmb2JzZXJ2ZXIpOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAgICAgIG1fb2Jz
ZXJ2ZXJzLnJlbW92ZShwb3MpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBN
ZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrcygpIGNvbnN0CkBAIC05NCwyMSArMTA1LDI5IEBAIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWEKIAogdm9pZCBNZWRpYVN0cmVh
bVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGll
bnRPcHRpb24pCiB7Ci0gICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBhdCBsZWFz
dCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgYm9vbCBuZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwor
ICAgIG1fYWN0aXZlVmlkZW9UcmFjayA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiB0cmFjayA6
IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKwogICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgpKSB7
CiAgICAgICAgICAgICBuZXdBY3RpdmVTdGF0ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmICh0cmFjay0+c291cmNlKCktPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbykgeworICAgICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFj
ayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCisgICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBh
dCBsZWFzdCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgaWYgKG5ld0FjdGl2ZVN0YXRlID09IG1f
aXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBY3RpdmUgPSBuZXdBY3RpdmVT
dGF0ZTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5
Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5hY3RpdmVTdGF0dXNDaGFu
Z2VkKCk7CisgICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246
Ok5vdGlmeSkgeworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisg
ICAgICAgICAgICBvYnNlcnZlci0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOworICAgIH0KIH0KIAog
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiB0cmFjaywgTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikK
QEAgLTExOSw4ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJl
ZlB0cgogICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRP
cHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5k
aWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOworICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0g
Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRpZEFkZFRyYWNrKCp0cmFj
ay5nZXQoKSk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUobm90aWZ5Q2xpZW50T3B0
aW9uKTsKIH0KQEAgLTEzMiwxMiArMTUzLDE0MiBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
cmVtb3ZlVHJhY2soTWVkCiAKICAgICB0cmFjay5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlv
bjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlVHJhY2sodHJhY2spOworICAg
IGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsK
KyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAg
b2JzZXJ2ZXItPmRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3Rp
dmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RhcnRQcm9kdWNpbmdEYXRh
KCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7
CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHRy
YWNrLT5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCitib29sIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFj
a1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPmlzUHJvZHVjaW5nRGF0YSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc1ZpZGVvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc0F1ZGlvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
RmxvYXRTaXplIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aW50cmluc2ljU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgRmxvYXRTaXplIHNpemU7CisKKyAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAg
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcyA9IG1fYWN0aXZlVmlk
ZW9UcmFjay0+c291cmNlKCktPnN0YXRlcygpOworICAgICAgICBzaXplLnNldFdpZHRoKHN0YXRl
cy53aWR0aCgpKTsKKyAgICAgICAgc2l6ZS5zZXRIZWlnaHQoc3RhdGVzLmhlaWdodCgpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gc2l6ZTsKK30KKworUGxhdGZvcm1MYXllciogTWVkaWFTdHJlYW1Q
cml2YXRlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWN0aXZlVmlkZW9U
cmFjaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9hY3RpdmVWaWRl
b1RyYWNrLT5zb3VyY2UoKS0+cGxhdGZvcm1MYXllcigpOworfQorCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdE
aXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYWN0aXZlKCkgJiYgbV9hY3Rp
dmVWaWRlb1RyYWNrKQorICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5wYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAg
ICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsK
KyAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICAgICAgSW50UmVj
dCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0Lmhl
aWdodCgpKSk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocGFpbnRSZWN0LCBDb2xvcjo6Ymxh
Y2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIH0KK30KKworUmVmUHRyPEltYWdlPiBNZWRp
YVN0cmVhbVByaXZhdGU6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAgICBpZiAoIWFjdGl2ZSgp
ICYmICFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPmN1cnJlbnRGcmFtZUltYWdlKCk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkK
K3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2Vy
dmVyLT5jaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAg
c2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tTdGF0
ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVk
VGFzayhbdGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhb
dGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtU
aGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NSwyOCArMzYsMzIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTsKLQotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50IDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWN0
aXZlU3RhdHVzQ2hhbmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVHJhY2soTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotfTsKK2NsYXNzIE1lZGlhU3RyZWFt
OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsK
IHB1YmxpYzoKKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0
dWFsIH5PYnNlcnZlcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2Vk
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICB9OworCiAgICAgc3RhdGljIFJlZlB0cjxNZWRp
YVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJik7CiAKQEAg
LTY0LDggKzY5LDExIEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgTm90aWZ5Q2xpZW50T3B0
aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgdm9pZCBzZXRDbGll
bnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7
IH0KKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNl
cnZlcihPYnNlcnZlciYpOworCisgICAgTWVkaWFTdHJlYW0qIHB1YmxpY1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHVibGljU3RyZWFtOyB9CisgICAgdm9pZCBzZXRQdWJsaWNTdHJlYW0oTWVk
aWFTdHJlYW0qIHN0cmVhbSkgeyBtX3B1YmxpY1N0cmVhbSA9IHN0cmVhbTsgfQogCiAgICAgU3Ry
aW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03NywyMSArODUsNDEgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYm
LCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAgICAg
dm9pZCByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE5vdGlmeUNsaWVudE9w
dGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAotcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmKTsKKyAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OworCisgICAgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1l
SW1hZ2UoKTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBoYXNWaWRlbygpOworICAgIGJv
b2wgaGFzQXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3Q7CisK
KyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgTWVk
aWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLQotICAgIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgdm9pZCB0cmFja011dGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJh
Y2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsK
KworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsK
KworICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFrUHRyRmFjdG9y
eTsKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBNZWRpYVN0cmVhbSog
bV9wdWJsaWNTdHJlYW0geyBudWxscHRyIH07CiAgICAgU3RyaW5nIG1faWQ7Ci0gICAgYm9vbCBt
X2lzQWN0aXZlIHsgZmFsc2UgfTsKLQorICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2Fj
dGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CisgICAgYm9vbCBtX2lzQWN0aXZl
IHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVByaXZh
dGU+PiBNZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE3OCw2ICsxNzgsMTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3Rh
dAogICAgICAgICBvYnNlcnZlci0+dHJhY2tTdGF0ZXNDaGFuZ2VkKCp0aGlzKTsKIH0KIAordm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKQor
eworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2
ZXItPnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRv
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmFibGVk
Q2hhbmdlZCgqdGhpcyk7Cit9CisKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnByZXZl
bnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogewogICAgIHJldHVybiAhbV9pc0VuZGVkOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAg
IH07CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY3Jl
YXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTYyLDYgKzY0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNlLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNl
LT5zdG9wUHJvZHVjaW5nRGF0YSgpOyB9CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSB7IHJl
dHVybiBtX3NvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCk7IH0KIAogICAgIGJvb2wgbXV0ZWQoKSBj
b25zdDsKICAgICB2b2lkIHNldE11dGVkKGJvb2wgbXV0ZWQpIGNvbnN0IHsgbV9zb3VyY2UtPnNl
dE11dGVkKG11dGVkKTsgfQpAQCAtOTgsNyArMTAxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNv
dXJjZVN0b3BwZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdl
ZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZvaWQgc291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKSBvdmVycmlk
ZSBmaW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAK
ICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkocmV2aXNp
b24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMjIgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdGF0ZXNEaWRDaGFuZwogICAgICAgICBvYnNlcnZlci0+
c291cmNlU3RhdGVzQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omlz
UHJvZHVjaW5nRGF0YURpZENoYW5nZSgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQo
KTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKK3sKKyAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2Jz
ZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlRW5hYmxlZENoYW5nZWQoKTsKK30KKwog
Ym9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpyZWFkb25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcmVhZG9ubHk7CkBAIC0xMTksNiArMTM1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wKE9ic2VydmVyKgogICAgIH0KIAogICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAg
cmVzZXQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkocmV2aXNpb24g
MTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw5IEBACiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNDUsNiArNDcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0
UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBj
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
OwpAQCAtNTksNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VT
dG9wcGVkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSA9IDA7CiAKICAgICAgICAg
Ly8gT2JzZXJ2ZXIgc3RhdGUgcXVlcmllcy4KICAgICAgICAgdmlydHVhbCBib29sIHByZXZlbnRT
b3VyY2VGcm9tU3RvcHBpbmcoKSA9IDA7CkBAIC02Niw4ICs3Miw2IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KIAotICAgIGJvb2wgaXNBdWRpb1N0
cmVhbVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdWRpbzsgfQotCiAgICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SUQ7IH0KQEAgLTgy
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkg
Y29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml0
bmVzc1Njb3JlKGNvbnN0IHVuc2lnbmVkIGZpdG5lc3NTY29yZSkgeyBtX2ZpdG5lc3NTY29yZSA9
IGZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpID0gMDsK
ICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpID0g
MDsKICAgICB2b2lkIHN0YXRlc0RpZENoYW5nZWQoKTsKICAgICAKQEAgLTk3LDE5ICsxMDEsMjgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
bW90ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGUoYm9vbCByZW1vdGUpIHsgbV9yZW1v
dGUgPSByZW1vdGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CisKICAg
ICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihP
YnNlcnZlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKIAogICAgIHZvaWQgc3RvcChPYnNlcnZl
ciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAKLSAgICB2b2lkIHJlc2V0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKICAgICB2aXJ0dWFsIEF1ZGlvU291cmNlUHJvdmlk
ZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgCisKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSB7IH0KKwogcHJvdGVj
dGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKIApAQCAtMTI0LDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX211dGVkOwogICAgIGJvb2wgbV9yZWFkb25seTsKICAgICBib29sIG1fcmVtb3RlOworICAg
IGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogICAgIAogICAgIHVuc2lnbmVkIG1fZml0bmVzc1Nj
b3JlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEyIEBAIHByaXZhdGU6
CiAgICAgQVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+QVZB
dWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICAKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNhcHR1
cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNz
aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UubW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE2IEBACiAKICNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5r
LmgiCiAKK3R5cGVkZWYgQVZDYXB0dXJlQXVkaW9DaGFubmVsIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5l
bFR5cGU7Cit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1cmVBdWRpb0Rh
dGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVDb25uZWN0aW9uIEFWQ2FwdHVyZUNvbm5l
Y3Rpb25UeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVEZXZpY2UgQVZDYXB0dXJlRGV2aWNlVHlwZTsK
IHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlSW5wdXQgQVZDYXB0dXJlRGV2aWNlSW5wdXRUeXBlOwog
dHlwZWRlZiBBVkNhcHR1cmVPdXRwdXQgQVZDYXB0dXJlT3V0cHV0VHlwZTsKLXR5cGVkZWYgQVZD
YXB0dXJlQXVkaW9EYXRhT3V0cHV0IEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCitTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0NoYW5uZWwpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtNzcsMTAgKzc5LDEwIEBAIEFWQXVkaW9DYXB0
dXJlU291cmNlOjp+QVZBdWRpb0NhcHR1cmVTb3UKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMo
KSBjb25zdAordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJmNhcGFiaWxpdGllcykKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBmaW5p
c2ggdGhpcyBpbXBsZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJl
YWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogCiB2b2lkIEFWQXVkaW9D
YXB0dXJlU291cmNlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtOTAsMTEgKzkyLDggQEAgdm9pZCBBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKAogCiB2b2lkIEFWQXVkaW9DYXB0dXJlU291
cmNlOjphZGRPYnNlcnZlcihBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVy
KQogewotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0gICAgICAgIG1f
b2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7Ci0gICAgfQotCisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbG9jayk7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKICAgICBpZiAobV9p
bnB1dERlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSkKICAgICAgICAgb2JzZXJ2ZXItPnByZXBhcmUo
bV9pbnB1dERlc2NyaXB0aW9uLmdldCgpKTsKIH0KQEAgLTExMCwxNiArMTA5LDQwIEBAIHZvaWQg
QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnJlbW92ZU9ic2VydmUKIHZvaWQgQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVE
ZXZpY2VJbnB1dFR5cGU+IGF1ZGlvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlu
cHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBB
U1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDphdWRpb0luLmdldCgpXSk7Ci0gICAgaWYgKFtz
ZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07Ci0gICAgCisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2Fu
QWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIGF1ZGlv
IGlucHV0IGRldmljZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNz
aW9uKCkgYWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07CisKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJl
QXVkaW9EYXRhT3V0cHV0VHlwZT4gYXVkaW9PdXRwdXQgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVy
ZUF1ZGlvRGF0YU91dHB1dEluc3RhbmNlKCkgaW5pdF0pOwogICAgIHNldEF1ZGlvU2FtcGxlQnVm
ZmVyRGVsZWdhdGUoYXVkaW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vzc2lvbigpIGNh
bkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lvbigpIGNhbkFk
ZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkT3V0cHV0
OmF1ZGlvT3V0cHV0LmdldCgpXTsKLSAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IGFkb3B0TlMoW2F1
ZGlvT3V0cHV0LmdldCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW9d
KTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCld
KSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1
cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCBhdWRpbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBk
ZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXTsKKyAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IFth
dWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlv
XTsKK30KKwordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lv
bigpCit7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKworICAgICAg
ICBtX2F1ZGlvQ29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1faW5wdXREZXNjcmlwdGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPigpOworCisg
ICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9i
c2VydmVyLT51bnByZXBhcmUoKTsKKyAgICAgICAgbV9vYnNlcnZlcnMuc2hyaW5rKDApOworICAg
IH0KKworICAgIC8vIERvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiBkZXN0cm95aW5nIHRoZSBhdWRp
byBwcm92aWRlciwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byB0aGlzIG9iamVjdAorICAgIC8vIHRv
IHJlbW92ZSBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIuCisgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVy
ID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24mIGEsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYg
YikKQEAgLTE0MSwyNyArMTY0LDMwIEBAIHN0YXRpYyBib29sIG9wZXJhdG9yIT0oY29uc3QgQXVk
aW9TdHJlYW0KIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91
dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKikKIHsK
LSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnM7Ci0gICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKLSAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMsIG9i
c2VydmVycyk7Ci0gICAgfQorICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CiAK
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIpOwogICAgIGlmICghZm9ybWF0
RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybjsKIAorICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtX2xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIGlmICghbG9jay5vd25zX2xv
Y2soKSkgeworICAgICAgICAvLyBGYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jaywganVzdCByZXR1
cm4gaW5zdGVhZCBvZiBibG9ja2luZy4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogc3RyZWFtRGVzY3JpcHRpb24gPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqc3RyZWFtRGVzY3JpcHRpb24pIHsK
ICAgICAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24+KCpzdHJlYW1EZXNjcmlwdGlvbik7Ci0gICAgICAgIGZvciAoYXV0
byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKICAgICAgICAgICAgIG9ic2VydmVyLT5wcmVwYXJlKG1faW5wdXREZXNjcmlw
dGlvbi5nZXQoKSk7CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG9ic2VydmVy
cykKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAgICAgIG9ic2Vy
dmVyLT5wcm9jZXNzKGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVCdWZmZXIpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNl
TWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkocmV2aXNpb24gMTkxNjM3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1h
bmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAzLDEwICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIG1fZ3JvdXBJRDsKIAogICAgIFN0cmluZyBtX2F1ZGlvU291cmNlSWQ7Ci0gICAgUmVmUHRy
PEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0KICAg
ICBTdHJpbmcgbV92aWRlb1NvdXJjZUlkOwotICAgIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJj
ZT4gbV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiB9
OwpAQCAtMTQ2LDcgKzE0MywxNSBAQCBzdGF0aWMgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZUxp
c3QoKQogICAgIAogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlIGluIFtBVkNh
cHR1cmVEZXZpY2UgZGV2aWNlc10pIHsKICAgICAgICAgQ2FwdHVyZURldmljZSBzb3VyY2U7Ci0g
ICAgICAgIAorCisgICAgICAgIGlmICghW2RldmljZSBpc0Nvbm5lY3RlZF0pCisgICAgICAgICAg
ICBjb250aW51ZTsKKworI2lmICFQTEFURk9STShJT1MpCisgICAgICAgIGlmIChbZGV2aWNlIGlz
U3VzcGVuZGVkXSB8fCBbZGV2aWNlIGlzSW5Vc2VCeUFub3RoZXJBcHBsaWNhdGlvbl0pCisgICAg
ICAgICAgICBjb250aW51ZTsKKyNlbmRpZgorCiAgICAgICAgIGlmICghY2FwdHVyZURldmljZUZy
b21EZXZpY2VJRChkZXZpY2UudW5pcXVlSUQsIHNvdXJjZSkpIHsKICAgICAgICAgICAgIC8vIEFu
IEFWQ2FwdHVyZURldmljZSBoYXMgYSB1bmlxdWUgSUQsIGJ1dCB3ZSBjYW4ndCB1c2UgaXQgZm9y
IHRoZSBzb3VyY2UgSUQgYmVjYXVzZToKICAgICAgICAgICAgIC8vIDEuIGlmIGl0IHByb3ZpZGVz
IGJvdGggYXVkaW8gYW5kIHZpZGVvIHdlIHdpbGwgbmVlZCB0byBjcmVhdGUgdHdvIHNvdXJjZXMg
Zm9yIGl0CkBAIC0zODgsMjQgKzM5MywyMCBAQCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiBBVkNhCiAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgdGhlIGNvbnN0
cmFpbnRzIHdoZW4gY2hvb3NpbmcgYW1vbmcgbXVsdGlwbGUgZGV2aWNlcy4gRm9yIG5vdyBqdXN0
IHNlbGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlCi0gICAgICAgIC8vIGRldmljZSBvZiB0aGUgYXBw
cm9wcmlhdGUgdHlwZS4KICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW8gJiYgIWNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAg
ICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkg
ewotICAgICAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1
cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNl
SURdOwotICAgICAgICAgICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAgICAgICAgICAgIGNh
cHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLCBjb25z
dHJhaW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBw
ZW5kKGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKTsKKyAgICAgICAg
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlID0gQVZDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmlj
ZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgY29uc3RyYWludHMuZ2V0KCkpOworICAg
ICAgICAgICAgaWYgKCFjYXB0dXJlU291cmNlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1Jl
ZigpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvICYmICFjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UpIHsKLSAgICAgICAgICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZD
YXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURl
dmljZUlEXTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAgICAgICAgICAg
ICBjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwg
Y29uc3RyYWludHMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0
LmFwcGVuZChjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSk7CisgICAg
ICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FwdHVyZVNvdXJjZSA9IEFWQ2Fw
dHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQoY2FwdHVyZURldmljZS5tX2NhcHR1cmVE
ZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8sIGNvbnN0cmFpbnRzLmdldCgpKTsK
KyAgICAgICAgICAgIGlmICghY2FwdHVyZVNvdXJjZSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0dXJlU291cmNlLmxl
YWtSZWYoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgc3RkOjpzb3J0KGJlc3RTb3VyY2VzTGlz
dC5iZWdpbigpLCBiZXN0U291cmNlc0xpc3QuZW5kKCksIHNvcnRCYXNlZE9mZkZpdG5lc3NTY29y
ZSk7CkBAIC00MTYsNDEgKzQxNyw0MSBAQCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gQVZD
YXB0dXJlRGV2CiB7CiAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gMDsK
LSAgICAKKwogICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgZGV2aWNlcyA9IGNhcHR1cmVEZXZp
Y2VMaXN0KCk7Ci0gICAgZm9yIChhdXRvIGNhcHR1cmVEZXZpY2UgOiBkZXZpY2VzKSB7Ci0gICAg
ICAgIGlmICghY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCisgICAgZm9yIChhdXRvJiBjYXB0dXJl
RGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAoY2FwdHVyZURldmljZS5tX2NhcHR1cmVE
ZXZpY2VJRCAhPSBkZXZpY2VVSUQgfHwgIWNhcHR1cmVEZXZpY2UubV9lbmFibGVkKQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2
aWNlSUQgIT0gZGV2aWNlVUlEKQorICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpbyAmJiBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW8gJiYgY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2
aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5t
X2NhcHR1cmVEZXZpY2VJRF07CisgICAgICAgIEFTU0VSVChkZXZpY2UpOworCisgICAgICAgIFJl
ZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY2FwdHVyZVNvdXJjZTsKKyAgICAgICAgaWYgKHR5
cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgICAgICAgICBjYXB0dXJlU291
cmNlID0gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2Uu
bV9hdWRpb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGNhcHR1cmVTb3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2Fw
dHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKKwogICAgICAgICBpZiAo
Y29uc3RyYWludHMpIHsKICAgICAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHM7CiAg
ICAgICAgICAgICBBVkNhcHR1cmVTZXNzaW9uVHlwZSAqc2Vzc2lvbiA9IG5pbDsKIAotICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gJiYgY2FwdHVyZURl
dmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2FwdHVy
ZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKLSAgICAgICAg
ICAgIGVsc2UgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgY2FwdHVy
ZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2Fw
dHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKKyAgICAg
ICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvKQorICAgICAgICAg
ICAgICAgIHNlc3Npb24gPSBjYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7CisgICAgICAgICAgICBl
bHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQorICAgICAgICAgICAg
ICAgIHNlc3Npb24gPSBjYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7CiAgICAgICAgICAgICBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlh
VHlwZShzZXNzaW9uLCB0eXBlLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnRzKTsKIAog
ICAgICAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludHMuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBBVkNhcHR1cmVE
ZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpj
YXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlEXTsKLSAgICAgICAgQVNTRVJUKGRldmljZSk7
Ci0gICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvICYmICFjYXB0
dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmICgh
Y2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAg
ICAgY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQs
IGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIHJldHVybiBjYXB0dXJlRGV2aWNlLm1fYXVkaW9B
Vk1lZGlhQ2FwdHVyZVNvdXJjZTsKLSAgICAgICAgfQotICAgICAgICBpZiAodHlwZSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiAhY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVk
aWFDYXB0dXJlU291cmNlKQotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV92aWRlb0FW
TWVkaWFDYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7Ci0gICAgICAgICAg
ICByZXR1cm4gY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0gICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGNhcHR1cmVTb3VyY2UubGVha1JlZigpOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5o
CShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNDUgKzUy
LDUyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0
U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZm
ZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2Fw
dHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpOworICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlU2Vz
c2lvbklzUnVubmluZ0RpZENoYW5nZShib29sKTsKICAgICAKICAgICBBVkNhcHR1cmVTZXNzaW9u
ICpzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9CiAKKyAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSBvdmVycmlkZTsKKwogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc1J1bm5pbmc7IH0KKworICAgIFdlYWtQdHI8QVZNZWRpYUNhcHR1cmVT
b3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQVZNZWRpYUNhcHR1cmVTb3VyY2UoQVZDYXB0
dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZSwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAKLSAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRpb1NvdXJjZVByb3Zp
ZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0dXBDYXB0dXJlU2Vzc2lvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdGVzKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmKSA9IDA7CiAKICAgICBBVkNhcHR1cmVEZXZpY2UgKmRldmljZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlLmdldCgpOyB9CisKICAgICBSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzKiBjdXJyZW50U3RhdGVzKCkgeyByZXR1cm4gJm1fY3VycmVudFN0YXRlczsgfQogICAg
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9jb25zdHJhaW50cy5n
ZXQoKTsgfQogCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNh
cGFiaWxpdGllcygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzZXRWaWRlb1NhbXBsZUJ1ZmZlckRl
bGVnYXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCopOwogICAgIHZvaWQgc2V0QXVkaW9TYW1w
bGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQqKTsKIAogICAgIHZvaWQg
c2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPik7CiAKLSAgICB2b2lk
IHN0YXRlc0RpZENoYW5nZWQoKSB7IH0KLSAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBzZXR1cFNl
c3Npb24oKTsKLSAgICBXZWFrUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICB2b2lk
IHJlc2V0KCkgb3ZlcnJpZGU7CiAKICAgICBXZWFrUHRyRmFjdG9yeTxBVk1lZGlhQ2FwdHVyZVNv
dXJjZT4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUFWTWVkaWFDYXB0
dXJlU291cmNlT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwogICAgIFJlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiBtX2NvbnN0cmFpbnRzOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
IG1fY3VycmVudFN0YXRlczsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNz
aW9uOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2U+IG1fZGV2aWNlOwotICAgIAotICAg
IGJvb2wgbV9pc1J1bm5pbmc7CisgICAgYm9vbCBtX2lzUnVubmluZyB7IGZhbHNlfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2Uu
bW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTQsMTIg
Kzk0LDE0IEBAIEBpbnRlcmZhY2UgV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2IKIAogLShp
ZClpbml0V2l0aENhbGxiYWNrOihBVk1lZGlhQ2FwdHVyZVNvdXJjZSopY2FsbGJhY2s7CiAtKHZv
aWQpZGlzY29ubmVjdDsKLS0odm9pZCljYXB0dXJlU2Vzc2lvblN0b3BwZWRSdW5uaW5nOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKIC0odm9pZCljYXB0dXJlT3V0cHV0OihBVkNhcHR1
cmVPdXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZmZXI6KENNU2Ft
cGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0dXJlQ29ubmVj
dGlvblR5cGUgKiljb25uZWN0aW9uOworLSh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5
UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNv
bnRleHQ6KHZvaWQqKWNvbnRleHQ7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3Rh
dGljIE5TQXJyYXkqIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCk7CisKIHN0YXRpYyBkaXNwYXRjaF9x
dWV1ZV90IGdsb2JhQXVkaW9DYXB0dXJlU2VyaWFsUXVldWUoKQogewogICAgIHN0YXRpYyBkaXNw
YXRjaF9xdWV1ZV90IGdsb2JhbFF1ZXVlOwpAQCAtMTI3LDcgKzEyOSw2IEBAIEFWTWVkaWFDYXB0
dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNvdXIKICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0
TlMoW1tXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhD
YWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2NvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKQogICAgICwg
bV9kZXZpY2UoZGV2aWNlKQotICAgICwgbV9pc1J1bm5pbmcoZmFsc2UpCiB7CiAgICAgc2V0TmFt
ZShkZXZpY2UubG9jYWxpemVkTmFtZSk7CiAgICAgc2V0UGVyc2lzdGVudElEKGRldmljZS51bmlx
dWVJRCk7CkBAIC0xMzYsOSArMTM3LDEzIEBAIEFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlh
Q2FwdHVyZVNvdXIKIAogQVZNZWRpYUNhcHR1cmVTb3VyY2U6On5BVk1lZGlhQ2FwdHVyZVNvdXJj
ZSgpCiB7Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVP
YnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKV07CiAgICAgW21fb2JqY09ic2VydmVyIGRpc2Nv
bm5lY3RdOwotICAgIFttX3Nlc3Npb24uZ2V0KCkgc3RvcFJ1bm5pbmddOworCisgICAgaWYgKG1f
c2Vzc2lvbikgeworICAgICAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGluIHNlc3Npb25LVk9Q
cm9wZXJ0aWVzKCkpCisgICAgICAgICAgICBbbV9zZXNzaW9uLmdldCgpIHJlbW92ZU9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6a2V5TmFtZV07CisgICAgICAgIFttX3Nl
c3Npb24uZ2V0KCkgc3RvcFJ1bm5pbmddOworICAgIH0KIH0KIAogdm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKQEAgLTE1MCw4ICsxNTUsNiBAQCB2b2lkIEFW
TWVkaWFDYXB0dXJlU291cmNlOjpzdGFydFByb2R1Y2luCiAgICAgICAgIHJldHVybjsKICAgICAK
ICAgICBbbV9zZXNzaW9uLmdldCgpIHN0YXJ0UnVubmluZ107Ci0KLSAgICBtX2lzUnVubmluZyA9
IHRydWU7CiB9CiAKIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKQEAgLTE2MCw4ICsxNjMsNiBAQCB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJv
ZHVjaW5nCiAgICAgICAgIHJldHVybjsKIAogICAgIFttX3Nlc3Npb24uZ2V0KCkgc3RvcFJ1bm5p
bmddOwotCi0gICAgbV9pc1J1bm5pbmcgPSB0cnVlOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhdGVzKCkKQEAgLTE3MCwyMSAr
MTcxLDQ3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIEFWTWVkaWEKICAgICBy
ZXR1cm4gbV9jdXJyZW50U3RhdGVzOwogfQogCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpCit7CisgICAg
aWYgKCFtX2NhcGFiaWxpdGllcykgeworICAgICAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZSgpOworICAgICAgICBtX2NhcGFiaWxpdGll
cy0+c2V0U291cmNlSWQobV9jdXJyZW50U3RhdGVzLnNvdXJjZUlkKCkpOworICAgICAgICBpbml0
aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7CisgICAgfQorICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllczsKK30KKwogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0
dXBTZXNzaW9uKCkKIHsKICAgICBpZiAobV9zZXNzaW9uKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3Nlc3Npb24gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZVNlc3Npb25JbnN0YW5jZSgpIGlu
aXRdKTsKLSAgICAKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIHNlbGVjdG9yOkBzZWxlY3RvcihjYXB0dXJl
U2Vzc2lvblN0b3BwZWRSdW5uaW5nOikgbmFtZTpBVkNhcHR1cmVTZXNzaW9uRGlkU3RvcFJ1bm5p
bmdOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgCisgICAgZm9yIChOU1N0cmluZyAqa2V5
TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICBbbV9zZXNzaW9uLmdldCgp
IGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6a2V5TmFtZSBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKW5pbF07CisK
ICAgICBzZXR1cENhcHR1cmVTZXNzaW9uKCk7CiB9Ci0gCi12b2lkIEFWTWVkaWFDYXB0dXJlU291
cmNlOjpjYXB0dXJlU2Vzc2lvblN0b3BwZWRSdW5uaW5nKCkKKwordm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6cmVzZXQoKQogewotICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVzZXQoKTsKKyAgICBtX2lzUnVubmluZyA9IGZhbHNlOworICAgIGZv
ciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRpZXMoKSkKKyAgICAgICAg
W21fc2Vzc2lvbi5nZXQoKSByZW1vdmVPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JL
ZXlQYXRoOmtleU5hbWVdOworICAgIHNodXRkb3duQ2FwdHVyZVNlc3Npb24oKTsKKyAgICBtX3Nl
c3Npb24gPSBudWxscHRyOworfQorCit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJl
U2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShib29sIHN0YXRlKQoreworICAgIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKFt0aGlzLCBzdGF0ZV0geworICAgICAgICBpZiAoc3RhdGUgPT0gbV9pc1J1bm5p
bmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9pc1J1bm5pbmcgPSBzdGF0ZTsK
KyAgICAgICAgaXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlKCk7CisgICAgfSk7CiB9CiAKIHZvaWQg
QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZDYXB0
dXJlVmlkZW9EYXRhT3V0cHV0VHlwZSogdmlkZW9PdXRwdXQpCkBAIC0yMTYsNiArMjQzLDEyIEBA
IEF1ZGlvU291cmNlUHJvdmlkZXIqIEFWTWVkaWFDYXB0dXJlU291cmMKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorTlNBcnJheSogc2Vzc2lvbktWT1Byb3BlcnRpZXMoKQoreworICAgIHN0YXRp
YyBOU0FycmF5KiBrZXlzID0gQFtAInJ1bm5pbmciXTsKKyAgICByZXR1cm4ga2V5czsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWTWVkaWFD
YXB0dXJlU291cmNlT2JzZXJ2ZXIKQEAgLTIzNSwyNSArMjY4LDM3IEBAIC0gKHZvaWQpZGlzY29u
bmVjdAogICAgIG1fY2FsbGJhY2sgPSAwOwogfQogCi0tICh2b2lkKWNhcHR1cmVTZXNzaW9uU3Rv
cHBlZFJ1bm5pbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCistICh2b2lkKWNhcHR1
cmVPdXRwdXQ6KEFWQ2FwdHVyZU91dHB1dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNh
bXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9u
OihBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSAqKWNvbm5lY3Rpb24KIHsKLSAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uKTsKLQogICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAg
ICAgICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgICAgICBtX2NhbGxiYWNrLT5jYXB0dXJlU2Vz
c2lvblN0b3BwZWRSdW5uaW5nKCk7Ci0gICAgfSk7CisgICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91
dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNh
bXBsZUJ1ZmZlciwgY29ubmVjdGlvbik7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZU91dHB1dDooQVZD
YXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVmZmVyOihD
TVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2FwdHVyZUNv
bm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgorLSh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6
a2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdl
IGNvbnRleHQ6KHZvaWQqKWNvbnRleHQKIHsKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisKICAgICBpZiAoIW1fY2FsbGJhY2spCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY2FsbGJhY2stPmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVC
dWZmZXJGcm9tQ29ubmVjdGlvbihjYXB0dXJlT3V0cHV0LCBzYW1wbGVCdWZmZXIsIGNvbm5lY3Rp
b24pOworICAgIGlkIG5ld1ZhbHVlID0gW2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hh
bmdlTmV3S2V5XTsKKworI2lmICFMT0dfRElTQUJMRUQKKyAgICBib29sIHdpbGxDaGFuZ2UgPSBb
W2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktl
eV0gYm9vbFZhbHVlXTsKKworICAgIGlmICh3aWxsQ2hhbmdlKQorICAgICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aCglcCkgLSB3aWxsIGNoYW5nZSwga2V5UGF0aCA9ICVzIiwgc2VsZiwgW2tleVBhdGggVVRG
OFN0cmluZ10pOworICAgIGVsc2UgeworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHZhbHVl
U3RyaW5nID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVAIiwg
bmV3VmFsdWVdKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291
cmNlT2JzZXJ2ZXI6Om9ic2VydmVWYWx1ZUZvcktleVBhdGgoJXApIC0gZGlkIGNoYW5nZSwga2V5
UGF0aCA9ICVzLCB2YWx1ZSA9ICVzIiwgc2VsZiwgW2tleVBhdGggVVRGOFN0cmluZ10sIFt2YWx1
ZVN0cmluZy5nZXQoKSBVVEY4U3RyaW5nXSk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoW2tl
eVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicnVubmluZyJdKQorICAgICAgICBtX2NhbGxiYWNrLT5j
YXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShbbmV3VmFsdWUgYm9vbFZhbHVlXSk7CiB9
CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiQVZNZWRpYUNhcHR1cmVTb3VyY2UuaCIKIAotT0JKQ19DTEFTUyBBVkNhcHR1cmVWaWRlb1By
ZXZpZXdMYXllcjsKK09CSkNfQ0xBU1MgQ0FMYXllcjsKIAogdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFn
ZSAqQ0dJbWFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3Jp
cHRpb24gKkNNRm9ybWF0RGVzY3JpcHRpb25SZWY7CkBAIC00OCwzNiArNDgsMzggQEAgcHVibGlj
OgogICAgIGludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgaW50
MzJfdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogCi0gICAgQVZDYXB0dXJl
VmlkZW9QcmV2aWV3TGF5ZXIqIHByZXZpZXdMYXllcigpIHsgcmV0dXJuIG1fdmlkZW9QcmV2aWV3
TGF5ZXIuZ2V0KCk7IH0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBjdXJyZW50RnJhbWVTYW1wbGVC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQotICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7
Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGN1cnJlbnRGcmFtZUltYWdlKCk7Ci0KIHByaXZh
dGU6CiAgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+
QVZWaWRlb0NhcHR1cmVTb3VyY2UoKTsKIAogICAgIHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigp
IG92ZXJyaWRlOworICAgIHZvaWQgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwor
CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBhcHBseUNvbnN0cmFpbnRzKE1lZGlhQ29u
c3RyYWludHMqKTsKICAgICBib29sIHNldEZyYW1lUmF0ZUNvbnN0cmFpbnQoZmxvYXQgbWluRnJh
bWVSYXRlLCBmbG9hdCBtYXhGcmFtZVJhdGUpOwogCi0gICAgYm9vbCBjYWxjdWxhdGVGcmFtZXJh
dGUoQ01TYW1wbGVCdWZmZXJSZWYpOworICAgIGJvb2wgdXBkYXRlRnJhbWVyYXRlKENNU2FtcGxl
QnVmZmVyUmVmKTsKIAogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZl
ckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNh
cHR1cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9jZXNzTmV3RnJhbWUoUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPik7CiAKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlQ29u
bmVjdGlvbj4gbV92aWRlb0Nvbm5lY3Rpb247Ci0gICAgUmV0YWluUHRyPEFWQ2FwdHVyZVZpZGVv
UHJldmlld0xheWVyPiBtX3ZpZGVvUHJldmlld0xheWVyOworICAgIHZvaWQgcGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGN1cnJlbnRGcmFtZUNHSW1hZ2UoKTsKKyAgICBS
ZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkgb3ZlcnJpZGU7CisKICAgICBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1fYnVmZmVyOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBtX2xhc3RJbWFnZTsKICAgICBWZWN0b3I8RmxvYXQ2ND4gbV92aWRlb0ZyYW1lVGltZVN0YW1w
czsKLSAgICBGbG9hdDY0IG1fZnJhbWVSYXRlOwotICAgIGludDMyX3QgbV93aWR0aDsKLSAgICBp
bnQzMl90IG1faGVpZ2h0OworICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1f
dmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgRmxvYXQ2NCBtX2ZyYW1lUmF0ZSB7IDAgfTsKKyAgICBp
bnQzMl90IG1fd2lkdGggeyAwIH07CisgICAgaW50MzJfdCBtX2hlaWdodCB7IDAgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
bW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAg
KzMxLDEyIEBACiAjaW1wb3J0ICJBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW1wb3J0ICJC
bG9ja0V4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW1wb3J0
ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgogI2ltcG9ydCAiTWVkaWFDb25zdHJhaW50cy5oIgogI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPG9iamMvcnVudGltZS5oPgpAQCAtOTgsOSArMTAwLDYgQEAgUmVmUHRyPEFWTWVkaWFDYXB0
dXJlU291cmNlPiBBVlZpZGVvQ2FwdAogCiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0Nh
cHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnQpCiAgICAgOiBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkLCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
bywgY29uc3RyYWludCkKLSAgICAsIG1fZnJhbWVSYXRlKDApCi0gICAgLCBtX3dpZHRoKDApCi0g
ICAgLCBtX2hlaWdodCgwKQogewogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlSWQoaWQp
OwogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzOjpDYW1lcmEpOwpAQCAtMTEwLDEwICsxMDksMTEgQEAgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6On5BVlZpZGVvQ2FwdHVyZVNvdQogewogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
Cit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIC8vIEZJWE1FOiBmaW5pc2ggdGhpcyBpbXBs
ZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5zZXRTb3VyY2VJZChjdXJyZW50U3RhdGVzKCkt
PnNvdXJjZUlkKCkpOworICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CiB9CiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnVwZGF0ZVN0YXRlcygpCkBAIC0yMTgsOSArMjE4LDEzIEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmFwcGx5Q29uc3RyYWkKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2Fw
dHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VJbnB1dFR5cGU+
IHZpZGVvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlucHV0SW5zdGFuY2UoKSBp
bml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBBU1NFUlQoW3Nlc3Npb24o
KSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9uKCkgY2FuQWRk
SW5wdXQ6dmlkZW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkSW5wdXQ6dmlkZW9J
bi5nZXQoKV07CisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6dmlkZW9Jbi5nZXQo
KV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2Fw
dHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIHZpZGVvIGlucHV0IGRldmljZSIsIHRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2aWRl
b0luLmdldCgpXTsKIAogICAgIGlmIChjb25zdHJhaW50cygpKQogICAgICAgICBhcHBseUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzKCkpOwpAQCAtMjMxLDE1ICsyMzUsMjYgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlUwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBuaWxdKTsKICAgICBbdmlkZW9PdXRwdXQg
c2V0VmlkZW9TZXR0aW5nczpzZXR0aW5nc0RpY3Rpb25hcnkuZ2V0KCldOwogICAgIHNldFZpZGVv
U2FtcGxlQnVmZmVyRGVsZWdhdGUodmlkZW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vz
c2lvbigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lv
bigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKIAotICAgIG1fdmlkZW9Db25uZWN0aW9uID0g
YWRvcHROUyhbdmlkZW9PdXRwdXQuZ2V0KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6QVZNZWRp
YVR5cGVWaWRlb10pOwotICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFtbQVZDYXB0
dXJlVmlkZW9QcmV2aWV3TGF5ZXIgYWxsb2NdIGluaXRXaXRoU2Vzc2lvbjpzZXNzaW9uKCldKTsK
KyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkgewor
ICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vz
c2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gc2FtcGxlIGJ1ZmZlciBvdXRwdXQgZGVsZWdh
dGUiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBbc2Vzc2lvbigpIGFkZE91
dHB1dDp2aWRlb091dHB1dC5nZXQoKV07Cit9CisKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnNodXRkb3duQ2FwdHVyZVNlc3Npb24oKQoreworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBu
dWxscHRyOworICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2xhc3RJbWFnZSA9IG51bGxw
dHI7CisgICAgbV92aWRlb0ZyYW1lVGltZVN0YW1wcy5jbGVhcigpOworICAgIG1fZnJhbWVSYXRl
ID0gMDsKKyAgICBtX3dpZHRoID0gMDsKKyAgICBtX2hlaWdodCA9IDA7CiB9CiAKLWJvb2wgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmNhbGN1bGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIpCitib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjp1cGRhdGVGcmFtZXJhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQogewogICAgIENNVGltZSBzYW1wbGVUaW1l
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsK
ICAgICBpZiAoIUNNVElNRV9JU19OVU1FUklDKHNhbXBsZVRpbWUpKQpAQCAtMjYxLDEzICsyNzYs
MTkgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbQogCiB2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVCdWZmZXIpCiB7CisgICAgLy8gSWdub3JlIGZyYW1lcyBkZWxpdmVyZWQg
d2hlbiB0aGUgc2Vzc2lvbiBpcyBub3QgcnVubmluZywgd2Ugd2FudCB0byBoYW5nIG9udG8gdGhl
IGxhc3QgaW1hZ2UKKyAgICAvLyBkZWxpdmVyZWQgYmVmb3JlIGl0IHN0b3BwZWQuCisgICAgaWYg
KG1fbGFzdEltYWdlICYmICghaXNQcm9kdWNpbmdEYXRhKCkgfHwgIWVuYWJsZWQoKSkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5nZXQo
KSk7CiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgcmV0dXJuOwogCisgICAg
dXBkYXRlRnJhbWVyYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CisKICAgICBib29sIHN0YXRlc0No
YW5nZWQgPSBmYWxzZTsKIAotICAgIHN0YXRlc0NoYW5nZWQgPSBjYWxjdWxhdGVGcmFtZXJhdGUo
c2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICBtX2J1ZmZlciA9IHNhbXBsZUJ1ZmZlcjsKICAgICBt
X2xhc3RJbWFnZSA9IG51bGxwdHI7CiAKQEAgLTI5MSw3ICszMTIsMjMgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dAogICAgIH0pOwogfQogCi1SZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUltYWdlKCkKK1JlZlB0
cjxJbWFnZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAg
ICBpZiAoIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0KDAsIDAsIG1fd2lkdGgsIG1faGVpZ2h0KTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKworICAgIGlmICghaW1hZ2VC
dWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoaW1hZ2VCdWZmZXItPmNvbnRleHQoKSwgaW1hZ2VSZWN0KTsKKworICAgIHJldHVy
biBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKCk7Cit9CisKK1JldGFpblB0cjxDR0ltYWdlUmVmPiBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lQ0dJbWFnZSgpCiB7CiAgICAgaWYgKG1f
bGFzdEltYWdlKQogICAgICAgICByZXR1cm4gbV9sYXN0SW1hZ2U7CkBAIC0zMTgsNyArMzU1LDcg
QEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IEFWVmlkZW9DYXB0dXJlU291cgogCiB2b2lkIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoY29udGV4dC5w
YWludGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUltYWdlKCkpCisgICAgaWYgKGNvbnRl
eHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjdXJyZW50RnJhbWVDR0ltYWdlKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKQEAgLTMyOSw2ICszNjYsMTkgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cGFp
bnRDdXJyZW50RgogICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3QuaGVpZ2h0
KCkpLCBtX2xhc3RJbWFnZS5nZXQoKSk7CiB9CiAKK1BsYXRmb3JtTGF5ZXIqIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWRlb1ByZXZp
ZXdMYXllcikKKyAgICAgICAgcmV0dXJuIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCk7CisKKyAg
ICBtX3ZpZGVvUHJldmlld0xheWVyID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllckluc3RhbmNlKCkgaW5pdFdpdGhTZXNzaW9uOnNlc3Npb24oKV0pOworI2lmbmRlZiBO
REVCVUcKKyAgICBtX3ZpZGVvUHJldmlld0xheWVyLmdldCgpLm5hbWUgPSBAIkFWVmlkZW9DYXB0
dXJlU291cmNlIHByZXZpZXcgbGF5ZXIiOworI2VuZGlmCisKKyAgICByZXR1cm4gbV92aWRlb1By
ZXZpZXdMYXllci5nZXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAko
d29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1f
bGlzdEJ1ZmZlclNpemUgeyAwIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVmZmVyTGlz
dD4gbV9saXN0OwotICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRlclJlZj4gbV9jb252ZXJ0ZXI7
CisgICAgQXVkaW9Db252ZXJ0ZXJSZWYgbV9jb252ZXJ0ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVzY3Jp
cHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2
ICs3MywxMSBAQCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6V2ViQXVkaW9TCiAKIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMoKQogeworICAgIGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICAvLyBGSVhNRTogbWFrZSBh
bmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9Db252ZXJ0ZXIKKyAgICAgICAgQXVkaW9D
b252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxs
cHRyOworICAgIH0KICAgICBpZiAobV9jb25uZWN0ZWQpCiAgICAgICAgIG1fY2FwdHVyZVNvdXJj
ZS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiB9CkBAIC0xMjMsNyArMTI4LDcgQEAgdm9pZCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdgogICAgIG1fcmVhZENvdW50ICs9IGZyYW1l
c1RvUHJvY2VzczsKIAogICAgIGlmIChtX2NvbnZlcnRlcikKLSAgICAgICAgQXVkaW9Db252ZXJ0
ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNz
LCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIEF1ZGlvQ29udmVydGVyQ29u
dmVydENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIsIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0Lmdl
dCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMTgw
LDkgKzE4NSwxOSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwCiAg
ICAgbV9vdXRwdXREZXNjcmlwdGlvbi0+bUJ5dGVzUGVyRnJhbWUgPSBzaXplb2YoRmxvYXQzMik7
CiAgICAgbV9vdXRwdXREZXNjcmlwdGlvbi0+bUZvcm1hdEZsYWdzIHw9IGtBdWRpb0Zvcm1hdEZs
YWdJc05vbkludGVybGVhdmVkOwogCisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8v
IEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgor
ICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2Nv
bnZlcnRlciA9IG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKCptX2lucHV0RGVzY3JpcHRpb24g
IT0gKm1fb3V0cHV0RGVzY3JpcHRpb24pIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJSZWYgb3V0
Q29udmVydGVyID0gbnVsbHB0cjsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJOZXcobV9pbnB1dERl
c2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVy
KTsKKyAgICAgICAgT1NTdGF0dXMgZXJyID0gQXVkaW9Db252ZXJ0ZXJOZXcobV9pbnB1dERlc2Ny
aXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsK
KyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoJXApIC0gQXVkaW9Db252ZXJ0ZXJOZXcgcmV0dXJu
ZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAgICAgICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwogICAgIH0KIApAQCAtMjIxLDYg
KzIzNiwxMSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByCiAgICAg
bV9yaW5nQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2xpc3QgPSBudWxscHRyOwogICAgIG1fbGlz
dEJ1ZmZlclNpemUgPSAwOworICAgIGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICAvLyBGSVhN
RTogbWFrZSBhbmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9Db252ZXJ0ZXIKKyAgICAg
ICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0
ZXIgPSBudWxscHRyOworICAgIH0KIH0KIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2VzcyhDTUZvcm1hdERlc2NyaXB0aW9uUmVmLCBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIpCkBAIC0yMzQsNyArMjU0LDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJvYwogICAgIE9TU3RhdHVzIGVyciA9IENNU2FtcGxlQnVmZmVyR2V0QXVk
aW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRy
LCBtX2xpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1
bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9C
dWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcik7CiAKICAgICBpZiAoZXJy
KSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9lc3MoJXApIC0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRC
bG9ja0J1ZmZlciByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgIExPRyhN
ZWRpYSwgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKCVwKSAtIENNU2Ft
cGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgcmV0dXJu
ZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAkocmV2aXNpb24g
MTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcg
QEAgUmVhbHRpbWVNZWRpYVNvdXJjZU93cihPd3JNZWRpYVNvdXJjZSogbQogCiAgICAgdmlydHVh
bCB+UmVhbHRpbWVNZWRpYVNvdXJjZU93cigpIHsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1
cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsg
fQogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkg
eyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9CiAKICAgICBPd3JNZWRpYVNvdXJjZSogbWVkaWFT
b3VyY2UoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TW9ja1NvdXJjZSgp
IHsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2
aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgeyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9
CiAKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmls
aXRpZXM7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0xMC0yNyAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFBs
YXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBjYW52
YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDQ0
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWw6CisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0
cmVhbS5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY29uc3Ry
dWN0LXdpdGgtZW5kZWQtdHJhY2tzLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzOgorICAgICAgICAocmVqZWN0KToKKyAg
ICAgICAgKGdldFVzZXJNZWRpYSk6CisKIDIwMTUtMTAtMjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybiBJREI6IFN1cHBvcnQgSURCT2JqZWN0U3Rv
cmUucHV0L2dldCBzdXBwb3J0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWwJKHJl
dmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tYWRkLWVuZGVkLXRyYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBA
CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdhdWRpb1RyYWNrLnJlYWR5
U3RhdGUnLCAnZW5kZWQnKTsKIAogICAgICAgICAgICAgICAgIGRlYnVnKCIqKiogY29uc3RydWN0
IG5ldyAnZW1wdHknIHN0cmVhbTIiKQotICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBuZXcgd2Vi
a2l0TWVkaWFTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICBzdHJlYW0yID0gbmV3IE1lZGlhU3Ry
ZWFtKCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuZ2V0VHJhY2tzKCkubGVu
Z3RoJywgJzAnKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5hY3RpdmUnLCAn
ZmFsc2UnKTsKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXRyYWNrcy10by1pbmFjdGl2
ZS1zdHJlYW0uaHRtbAkocmV2aXNpb24gMTkxNjM3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVhbS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBACiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNy
ZWF0ZVN0cmVhbUFuZEFkZFRyYWNrcygpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
c3RyZWFtMiA9IG5ldyB3ZWJraXRNZWRpYVN0cmVhbSgpOworICAgICAgICAgICAgICAgIHN0cmVh
bTIgPSBuZXcgTWVkaWFTdHJlYW0oKTsKICAgICAgICAgICAgICAgICBkZWJ1ZygiTWVkaWFTdHJl
YW0gd2l0aG91dCB0cmFja3MgY3JlYXRlZC4iKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgn
c3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7CiAgICAgICAgICAgICAgICAg
YXVkaW9UcmFjayA9IHN0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY29uc3RydWN0LXdpdGgtZW5kZWQtdHJh
Y2tzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS1jb25zdHJ1Y3Qtd2l0aC1lbmRlZC10cmFja3MuaHRtbAkocmV2aXNpb24gMTkxNjM3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jb25zdHJ1Y3Qt
d2l0aC1lbmRlZC10cmFja3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBA
CiAgICAgICAgICAgICAgICAgdmFyIHRyYWNrc0FycmF5ID0gW107CiAgICAgICAgICAgICAgICAg
dHJhY2tzQXJyYXkucHVzaCh2aWRlb1RyYWNrKTsKICAgICAgICAgICAgICAgICB0cmFja3NBcnJh
eS5wdXNoKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgICAgIG5ld01lZGlhU3RyZWFtID0gbmV3
IHdlYmtpdE1lZGlhU3RyZWFtKHRyYWNrc0FycmF5KTsKKyAgICAgICAgICAgICAgICBuZXdNZWRp
YVN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbSh0cmFja3NBcnJheSk7CiAKICAgICAgICAgICAgICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCduZXdNZWRpYVN0cmVhbS5hY3RpdmUnLCBmYWxzZSk7CiAgICAg
ICAgICAgICAgICAgc2hvdWxkTm90QmUoJ21lZGlhU3RyZWFtLmlkJywgJ25ld01lZGlhU3RyZWFt
LmlkJyk7CiAKLSAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbUNvcHkgPSBuZXcgd2Via2l0TWVk
aWFTdHJlYW0obmV3TWVkaWFTdHJlYW0pOworICAgICAgICAgICAgICAgIG1lZGlhU3RyZWFtQ29w
eSA9IG5ldyBNZWRpYVN0cmVhbShuZXdNZWRpYVN0cmVhbSk7CiAgICAgICAgICAgICAgICAgc2hv
dWxkRXZhbHVhdGVUbygnbWVkaWFTdHJlYW1Db3B5LmFjdGl2ZScsIGZhbHNlKTsKICAgICAgICAg
ICAgICAgICBzaG91bGROb3RCZSgnbWVkaWFTdHJlYW1Db3B5LmlkJywgJ25ld01lZGlhU3RyZWFt
LmlkJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
b25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+CiAgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogICAgICAgICA8c2NyaXB0Pgot
ICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdE1lZGlhU3RyZWFtLiIpOworICAg
ICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIE1lZGlhU3RyZWFtLiIpOwogCiAgICAgICAgICAg
ICB2YXIgdW5kZWZpbmVkOwogICAgICAgICAgICAgdmFyIHN0cmVhbTsKQEAgLTQ3LDMwICs0Nywz
MCBAQAogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdsb2NhbFN0cmVhbS5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCcsICcxJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2xvY2FsU3RyZWFt
LmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKIAotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgidHlwZW9mIHdlYmtpdE1lZGlhU3RyZWFtID09PSAnb2JqZWN0JyIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidHlwZW9mIE1lZGlhU3RyZWFtID09PSAnb2JqZWN0JyIp
OwogICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tJZEF0dHJpYnV0ZShsb2NhbFN0
cmVhbS5pZCknKTsKICAgICAgICAgICAgICAgICB0ZXN0Q29uc3RydWN0b3IobG9jYWxTdHJlYW0p
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3Io
cykgewogICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShkb2N1bWVudCknKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtkb2N1bWVudF0pJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKClbMF0sIGRvY3VtZW50XSknKTsKLSAgICAgICAgICAgICAgICBzaG91bGRU
aHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtudWxsXSknKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFt1bmRlZmluZWRdKScpOwotICAgICAg
ICAgICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0obnVsbCknKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKHVuZGVmaW5l
ZCknKTsKLQotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3Ry
ZWFtKCkiLCAwLCAwKTsKLSAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRN
ZWRpYVN0cmVhbShbXSkiLCAwLCAwKTsKLQotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgi
bmV3IHdlYmtpdE1lZGlhU3RyZWFtKHN0cmVhbSkiLCBzLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
LCBzLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoKTsKLQotICAgICAgICAgICAgICAgIHZlcmlmeVN0
cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXV0p
IiwgMSwgMCk7Ci0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFT
dHJlYW0oW3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdXSkiLCAwLCAxKTsKLSAgICAgICAgICAg
ICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlv
VHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKLSAgICAg
ICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdl
dFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3co
J25ldyBNZWRpYVN0cmVhbShkb2N1bWVudCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJv
dygnbmV3IE1lZGlhU3RyZWFtKFtkb2N1bWVudF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ25ldyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIGRvY3Vt
ZW50XSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1lZGlhU3RyZWFtKFtu
dWxsXSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1lZGlhU3RyZWFtKFt1
bmRlZmluZWRdKScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJl
YW0obnVsbCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1lZGlhU3RyZWFt
KHVuZGVmaW5lZCknKTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlh
U3RyZWFtKCkiLCAwLCAwKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyBNZWRp
YVN0cmVhbShbXSkiLCAwLCAwKTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3
IE1lZGlhU3RyZWFtKHN0cmVhbSkiLCBzLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCBzLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoKTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3
IE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXV0pIiwgMSwgMCk7CisgICAg
ICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgTWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdXSkiLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5l
dyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5l
dyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRBdWRp
b1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7CiAKICAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KQEAgLTg0LDcgKzg0
LDcgQEAKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gY29uc3RydWN0ZWQnKTsK
ICAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwobmV3U3RyZWFtKTsKICAgICAgICAgICAg
ICAgICBzaG91bGRCZURlZmluZWQobmV3U3RyZWFtKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibmV3U3RyZWFtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3Qgd2Via2l0TWVk
aWFTdHJlYW1Db25zdHJ1Y3Rvcl0nIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIm5ld1N0
cmVhbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpIiwgIidbb2JqZWN0IE1lZGlhU3RyZWFtQ29uc3Ry
dWN0b3JdJyIpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCduZXdTdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGgnLCAnbkF1ZGlvJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ25l
d1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICduVmlkZW8nKTsKIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2stb25lbmRlZC5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xOCw3ICsxOCw3IEBACiAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAg
ICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJy
b3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdnZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0
aW9uIDonICsgZSk7CiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgICAg
IGZ1bmN0aW9uIGdvdFN0cmVhbTIocykgewogICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKICAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdnb3RTdHJlYW0yIHdhcyBjYWxsZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgc3RyZWFtID0gbmV3IHdlYmtpdE1lZGlhU3RyZWFtKHMpOworICAgICAgICAg
ICAgICAgIHN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbShzKTsKICAgICAgICAgICAgICAgICB0cmFj
ayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwogICAgICAgICAgICAgICAgIHRyYWNrQ2xv
bmUgPSB0cmFjay5jbG9uZSgpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoJ3RyYWNr
LnJlYWR5U3RhdGUgPT0gImVuZGVkIicpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpz
CShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291
cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBA
QCBmdW5jdGlvbiBnZXRVc2VyTWVkaWEocGVybWlzc2lvbiwgY29uc3RyCiAgICAgZWxzZSB7CiAg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1
bm5lciIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKS50
aGVuKHN1Y2Nlc3NDYWxsYmFjaywgcmVqZWN0KS5jYXRjaChkZWZhdWx0UmVqZWN0T3JDYXRjaCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264219</attachid>
            <date>2015-10-28 09:57:33 -0700</date>
            <delta_ts>2015-10-28 10:11:52 -0700</delta_ts>
            <desc>Another updated patch.</desc>
            <filename>media_player_stream_patch_15.txt</filename>
            <type>text/plain</type>
            <size>128660</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9u
KTogTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0aGUKKyAgICAgICAgICBp
bnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAgIChXZWJDb3JlOjpBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21D
b25uZWN0aW9uKTogRG9uJ3QgYmxvY2sKKyAgICAgICAgICBpZiBpdCBpc24ndCBwb3NzaWJsZSB0
byBhY3F1aXJlIHRoZSBsb2NrLiBIb2xkIHRoZSBsb2NrIHdoaWxlIGNhbGxpbmcgb2JzZXJ2ZXJz
LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZnJlc2hDYXB0dXJlRGV2aWNl
TGlzdCk6IERvbid0IGluY2x1ZGUgZGV2aWNlcyB0aGF0IGNhbid0IGJlIHVzZWQuCisgICAgICAg
IChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyk6ICBVc2UgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRAor
ICAgICAgICAgIHNvIGNvbnN0cmFpbnRzIGFyZSBjb25zaWRlcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRCk6IERvbid0IGNvbnNpZGVy
IGRpc2FibGVkIGRldmljZXMuIEFsd2F5cworICAgICAgICAgIGNyZWF0ZSBhIG5ldyBjYXB0dXJl
IGRldmljZSBzbyBlYWNoIHRyYWNrIHN0YXJ0cyBvdXQgd2l0aCBhIHVuaXF1ZSBzb3VyY2UuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFD
YXB0dXJlU291cmNlKTogUmVtb3ZlIEtWTyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogbV9pc1J1bm5pbmcgaXMg
Y2hhbmdlZCBpbiBjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IE5l
dy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24p
OiBBZGQgS1ZPYnNlcnZlcnMgZm9yIHRoZSBwcm9wZXJ0aWVzIHdlIGNhcmUgYWJvdXQuCisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQpOiBOZXcsIGNsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25J
c1J1bm5pbmdEaWRDaGFuZ2UpOiBEaXNwYXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgCisgICAgICAg
ICAgdG8gc2V0IG1faXNSdW5uaW5nLCBjYWxsIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSBzbyBv
YnNlcnZlcnMgY2FuIGZpbmQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6c2Vzc2lvbktWT1Byb3Bl
cnRpZXMpOgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBk
aXNjb25uZWN0XSk6CisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIGNhcHR1cmVPdXRwdXQ6ZGlkT3V0cHV0U2FtcGxlQnVmZmVyOmZyb21Db25uZWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBSZXNwb25kCisgICAg
ICAgICAgdG8gcnVubmluZyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1
cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcpOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nOl0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBQYXJ0aWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24pOiAgTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0
aGUKKyAgICAgICAgICBpbnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAg
IChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlRnJhbWVyYXRlKTogUmVuYW1l
ZCBmcm9tIGNhbGN1bGF0ZUZyYW1lcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFJldHVybiBhbiBJbWFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJh
bWVyYXRlKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOiBBdWRpb0NvbnZlcnRlclJlZiBpcworICAgICAgICAgIG5vdCBhIENGL09i
akMgb2JqZWN0IHNvIHdlIGNhbid0IHVzZSBhIFJldGFpblB0cjw+IGZvciBpdC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6IEZpeCB0eXBvIGluIGxvZ2dpbmcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2U6OmNhcGFiaWxpdGllcyk6IFVwZGF0ZSBmb3Ig
Y2FwYWJpbGl0aWVzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGll
cyBjaGFuZ2UuCisKIDIwMTUtMTAtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDYW5jZWwgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2tzIGxp
a2Ugd2UgZG8gY29udGVudCBwb2xpY3kgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bTo6bG9va1VwKGNvbnN0IFUKIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29u
dGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4+KCkpKTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJl
YW0pCkBAIC05NSw3ICs5NSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0UHVibGljU3RyZWFtKHRoaXMpOwogfQogCiBNZWRpYVN0
cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1Qcml2YXRlKQpAQCAtMTA1LDcgKzEwNiw4IEBA
IE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KICAgICAsIG1fYWN0aXZp
dHlFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0UHVibGljU3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBt
X3ByaXZhdGUtPnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0
cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsK
QEAgLTExNiw3ICsxMTgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1
dGlvbgogCiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPnNldFB1YmxpY1N0cmVhbShudWxscHRy
KTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2Vy
dmVyKHRoaXMpOwogfQogCiBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgp
CkBAIC0xOTksMTIgKzIwNCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayhNZWRp
YVN0cmVhCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRlcm5h
bEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4dCwgdHJhY2tQcml2YXRl
KSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKKyAgICBpZiAoIWdldFRyYWNrQnlJZCh0cmFj
a1ByaXZhdGUuaWQoKSkpCisgICAgICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZv
cm0pOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiB0cmFjayA9IGdldFRyYWNrQnlJZCh0cmFja1ByaXZhdGUuaWQoKSk7CisgICAgQVNTRVJUKHRy
YWNrKTsKICAgICBpbnRlcm5hbFJlbW92ZVRyYWNrKFdURjo6bW92ZSh0cmFjayksIFN0cmVhbU1v
ZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKQEAgLTI1NCw2ICsyNjEsNyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlCiAgICAgZXZlbnRzLnN3YXAobV9zY2hlZHVsZWRB
Y3Rpdml0eUV2ZW50cyk7CiAKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGJlIHJpZ2h0LCB0aGUgZXZlbnQgdHlwZSBpcyBzZXQg
ZnJvbSBtX2lzQWN0aXZlIGluIHNjaGVkdWxlQWN0aXZlU3RhdGVDaGFuZ2UhCiAgICAgICAgIG1f
aXNBY3RpdmUgPSBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudDsKICAg
ICAgICAgZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNlKCkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxl
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgeworY2xhc3Mg
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVh
bUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAot
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6cmVmOwotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgogICAgIHZp
cnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5nZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVu
ZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tQcm9kdWNpbmdEYXRh
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tS
ZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVy
aW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE5MTYzNykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRy
YWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDksMTQgKzY0OSwxMyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVT
dHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFT
dHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBBU1NFUlQocHJpdmF0ZVN0cmVh
bS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRoaXMgY2xhc3Mgc2hvdWxkbid0IGtub3cg
dGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlzIGEgTWVkaWFTdHJlYW0hCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHByaXZh
dGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25h
bGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQocHJpdmF0ZVN0
cmVhbS0+cHVibGljU3RyZWFtKCkpOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0g
PSBwcml2YXRlU3RyZWFtLT5wdWJsaWNTdHJlYW0oKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjIgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworY2xhc3MgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50OworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVk
aWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCk7CkBAIC01OCwxMTYgKzU2
LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotICAg
IHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7Ci0gICAg
dm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQot
ICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsK
LSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
Kik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1wbGVtZW50IG5lY2Vzc2FyeSBjb25mb3Jt
YXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVsZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAot
ICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH07CisgICAgLy8gTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBGSVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQg
bmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRhcmQgaW4gSFRNTE1lZGlhRWxlbWVudCBm
b3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlkZSB7IH07CisgICAgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwogI2VuZGlm
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2
YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOwotICAgIFBsYXRmb3JtTWVkaWEg
cGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBwbGF5KCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLQogICAgIHZvaWQgcGF1c2UoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsKLQogICAgIGJvb2wgcGF1c2VkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBib29sKTsKICAgICB2b2lkIHNldE11dGVk
KGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRWaXNp
YmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKSBvdmVycmlkZSB7
IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlIHsgfTsKLSAgICBib29sIHNl
ZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRl
IHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIGJv
b2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0
ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsgfQogCi0gICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JSZW5k
ZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxv
YWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07
IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwot
Ci0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVf
dCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKICAgICBi
b29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKKworICAgIGVudW0gUmVu
ZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRlcmluZ01vZGVVbmNoYW5nZWQsCisgICAg
ICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1
cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOworCisgICAgdm9pZCBjcmVh
dGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNldFBhdXNlZEltYWdlVmlzaWJsZShib29s
KTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+
KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOworICAgIC8v
IE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5n
ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSBvdmVycmlk
ZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKKyAgICBNZWRpYVBsYXllciogbV9wbGF5
ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIFJlZlB0cjxNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJpdmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZB
c3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+
IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0gICAgVmVjdG9yPFJldGFpblB0cjxBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwot
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJbWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+
IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFpblB0cjxpZD4gbV9kdXJhdGlvbk9ic2Vy
dmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Npb24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwotICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAgICBNZWRpYVRpbWUgbV9sYXN0U2Vla1Rp
bWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29sIG1fcGxheWluZzsKLSAgICBib29sIG1f
c2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRlZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9s
b2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX21lZGlh
U3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxDQUxheWVyPiBtX3ByZXZpZXdM
YXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX3BhdXNlZEltYWdlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsKKyAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5n
IH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7
IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5ld0ZyYW1lIHtmYWxzZSB9OworICAgIGJv
b2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9OwogICAgIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxOCArMjgsMTQgQEAKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQg
IkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5o
IgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9ydCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJl
YW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0jaW1w
b3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5o
IgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWVGltZS5oPgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4K
ICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNTAsMTggKzQ2LDYgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKLVNPRlRfTElOS19DTEFTU19P
UFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllcikKLVNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwotCi0jcHJhZ21hIG1hcmsgLQot
I3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1AaW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lv
biA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRV
Ukw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBlbmQKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25ldHdvcmtT
dGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAgICAsIG1fcGxheWluZygwKQotICAgICwg
bV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29tcGxldGVkKHRydWUpCi0gICAgLCBtX2xv
YWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7
Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyglcCkiLCB0aGlzKTsKIH0KIAog
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRlKQorICAgICAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21h
IG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeSgpCi0gICAg
ICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwotICAgIHN0YXRpYyBib29sIHR5cGVMaXN0
SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0eXBlTGlzdEluaXRpYWxpemVkKQotICAg
ICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAg
ICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVU
eXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5cGUgaW4gdHlwZXMpCi0gICAgICAgIGNh
Y2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICByZXR1cm4gY2FjaGU7CisgICAgcmV0dXJu
IEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykKIHsKLSAgICB0eXBlcyA9IG1pbWVU
eXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBj
YWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5
OCwxNzQgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaQogI3ByYWdt
YSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgT3ZlcnJp
ZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNv
bnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBN
ZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAg
ICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOwor
fQorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0
cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNl
dE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKE1l
ZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bG9hZCglcCkiLCB0aGlzKTsKIAotICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlID0gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6Y3JlYXRlKCp0aGlz
LCBzdHJlYW0pOwotICAgIGZvciAoYXV0byB0cmFjayA6IHN0cmVhbS50cmFja3MoKSkgewotICAg
ICAgICBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkVHJhY2soV1RGOjptb3ZlKHRyYWNrKSk7Ci0g
ICAgICAgIGlmICghdHJhY2stPmVuZGVkKCkpIHsKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7Ci0gICAgICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0
cnVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZSA9ICZzdHJl
YW07CisgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisKICAgICBtX3ByZXZp
ZXdMYXllciA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Q
cml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKLSAgICAgICAgICAgIG1fcHJldmlld0xheWVyID0g
c3RhdGljX2Nhc3Q8QVZWaWRlb0NhcHR1cmVTb3VyY2UqPih0cmFjay0+c291cmNlKCkpLT5wcmV2
aWV3TGF5ZXIoKTsKLSAgICB9Ci0gICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVu
ZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworCisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2so
W3RoaXNdIHsKKyAgICAgICAgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpJZGxlKTsKKyAg
ICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0
YWRhdGEpCisgICAgICAgICAgICB0aGlzLT5zZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlOjpIYXZlTWV0YWRhdGEpOworICAgIH0pOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCgpCiB7CisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCVwKSIsIHRo
aXMpOworICAgIHBhdXNlKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCkKIHsKLX0KLQotUGxhdGZvcm1NZWRpYSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAotewot
ICAgIFBsYXRmb3JtTWVkaWEgcG07Ci0gICAgcG0udHlwZSA9IFBsYXRmb3JtTWVkaWE6OkFWRm91
bmRhdGlvbkFzc2V0VHlwZTsKLSAgICBwbS5tZWRpYS5hdmZBc3NldCA9IG1fYXNzZXQuZ2V0KCk7
Ci0gICAgcmV0dXJuIHBtOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSglcCkiLCB0aGlzKTsKIH0KIAogUGxhdGZvcm1M
YXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVy
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJldmlld0xheWVyKQorICAgIGlmICghbV92aWRlb0Jh
Y2tncm91bmRMYXllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFBsYXRmb3JtTGF5ZXIqPihtX3ByZXZpZXdMYXllcik7CisKKyAgICByZXR1cm4gbV92
aWRlb0JhY2tncm91bmRMYXllci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnBsYXkoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldFBhdXNlZEltYWdlVmlzaWJsZShib29sIHZpc2libGUpCiB7Ci0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpc10gewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB3ZWFrVGhpcy5nZXQoKS0+cGxheUludGVybmFsKCk7Ci0gICAgfSk7CisgICAgaWYg
KCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8ICFtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAodmlzaWJsZSA9PSBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRk
ZW4pCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgZG8geworICAgICAgICBpZiAodmlzaWJs
ZSkgeworICAgICAgICAgICAgbV9jbG9jay0+c3RvcCgpOworCisgICAgICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmN1cnJlbnRGcmFtZUltYWdlKCk7
CisgICAgICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBtX3BhdXNlZEltYWdlID0gaW1hZ2UtPmdldENHSW1hZ2VSZWYoKTsKKyAgICAgICAg
ICAgIGlmICghbV9wYXVzZWRJbWFnZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5jb250ZW50cyA9IHN0YXRpY19jYXN0
PGlkPihtX3BhdXNlZEltYWdlLmdldCgpKTsKKyAgICAgICAgICAgIG1fcHJldmlld0xheWVyLmdl
dCgpLmhpZGRlbiA9IHRydWU7CisgICAgICAgICAgICBtX3dhaXRpbmdGb3JOZXdGcmFtZSA9IGZh
bHNlOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJp
dmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpIHsKKyAgICAgICAgICAgICAgICBtX3dhaXRpbmdGb3JO
ZXdGcmFtZSA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIG1fY2xvY2stPnN0YXJ0KCk7CisgICAgICAgICAgICBtX3dhaXRpbmdGb3JO
ZXdGcmFtZSA9IGZhbHNlOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVu
ID0gZmFsc2U7CisgICAgICAgICAgICBbbV92aWRlb0JhY2tncm91bmRMYXllciBzZXRDb250ZW50
czpuaWxdOworICAgICAgICAgICAgbV9wYXVzZWRJbWFnZSA9IG51bGxwdHI7CisgICAgICAgIH0K
KyAgICB9IHdoaWxlICgwKTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKLXZv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF5SW50ZXJuYWwoKQor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXkoKQogewotICAg
IG1fcGxheWluZyA9IHRydWU7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpwbGF5KCVwKSIsIHRoaXMpOwogCi0gICAgZm9yIChhdXRvJiB0cmFj
ayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkKLSAgICAgICAgdHJhY2stPnNvdXJj
ZSgpLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKyAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fcGxheWluZyA9IHRydWU7CisgICAgbV9oYXZlRXZl
clBsYXllZCA9IHRydWU7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKGZhbHNlKTsKIH0KIAog
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCkKIHsKLSAg
ICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIGNhbGxPbk1haW5UaHJlYWQo
W3dlYWtUaGlzXSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIHdlYWtUaGlzLmdldCgpLT5wYXVzZUludGVybmFsKCk7Ci0gICAgfSk7Ci19Cisg
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYXVz
ZSglcCkiLCB0aGlzKTsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnBhdXNlSW50ZXJuYWwoKQotewotICAgIG1fcGxheWluZyA9IGZhbHNlOworICAgIGlmICgh
bWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgZm9yIChhdXRvJiB0
cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkKLSAgICAgICAgdHJhY2stPnNv
dXJjZSgpLT5zdG9wUHJvZHVjaW5nRGF0YSgpOworICAgIHNldFBhdXNlZEltYWdlVmlzaWJsZSh0
cnVlKTsKKyAgICBtX3BsYXlpbmcgPSBmYWxzZTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlZCgpIGNvbnN0CiB7Ci0gICAgLy8gU2hvdWxkbid0
IGJlIGFibGUgdG8gcGF1c2Ugc3RyZWFtcwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
IW1fcGxheWluZzsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnNldFZvbHVtZShmbG9hdCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjppbnRlcm5hbFNldFZvbHVtZShmbG9hdCB2b2x1bWUsIGJvb2wgaW50ZXJuYWwpCiB7
CisgICAgaWYgKCFpbnRlcm5hbCkKKyAgICAgICAgbV92b2x1bWUgPSB2b2x1bWU7CisKKyAgICBp
ZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1F
OiBTZXQgdm9sdW1lIG9uY2Ugd2UgYWN0dWFsbHkgcGxheSBhdWRpby4KIH0KIAotYm9vbCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzU2Nhbm5pbmcoKSBjb25z
dAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZShm
bG9hdCB2b2x1bWUpCiB7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgaW50ZXJuYWxTZXRWb2x1bWUo
dm9sdW1lLCBmYWxzZSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpzZXRNdXRlZChib29sIG11dGVkKQogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBt
X01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBl
KCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICB0cmFj
ay0+c291cmNlKCktPnNldE11dGVkKG11dGVkKTsKLSAgICB9Ci19CisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRNdXRlZCglcCkiLCB0aGlz
KTsKIAotRmxvYXRTaXplIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bmF0
dXJhbFNpemUoKSBjb25zdAotewotICAgIEZsb2F0U2l6ZSBmbG9hdFNpemUoMCwgMCk7Ci0gICAg
Zm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewotICAg
ICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
bykgewotICAgICAgICAgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UqIHNvdXJjZSA9IChBVlZpZGVv
Q2FwdHVyZVNvdXJjZSopdHJhY2stPnNvdXJjZSgpOwotICAgICAgICAgICAgaWYgKCFzb3VyY2Ut
PnN0b3BwZWQoKSAmJiB0cmFjay0+ZW5hYmxlZCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHNv
dXJjZS0+d2lkdGgoKSA+IGZsb2F0U2l6ZS53aWR0aCgpKQotICAgICAgICAgICAgICAgICAgICBm
bG9hdFNpemUuc2V0V2lkdGgoc291cmNlLT53aWR0aCgpKTsKLSAgICAgICAgICAgICAgICBpZiAo
c291cmNlLT5oZWlnaHQoKSA+IGZsb2F0U2l6ZS5oZWlnaHQoKSkKLSAgICAgICAgICAgICAgICAg
ICAgZmxvYXRTaXplLnNldEhlaWdodChzb3VyY2UtPmhlaWdodCgpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmxvYXRTaXplOworICAgIGlmIChtdXRlZCA9
PSBtX211dGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX211dGVkID0gbXV0ZWQ7CisgICAg
CisgICAgaW50ZXJuYWxTZXRWb2x1bWUobXV0ZWQgPyAwIDogbV92b2x1bWUsIHRydWUpOwogfQog
CiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzVmlkZW8oKSBj
b25zdAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJh
Y2tzKCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6VmlkZW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+aGFzVmlkZW8o
KTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omhhc0F1
ZGlvKCkgY29uc3QKIHsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZh
dGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnNldFZpc2libGUoYm9vbCkKLXsKLSAgICAvLyBOby1vcC4KKyAgICBpZiAoIW1l
dGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICByZXR1
cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmhhc0F1ZGlvKCk7CiB9CiAKIE1lZGlhVGltZSBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmR1cmF0aW9uTWVkaWFUaW1lKCkgY29u
c3QKQEAgLTI4MiwxOSArMjc1LDcgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpjdXJyZW50TWVkaWFUaW1lKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSgxNDcxMjUpOiBNdXN0
IGltcGxlbWVudCB0aGlzIGxhdGVyCi0gICAgcmV0dXJuIE1lZGlhVGltZTo6emVyb1RpbWUoKTsK
LX0KLQotYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNlZWtpbmco
KSBjb25zdAotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGUKLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpz
ZXRSYXRlRG91YmxlKGRvdWJsZSkKLXsKLSAgICAvLyBNZWRpYVN0cmVhbSBpcyB1bnNlZWthYmxl
OyB0aGVyZWZvcmUsIGNhbm5vdCBzZXQgcmF0ZQorICAgIHJldHVybiBNZWRpYVRpbWU6OmNyZWF0
ZVdpdGhEb3VibGUobV9jbG9jay0+Y3VycmVudFRpbWUoKSk7CiB9CiAKIE1lZGlhUGxheWVyOjpO
ZXR3b3JrU3RhdGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuZXR3b3Jr
U3RhdGUoKSBjb25zdApAQCAtMzA3LDg1ICsyODgsMTI4IEBAIE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlIE1lZGlhUGxheWVyUHJpdmEKICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwogfQogCi12b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2l6ZUNoYW5nZWQoKQorTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpjdXJyZW50UmVhZHlTdGF0ZSgpCiB7Ci0gICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7Ci19
CisgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRlKSB7CisgICAgICAgIGlmIChtX21lZGlhU3Ry
ZWFtUHJpdmF0ZS0+YWN0aXZlKCkpCisgICAgICAgICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGU6OkhhdmVFbm91Z2hEYXRhOwogCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1l
UmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNlZWthYmxlKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+
KG1pbk1lZGlhVGltZVNlZWthYmxlKCksIG1heE1lZGlhVGltZVNlZWthYmxlKCkpOwotfQorICAg
ICAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVDdXJyZW50RGF0YTsKKyAg
ICB9CiAKLU1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1h
eE1lZGlhVGltZVNlZWthYmxlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZHVyYXRpb25NZWRpYVRp
bWUoKTsKKyAgICByZXR1cm4gTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6OkhhdmVOb3RoaW5nOwog
fQogCi1NZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjptaW5N
ZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCgpCiB7Ci0gICAgcmV0dXJuIHN0YXJ0VGlt
ZSgpOwotfQorICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG5ld1JlYWR5U3RhdGUgPSBjdXJy
ZW50UmVhZHlTdGF0ZSgpOwogCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmJ1ZmZlcmVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CisgICAg
c2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXMsIG5ld1JlYWR5U3RhdGVdIHsKKyAgICAgICAgaWYg
KG5ld1JlYWR5U3RhdGUgIT0gbV9yZWFkeVN0YXRlKQorICAgICAgICAgICAgc2V0UmVhZHlTdGF0
ZShuZXdSZWFkeVN0YXRlKTsKKyAgICB9KTsKIH0KIAotYm9vbCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OmRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0CitNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OlJlbmRlcmluZ01vZGVTdGF0dXMgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZs
b2F0U2l6ZSYgc2l6ZSkKIHsKLSAgICBib29sIGxvYWRpbmdQcm9ncmVzc2VkID0gbV9sb2FkaW5n
UHJvZ3Jlc3NlZDsKLSAgICBtX2xvYWRpbmdQcm9ncmVzc2VkID0gZmFsc2U7Ci0gICAgcmV0dXJu
IGxvYWRpbmdQcm9ncmVzc2VkOwotfQorICAgIGlmIChzaXplID09IG1faW50cmluc2ljU2l6ZSkK
KyAgICAgICAgcmV0dXJuIFJlbmRlcmluZ01vZGVVbmNoYW5nZWQ7CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRTaXplKGNvbnN0IEludFNpemUmKQotewot
ICAgIC8vIE5vLW9wLgorICAgIG1faW50cmluc2ljU2l6ZSA9IHNpemU7CisKKyAgICBpZiAobV92
aWRlb0JhY2tncm91bmRMYXllciB8fCAhbV9wbGF5ZXIgfHwgIW1fcGxheWVyLT5jbGllbnQoKS5t
ZWRpYVBsYXllclJlbmRlcmluZ0NhbkJlQWNjZWxlcmF0ZWQobV9wbGF5ZXIpKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKworICAgIGlmICghbV9tZWRpYVN0cmVhbVBy
aXZhdGUgfHwgIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wbGF0Zm9ybUxheWVyKCkpCisgICAgICAg
IHJldHVybiBSZW5kZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgY3JlYXRlUHJldmlld0xheWVy
cygpOworCisgICAgcmV0dXJuIFJlbmRlcmluZ01vZGVDaGFuZ2VkOwogfQogCi1SZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjcmVhdGVJ
bWFnZUZyb21TYW1wbGVCdWZmZXIoQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQordm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZVByZXZpZXdMYXll
cnMoKQogewotICAgIENWUGl4ZWxCdWZmZXJSZWYgaW1hZ2VCdWZmZXIgPSBzdGF0aWNfY2FzdDxD
VlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKHNhbXBsZUJ1ZmZl
cikpOwotICAgIENWUGl4ZWxCdWZmZXJMb2NrQmFzZUFkZHJlc3MoaW1hZ2VCdWZmZXIsIDApOwot
ICAgIAotICAgIHZvaWQgKmJhc2VBZGRyZXNzID0gQ1ZQaXhlbEJ1ZmZlckdldEJhc2VBZGRyZXNz
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgYnl0ZXNQZXJSb3cgPSBDVlBpeGVsQnVmZmVyR2V0
Qnl0ZXNQZXJSb3coaW1hZ2VCdWZmZXIpOwotICAgIHNpemVfdCB3aWR0aCA9IENWUGl4ZWxCdWZm
ZXJHZXRXaWR0aChpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENWUGl4ZWxCdWZm
ZXJHZXRIZWlnaHQoaW1hZ2VCdWZmZXIpOwotICAgIAotICAgIFJldGFpblB0cjxDR0NvbG9yU3Bh
Y2VSZWY+IGNvbG9yU3BhY2UgPSBhZG9wdENGKENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigp
KTsKLSAgICBSZXRhaW5QdHI8Q0dEYXRhUHJvdmlkZXJSZWY+IHByb3ZpZGVyID0gYWRvcHRDRihD
R0RhdGFQcm92aWRlckNyZWF0ZVdpdGhEYXRhKE5VTEwsIGJhc2VBZGRyZXNzLCBieXRlc1BlclJv
dyAqIGhlaWdodCwgTlVMTCkpOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBxdWFydHpJbWFn
ZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZSh3aWR0aCwgaGVpZ2h0LCA4LCAzMiwgYnl0ZXNQZXJS
b3csIGNvbG9yU3BhY2UuZ2V0KCksIGtDR0JpdG1hcEJ5dGVPcmRlcjMyTGl0dGxlIHwga0NHSW1h
Z2VBbHBoYVByZW11bHRpcGxpZWRGaXJzdCwgcHJvdmlkZXIuZ2V0KCksIE5VTEwsIHRydWUsIGtD
R1JlbmRlcmluZ0ludGVudERlZmF1bHQpKTsKLSAgICAKLSAgICBDVlBpeGVsQnVmZmVyVW5sb2Nr
QmFzZUFkZHJlc3MoaW1hZ2VCdWZmZXIsIDApOwotICAgIAotICAgIHJldHVybiBxdWFydHpJbWFn
ZTsKKyAgICBpZiAobV92aWRlb0JhY2tncm91bmRMYXllcikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV92aWRlb0JhY2tncm91bmRMYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0
XSk7CisgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5iYWNrZ3JvdW5kQ29sb3IgPSBD
R0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xvckNsZWFyKTsKKyNpZm5kZWYgTkRFQlVHCisg
ICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5uYW1lID0gQCJNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMgcHJldmlldyBiYWNrZ3JvdW5kIGxheWVyIjsKKyNlbmRpZgor
CisgICAgbV9wcmV2aWV3TGF5ZXIgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cGxhdGZvcm1MYXll
cigpOworICAgIG1fcHJldmlld0xheWVyLmdldCgpLmNvbnRlbnRzR3Jhdml0eSA9IGtDQUdyYXZp
dHlSZXNpemU7CisgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuYW5jaG9yUG9pbnQgPSBDR1BvaW50
WmVybzsKKyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hdXRvcmVzaXppbmdNYXNrID0ga0NBTGF5
ZXJXaWR0aFNpemFibGUgfCBrQ0FMYXllckhlaWdodFNpemFibGU7CisgICAgaWYgKCFtX3BsYXlp
bmcpCisgICAgICAgIG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbiA9IHRydWU7CisKKyAgICBb
bV92aWRlb0JhY2tncm91bmRMYXllciBhZGRTdWJsYXllcjptX3ByZXZpZXdMYXllci5nZXQoKV07
CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2Vk
KCkKIHsKLSAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAg
ICBSZW5kZXJpbmdNb2RlU3RhdHVzIHN0YXR1cyA9IFJlbmRlcmluZ01vZGVVbmNoYW5nZWQ7Cisg
ICAgYm9vbCBzaXplQ2hhbmdlZCA9IGZhbHNlOworCisgICAgRmxvYXRTaXplIGludHJpbnNpY1Np
emUgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+aW50cmluc2ljU2l6ZSgpOworICAgIGlmIChpbnRy
aW5zaWNTaXplLmhlaWdodCgpICE9IG1faW50cmluc2ljU2l6ZS5oZWlnaHQoKSB8fCBpbnRyaW5z
aWNTaXplLndpZHRoKCkgIT0gbV9pbnRyaW5zaWNTaXplLndpZHRoKCkpIHsKKyAgICAgICAgc3Rh
dHVzID0gdXBkYXRlSW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKTsKKyAgICAgICAgc2l6ZUNo
YW5nZWQgPSB0cnVlOworICAgIH0KKworICAgIGlmIChtX3dhaXRpbmdGb3JOZXdGcmFtZSAmJiBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgIHNldFBhdXNl
ZEltYWdlVmlzaWJsZShmYWxzZSk7CisKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBuZXdS
ZWFkeVN0YXRlID0gY3VycmVudFJlYWR5U3RhdGUoKTsKKyAgICBzY2hlZHVsZURlZmVycmVkVGFz
ayhbdGhpcywgc2l6ZUNoYW5nZWQsIG5ld1JlYWR5U3RhdGUsIHN0YXR1c10geworICAgICAgICBp
ZiAobmV3UmVhZHlTdGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0
YXRlKG5ld1JlYWR5U3RhdGUpOworCisgICAgICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgbV9wbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpOwor
ICAgICAgICBpZiAoc2l6ZUNoYW5nZWQpIHsKKyAgICAgICAgICAgIG1fcGxheWVyLT5zaXplQ2hh
bmdlZCgpOworICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBSZW5kZXJpbmdNb2RlQ2hhbmdlZCkK
KyAgICAgICAgICAgICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdN
b2RlQ2hhbmdlZChtX3BsYXllcik7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCitzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnNlZWthYmxlKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSgxMjUxNTcpOiBJbXBsZW1lbnQgcGFp
bnRpbmcuCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigp
OwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9y
dHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1U
aW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmJ1ZmZlcmVk
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiB9CiAKLU1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bW92aWVMb2FkVHlwZSgpIGNv
bnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0
dXJuIE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtOworICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KGNvbnRleHQsIHJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cHJlcGFyZUZvclJlbmRlcmluZygpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3ND
b250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgLy8gTm8tb3Au
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxl
ZCgpIHx8ICFtX2hhdmVFdmVyUGxheWVkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9w
bGF5aW5nKQorICAgICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoY29udGV4dCwgcmVjdCk7CisgICAgZWxzZSBpZiAobV9wYXVzZWRJbWFnZSkgewor
ICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7Cisg
ICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0
KCkpOworICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgICAgICBj
b250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7Cisg
ICAgICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lk
dGgoKSwgcmVjdC5oZWlnaHQoKSkpOworICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4
dC5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwg
cGFpbnRSZWN0LmhlaWdodCgpKSwgbV9wYXVzZWRJbWFnZS5nZXQoKSk7CisgICAgfQogfQogCiBT
dHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbmdpbmVEZXNjcmlw
dGlvbigpIGNvbnN0CkBAIC0zOTQsMTcgKzQxOCw2IEBAIFN0cmluZyBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk8KICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKLVN0cmluZyBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVk
aW9UcmFjaygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUUoMTI1MTU4KTogaW1wbGVtZW50IGxhbmd1
YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpCi0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0K
LXNpemVfdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmV4dHJhTWVtb3J5
Q29zdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGJvb2wgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaG91bGRCZVBsYXlpbmcoKSBjb25zdAogewogICAgIHJl
dHVybiBtX3BsYXlpbmcgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpIYXZlRnV0dXJl
RGF0YTsKQEAgLTQyMCw2ICs0MzMsMjcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iagogICAgIG1fcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOwogfQogCit2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TmV0d29ya1N0YXRlKE1l
ZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKQoreworICAgIGlmIChtX25ldHdv
cmtTdGF0ZSA9PSBuZXR3b3JrU3RhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbmV0d29y
a1N0YXRlID0gbmV0d29ya1N0YXRlOworICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2Vk
KCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzY2hl
ZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAg
QVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwor
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAo
IXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7Cisg
ICAgfSk7Cit9CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0
cmVhbVByaXZhdGVBVkZPYmpDLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTWVkaWFT
dHJlYW1Qcml2YXRlQVZGT2JqQ19oCi0jZGVmaW5lIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakNf
aAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0j
aW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0
Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLU9CSkNfQ0xBU1MgQVZB
c3NldDsKLU9CSkNfQ0xBU1MgQVZTdHJlYW1EYXRhUGFyc2VyOwotT0JKQ19DTEFTUyBOU0Vycm9y
OwotT0JKQ19DTEFTUyBOU09iamVjdDsKLXR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVm
ZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
RE1TZXNzaW9uOwotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOwot
Y2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
OwotY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOwotY2xhc3MgVGltZVJhbmdlczsKLQotY2xhc3Mg
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmVhbVByaXZh
dGUgewotcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qz4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpOwotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoKTsK
LQotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyogcGxheWVyKCkgY29u
c3QgeyByZXR1cm4gbV9wbGF5ZXI7IH0KLQotICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1Qcml2YXRl
Q2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQotICAgIHZp
cnR1YWwgdm9pZCBzZXRDbGllbnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsg
bV9jbGllbnQgPSBjbGllbnQ7IH0KLQotICAgIE1lZGlhVGltZSBkdXJhdGlvbigpOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7Ci0KLSAgICBib29s
IGhhc0F1ZGlvKCkgY29uc3Q7Ci0gICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0OwotCi0gICAgdm9p
ZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKLSAgICBGbG9hdFNpemUg
bmF0dXJhbFNpemUoKSBjb25zdDsKLQotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5
U3RhdGUoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
KE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYsIE1lZGlhU3RyZWFtUHJpdmF0
ZSYpOwotCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBtX3BsYXll
cjsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiBtX2NsaWVudDsKLX07Ci0g
ICAgCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFU
SU9OKQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaCIKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNpbXBvcnQgIkNvbnRlbnRUeXBlLmgi
Ci0jaW1wb3J0ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKLSNpbXBvcnQgIk1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCi0jaW1wb3J0ICJTb2Z0TGlua2luZy5oIgotI2ltcG9ydCAiU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMuaCIKLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgotI2ltcG9ydCA8d3RmL3Rl
eHQvQXRvbWljU3RyaW5nLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI3ByYWdtYSBtYXJrIC0KLSNwcmFnbWEgbWFyayBNZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDCi0KLVJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
PiBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQsIE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQyhwYXJlbnQs
IHN0cmVhbSkpOwotfQotCi1NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpNZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYgcGFyZW50
LCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKLSAgICA6IE1lZGlhU3RyZWFtUHJpdmF0ZSgq
c3RyZWFtLmNsaWVudCgpKQotICAgICwgbV9wbGF5ZXIoJnBhcmVudCkKLXsKLX0KLQotTWVkaWFT
dHJlYW1Qcml2YXRlQVZGT2JqQzo6fk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoKQotewotfQot
Ci1NZWRpYVRpbWUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6ZHVyYXRpb24oKQotewotICAg
IHJldHVybiBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7Ci19Ci0KLXN0ZDo6dW5p
cXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6OmJ1
ZmZlcmVkKCkKLXsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4oKTsKLX0KLQotTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZG
T2JqQzo6cmVhZHlTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5yZWFkeVN0
YXRlKCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0
ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKQotewotICAgIG1fcGxheWVyLT5z
ZXRSZWFkeVN0YXRlKHJlYWR5U3RhdGUpOwotfQotCi1ib29sIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakM6Omhhc0F1ZGlvKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPmhhc0F1ZGlv
KCk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25z
dAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzVmlkZW8oKTsKLX0KLQotRmxvYXRTaXplIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxTaXplKCkgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9wbGF5ZXItPm5hdHVyYWxTaXplKCk7Ci19Ci0gICAgCi19Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
QEAgLTMxLDEyICszMiwxNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNp
bmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJVVUlELmgiCisjaW5jbHVkZSA8
d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KIApAQCAtNjIsMjUgKzY1LDMzIEBAIFJlZlB0cjxNZWRpYVN0cmVhbVBy
aXZhdGU+IE1lZGlhU3RyZWFtUHIKIH0KIAogTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVh
bVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVW
ZWN0b3ImIHRyYWNrcykKLSAgICA6IG1faWQoaWQpCisgICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRo
aXMpCisgICAgLCBtX2lkKGlkKQogewogICAgIEFTU0VSVCghbV9pZC5pc0VtcHR5KCkpOwogCi0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IHRyYWNrcykKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogdHJh
Y2tzKSB7CisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIG1fdHJh
Y2tTZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZl
U3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpEb250Tm90aWZ5KTsKIH0KIAotTWVkaWFTdHJlYW1Q
cml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50JiBjbGll
bnQpCi0gICAgOiBtX2NsaWVudCgmY2xpZW50KQorTWVkaWFTdHJlYW1Qcml2YXRlOjp+TWVkaWFT
dHJlYW1Qcml2YXRlKCkKK3sKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZE9ic2Vy
dmVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogeworICAgIG1fb2Jz
ZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRpYVN0cmVhbVByaXZhdGU6On5NZWRp
YVN0cmVhbVByaXZhdGUoKQordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZU9ic2VydmVy
KE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIG1fY2xpZW50
ID0gbnVsbHB0cjsKLSAgICBtX2lzQWN0aXZlID0gZmFsc2U7CisgICAgc2l6ZV90IHBvcyA9IG1f
b2JzZXJ2ZXJzLmZpbmQoJm9ic2VydmVyKTsKKyAgICBpZiAocG9zICE9IG5vdEZvdW5kKQorICAg
ICAgICBtX29ic2VydmVycy5yZW1vdmUocG9zKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGVWZWN0b3IgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja3MoKSBjb25zdApAQCAtOTQsMjEgKzEw
NSwyOSBAQCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBNZWRpYVN0cmVhCiAKIHZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjp1cGRhdGVBY3RpdmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb24g
bm90aWZ5Q2xpZW50T3B0aW9uKQogewotICAgIC8vIEEgc3RyZWFtIGlzIGFjdGl2ZSBpZiBpdCBo
YXMgYXQgbGVhc3Qgb25lIHVuLWVuZGVkIHRyYWNrLgogICAgIGJvb2wgbmV3QWN0aXZlU3RhdGUg
PSBmYWxzZTsKKyAgICBtX2FjdGl2ZVZpZGVvVHJhY2sgPSBudWxscHRyOwogICAgIGZvciAoYXV0
byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisKICAgICAgICAgaWYgKCF0cmFjay0+
ZW5kZWQoKSkgewogICAgICAgICAgICAgbmV3QWN0aXZlU3RhdGUgPSB0cnVlOwotICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLT50eXBlKCkgPT0gUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pIHsKKyAgICAgICAgICAgICAgICBtX2FjdGl2
ZVZpZGVvVHJhY2sgPSB0cmFjay5nZXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIEEgc3RyZWFtIGlzIGFjdGl2ZSBp
ZiBpdCBoYXMgYXQgbGVhc3Qgb25lIHVuLWVuZGVkIHRyYWNrLgogICAgIGlmIChuZXdBY3RpdmVT
dGF0ZSA9PSBtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm47CisKICAgICBtX2lzQWN0aXZlID0g
bmV3QWN0aXZlU3RhdGU7CiAKLSAgICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9u
ID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+YWN0aXZl
U3RhdHVzQ2hhbmdlZCgpOworICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xp
ZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2Jz
ZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmFjdGl2ZVN0YXR1c0NoYW5nZWQoKTsKKyAg
ICB9CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhSZWZQdHI8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+JiYgdHJhY2ssIE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGll
bnRPcHRpb24pCkBAIC0xMTksOCArMTM4LDEwIEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjph
ZGRUcmFjayhSZWZQdHIKICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIG1fdHJh
Y2tTZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CiAKLSAgICBpZiAobV9jbGllbnQgJiYgbm90
aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KQotICAgICAgICBt
X2NsaWVudC0+ZGlkQWRkVHJhY2soKnRyYWNrLmdldCgpKTsKKyAgICBpZiAobm90aWZ5Q2xpZW50
T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7CisgICAgICAgIGZvciAoYXV0
byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9ic2VydmVyLT5kaWRBZGRU
cmFjaygqdHJhY2suZ2V0KCkpOworICAgIH0KIAogICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKG5vdGlm
eUNsaWVudE9wdGlvbik7CiB9CkBAIC0xMzIsMTIgKzE1MywxNDIgQEAgdm9pZCBNZWRpYVN0cmVh
bVByaXZhdGU6OnJlbW92ZVRyYWNrKE1lZAogCiAgICAgdHJhY2sucmVtb3ZlT2JzZXJ2ZXIoKnRo
aXMpOwogCi0gICAgaWYgKG1fY2xpZW50ICYmIG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlD
bGllbnRPcHRpb246Ok5vdGlmeSkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlbW92ZVRyYWNrKHRy
YWNrKTsKKyAgICBpZiAobm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6
Tm90aWZ5KSB7CisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAg
ICAgICAgICAgIG9ic2VydmVyLT5kaWRSZW1vdmVUcmFjayh0cmFjayk7CisgICAgfQogCiAgICAg
dXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOwogfQogCit2b2lk
IE1lZGlhU3RyZWFtUHJpdmF0ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBmb3IgKGF1
dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnN0YXJ0UHJv
ZHVjaW5nRGF0YSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c3RvcFByb2R1Y2lu
Z0RhdGEoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQor
ICAgICAgICB0cmFjay0+c3RvcFByb2R1Y2luZ0RhdGEoKTsKK30KKworYm9vbCBNZWRpYVN0cmVh
bVByaXZhdGU6OmlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiB0cmFj
ayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5pc1Byb2R1Y2lu
Z0RhdGEoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgTWVkaWFTdHJlYW1Qcml2YXRlOjpoYXNWaWRlbygpCit7CisgICAgZm9y
IChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNr
LT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYgdHJhY2stPmVu
YWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgTWVkaWFTdHJlYW1Qcml2YXRlOjpoYXNBdWRpbygpCit7CisgICAgZm9y
IChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNr
LT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gJiYgdHJhY2stPmVu
YWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK0Zsb2F0U2l6ZSBNZWRpYVN0cmVhbVByaXZhdGU6OmludHJpbnNpY1NpemUoKSBj
b25zdAoreworICAgIEZsb2F0U2l6ZSBzaXplOworCisgICAgaWYgKG1fYWN0aXZlVmlkZW9UcmFj
aykgeworICAgICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMgPSBt
X2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5zdGF0ZXMoKTsKKyAgICAgICAgc2l6ZS5zZXRX
aWR0aChzdGF0ZXMud2lkdGgoKSk7CisgICAgICAgIHNpemUuc2V0SGVpZ2h0KHN0YXRlcy5oZWln
aHQoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNpemU7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2Fj
dGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1f
YWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPnBsYXRmb3JtTGF5ZXIoKTsKK30KKwordm9pZCBN
ZWRpYVN0cmVhbVByaXZhdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGlmIChjb250ZXh0
LnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGFjdGl2ZSgp
ICYmIG1fYWN0aXZlVmlkZW9UcmFjaykKKyAgICAgICAgbV9hY3RpdmVWaWRlb1RyYWNrLT5zb3Vy
Y2UoKS0+cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7CisgICAgZWxz
ZSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0
KTsKKyAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5o
ZWlnaHQoKSk7CisgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAg
ICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lkdGgo
KSwgcmVjdC5oZWlnaHQoKSkpOworICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHBhaW50UmVjdCwg
Q29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICB9Cit9CisKK1JlZlB0cjxJ
bWFnZT4gTWVkaWFTdHJlYW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSgpCit7CisgICAgaWYg
KCFhY3RpdmUoKSAmJiAhbV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5jdXJyZW50RnJh
bWVJbWFnZSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y2hhcmFjdGVyaXN0aWNz
Q2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAg
ICAgICBvYnNlcnZlci0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlh
U3RyZWFtUHJpdmF0ZTo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGNoYXJhY3Rl
cmlzdGljc0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6
OnRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY2hh
cmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJh
Y2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgc2NoZWR1
bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgp
OworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tQcm9kdWNpbmdE
YXRhQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgc2NoZWR1bGVEZWZl
cnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworICAg
IH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJlZFRhc2so
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uKQoreworICAgIEFTU0VSVChmdW5jdGlvbik7
CisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFt3ZWFrVGhpcywgZnVuY3Rpb25dIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEVyaWNzc29uIEFCLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzUsMjggKzM2LDMyIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisj
aW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2lu
Y2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGU7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudD4gewotcHVibGljOgot
ICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCgpIHsgfQotCi0gICAgdmlydHVh
bCB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFk
ZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKLX07CitjbGFzcyBN
ZWRpYVN0cmVhbTsKIAogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDogcHVibGljIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Q
cml2YXRlPiB7CiBwdWJsaWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgY2hh
cmFjdGVyaXN0aWNzQ2hhbmdlZCgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgYWN0aXZlU3Rh
dHVzQ2hhbmdlZCgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgeyB9CisgICAgfTsKKwogICAgIHN0YXRpYyBS
ZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGUoY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPj4mIHZpZGVvU291cmNlcyk7CiAgICAgc3RhdGljIFJlZlB0cjxNZWRp
YVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3Rv
ciYpOwogCkBAIC02NCw4ICs2OSwxMSBAQCBwdWJsaWM6CiAKICAgICBlbnVtIGNsYXNzIE5vdGlm
eUNsaWVudE9wdGlvbiB7IE5vdGlmeSwgRG9udE5vdGlmeSB9OwogCi0gICAgTWVkaWFTdHJlYW1Q
cml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQotICAgIHZv
aWQgc2V0Q2xpZW50KE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9CisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOworICAgIHZvaWQg
cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKworICAgIE1lZGlhU3RyZWFtKiBwdWJsaWNTdHJl
YW0oKSBjb25zdCB7IHJldHVybiBtX3B1YmxpY1N0cmVhbTsgfQorICAgIHZvaWQgc2V0UHVibGlj
U3RyZWFtKE1lZGlhU3RyZWFtKiBzdHJlYW0pIHsgbV9wdWJsaWNTdHJlYW0gPSBzdHJlYW07IH0K
IAogICAgIFN0cmluZyBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIApAQCAtNzcsMjEgKzg1
LDQxIEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiwgTm90aWZ5Q2xpZW50T3B0aW9uID0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3Rp
ZnkpOwogICAgIHZvaWQgcmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBOb3Rp
ZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAKLXByb3RlY3Rl
ZDoKLSAgICBleHBsaWNpdCBNZWRpYVN0cmVhbVByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlQ2xp
ZW50Jik7CisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKTsKKyAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKCk7CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdDsKKworICAgIFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBSZWZQdHI8SW1hZ2U+IGN1
cnJlbnRGcmFtZUltYWdlKCk7CisgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKKworICAgIGJvb2wgaGFzVmlkZW8o
KTsKKyAgICBib29sIGhhc0F1ZGlvKCk7CisKKyAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSgp
IGNvbnN0OworCisgICAgV2Vha1B0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRl
OgogICAgIE1lZGlhU3RyZWFtUHJpdmF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZVZlY3RvciYpOwogCiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdHJhY2tTdGF0
ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0KLSAgICBN
ZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9OworICAgIHZvaWQg
dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgdHJhY2tQcm9kdWNpbmdEYXRhQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworCisgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3ND
aGFuZ2VkKCk7CisKKyAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248
dm9pZCgpPik7CisKKyAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVN0cmVhbVByaXZhdGU+IG1fd2Vh
a1B0ckZhY3Rvcnk7CisgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CisgICAgTWVk
aWFTdHJlYW0qIG1fcHVibGljU3RyZWFtIHsgbnVsbHB0ciB9OwogICAgIFN0cmluZyBtX2lkOwot
ICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07Ci0KKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZSogbV9hY3RpdmVWaWRlb1RyYWNrIHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5n
LCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrU2V0OworICAgIGJvb2wg
bV9pc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPj4gTWVkaWFTdHJlYW1Qcml2YXRlVmVjdG9yOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzgsNiArMTc4LDE4IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OnNvdXJjZVN0YXQKICAgICAgICAgb2JzZXJ2ZXItPnRyYWNrU3RhdGVzQ2hhbmdlZCgqdGhpcyk7
CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVByb2R1Y2luZ0RhdGFD
aGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAg
ICAgIG9ic2VydmVyLT50cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKCp0aGlzKTsKK30KKwordm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQoreworICAg
IGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnRy
YWNrRW5hYmxlZENoYW5nZWQoKnRoaXMpOworfQorCiBib29sIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkKIHsKICAgICByZXR1cm4gIW1faXNFbmRl
ZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZp
cnR1YWwgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja1Byb2R1
Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOworICAgICAgICB2
aXJ0dWFsIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
ID0gMDsKICAgICB9OwogICAgIAogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1By
aXZhdGU+IGNyZWF0ZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CkBAIC02Miw2ICs2
NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyBtX3NvdXJj
ZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkg
eyBtX3NvdXJjZS0+c3RvcFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIGJvb2wgaXNQcm9kdWNpbmdE
YXRhKCkgeyByZXR1cm4gbV9zb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpOyB9CiAKICAgICBib29s
IG11dGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNdXRlZChib29sIG11dGVkKSBjb25zdCB7IG1f
c291cmNlLT5zZXRNdXRlZChtdXRlZCk7IH0KQEAgLTk4LDcgKzEwMSw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVN0YXRlc0NoYW5n
ZWQoKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2Vk
KCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkg
b3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIG92ZXJyaWRl
IGZpbmFsOwogCiAgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5j
cHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAx
LDIyIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhdGVzRGlkQ2hhbmcKICAgICAgICAg
b2JzZXJ2ZXItPnNvdXJjZVN0YXRlc0NoYW5nZWQoKTsKIH0KIAordm9pZCBSZWFsdGltZU1lZGlh
U291cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKQoreworICAgIGZvciAoYXV0byYgb2Jz
ZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZVByb2R1Y2luZ0Rh
dGFDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0RW5hYmxlZChi
b29sIGVuYWJsZWQpCit7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2VuYWJsZWQgPSBlbmFibGVkOworICAgIGZvciAoYXV0byYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZUVuYWJsZWRDaGFuZ2Vk
KCk7Cit9CisKIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVhZG9ubHkoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3JlYWRvbmx5OwpAQCAtMTE5LDYgKzEzNSw3IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6c3RvcChPYnNlcnZlcioKICAgICB9CiAKICAgICBzdG9wUHJvZHVjaW5nRGF0
YSgpOworICAgIHJlc2V0KCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVz
dFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsOSBAQAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVy
LmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KQEAgLTQ1LDYgKzQ3LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBNZWRpYUNvbnN0
cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlczsKQEAgLTU5LDYgKzYzLDggQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZv
aWQgc291cmNlU3RvcHBlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZU11dGVk
Q2hhbmdlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0YXRlc0NoYW5nZWQo
KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VQcm9kdWNpbmdEYXRhQ2hhbmdlZCgp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgPSAwOwog
CiAgICAgICAgIC8vIE9ic2VydmVyIHN0YXRlIHF1ZXJpZXMuCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkgPSAwOwpAQCAtNjYsOCArNzIsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkgeyB9CiAKLSAgICBib29s
IGlzQXVkaW9TdHJlYW1Tb3VyY2UoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXVkaW87IH0K
LQogICAgIGNvbnN0IFN0cmluZyYgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKICAgICBj
b25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyc2lzdGVudElE
OyB9CkBAIC04Miw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGZpdG5l
c3NTY29yZSgpIGNvbnN0IHsgcmV0dXJuIG1fZml0bmVzc1Njb3JlOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldEZpdG5lc3NTY29yZShjb25zdCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUpIHsgbV9maXRu
ZXNzU2NvcmUgPSBmaXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMoKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBz
dGF0ZXMoKSA9IDA7CiAgICAgdm9pZCBzdGF0ZXNEaWRDaGFuZ2VkKCk7CiAgICAgCkBAIC05Nywx
OSArMTAxLDI4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVtb3RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZW1vdGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlKGJvb2wgcmVtb3Rl
KSB7IG1fcmVtb3RlID0gcmVtb3RlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChi
b29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxl
ZDsgfQorCiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0Rh
dGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgaXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlKCk7CiAKICAgICB2b2lkIHN0
b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlciA9IG51bGxwdHIpOwogICAgIHZvaWQgcmVxdWVz
dFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlciA9IG51bGxwdHIpOwogCi0gICAgdm9pZCBy
ZXNldCgpOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwogCiAgICAgdmlydHVhbCBBdWRpb1Nv
dXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQot
ICAgIAorCisgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBjdXJyZW50RnJh
bWVJbWFnZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJy
ZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgeyB9
CisKIHByb3RlY3RlZDoKICAgICBSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQs
IFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKQEAgLTEyNCw2ICsxMzcsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9tdXRlZDsKICAgICBib29sIG1fcmVhZG9ubHk7CiAgICAgYm9vbCBtX3Jl
bW90ZTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKICAgICAKICAgICB1bnNpZ25lZCBt
X2ZpdG5lc3NTY29yZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQXVkaW9DYXB0dXJlU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDEwICs1OCwxMiBA
QCBwcml2YXRlOgogICAgIEFWQXVkaW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNv
bnN0IEF0b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogICAgIHZp
cnR1YWwgfkFWQXVkaW9DYXB0dXJlU291cmNlKCk7CiAgICAgCi0gICAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJikgb3ZlcnJpZGU7CisKICAgICB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1w
bGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJl
ZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopIG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgc2V0dXBD
YXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOworICAgIHZvaWQgc2h1dGRvd25DYXB0dXJlU2Vzc2lv
bigpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlU3RhdGVzKCkgb3ZlcnJpZGU7CiAgICAgQXVk
aW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIG92ZXJyaWRlOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVT
b3VyY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2Uu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxNiBAQAogCiAjaW1wb3J0ICJDb3JlTWVk
aWFTb2Z0TGluay5oIgogCit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5lbCBBVkNhcHR1cmVB
dWRpb0NoYW5uZWxUeXBlOwordHlwZWRlZiBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQgQVZDYXB0
dXJlQXVkaW9EYXRhT3V0cHV0VHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlQ29ubmVjdGlvbiBBVkNh
cHR1cmVDb25uZWN0aW9uVHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlIEFWQ2FwdHVyZURl
dmljZVR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZURldmljZUlucHV0IEFWQ2FwdHVyZURldmljZUlu
cHV0VHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlT3V0cHV0IEFWQ2FwdHVyZU91dHB1dFR5cGU7Ci10
eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXRU
eXBlOwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAorU09G
VF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQXVkaW9DaGFubmVsKQogU09GVF9M
SU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0KQogU09GVF9M
SU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQ29ubmVjdGlvbikKIFNPRlRfTElOS19D
TEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSkKQEAgLTc3LDEwICs3OSwxMCBAQCBB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6fkFWQXVkaW9DYXB0dXJlU291CiB7CiB9CiAKLVJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2Fw
YWJpbGl0aWVzKCkgY29uc3QKK3ZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVD
YXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyZjYXBhYmlsaXRpZXMp
CiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAvLyBG
SVhNRTogZmluaXNoIHRoaXMgaW1wbGVtZW50YXRpb24KKyAgICBjYXBhYmlsaXRpZXMuYWRkU291
cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsKIH0KIAogdm9p
ZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKCkKQEAgLTkwLDExICs5Miw4IEBA
IHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZVN0YXRlcygKIAogdm9pZCBBVkF1ZGlv
Q2FwdHVyZVNvdXJjZTo6YWRkT2JzZXJ2ZXIoQVZBdWRpb0NhcHR1cmVTb3VyY2U6Ok9ic2VydmVy
KiBvYnNlcnZlcikKIHsKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2xvY2spOwot
ICAgICAgICBtX29ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOwotICAgIH0KLQorICAgIExvY2tI
b2xkZXIgbG9jayhtX2xvY2spOworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiAg
ICAgaWYgKG1faW5wdXREZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpCiAgICAgICAgIG9ic2VydmVy
LT5wcmVwYXJlKG1faW5wdXREZXNjcmlwdGlvbi5nZXQoKSk7CiB9CkBAIC0xMTAsMTYgKzEwOSw0
MCBAQCB2b2lkIEFWQXVkaW9DYXB0dXJlU291cmNlOjpyZW1vdmVPYnNlcnZlCiB2b2lkIEFWQXVk
aW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBSZXRhaW5QdHI8
QVZDYXB0dXJlRGV2aWNlSW5wdXRUeXBlPiBhdWRpb0luID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1
cmVEZXZpY2VJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6bmls
XSk7Ci0gICAgQVNTRVJUKFtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pOwot
ICAgIGlmIChbc2Vzc2lvbigpIGNhbkFkZElucHV0OmF1ZGlvSW4uZ2V0KCldKQotICAgICAgICBb
c2Vzc2lvbigpIGFkZElucHV0OmF1ZGlvSW4uZ2V0KCldOwotICAgIAorCisgICAgaWYgKCFbc2Vz
c2lvbigpIGNhbkFkZElucHV0OmF1ZGlvSW4uZ2V0KCldKSB7CisgICAgICAgIExPRyhNZWRpYSwg
IkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRv
IGFkZCBhdWRpbyBpbnB1dCBkZXZpY2UiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBbc2Vzc2lvbigpIGFkZElucHV0OmF1ZGlvSW4uZ2V0KCldOworCiAgICAgUmV0YWluUHRy
PEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU+IGF1ZGlvT3V0cHV0ID0gYWRvcHROUyhbYWxs
b2NBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXRJbnN0YW5jZSgpIGluaXRdKTsKICAgICBzZXRBdWRp
b1NhbXBsZUJ1ZmZlckRlbGVnYXRlKGF1ZGlvT3V0cHV0LmdldCgpKTsKLSAgICBBU1NFUlQoW3Nl
c3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Np
b24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCldKQotICAgICAgICBbc2Vzc2lvbigp
IGFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV07Ci0gICAgbV9hdWRpb0Nvbm5lY3Rpb24gPSBh
ZG9wdE5TKFthdWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlh
VHlwZUF1ZGlvXSk7CisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OmF1ZGlvT3V0
cHV0LmdldCgpXSkgeworICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0dXBDYXB0dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBhZGQgYXVkaW8gc2FtcGxlIGJ1ZmZl
ciBvdXRwdXQgZGVsZWdhdGUiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBb
c2Vzc2lvbigpIGFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV07CisgICAgbV9hdWRpb0Nvbm5l
Y3Rpb24gPSBbYXVkaW9PdXRwdXQuZ2V0KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6QVZNZWRp
YVR5cGVBdWRpb107Cit9CisKK3ZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNodXRkb3duQ2Fw
dHVyZVNlc3Npb24oKQoreworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7
CisKKyAgICAgICAgbV9hdWRpb0Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgICAgICBtX2lucHV0
RGVzY3JpcHRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlv
bj4oKTsKKworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAg
ICAgICAgICBvYnNlcnZlci0+dW5wcmVwYXJlKCk7CisgICAgICAgIG1fb2JzZXJ2ZXJzLnNocmlu
aygwKTsKKyAgICB9CisKKyAgICAvLyBEb24ndCBob2xkIHRoZSBsb2NrIHdoZW4gZGVzdHJveWlu
ZyB0aGUgYXVkaW8gcHJvdmlkZXIsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gdGhpcyBvYmplY3QK
KyAgICAvLyB0byByZW1vdmUgaXRzZWxmIGFzIGFuIG9ic2VydmVyLgorICAgIG1fYXVkaW9Tb3Vy
Y2VQcm92aWRlciA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBib29sIG9wZXJhdG9yPT0oY29uc3Qg
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBhLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVz
Y3JpcHRpb24mIGIpCkBAIC0xNDEsMjcgKzE2NCwzMCBAQCBzdGF0aWMgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IEF1ZGlvU3RyZWFtCiAKIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVP
dXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXRU
eXBlKiwgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBBVkNhcHR1cmVDb25uZWN0aW9u
VHlwZSopCiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzOwotICAgIHsKLSAgICAg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0gICAgICAgIGlmIChtX29ic2VydmVycy5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29weVRvVmVjdG9yKG1fb2Jz
ZXJ2ZXJzLCBvYnNlcnZlcnMpOwotICAgIH0KKyAgICBpZiAoIWVuYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuOwogCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9
IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyKTsKICAgICBp
ZiAoIWZvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBzdGQ6OnVuaXF1
ZV9sb2NrPExvY2s+IGxvY2sobV9sb2NrLCBzdGQ6OnRyeV90b19sb2NrKTsKKyAgICBpZiAoIWxv
Y2sub3duc19sb2NrKCkpIHsKKyAgICAgICAgLy8gRmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2ss
IGp1c3QgcmV0dXJuIGluc3RlYWQgb2YgYmxvY2tpbmcuCisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9vYnNlcnZlcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKICAg
ICBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIHN0cmVhbURlc2NyaXB0aW9uID0g
Q01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXRE
ZXNjcmlwdGlvbik7CiAgICAgaWYgKCptX2lucHV0RGVzY3JpcHRpb24gIT0gKnN0cmVhbURlc2Ny
aXB0aW9uKSB7CiAgICAgICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8
QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPigqc3RyZWFtRGVzY3JpcHRpb24pOwotICAgICAg
ICBmb3IgKGF1dG8mIG9ic2VydmVyIDogb2JzZXJ2ZXJzKQorICAgICAgICBmb3IgKGF1dG8mIG9i
c2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAgICAgICAgICBvYnNlcnZlci0+cHJlcGFyZShtX2lu
cHV0RGVzY3JpcHRpb24uZ2V0KCkpOwogICAgIH0KIAotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIg
OiBvYnNlcnZlcnMpCisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQogICAg
ICAgICBvYnNlcnZlci0+cHJvY2Vzcyhmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlQnVmZmVyKTsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2Fw
dHVyZURldmljZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0JKHJldmlzaW9uIDE5
MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1
cmVEZXZpY2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMywxMCArMTAzLDcgQEAgcHVibGlj
OgogICAgIFN0cmluZyBtX2dyb3VwSUQ7CiAKICAgICBTdHJpbmcgbV9hdWRpb1NvdXJjZUlkOwot
ICAgIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gbV9hdWRpb0FWTWVkaWFDYXB0dXJlU291
cmNlOwotCiAgICAgU3RyaW5nIG1fdmlkZW9Tb3VyY2VJZDsKLSAgICBSZWZQdHI8QVZNZWRpYUNh
cHR1cmVTb3VyY2U+IG1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKIAogICAgIGJvb2wgbV9l
bmFibGVkOwogfTsKQEAgLTE0Niw3ICsxNDMsMTUgQEAgc3RhdGljIHZvaWQgcmVmcmVzaENhcHR1
cmVEZXZpY2VMaXN0KCkKICAgICAKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmlj
ZSBpbiBbQVZDYXB0dXJlRGV2aWNlIGRldmljZXNdKSB7CiAgICAgICAgIENhcHR1cmVEZXZpY2Ug
c291cmNlOwotICAgICAgICAKKworICAgICAgICBpZiAoIVtkZXZpY2UgaXNDb25uZWN0ZWRdKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgICAgICBpZiAo
W2RldmljZSBpc1N1c3BlbmRlZF0gfHwgW2RldmljZSBpc0luVXNlQnlBbm90aGVyQXBwbGljYXRp
b25dKQorICAgICAgICAgICAgY29udGludWU7CisjZW5kaWYKKwogICAgICAgICBpZiAoIWNhcHR1
cmVEZXZpY2VGcm9tRGV2aWNlSUQoZGV2aWNlLnVuaXF1ZUlELCBzb3VyY2UpKSB7CiAgICAgICAg
ICAgICAvLyBBbiBBVkNhcHR1cmVEZXZpY2UgaGFzIGEgdW5pcXVlIElELCBidXQgd2UgY2FuJ3Qg
dXNlIGl0IGZvciB0aGUgc291cmNlIElEIGJlY2F1c2U6CiAgICAgICAgICAgICAvLyAxLiBpZiBp
dCBwcm92aWRlcyBib3RoIGF1ZGlvIGFuZCB2aWRlbyB3ZSB3aWxsIG5lZWQgdG8gY3JlYXRlIHR3
byBzb3VyY2VzIGZvciBpdApAQCAtMzg4LDI0ICszOTMsMjAgQEAgVmVjdG9yPFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPj4gQVZDYQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9lbmFi
bGVkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVy
IHRoZSBjb25zdHJhaW50cyB3aGVuIGNob29zaW5nIGFtb25nIG11bHRpcGxlIGRldmljZXMuIEZv
ciBub3cganVzdCBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJsZQotICAgICAgICAvLyBkZXZpY2Ug
b2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCiAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvICYmICFjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1
cmVTb3VyY2UpIHsKLSAgICAgICAgICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2Ug
PSBbQVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2Fw
dHVyZURldmljZUlEXTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAgICAg
ICAgICAgICBjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWQXVk
aW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3Vy
Y2VJZCwgY29uc3RyYWludHMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmVzdFNvdXJj
ZXNMaXN0LmFwcGVuZChjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSk7
CisgICAgICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FwdHVyZVNvdXJjZSA9
IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQoY2FwdHVyZURldmljZS5tX2Nh
cHR1cmVEZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFpbnRzLmdl
dCgpKTsKKyAgICAgICAgICAgIGlmICghY2FwdHVyZVNvdXJjZSkKKyAgICAgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0dXJlU291
cmNlLmxlYWtSZWYoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlbyAmJiAhY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQuaXNF
bXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFD
YXB0dXJlU291cmNlKSB7Ci0gICAgICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2
aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5t
X2NhcHR1cmVEZXZpY2VJRF07Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAg
ICAgICAgICAgICAgY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX3ZpZGVv
U291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlc3RT
b3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UpOworICAgICAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3Vy
Y2UgPSBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzb3VyY2VXaXRoVUlEKGNhcHR1cmVEZXZpY2Uu
bV9jYXB0dXJlRGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBjb25zdHJhaW50
cy5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIWNhcHR1cmVTb3VyY2UpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVy
ZVNvdXJjZS5sZWFrUmVmKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIHN0ZDo6c29ydChiZXN0
U291cmNlc0xpc3QuYmVnaW4oKSwgYmVzdFNvdXJjZXNMaXN0LmVuZCgpLCBzb3J0QmFzZWRPZmZG
aXRuZXNzU2NvcmUpOwpAQCAtNDE2LDQxICs0MTcsNDEgQEAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IEFWQ2FwdHVyZURldgogewogICAgIGlmICghaXNBdmFpbGFibGUoKSkKICAgICAgICAg
cmV0dXJuIDA7Ci0gICAgCisKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmljZXMgPSBj
YXB0dXJlRGV2aWNlTGlzdCgpOwotICAgIGZvciAoYXV0byBjYXB0dXJlRGV2aWNlIDogZGV2aWNl
cykgewotICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9lbmFibGVkKQorICAgIGZvciAoYXV0
byYgY2FwdHVyZURldmljZSA6IGRldmljZXMpIHsKKyAgICAgICAgaWYgKGNhcHR1cmVEZXZpY2Uu
bV9jYXB0dXJlRGV2aWNlSUQgIT0gZGV2aWNlVUlEIHx8ICFjYXB0dXJlRGV2aWNlLm1fZW5hYmxl
ZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChjYXB0dXJlRGV2aWNlLm1f
Y2FwdHVyZURldmljZUlEICE9IGRldmljZVVJRCkKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNF
bXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICh0eXBlID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlZpZGVvICYmIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlz
RW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIEFWQ2FwdHVyZURldmlj
ZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1
cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSURdOworICAgICAgICBBU1NFUlQoZGV2aWNlKTsKKwor
ICAgICAgICBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNhcHR1cmVTb3VyY2U7CisgICAg
ICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQorICAgICAgICAgICAg
Y2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0
dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7CisKICAg
ICAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgICAgICBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzOwogICAgICAgICAgICAgQVZDYXB0dXJlU2Vzc2lvblR5cGUgKnNlc3Npb24gPSBuaWw7
CiAKLSAgICAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvICYm
IGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAgICAgICAgICAg
ICAgIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7
Ci0gICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
ICYmIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAgICAgICAg
ICAgICAgIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlLT5zZXNzaW9u
KCk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbykK
KyAgICAgICAgICAgICAgICBzZXNzaW9uID0gY2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOworICAg
ICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKKyAg
ICAgICAgICAgICAgICBzZXNzaW9uID0gY2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwogICAgICAg
ICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29uc3RyYWlu
dHNGb3JNZWRpYVR5cGUoc2Vzc2lvbiwgdHlwZSwgY29uc3RyYWludHMsIGludmFsaWRDb25zdHJh
aW50cyk7CiAKICAgICAgICAgICAgIGlmICghaW52YWxpZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAg
QVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRo
VW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0gICAgICAgIEFTU0VS
VChkZXZpY2UpOwotICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
byAmJiAhY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAg
ICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlID0g
QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV9hdWRp
b1NvdXJjZUlkLCBjb25zdHJhaW50cyk7Ci0gICAgICAgICAgICByZXR1cm4gY2FwdHVyZURldmlj
ZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHR5
cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gJiYgIWNhcHR1cmVEZXZpY2UubV92aWRl
b1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1f
dmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNl
Lm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVh
dGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwot
ICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291
cmNlOwotICAgICAgICB9CisgICAgICAgIHJldHVybiBjYXB0dXJlU291cmNlLmxlYWtSZWYoKTsK
ICAgICB9CiAgICAgCiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1
cmVTb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUyLDQ1ICs1Miw1MiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FwdHVyZU91dHB1
dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENN
U2FtcGxlQnVmZmVyUmVmLCBBVkNhcHR1cmVDb25uZWN0aW9uKikgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIGNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2FwdHVyZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UoYm9vbCk7CiAgICAgCiAgICAgQVZDYXB0
dXJlU2Vzc2lvbiAqc2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsgfQog
CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJpZGU7
CisKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3Rv
cFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNSdW5uaW5nOyB9CisKKyAgICBXZWFrUHRyPEFWTWVk
aWFDYXB0dXJlU291cmNlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9y
eS5jcmVhdGVXZWFrUHRyKCk7IH0KIAogcHJvdGVjdGVkOgogICAgIEFWTWVkaWFDYXB0dXJlU291
cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogCi0gICAgY29uc3Qg
UmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJpZGU7CiAgICAgQXVkaW9T
b3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIHNldHVwQ2FwdHVyZVNlc3Npb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNo
dXRkb3duQ2FwdHVyZVNlc3Npb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXRl
cygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJikgPSAwOwogCiAgICAgQVZDYXB0dXJlRGV2aWNlICpk
ZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZS5nZXQoKTsgfQorCiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlcyogY3VycmVudFN0YXRlcygpIHsgcmV0dXJuICZtX2N1cnJlbnRTdGF0
ZXM7IH0KICAgICBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cygpIHsgcmV0dXJuIG1fY29u
c3RyYWludHMuZ2V0KCk7IH0KIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBvdmVycmlkZTsKKwogICAgIHZvaWQgc2V0VmlkZW9TYW1w
bGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQqKTsKICAgICB2b2lkIHNl
dEF1ZGlvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0Kik7CiAK
ICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4pOwog
Ci0gICAgdm9pZCBzdGF0ZXNEaWRDaGFuZ2VkKCkgeyB9Ci0gICAgCiBwcml2YXRlOgogICAgIHZv
aWQgc2V0dXBTZXNzaW9uKCk7Ci0gICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3Jl
YXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9
CisgICAgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8QVZNZWRp
YUNhcHR1cmVTb3VyY2U+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVB
Vk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICBSZWZQdHI8
TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZVNlc3Np
b24+IG1fc2Vzc2lvbjsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlPiBtX2RldmljZTsK
LSAgICAKLSAgICBib29sIG1faXNSdW5uaW5nOworICAgIGJvb2wgbV9pc1J1bm5pbmcgeyBmYWxz
ZX07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0
dXJlU291cmNlLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTk0LDEyICs5NCwxNCBAQCBAaW50ZXJmYWNlIFdlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJj
ZU9iCiAKIC0oaWQpaW5pdFdpdGhDYWxsYmFjazooQVZNZWRpYUNhcHR1cmVTb3VyY2UqKWNhbGxi
YWNrOwogLSh2b2lkKWRpc2Nvbm5lY3Q7Ci0tKHZvaWQpY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVu
bmluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247CiAtKHZvaWQpY2FwdHVyZU91dHB1
dDooQVZDYXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVm
ZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2Fw
dHVyZUNvbm5lY3Rpb25UeXBlICopY29ubmVjdGlvbjsKKy0odm9pZClvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAq
KWNoYW5nZSBjb250ZXh0Oih2b2lkKiljb250ZXh0OwogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3N0YXRpYyBOU0FycmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpOworCiBzdGF0aWMg
ZGlzcGF0Y2hfcXVldWVfdCBnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKCkKIHsKICAgICBz
dGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxRdWV1ZTsKQEAgLTEyNyw3ICsxMjksNiBAQCBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyCiAgICAgLCBtX29iamNPYnNl
cnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2Nd
IGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQogICAgICwgbV9jb25zdHJhaW50cyhjb25zdHJhaW50
cykKICAgICAsIG1fZGV2aWNlKGRldmljZSkKLSAgICAsIG1faXNSdW5uaW5nKGZhbHNlKQogewog
ICAgIHNldE5hbWUoZGV2aWNlLmxvY2FsaXplZE5hbWUpOwogICAgIHNldFBlcnNpc3RlbnRJRChk
ZXZpY2UudW5pcXVlSUQpOwpAQCAtMTM2LDkgKzEzNywxMyBAQCBBVk1lZGlhQ2FwdHVyZVNvdXJj
ZTo6QVZNZWRpYUNhcHR1cmVTb3VyCiAKIEFWTWVkaWFDYXB0dXJlU291cmNlOjp+QVZNZWRpYUNh
cHR1cmVTb3VyY2UoKQogewotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCldOwogICAgIFttX29iamNPYnNl
cnZlciBkaXNjb25uZWN0XTsKLSAgICBbbV9zZXNzaW9uLmdldCgpIHN0b3BSdW5uaW5nXTsKKwor
ICAgIGlmIChtX3Nlc3Npb24pIHsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqa2V5TmFtZSBpbiBz
ZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICAgICAgW21fc2Vzc2lvbi5nZXQoKSByZW1v
dmVPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWVdOworICAg
ICAgICBbbV9zZXNzaW9uLmdldCgpIHN0b3BSdW5uaW5nXTsKKyAgICB9CiB9CiAKIHZvaWQgQVZN
ZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCkBAIC0xNTAsOCArMTU1LDYg
QEAgdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbgogICAgICAgICByZXR1
cm47CiAgICAgCiAgICAgW21fc2Vzc2lvbi5nZXQoKSBzdGFydFJ1bm5pbmddOwotCi0gICAgbV9p
c1J1bm5pbmcgPSB0cnVlOwogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJv
ZHVjaW5nRGF0YSgpCkBAIC0xNjAsOCArMTYzLDYgQEAgdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJj
ZTo6c3RvcFByb2R1Y2luZwogICAgICAgICByZXR1cm47CiAKICAgICBbbV9zZXNzaW9uLmdldCgp
IHN0b3BSdW5uaW5nXTsKLQotICAgIG1faXNSdW5uaW5nID0gdHJ1ZTsKIH0KIAogY29uc3QgUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXRlcygpCkBA
IC0xNzAsMjEgKzE3MSw0NyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBBVk1l
ZGlhCiAgICAgcmV0dXJuIG1fY3VycmVudFN0YXRlczsKIH0KIAorUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMo
KQoreworICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgbV9jYXBhYmlsaXRpZXMg
PSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUoKTsKKyAgICAgICAgbV9j
YXBhYmlsaXRpZXMtPnNldFNvdXJjZUlkKG1fY3VycmVudFN0YXRlcy5zb3VyY2VJZCgpKTsKKyAg
ICAgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygqbV9jYXBhYmlsaXRpZXMuZ2V0KCkpOworICAg
IH0KKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Cit9CisKIHZvaWQgQVZNZWRpYUNhcHR1cmVT
b3VyY2U6OnNldHVwU2Vzc2lvbigpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbikKICAgICAgICAgcmV0
dXJuOwogCiAgICAgbV9zZXNzaW9uID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVTZXNzaW9uSW5z
dGFuY2UoKSBpbml0XSk7Ci0gICAgCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBzZWxlY3RvcjpAc2VsZWN0
b3IoY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZzopIG5hbWU6QVZDYXB0dXJlU2Vzc2lvbkRp
ZFN0b3BSdW5uaW5nTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAgIAorICAgIGZvciAoTlNT
dHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRpZXMoKSkKKyAgICAgICAgW21fc2Vz
c2lvbi5nZXQoKSBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtl
eU5hbWUgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6KHZvaWQg
KiluaWxdOworCiAgICAgc2V0dXBDYXB0dXJlU2Vzc2lvbigpOwogfQotIAotdm9pZCBBVk1lZGlh
Q2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpCisKK3ZvaWQgQVZN
ZWRpYUNhcHR1cmVTb3VyY2U6OnJlc2V0KCkKIHsKLSAgICBzdG9wUHJvZHVjaW5nRGF0YSgpOwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlc2V0KCk7CisgICAgbV9pc1J1bm5pbmcgPSBmYWxz
ZTsKKyAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGluIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkp
CisgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIu
Z2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lXTsKKyAgICBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCk7
CisgICAgbV9zZXNzaW9uID0gbnVsbHB0cjsKK30KKwordm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJj
ZTo6Y2FwdHVyZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UoYm9vbCBzdGF0ZSkKK3sKKyAgICBz
Y2hlZHVsZURlZmVycmVkVGFzayhbdGhpcywgc3RhdGVdIHsKKyAgICAgICAgaWYgKHN0YXRlID09
IG1faXNSdW5uaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1faXNSdW5uaW5n
ID0gc3RhdGU7CisgICAgICAgIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSgpOworICAgIH0pOwog
fQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXRWaWRlb1NhbXBsZUJ1ZmZlckRlbGVn
YXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dFR5cGUqIHZpZGVvT3V0cHV0KQpAQCAtMjE2LDYg
KzI0MywxMiBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBBVk1lZGlhQ2FwdHVyZVNvdXJjCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKK05TQXJyYXkqIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkKK3sK
KyAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IEBbQCJydW5uaW5nIl07CisgICAgcmV0dXJuIGtl
eXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogQGltcGxlbWVudGF0aW9uIFdlYkNv
cmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyCkBAIC0yMzUsMjUgKzI2OCwzNyBAQCAtICh2
b2lkKWRpc2Nvbm5lY3QKICAgICBtX2NhbGxiYWNrID0gMDsKIH0KIAotLSAodm9pZCljYXB0dXJl
U2Vzc2lvblN0b3BwZWRSdW5uaW5nOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgorLSAo
dm9pZCljYXB0dXJlT3V0cHV0OihBVkNhcHR1cmVPdXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBk
aWRPdXRwdXRTYW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9t
Q29ubmVjdGlvbjooQVZDYXB0dXJlQ29ubmVjdGlvblR5cGUgKiljb25uZWN0aW9uCiB7Ci0gICAg
VU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7Ci0KICAgICBpZiAoIW1fY2FsbGJhY2spCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIF57Ci0gICAgICAgIGlmIChtX2NhbGxiYWNrKQotICAgICAgICAgICAgbV9jYWxsYmFjay0+
Y2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpOwotICAgIH0pOworICAgIG1fY2FsbGJhY2st
PmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihjYXB0dXJl
T3V0cHV0LCBzYW1wbGVCdWZmZXIsIGNvbm5lY3Rpb24pOwogfQogCi0tICh2b2lkKWNhcHR1cmVP
dXRwdXQ6KEFWQ2FwdHVyZU91dHB1dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNhbXBs
ZUJ1ZmZlcjooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9uOihB
VkNhcHR1cmVDb25uZWN0aW9uVHlwZSAqKWNvbm5lY3Rpb24KKy0odm9pZClvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFy
eSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkKiljb250ZXh0CiB7CisgICAgVU5VU0VEX1BBUkFNKG9i
amVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworCiAgICAgaWYgKCFtX2NhbGxiYWNr
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NhbGxiYWNrLT5jYXB0dXJlT3V0cHV0RGlkT3V0
cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oY2FwdHVyZU91dHB1dCwgc2FtcGxlQnVmZmVy
LCBjb25uZWN0aW9uKTsKKyAgICBpZCBuZXdWYWx1ZSA9IFtjaGFuZ2UgdmFsdWVGb3JLZXk6TlNL
ZXlWYWx1ZUNoYW5nZU5ld0tleV07CisKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgYm9vbCB3aWxs
Q2hhbmdlID0gW1tjaGFuZ2UgdmFsdWVGb3JLZXk6TlNLZXlWYWx1ZUNoYW5nZU5vdGlmaWNhdGlv
bklzUHJpb3JLZXldIGJvb2xWYWx1ZV07CisKKyAgICBpZiAod2lsbENoYW5nZSkKKyAgICAgICAg
TE9HKE1lZGlhLCAiV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXI6Om9ic2VydmVW
YWx1ZUZvcktleVBhdGgoJXApIC0gd2lsbCBjaGFuZ2UsIGtleVBhdGggPSAlcyIsIHNlbGYsIFtr
ZXlQYXRoIFVURjhTdHJpbmddKTsKKyAgICBlbHNlIHsKKyAgICAgICAgUmV0YWluUHRyPE5TU3Ry
aW5nPiB2YWx1ZVN0cmluZyA9IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhGb3Jt
YXQ6QCIlQCIsIG5ld1ZhbHVlXSk7CisgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVBVk1lZGlh
Q2FwdHVyZVNvdXJjZU9ic2VydmVyOjpvYnNlcnZlVmFsdWVGb3JLZXlQYXRoKCVwKSAtIGRpZCBj
aGFuZ2UsIGtleVBhdGggPSAlcywgdmFsdWUgPSAlcyIsIHNlbGYsIFtrZXlQYXRoIFVURjhTdHJp
bmddLCBbdmFsdWVTdHJpbmcuZ2V0KCkgVVRGOFN0cmluZ10pOworICAgIH0KKyNlbmRpZgorCisg
ICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInJ1bm5pbmciXSkKKyAgICAgICAgbV9j
YWxsYmFjay0+Y2FwdHVyZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UoW25ld1ZhbHVlIGJvb2xW
YWx1ZV0pOwogfQogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWVmlkZW9DYXB0dXJlU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAK
IAogI2luY2x1ZGUgIkFWTWVkaWFDYXB0dXJlU291cmNlLmgiCiAKLU9CSkNfQ0xBU1MgQVZDYXB0
dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CitPQkpDX0NMQVNTIENBTGF5ZXI7CiAKIHR5cGVkZWYgc3Ry
dWN0IENHSW1hZ2UgKkNHSW1hZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBvcGFxdWVDTUZv
cm1hdERlc2NyaXB0aW9uICpDTUZvcm1hdERlc2NyaXB0aW9uUmVmOwpAQCAtNDgsMzYgKzQ4LDM4
IEBAIHB1YmxpYzoKICAgICBpbnQzMl90IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsg
fQogICAgIGludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KIAotICAg
IEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyKiBwcmV2aWV3TGF5ZXIoKSB7IHJldHVybiBtX3Zp
ZGVvUHJldmlld0xheWVyLmdldCgpOyB9Ci0gICAgQ01TYW1wbGVCdWZmZXJSZWYgY3VycmVudEZy
YW1lU2FtcGxlQnVmZmVyKCkgY29uc3QgeyByZXR1cm4gbV9idWZmZXIuZ2V0KCk7IH0KLSAgICB2
b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZs
b2F0UmVjdCYpOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjdXJyZW50RnJhbWVJbWFnZSgp
OwotCiBwcml2YXRlOgogICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSos
IGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogICAg
IHZpcnR1YWwgfkFWVmlkZW9DYXB0dXJlU291cmNlKCk7CiAKICAgICB2b2lkIHNldHVwQ2FwdHVy
ZVNlc3Npb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIHNodXRkb3duQ2FwdHVyZVNlc3Npb24oKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgdXBkYXRlU3RhdGVzKCkgb3ZlcnJpZGU7CiAKLSAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgYXBwbHlDb25zdHJhaW50
cyhNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgYm9vbCBzZXRGcmFtZVJhdGVDb25zdHJhaW50KGZs
b2F0IG1pbkZyYW1lUmF0ZSwgZmxvYXQgbWF4RnJhbWVSYXRlKTsKIAotICAgIGJvb2wgY2FsY3Vs
YXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmKTsKKyAgICBib29sIHVwZGF0ZUZyYW1lcmF0
ZShDTVNhbXBsZUJ1ZmZlclJlZik7CiAKICAgICB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRT
YW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZl
clJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvY2Vzc05l
d0ZyYW1lKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4pOwogCi0gICAgUmV0YWluUHRyPEFW
Q2FwdHVyZUNvbm5lY3Rpb24+IG1fdmlkZW9Db25uZWN0aW9uOwotICAgIFJldGFpblB0cjxBVkNh
cHR1cmVWaWRlb1ByZXZpZXdMYXllcj4gbV92aWRlb1ByZXZpZXdMYXllcjsKKyAgICB2b2lkIHBh
aW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBv
dmVycmlkZTsKKworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjdXJyZW50RnJhbWVDR0ltYWdl
KCk7CisgICAgUmVmUHRyPEltYWdlPiBjdXJyZW50RnJhbWVJbWFnZSgpIG92ZXJyaWRlOworCiAg
ICAgUmV0YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPiBtX2J1ZmZlcjsKICAgICBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gbV9sYXN0SW1hZ2U7CiAgICAgVmVjdG9yPEZsb2F0NjQ+IG1fdmlkZW9GcmFt
ZVRpbWVTdGFtcHM7Ci0gICAgRmxvYXQ2NCBtX2ZyYW1lUmF0ZTsKLSAgICBpbnQzMl90IG1fd2lk
dGg7Ci0gICAgaW50MzJfdCBtX2hlaWdodDsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0Zm9y
bUxheWVyPiBtX3ZpZGVvUHJldmlld0xheWVyOworICAgIEZsb2F0NjQgbV9mcmFtZVJhdGUgeyAw
IH07CisgICAgaW50MzJfdCBtX3dpZHRoIHsgMCB9OworICAgIGludDMyX3QgbV9oZWlnaHQgeyAw
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTMxLDEwICszMSwxMiBAQAogI2ltcG9ydCAiQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgog
I2ltcG9ydCAiQmxvY2tFeGNlcHRpb25zLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRDRy5o
IgorI2ltcG9ydCAiSW1hZ2VCdWZmZXIuaCIKICNpbXBvcnQgIkludFJlY3QuaCIKICNpbXBvcnQg
IkxvZ2dpbmcuaCIKICNpbXBvcnQgIk1lZGlhQ29uc3RyYWludHMuaCIKICNpbXBvcnQgIk5vdElt
cGxlbWVudGVkLmgiCisjaW1wb3J0ICJQbGF0Zm9ybUxheWVyLmgiCiAjaW1wb3J0ICJSZWFsdGlt
ZU1lZGlhU291cmNlU3RhdGVzLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZGb3VuZGF0aW9u
Lmg+CiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KQEAgLTk4LDkgKzEwMCw2IEBAIFJlZlB0cjxB
Vk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHQKIAogQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OkFWVmlkZW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZVR5cGUqIGRldmljZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPiBjb25zdHJhaW50
KQogICAgIDogQVZNZWRpYUNhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW8sIGNvbnN0cmFpbnQpCi0gICAgLCBtX2ZyYW1lUmF0ZSgwKQotICAgICwgbV93
aWR0aCgwKQotICAgICwgbV9oZWlnaHQoMCkKIHsKICAgICBjdXJyZW50U3RhdGVzKCktPnNldFNv
dXJjZUlkKGlkKTsKICAgICBjdXJyZW50U3RhdGVzKCktPnNldFNvdXJjZVR5cGUoUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJhKTsKQEAgLTExMCwxMCArMTA5LDExIEBAIEFWVmlkZW9D
YXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3UKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRp
ZXMoKSBjb25zdAordm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxp
dGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKKyAgICAvLyBGSVhNRTogZmluaXNo
IHRoaXMgaW1wbGVtZW50YXRpb24KKyAgICBjYXBhYmlsaXRpZXMuc2V0U291cmNlSWQoY3VycmVu
dFN0YXRlcygpLT5zb3VyY2VJZCgpKTsKKyAgICBjYXBhYmlsaXRpZXMuYWRkU291cmNlVHlwZShS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpDYW1lcmEpOwogfQogCiB2b2lkIEFWVmlkZW9DYXB0
dXJlU291cmNlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtMjE4LDkgKzIxOCwxMyBAQCBib29sIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjphcHBseUNvbnN0cmFpCiB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNl
SW5wdXRUeXBlPiB2aWRlb0luID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVEZXZpY2VJbnB1dElu
c3RhbmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6bmlsXSk7Ci0gICAgQVNTRVJU
KFtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6dmlkZW9Jbi5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lv
bigpIGNhbkFkZElucHV0OnZpZGVvSW4uZ2V0KCldKQotICAgICAgICBbc2Vzc2lvbigpIGFkZElu
cHV0OnZpZGVvSW4uZ2V0KCldOworCisgICAgaWYgKCFbc2Vzc2lvbigpIGNhbkFkZElucHV0OnZp
ZGVvSW4uZ2V0KCldKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNl
OjpzZXR1cENhcHR1cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCB2aWRlbyBpbnB1dCBkZXZp
Y2UiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtzZXNzaW9uKCkgYWRk
SW5wdXQ6dmlkZW9Jbi5nZXQoKV07CiAKICAgICBpZiAoY29uc3RyYWludHMoKSkKICAgICAgICAg
YXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cygpKTsKQEAgLTIzMSwxNSArMjM1LDI2IEBAIHZv
aWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVMKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgbmlsXSk7CiAgICAgW3Zp
ZGVvT3V0cHV0IHNldFZpZGVvU2V0dGluZ3M6c2V0dGluZ3NEaWN0aW9uYXJ5LmdldCgpXTsKICAg
ICBzZXRWaWRlb1NhbXBsZUJ1ZmZlckRlbGVnYXRlKHZpZGVvT3V0cHV0LmdldCgpKTsKLSAgICBB
U1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldKTsKLSAgICBp
ZiAoW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldKQotICAgICAgICBb
c2Vzc2lvbigpIGFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV07CiAKLSAgICBtX3ZpZGVvQ29u
bmVjdGlvbiA9IGFkb3B0TlMoW3ZpZGVvT3V0cHV0LmdldCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFU
eXBlOkFWTWVkaWFUeXBlVmlkZW9dKTsKLSAgICBtX3ZpZGVvUHJldmlld0xheWVyID0gYWRvcHRO
UyhbW0FWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyIGFsbG9jXSBpbml0V2l0aFNlc3Npb246c2Vz
c2lvbigpXSk7CisgICAgaWYgKCFbc2Vzc2lvbigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5n
ZXQoKV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIHZpZGVvIHNhbXBsZSBidWZmZXIgb3V0
cHV0IGRlbGVnYXRlIiwgdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgW3Nlc3Np
b24oKSBhZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldOworfQorCit2b2lkIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkKK3sKKyAgICBtX3ZpZGVvUHJldmll
d0xheWVyID0gbnVsbHB0cjsKKyAgICBtX2J1ZmZlciA9IG51bGxwdHI7CisgICAgbV9sYXN0SW1h
Z2UgPSBudWxscHRyOworICAgIG1fdmlkZW9GcmFtZVRpbWVTdGFtcHMuY2xlYXIoKTsKKyAgICBt
X2ZyYW1lUmF0ZSA9IDA7CisgICAgbV93aWR0aCA9IDA7CisgICAgbV9oZWlnaHQgPSAwOwogfQog
Ci1ib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYWxjdWxhdGVGcmFtZXJhdGUoQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyKQorYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRl
RnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKIHsKICAgICBDTVRpbWUg
c2FtcGxlVGltZSA9IENNU2FtcGxlQnVmZmVyR2V0UHJlc2VudGF0aW9uVGltZVN0YW1wKHNhbXBs
ZUJ1ZmZlcik7CiAgICAgaWYgKCFDTVRJTUVfSVNfTlVNRVJJQyhzYW1wbGVUaW1lKSkKQEAgLTI2
MSwxMyArMjc2LDE5IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhbGN1bGF0ZUZyYW0K
IAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFpblB0cjxD
TVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyKQogeworICAgIC8vIElnbm9yZSBmcmFtZXMg
ZGVsaXZlcmVkIHdoZW4gdGhlIHNlc3Npb24gaXMgbm90IHJ1bm5pbmcsIHdlIHdhbnQgdG8gaGFu
ZyBvbnRvIHRoZSBsYXN0IGltYWdlCisgICAgLy8gZGVsaXZlcmVkIGJlZm9yZSBpdCBzdG9wcGVk
LgorICAgIGlmIChtX2xhc3RJbWFnZSAmJiAoIWlzUHJvZHVjaW5nRGF0YSgpIHx8ICFlbmFibGVk
KCkpKQorICAgICAgICByZXR1cm47CisKICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1h
dERlc2NyaXB0aW9uID0gQ01TYW1wbGVCdWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVC
dWZmZXIuZ2V0KCkpOwogICAgIGlmICghZm9ybWF0RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVy
bjsKIAorICAgIHVwZGF0ZUZyYW1lcmF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOworCiAgICAgYm9v
bCBzdGF0ZXNDaGFuZ2VkID0gZmFsc2U7CiAKLSAgICBzdGF0ZXNDaGFuZ2VkID0gY2FsY3VsYXRl
RnJhbWVyYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CiAgICAgbV9idWZmZXIgPSBzYW1wbGVCdWZm
ZXI7CiAgICAgbV9sYXN0SW1hZ2UgPSBudWxscHRyOwogCkBAIC0yOTEsNyArMzEyLDIzIEBAIHZv
aWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXQKICAgICB9KTsKIH0KIAotUmV0
YWluUHRyPENHSW1hZ2VSZWY+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFn
ZSgpCitSZWZQdHI8SW1hZ2U+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFn
ZSgpCit7CisgICAgaWYgKCFjdXJyZW50RnJhbWVDR0ltYWdlKCkpCisgICAgICAgIHJldHVybiBu
dWxscHRyOworCisgICAgRmxvYXRSZWN0IGltYWdlUmVjdCgwLCAwLCBtX3dpZHRoLCBtX2hlaWdo
dCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdl
QnVmZmVyOjpjcmVhdGUoaW1hZ2VSZWN0LnNpemUoKSwgVW5hY2NlbGVyYXRlZCk7CisKKyAgICBp
ZiAoIWltYWdlQnVmZmVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHBhaW50Q3Vy
cmVudEZyYW1lSW5Db250ZXh0KGltYWdlQnVmZmVyLT5jb250ZXh0KCksIGltYWdlUmVjdCk7CisK
KyAgICByZXR1cm4gaW1hZ2VCdWZmZXItPmNvcHlJbWFnZSgpOworfQorCitSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUNHSW1hZ2UoKQogewog
ICAgIGlmIChtX2xhc3RJbWFnZSkKICAgICAgICAgcmV0dXJuIG1fbGFzdEltYWdlOwpAQCAtMzE4
LDcgKzM1NSw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBBVlZpZGVvQ2FwdHVyZVNvdXIKIAog
dm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgaWYg
KGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjdXJyZW50RnJhbWVJbWFnZSgpKQorICAg
IGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSB8fCAhY3VycmVudEZyYW1lQ0dJbWFnZSgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRl
U2F2ZXIoY29udGV4dCk7CkBAIC0zMjksNiArMzY2LDE5IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OnBhaW50Q3VycmVudEYKICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5wbGF0
Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRS
ZWN0LmhlaWdodCgpKSwgbV9sYXN0SW1hZ2UuZ2V0KCkpOwogfQogCitQbGF0Zm9ybUxheWVyKiBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgaWYgKG1f
dmlkZW9QcmV2aWV3TGF5ZXIpCisgICAgICAgIHJldHVybiBtX3ZpZGVvUHJldmlld0xheWVyLmdl
dCgpOworCisgICAgbV92aWRlb1ByZXZpZXdMYXllciA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJl
VmlkZW9QcmV2aWV3TGF5ZXJJbnN0YW5jZSgpIGluaXRXaXRoU2Vzc2lvbjpzZXNzaW9uKCldKTsK
KyNpZm5kZWYgTkRFQlVHCisgICAgbV92aWRlb1ByZXZpZXdMYXllci5nZXQoKS5uYW1lID0gQCJB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBwcmV2aWV3IGxheWVyIjsKKyNlbmRpZgorCisgICAgcmV0dXJu
IG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLmgJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKIAogICAg
IHNpemVfdCBtX2xpc3RCdWZmZXJTaXplIHsgMCB9OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdWRp
b0J1ZmZlckxpc3Q+IG1fbGlzdDsKLSAgICBSZXRhaW5QdHI8QXVkaW9Db252ZXJ0ZXJSZWY+IG1f
Y29udmVydGVyOworICAgIEF1ZGlvQ29udmVydGVyUmVmIG1fY29udmVydGVyOwogICAgIHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24+IG1faW5wdXREZXNjcmlwdGlv
bjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPiBtX291
dHB1dERlc2NyaXB0aW9uOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDQVJpbmdCdWZmZXI+IG1fcmlu
Z0J1ZmZlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQkod29ya2luZyBjb3B5
KQpAQCAtNzMsNiArNzMsMTEgQEAgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OldlYkF1
ZGlvUwogCiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDKCkKIHsKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAgICAgLy8gRklY
TUU6IG1ha2UgYW5kIHVzZSBhIHNtYXJ0IHBvaW50ZXIgZm9yIEF1ZGlvQ29udmVydGVyCisgICAg
ICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAgIG1fY29udmVy
dGVyID0gbnVsbHB0cjsKKyAgICB9CiAgICAgaWYgKG1fY29ubmVjdGVkKQogICAgICAgICBtX2Nh
cHR1cmVTb3VyY2UtPnJlbW92ZU9ic2VydmVyKHRoaXMpOwogfQpAQCAtMTIzLDcgKzEyOCw3IEBA
IHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3YKICAgICBtX3JlYWRDb3Vu
dCArPSBmcmFtZXNUb1Byb2Nlc3M7CiAKICAgICBpZiAobV9jb252ZXJ0ZXIpCi0gICAgICAgIEF1
ZGlvQ29udmVydGVyQ29udmVydENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIuZ2V0KCksIGZyYW1l
c1RvUHJvY2VzcywgbV9saXN0LmdldCgpLCBtX2xpc3QuZ2V0KCkpOworICAgICAgICBBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLCBmcmFtZXNUb1Byb2Nlc3Ms
IG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKIH0KIAogdm9pZCBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6c2V0Q2xpZW50KEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIGNsaWVu
dCkKQEAgLTE4MCw5ICsxODUsMTkgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qzo6cHJlcAogICAgIG1fb3V0cHV0RGVzY3JpcHRpb24tPm1CeXRlc1BlckZyYW1lID0gc2l6ZW9m
KEZsb2F0MzIpOwogICAgIG1fb3V0cHV0RGVzY3JpcHRpb24tPm1Gb3JtYXRGbGFncyB8PSBrQXVk
aW9Gb3JtYXRGbGFnSXNOb25JbnRlcmxlYXZlZDsKIAorICAgIGlmIChtX2NvbnZlcnRlcikgewor
ICAgICAgICAvLyBGSVhNRTogbWFrZSBhbmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9D
b252ZXJ0ZXIKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAg
ICAgICAgbV9jb252ZXJ0ZXIgPSBudWxscHRyOworICAgIH0KKwogICAgIGlmICgqbV9pbnB1dERl
c2NyaXB0aW9uICE9ICptX291dHB1dERlc2NyaXB0aW9uKSB7CiAgICAgICAgIEF1ZGlvQ29udmVy
dGVyUmVmIG91dENvbnZlcnRlciA9IG51bGxwdHI7Ci0gICAgICAgIEF1ZGlvQ29udmVydGVyTmV3
KG1faW5wdXREZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91
dENvbnZlcnRlcik7CisgICAgICAgIE9TU3RhdHVzIGVyciA9IEF1ZGlvQ29udmVydGVyTmV3KG1f
aW5wdXREZXNjcmlwdGlvbi5nZXQoKSwgbV9vdXRwdXREZXNjcmlwdGlvbi5nZXQoKSwgJm91dENv
bnZlcnRlcik7CisgICAgICAgIGlmIChlcnIpIHsKKyAgICAgICAgICAgIExPRyhNZWRpYSwgIldl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKCVwKSAtIEF1ZGlvQ29udmVydGVy
TmV3IHJldHVybmVkIGVycm9yICVpIiwgdGhpcywgZXJyKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQogICAgICAgICBtX2NvbnZlcnRlciA9IG91dENvbnZlcnRlcjsKICAgICB9CiAK
QEAgLTIyMSw2ICsyMzYsMTEgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
dW5wcgogICAgIG1fcmluZ0J1ZmZlciA9IG51bGxwdHI7CiAgICAgbV9saXN0ID0gbnVsbHB0cjsK
ICAgICBtX2xpc3RCdWZmZXJTaXplID0gMDsKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAg
ICAgLy8gRklYTUU6IG1ha2UgYW5kIHVzZSBhIHNtYXJ0IHBvaW50ZXIgZm9yIEF1ZGlvQ29udmVy
dGVyCisgICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAg
IG1fY29udmVydGVyID0gbnVsbHB0cjsKKyAgICB9CiB9CiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByb2Nlc3MoQ01Gb3JtYXREZXNjcmlwdGlvblJlZiwgQ01TYW1wbGVC
dWZmZXJSZWYgc2FtcGxlQnVmZmVyKQpAQCAtMjM0LDcgKzI1NCw3IEBAIHZvaWQgV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByb2MKICAgICBPU1N0YXR1cyBlcnIgPSBDTVNhbXBsZUJ1
ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyKHNhbXBsZUJ1ZmZl
ciwgbnVsbHB0ciwgbV9saXN0LmdldCgpLCBtX2xpc3RCdWZmZXJTaXplLCBrQ0ZBbGxvY2F0b3JT
eXN0ZW1EZWZhdWx0LCBrQ0ZBbGxvY2F0b3JTeXN0ZW1EZWZhdWx0LCBrQ01TYW1wbGVCdWZmZXJG
bGFnX0F1ZGlvQnVmZmVyTGlzdF9Bc3N1cmUxNkJ5dGVBbGlnbm1lbnQsICZidWZmZXIpOwogCiAg
ICAgaWYgKGVycikgewotICAgICAgICBMT0coTWVkaWEsICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6cHJvZXNzKCVwKSAtIENNU2FtcGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0
aFJldGFpbmVkQmxvY2tCdWZmZXIgcmV0dXJuZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOworICAg
ICAgICBMT0coTWVkaWEsICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcygl
cCkgLSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVm
ZmVyIHJldHVybmVkIGVycm9yICVpIiwgdGhpcywgZXJyKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01
OCw3ICs1OCw3IEBAIFJlYWx0aW1lTWVkaWFTb3VyY2VPd3IoT3dyTWVkaWFTb3VyY2UqIG0KIAog
ICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2VPd3IoKSB7IH0KIAotICAgIHZpcnR1YWwg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNv
bnN0IHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CisgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgeyByZXR1cm4gbV9jYXBh
YmlsaXRpZXM7IH0KICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMm
IHN0YXRlcygpIHsgcmV0dXJuIG1fY3VycmVudFN0YXRlczsgfQogCiAgICAgT3dyTWVkaWFTb3Vy
Y2UqIG1lZGlhU291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVNvdXJjZTsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgfk1v
Y2tTb3VyY2UoKSB7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OyB9CisgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4g
Y2FwYWJpbGl0aWVzKCkgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIHsgcmV0dXJuIG1fY3VycmVu
dFN0YXRlczsgfQogCiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IG1fY2FwYWJpbGl0aWVzOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxNjM3KQorKysgTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMTAtMjcg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlh
U3RyZWFtXSBQbGF5IE1lZGlhU3RyZWFtIHRocm91Z2ggbWVkaWEgZWxlbWVudCBhbmQgcmVuZGVy
ZWQgdG8gY2FudmFzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTA0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLWVuZGVkLXRyYWNrcy5odG1s
OgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXRyYWNrcy10by1p
bmFjdGl2ZS1zdHJlYW0uaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtLWNvbnN0cnVjdC13aXRoLWVuZGVkLXRyYWNrcy5odG1sOgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sOgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1vbmVuZGVkLmh0bWw6CisgICAgICAgICogZmFzdC9t
ZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qczoKKyAgICAgICAgKHJl
amVjdCk6CisgICAgICAgIChnZXRVc2VyTWVkaWEpOgorCiAyMDE1LTEwLTI3ICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb2Rlcm4gSURCOiBTdXBwb3J0IElE
Qk9iamVjdFN0b3JlLnB1dC9nZXQgc3VwcG9ydC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLWVuZGVkLXRyYWNrcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLWVuZGVkLXRyYWNr
cy5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtLWFkZC1lbmRlZC10cmFja3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NyArNTIsNyBAQAogICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnYXVkaW9U
cmFjay5yZWFkeVN0YXRlJywgJ2VuZGVkJyk7CiAKICAgICAgICAgICAgICAgICBkZWJ1ZygiKioq
IGNvbnN0cnVjdCBuZXcgJ2VtcHR5JyBzdHJlYW0yIikKLSAgICAgICAgICAgICAgICBzdHJlYW0y
ID0gbmV3IHdlYmtpdE1lZGlhU3RyZWFtKCk7CisgICAgICAgICAgICAgICAgc3RyZWFtMiA9IG5l
dyBNZWRpYVN0cmVhbSgpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdzdHJlYW0yLmdldFRy
YWNrcygpLmxlbmd0aCcsICcwJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIu
YWN0aXZlJywgJ2ZhbHNlJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0tYWRkLXRyYWNrcy10by1pbmFjdGl2ZS1zdHJlYW0uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWFkZC10cmFja3Mt
dG8taW5hY3RpdmUtc3RyZWFtLmh0bWwJKHJldmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXRyYWNrcy10by1pbmFjdGl2ZS1zdHJl
YW0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjEsNyArMjEsNyBAQAogCiAgICAgICAgICAgICBm
dW5jdGlvbiBjcmVhdGVTdHJlYW1BbmRBZGRUcmFja3MoKQogICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIHN0cmVhbTIgPSBuZXcgd2Via2l0TWVkaWFTdHJlYW0oKTsKKyAgICAgICAgICAg
ICAgICBzdHJlYW0yID0gbmV3IE1lZGlhU3RyZWFtKCk7CiAgICAgICAgICAgICAgICAgZGVidWco
Ik1lZGlhU3RyZWFtIHdpdGhvdXQgdHJhY2tzIGNyZWF0ZWQuIik7CiAgICAgICAgICAgICAgICAg
c2hvdWxkQmUoJ3N0cmVhbTIuZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMCcpOwogICAgICAg
ICAgICAgICAgIGF1ZGlvVHJhY2sgPSBzdHJlYW0xLmdldEF1ZGlvVHJhY2tzKClbMF07CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLWNvbnN0cnVjdC13aXRo
LWVuZGVkLXRyYWNrcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0tY29uc3RydWN0LXdpdGgtZW5kZWQtdHJhY2tzLmh0bWwJKHJldmlz
aW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0t
Y29uc3RydWN0LXdpdGgtZW5kZWQtdHJhY2tzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDEy
ICsyOSwxMiBAQAogICAgICAgICAgICAgICAgIHZhciB0cmFja3NBcnJheSA9IFtdOwogICAgICAg
ICAgICAgICAgIHRyYWNrc0FycmF5LnB1c2godmlkZW9UcmFjayk7CiAgICAgICAgICAgICAgICAg
dHJhY2tzQXJyYXkucHVzaChhdWRpb1RyYWNrKTsKLSAgICAgICAgICAgICAgICBuZXdNZWRpYVN0
cmVhbSA9IG5ldyB3ZWJraXRNZWRpYVN0cmVhbSh0cmFja3NBcnJheSk7CisgICAgICAgICAgICAg
ICAgbmV3TWVkaWFTdHJlYW0gPSBuZXcgTWVkaWFTdHJlYW0odHJhY2tzQXJyYXkpOwogCiAgICAg
ICAgICAgICAgICAgc2hvdWxkRXZhbHVhdGVUbygnbmV3TWVkaWFTdHJlYW0uYWN0aXZlJywgZmFs
c2UpOwogICAgICAgICAgICAgICAgIHNob3VsZE5vdEJlKCdtZWRpYVN0cmVhbS5pZCcsICduZXdN
ZWRpYVN0cmVhbS5pZCcpOwogCi0gICAgICAgICAgICAgICAgbWVkaWFTdHJlYW1Db3B5ID0gbmV3
IHdlYmtpdE1lZGlhU3RyZWFtKG5ld01lZGlhU3RyZWFtKTsKKyAgICAgICAgICAgICAgICBtZWRp
YVN0cmVhbUNvcHkgPSBuZXcgTWVkaWFTdHJlYW0obmV3TWVkaWFTdHJlYW0pOwogICAgICAgICAg
ICAgICAgIHNob3VsZEV2YWx1YXRlVG8oJ21lZGlhU3RyZWFtQ29weS5hY3RpdmUnLCBmYWxzZSk7
CiAgICAgICAgICAgICAgICAgc2hvdWxkTm90QmUoJ21lZGlhU3RyZWFtQ29weS5pZCcsICduZXdN
ZWRpYVN0cmVhbS5pZCcpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbAkocmV2aXNpb24gMTkxNjM3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNvbnN0cnVjdG9y
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBACiAgICAgICAgIDxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgogICAgICAgICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KICAgICAgICAg
PHNjcmlwdD4KLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB3ZWJraXRNZWRpYVN0cmVh
bS4iKTsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBNZWRpYVN0cmVhbS4iKTsKIAog
ICAgICAgICAgICAgdmFyIHVuZGVmaW5lZDsKICAgICAgICAgICAgIHZhciBzdHJlYW07CkBAIC00
NywzMCArNDcsMzAgQEAKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnbG9jYWxTdHJlYW0uZ2V0
QXVkaW9UcmFja3MoKS5sZW5ndGgnLCAnMScpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCds
b2NhbFN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICcxJyk7CiAKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZVRydWUoInR5cGVvZiB3ZWJraXRNZWRpYVN0cmVhbSA9PT0gJ29iamVjdCci
KTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoInR5cGVvZiBNZWRpYVN0cmVhbSA9PT0g
J29iamVjdCciKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZVRydWUoJ2NoZWNrSWRBdHRyaWJ1
dGUobG9jYWxTdHJlYW0uaWQpJyk7CiAgICAgICAgICAgICAgICAgdGVzdENvbnN0cnVjdG9yKGxv
Y2FsU3RyZWFtKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdENv
bnN0cnVjdG9yKHMpIHsKICAgICAgICAgICAgICAgICBzdHJlYW0gPSBzOwotICAgICAgICAgICAg
ICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0oZG9jdW1lbnQpJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShbZG9jdW1lbnRd
KScpOwotICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0o
W3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBkb2N1bWVudF0pJyk7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShbbnVsbF0pJyk7Ci0gICAgICAg
ICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShbdW5kZWZpbmVkXSkn
KTsKLSAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKG51
bGwpJyk7Ci0gICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVh
bSh1bmRlZmluZWQpJyk7Ci0KLSAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJr
aXRNZWRpYVN0cmVhbSgpIiwgMCwgMCk7Ci0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJu
ZXcgd2Via2l0TWVkaWFTdHJlYW0oW10pIiwgMCwgMCk7Ci0KLSAgICAgICAgICAgICAgICB2ZXJp
ZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShzdHJlYW0pIiwgcy5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCwgcy5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCk7Ci0KLSAgICAgICAgICAgICAg
ICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJh
Y2tzKClbMF1dKSIsIDEsIDApOwotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdl
YmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMCwgMSk7Ci0g
ICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJlYW0oW3N0cmVh
bS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMSwg
MSk7Ci0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFTdHJlYW0o
W3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXSwg
c3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDEsIDEpOworICAgICAgICAgICAgICAgIHNo
b3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0oZG9jdW1lbnQpJyk7CisgICAgICAgICAgICAgICAg
c2hvdWxkVGhyb3coJ25ldyBNZWRpYVN0cmVhbShbZG9jdW1lbnRdKScpOworICAgICAgICAgICAg
ICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygp
WzBdLCBkb2N1bWVudF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyBNZWRp
YVN0cmVhbShbbnVsbF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyBNZWRp
YVN0cmVhbShbdW5kZWZpbmVkXSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3
IE1lZGlhU3RyZWFtKG51bGwpJyk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyBN
ZWRpYVN0cmVhbSh1bmRlZmluZWQpJyk7CisKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0o
Im5ldyBNZWRpYVN0cmVhbSgpIiwgMCwgMCk7CisgICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFt
KCJuZXcgTWVkaWFTdHJlYW0oW10pIiwgMCwgMCk7CisKKyAgICAgICAgICAgICAgICB2ZXJpZnlT
dHJlYW0oIm5ldyBNZWRpYVN0cmVhbShzdHJlYW0pIiwgcy5nZXRBdWRpb1RyYWNrcygpLmxlbmd0
aCwgcy5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCk7CisKKyAgICAgICAgICAgICAgICB2ZXJpZnlT
dHJlYW0oIm5ldyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF1dKSIsIDEs
IDApOworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlhU3RyZWFtKFtzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMCwgMSk7CisgICAgICAgICAgICAgICAgdmVyaWZ5
U3RyZWFtKCJuZXcgTWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJl
YW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7CisgICAgICAgICAgICAgICAgdmVyaWZ5
U3RyZWFtKCJuZXcgTWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdLCBzdHJl
YW0uZ2V0QXVkaW9UcmFja3MoKVswXSwgc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF1dKSIsIDEs
IDEpOwogCiAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CiAgICAgICAgICAgICB9CkBA
IC04NCw3ICs4NCw3IEBACiAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnU3RyZWFtIGNvbnN0
cnVjdGVkJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVOb25OdWxsKG5ld1N0cmVhbSk7CiAg
ICAgICAgICAgICAgICAgc2hvdWxkQmVEZWZpbmVkKG5ld1N0cmVhbSk7Ci0gICAgICAgICAgICAg
ICAgc2hvdWxkQmUoIm5ld1N0cmVhbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpIiwgIidbb2JqZWN0
IHdlYmtpdE1lZGlhU3RyZWFtQ29uc3RydWN0b3JdJyIpOworICAgICAgICAgICAgICAgIHNob3Vs
ZEJlKCJuZXdTdHJlYW0uY29uc3RydWN0b3IudG9TdHJpbmcoKSIsICInW29iamVjdCBNZWRpYVN0
cmVhbUNvbnN0cnVjdG9yXSciKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnbmV3U3RyZWFt
LmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoJywgJ25BdWRpbycpOwogICAgICAgICAgICAgICAgIHNo
b3VsZEJlKCduZXdTdHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGgnLCAnblZpZGVvJyk7CiAK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay1vbmVu
ZGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbAkocmV2aXNpb24gMTkxNjM3KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTgsNyArMTgsNyBAQAogICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAg
ICAgICAgICAgICAgIG5hdmlnYXRvci53ZWJraXRHZXRVc2VyTWVkaWEoZGljdGlvbmFyeSwgY2Fs
bGJhY2ssIGVycm9yKTsKICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQoJ3dlYmtpdEdldFVzZXJNZWRpYSB0aHJldyBleGNlcHRpb24g
OicgKyBlKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgnZ2V0VXNlck1lZGlhIHRo
cmV3IGV4Y2VwdGlvbiA6JyArIGUpOwogICAgICAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0zNiw3ICszNiw3IEBACiAg
ICAgICAgICAgICBmdW5jdGlvbiBnb3RTdHJlYW0yKHMpIHsKICAgICAgICAgICAgICAgICBkZWJ1
ZygiIik7CiAgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgnZ290U3RyZWFtMiB3YXMgY2FsbGVk
LicpOwotICAgICAgICAgICAgICAgIHN0cmVhbSA9IG5ldyB3ZWJraXRNZWRpYVN0cmVhbShzKTsK
KyAgICAgICAgICAgICAgICBzdHJlYW0gPSBuZXcgTWVkaWFTdHJlYW0ocyk7CiAgICAgICAgICAg
ICAgICAgdHJhY2sgPSBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKICAgICAgICAgICAgICAg
ICB0cmFja0Nsb25lID0gdHJhY2suY2xvbmUoKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZUZh
bHNlKCd0cmFjay5yZWFkeVN0YXRlID09ICJlbmRlZCInKTsKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlh
LWhlbHBlci5qcwkocmV2aXNpb24gMTkxNjM3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwkod29ya2luZyBjb3B5KQpAQCAt
NCw2ICs0LDcgQEAgZnVuY3Rpb24gZ2V0VXNlck1lZGlhKHBlcm1pc3Npb24sIGNvbnN0cgogICAg
IGVsc2UgewogICAgICAgICBkZWJ1ZygiVGhpcyB0ZXN0IGNhbiBub3QgYmUgcnVuIHdpdGhvdXQg
dGhlIHRlc3RSdW5uZXIiKTsKICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJNZWRpYShjb25z
dHJhaW50cykudGhlbihzdWNjZXNzQ2FsbGJhY2ssIHJlamVjdCkuY2F0Y2goZGVmYXVsdFJlamVj
dE9yQ2F0Y2gpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264223</attachid>
            <date>2015-10-28 10:11:52 -0700</date>
            <delta_ts>2016-01-15 13:35:36 -0800</delta_ts>
            <desc>Another updated patch.</desc>
            <filename>media_player_stream_patch_15.txt</filename>
            <type>text/plain</type>
            <size>128650</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MCBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAg
ICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9u
KTogTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0aGUKKyAgICAgICAgICBp
bnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAgIChXZWJDb3JlOjpBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21D
b25uZWN0aW9uKTogRG9uJ3QgYmxvY2sKKyAgICAgICAgICBpZiBpdCBpc24ndCBwb3NzaWJsZSB0
byBhY3F1aXJlIHRoZSBsb2NrLiBIb2xkIHRoZSBsb2NrIHdoaWxlIGNhbGxpbmcgb2JzZXJ2ZXJz
LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6
IERlbGV0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJl
RGV2aWNlTWFuYWdlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnJlZnJlc2hDYXB0dXJlRGV2aWNl
TGlzdCk6IERvbid0IGluY2x1ZGUgZGV2aWNlcyB0aGF0IGNhbid0IGJlIHVzZWQuCisgICAgICAg
IChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyk6ICBVc2UgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRAor
ICAgICAgICAgIHNvIGNvbnN0cmFpbnRzIGFyZSBjb25zaWRlcmVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRCk6IERvbid0IGNvbnNpZGVy
IGRpc2FibGVkIGRldmljZXMuIEFsd2F5cworICAgICAgICAgIGNyZWF0ZSBhIG5ldyBjYXB0dXJl
IGRldmljZSBzbyBlYWNoIHRyYWNrIHN0YXJ0cyBvdXQgd2l0aCBhIHVuaXF1ZSBzb3VyY2UuCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmg6
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UubW06CisgICAgICAgIChXZWJDb3JlOjpnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNv
dXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFD
YXB0dXJlU291cmNlKTogUmVtb3ZlIEtWTyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogbV9pc1J1bm5pbmcgaXMg
Y2hhbmdlZCBpbiBjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IE5l
dy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24p
OiBBZGQgS1ZPYnNlcnZlcnMgZm9yIHRoZSBwcm9wZXJ0aWVzIHdlIGNhcmUgYWJvdXQuCisgICAg
ICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6cmVzZXQpOiBOZXcsIGNsZWFudXAu
CisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25J
c1J1bm5pbmdEaWRDaGFuZ2UpOiBEaXNwYXRjaCB0byB0aGUgbWFpbiB0aHJlYWQgCisgICAgICAg
ICAgdG8gc2V0IG1faXNSdW5uaW5nLCBjYWxsIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSBzbyBv
YnNlcnZlcnMgY2FuIGZpbmQgb3V0LgorICAgICAgICAoV2ViQ29yZTo6c2Vzc2lvbktWT1Byb3Bl
cnRpZXMpOgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBk
aXNjb25uZWN0XSk6CisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2Vy
dmVyIGNhcHR1cmVPdXRwdXQ6ZGlkT3V0cHV0U2FtcGxlQnVmZmVyOmZyb21Db25uZWN0aW9uOl0p
OgorICAgICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBvYnNlcnZl
VmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOiBSZXNwb25kCisgICAg
ICAgICAgdG8gcnVubmluZyBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1
cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcpOiBEZWxldGVkLgorICAgICAg
ICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nOl0pOiBEZWxldGVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBQYXJ0aWFsIGltcGxl
bWVudGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVw
Q2FwdHVyZVNlc3Npb24pOiAgTG9nIGFuZCBmYWlsIGlmIHRoZSBzZXNzaW9uIHdvbid0IGFkZCB0
aGUKKyAgICAgICAgICBpbnB1dCBvciBvdXRwdXQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbik6IENsZWFudXAuCisgICAgICAg
IChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlRnJhbWVyYXRlKTogUmVuYW1l
ZCBmcm9tIGNhbGN1bGF0ZUZyYW1lcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFJldHVybiBhbiBJbWFnZS4KKyAgICAgICAg
KFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKTogTmV3LgorICAg
ICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJh
bWVyYXRlKTogRGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOiBBdWRpb0NvbnZlcnRlclJlZiBpcworICAgICAgICAgIG5vdCBhIENGL09i
akMgb2JqZWN0IHNvIHdlIGNhbid0IHVzZSBhIFJldGFpblB0cjw+IGZvciBpdC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92aWRlSW5wdXQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQzo6dW5wcmVwYXJlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvY2Vzcyk6IEZpeCB0eXBvIGluIGxvZ2dpbmcuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tTb3VyY2U6OmNhcGFiaWxpdGllcyk6IFVwZGF0ZSBmb3Ig
Y2FwYWJpbGl0aWVzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGll
cyBjaGFuZ2UuCisKIDIwMTUtMTAtMjcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KIAogICAgICAgICBDYW5jZWwgbmF2aWdhdGlvbiBwb2xpY3kgY2hlY2tzIGxp
a2Ugd2UgZG8gY29udGVudCBwb2xpY3kgY2hlY2tzLgpJbmRleDogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTYz
NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBAIE1lZGlhU3RyZWFtKiBNZWRpYVN0cmVh
bTo6bG9va1VwKGNvbnN0IFUKIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIE1lZGlhU3Ry
ZWFtOjpjcmVhdGUoY29udGV4dCk7CisgICAgcmV0dXJuIE1lZGlhU3RyZWFtOjpjcmVhdGUoY29u
dGV4dCwgTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUoVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZT4+KCkpKTsKIH0KIAogUmVmPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIE1lZGlhU3RyZWFtKiBzdHJl
YW0pCkBAIC05NSw3ICs5NSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIG1fcHJpdmF0ZS0+c2V0UHVibGljU3RyZWFtKHRoaXMpOwogfQogCiBNZWRpYVN0
cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgUmVmUHRy
PE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBzdHJlYW1Qcml2YXRlKQpAQCAtMTA1LDcgKzEwNiw4IEBA
IE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KICAgICAsIG1fYWN0aXZp
dHlFdmVudFRpbWVyKCp0aGlzLCAmTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1lckZpcmVk
KQogewogICAgIEFTU0VSVChtX3ByaXZhdGUpOwotICAgIG1fcHJpdmF0ZS0+c2V0Q2xpZW50KHRo
aXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOworICAgIG1fcHJpdmF0ZS0+
c2V0UHVibGljU3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBt
X3ByaXZhdGUtPnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0
cmFjayA9IE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsK
QEAgLTExNiw3ICsxMTgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1
dGlvbgogCiBNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNl
dENsaWVudChudWxscHRyKTsKKyAgICBtX3ByaXZhdGUtPnNldFB1YmxpY1N0cmVhbShudWxscHRy
KTsKKyAgICBtX3ByaXZhdGUtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2Vy
dmVyKHRoaXMpOwogfQogCiBSZWZQdHI8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjbG9uZSgp
CkBAIC0xOTksMTIgKzIwNCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayhNZWRp
YVN0cmVhCiAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm47CiAKLSAgICBpbnRlcm5h
bEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4dCwgdHJhY2tQcml2YXRl
KSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKKyAgICBpZiAoIWdldFRyYWNrQnlJZCh0cmFj
a1ByaXZhdGUuaWQoKSkpCisgICAgICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFj
azo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZv
cm0pOwogfQogCiB2b2lkIE1lZGlhU3RyZWFtOjpkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZSYgdHJhY2tQcml2YXRlKQogewogICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
PiB0cmFjayA9IGdldFRyYWNrQnlJZCh0cmFja1ByaXZhdGUuaWQoKSk7CisgICAgQVNTRVJUKHRy
YWNrKTsKICAgICBpbnRlcm5hbFJlbW92ZVRyYWNrKFdURjo6bW92ZSh0cmFjayksIFN0cmVhbU1v
ZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKQEAgLTI1NCw2ICsyNjEsNyBAQCB2b2lkIE1lZGlhU3Ry
ZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlCiAgICAgZXZlbnRzLnN3YXAobV9zY2hlZHVsZWRB
Y3Rpdml0eUV2ZW50cyk7CiAKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzKSB7CisgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNhbid0IGJlIHJpZ2h0LCB0aGUgZXZlbnQgdHlwZSBpcyBzZXQg
ZnJvbSBtX2lzQWN0aXZlIGluIHNjaGVkdWxlQWN0aXZlU3RhdGVDaGFuZ2UhCiAgICAgICAgIG1f
aXNBY3RpdmUgPSBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5hY3RpdmVFdmVudDsKICAg
ICAgICAgZGlzcGF0Y2hFdmVudChldmVudC5yZWxlYXNlKCkpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLWNsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxl
LCBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFjazo6T2JzZXJ2ZXIgeworY2xhc3Mg
TWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVnaXN0cmFibGUsIHB1YmxpYyBTY3JpcHRX
cmFwcGFibGUsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciwg
cHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewogICAgIHB1YmxpYzoK
QEAgLTgxLDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZh
Y2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNZWRpYVN0cmVh
bUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KIAot
ICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6cmVmOwotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBVUkxSZWdpc3RyYWJsZQogICAgIHZpcnR1
YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlcgogICAgIHZp
cnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRlIGZpbmFsOwogCi0gICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgog
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBN
ZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5nZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVu
ZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tQcm9kdWNpbmdEYXRh
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY29uZmlndXJlVHJhY2tS
ZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja0VuYWJsZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjb25maWd1cmVUcmFja1JlbmRl
cmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJhY2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVy
aW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgJKHJldmlzaW9uIDE5MTYzNykK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRy
YWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKICAgICB2b2lkIHRy
YWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2Jz
ZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NDksMTQgKzY0OSwxMyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRBZGRSZW1vdGVT
dHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRSZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFT
dHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICBBU1NFUlQocHJpdmF0ZVN0cmVh
bS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRoaXMgY2xhc3Mgc2hvdWxkbid0IGtub3cg
dGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlzIGEgTWVkaWFTdHJlYW0hCi0gICAgUmVm
UHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNfY2FzdDxNZWRpYVN0cmVhbSo+KHByaXZh
dGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmIChtX3NpZ25hbGluZ1N0YXRlID09IFNpZ25h
bGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQocHJpdmF0ZVN0
cmVhbS0+cHVibGljU3RyZWFtKCkpOworCisgICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0g
PSBwcml2YXRlU3RyZWFtLT5wdWJsaWNTdHJlYW0oKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjIgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworY2xhc3MgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50OworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVk
aWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCk7CkBAIC01OCwxMTYgKzU2
LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotICAg
IHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7Ci0gICAg
dm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQot
ICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsK
LSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
Kik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1wbGVtZW50IG5lY2Vzc2FyeSBjb25mb3Jt
YXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVsZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAot
ICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH07CisgICAgLy8gTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBGSVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQg
bmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRhcmQgaW4gSFRNTE1lZGlhRWxlbWVudCBm
b3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlkZSB7IH07CisgICAgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwogI2VuZGlm
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2
YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOwotICAgIFBsYXRmb3JtTWVkaWEg
cGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBwbGF5KCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLQogICAgIHZvaWQgcGF1c2UoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsKLQogICAgIGJvb2wgcGF1c2VkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBib29sKTsKICAgICB2b2lkIHNldE11dGVk
KGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRWaXNp
YmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKSBvdmVycmlkZSB7
IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlIHsgfTsKLSAgICBib29sIHNl
ZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRl
IHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIGJv
b2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0
ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsgfQogCi0gICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JSZW5k
ZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxv
YWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07
IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwot
Ci0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVf
dCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKICAgICBi
b29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKKworICAgIGVudW0gUmVu
ZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRlcmluZ01vZGVVbmNoYW5nZWQsCisgICAg
ICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1
cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOworCisgICAgdm9pZCBjcmVh
dGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNldFBhdXNlZEltYWdlVmlzaWJsZShib29s
KTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+
KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOworICAgIC8v
IE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5n
ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSBvdmVycmlk
ZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKKyAgICBNZWRpYVBsYXllciogbV9wbGF5
ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIFJlZlB0cjxNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJpdmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZB
c3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+
IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0gICAgVmVjdG9yPFJldGFpblB0cjxBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwot
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJbWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+
IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFpblB0cjxpZD4gbV9kdXJhdGlvbk9ic2Vy
dmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Npb24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwotICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAgICBNZWRpYVRpbWUgbV9sYXN0U2Vla1Rp
bWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29sIG1fcGxheWluZzsKLSAgICBib29sIG1f
c2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRlZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9s
b2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX21lZGlh
U3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxDQUxheWVyPiBtX3ByZXZpZXdM
YXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX3BhdXNlZEltYWdlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsKKyAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5n
IH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7
IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5ld0ZyYW1lIHtmYWxzZSB9OworICAgIGJv
b2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9OwogICAgIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxOCArMjgsMTQgQEAKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQg
IkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5o
IgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9ydCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJl
YW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0jaW1w
b3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5o
IgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWVGltZS5oPgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4K
ICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNTAsMTggKzQ2LDYgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKLVNPRlRfTElOS19DTEFTU19P
UFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllcikKLVNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwotCi0jcHJhZ21hIG1hcmsgLQot
I3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1AaW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lv
biA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRV
Ukw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBlbmQKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25ldHdvcmtT
dGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAgICAsIG1fcGxheWluZygwKQotICAgICwg
bV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29tcGxldGVkKHRydWUpCi0gICAgLCBtX2xv
YWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7
Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyglcCkiLCB0aGlzKTsKIH0KIAog
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRlKQorICAgICAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21h
IG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeSgpCi0gICAg
ICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwotICAgIHN0YXRpYyBib29sIHR5cGVMaXN0
SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0eXBlTGlzdEluaXRpYWxpemVkKQotICAg
ICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAg
ICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVU
eXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5cGUgaW4gdHlwZXMpCi0gICAgICAgIGNh
Y2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICByZXR1cm4gY2FjaGU7CisgICAgcmV0dXJu
IEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykKIHsKLSAgICB0eXBlcyA9IG1pbWVU
eXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBj
YWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5
OCwxNzQgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaQogI3ByYWdt
YSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgT3ZlcnJp
ZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNv
bnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBN
ZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAg
ICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOwor
fQorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0
cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNl
dE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKE1l
ZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bG9hZCglcCkiLCB0aGlzKTsKIAotICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlID0gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6Y3JlYXRlKCp0aGlz
LCBzdHJlYW0pOwotICAgIGZvciAoYXV0byB0cmFjayA6IHN0cmVhbS50cmFja3MoKSkgewotICAg
ICAgICBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkVHJhY2soV1RGOjptb3ZlKHRyYWNrKSk7Ci0g
ICAgICAgIGlmICghdHJhY2stPmVuZGVkKCkpIHsKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7Ci0gICAgICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0
cnVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZSA9ICZzdHJl
YW07CisgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisKICAgICBtX3ByZXZp
ZXdMYXllciA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Q
cml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKLSAgICAgICAgICAgIG1fcHJldmlld0xheWVyID0g
c3RhdGljX2Nhc3Q8QVZWaWRlb0NhcHR1cmVTb3VyY2UqPih0cmFjay0+c291cmNlKCkpLT5wcmV2
aWV3TGF5ZXIoKTsKLSAgICB9Ci0gICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVu
ZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworCisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2so
W3RoaXNdIHsKKyAgICAgICAgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpJZGxlKTsKKyAg
ICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0
YWRhdGEpCisgICAgICAgICAgICB0aGlzLT5zZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlOjpIYXZlTWV0YWRhdGEpOworICAgIH0pOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCgpCiB7CisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCVwKSIsIHRo
aXMpOworICAgIHBhdXNlKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCkKIHsKLX0KLQotUGxhdGZvcm1NZWRpYSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAotewot
ICAgIFBsYXRmb3JtTWVkaWEgcG07Ci0gICAgcG0udHlwZSA9IFBsYXRmb3JtTWVkaWE6OkFWRm91
bmRhdGlvbkFzc2V0VHlwZTsKLSAgICBwbS5tZWRpYS5hdmZBc3NldCA9IG1fYXNzZXQuZ2V0KCk7
Ci0gICAgcmV0dXJuIHBtOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSglcCkiLCB0aGlzKTsKIH0KIAogUGxhdGZvcm1M
YXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVy
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJldmlld0xheWVyKQorICAgIGlmICghbV92aWRlb0Jh
Y2tncm91bmRMYXllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFBsYXRmb3JtTGF5ZXIqPihtX3ByZXZpZXdMYXllcik7CisKKyAgICByZXR1cm4gbV92
aWRlb0JhY2tncm91bmRMYXllci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnBsYXkoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldFBhdXNlZEltYWdlVmlzaWJsZShib29sIHZpc2libGUpCiB7Ci0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpc10gewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB3ZWFrVGhpcy5nZXQoKS0+cGxheUludGVybmFsKCk7Ci0gICAgfSk7CisgICAgaWYg
KCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8ICFtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAodmlzaWJsZSA9PSBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRk
ZW4pCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgZG8geworICAgICAgICBpZiAodmlzaWJs
ZSkgeworICAgICAgICAgICAgbV9jbG9jay0+c3RvcCgpOworCisgICAgICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmN1cnJlbnRGcmFtZUltYWdlKCk7
CisgICAgICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBtX3BhdXNlZEltYWdlID0gaW1hZ2UtPmdldENHSW1hZ2VSZWYoKTsKKyAgICAgICAg
ICAgIGlmICghbV9wYXVzZWRJbWFnZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5jb250ZW50cyA9IChpZCltX3BhdXNl
ZEltYWdlLmdldCgpOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0g
dHJ1ZTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFsc2U7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5pc1Byb2R1
Y2luZ0RhdGEoKSkgeworICAgICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bV9jbG9jay0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFs
c2U7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSBmYWxzZTsKKyAg
ICAgICAgICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuY29udGVudHMgPSBuaWw7Cisg
ICAgICAgICAgICBtX3BhdXNlZEltYWdlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gd2hp
bGUgKDApOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCgpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiB7Ci0gICAgbV9wbGF5aW5n
ID0gdHJ1ZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXkoJXApIiwgdGhpcyk7CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2hhdmVFdmVyUGxheWVkID0g
dHJ1ZTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogewotICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
d2Vha1RoaXMuZ2V0KCktPnBhdXNlSW50ZXJuYWwoKTsKLSAgICB9KTsKLX0KKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCVwKSIsIHRo
aXMpOwogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJ
bnRlcm5hbCgpCi17Ci0gICAgbV9wbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9N
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0
b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKHRydWUpOworICAg
IG1fcGxheWluZyA9IGZhbHNlOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICAvLyBTaG91bGRuJ3QgYmUgYWJsZSB0
byBwYXVzZSBzdHJlYW1zCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhbV9wbGF5aW5n
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omlu
dGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbCBpbnRlcm5hbCkKIHsKKyAgICBpZiAo
IWludGVybmFsKQorICAgICAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKworICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFNldCB2b2x1
bWUgb25jZSB3ZSBhY3R1YWxseSBwbGF5IGF1ZGlvLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbFNldFZvbHVtZSh2b2x1bWUsIGZh
bHNlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJl
YW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c2V0TXV0ZWQobXV0ZWQpOwotICAgIH0KLX0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKCVwKSIsIHRoaXMpOwogCi1GbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGZsb2F0U2l6ZSgwLCAwKTsKLSAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7Ci0gICAg
ICAgICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogc291cmNlID0gKEFWVmlkZW9DYXB0dXJlU291
cmNlKil0cmFjay0+c291cmNlKCk7Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZS0+c3RvcHBlZCgp
ICYmIHRyYWNrLT5lbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLT53aWR0
aCgpID4gZmxvYXRTaXplLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5z
ZXRXaWR0aChzb3VyY2UtPndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhl
aWdodCgpID4gZmxvYXRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBmbG9hdFNp
emUuc2V0SGVpZ2h0KHNvdXJjZS0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiBmbG9hdFNpemU7CisgICAgaWYgKG11dGVkID09IG1fbXV0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICAKKyAgICBpbnRl
cm5hbFNldFZvbHVtZShtdXRlZCA/IDAgOiBtX3ZvbHVtZSwgdHJ1ZSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewot
ICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNWaWRlbygpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0VmlzaWJsZShib29sKQotewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aGFzQXVkaW8oKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdApAQCAtMjgy
LDE5ICsyNzUsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BCiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FKDE0NzEyNSk6IE11c3QgaW1wbGVtZW50
IHRoaXMgbGF0ZXIKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0Ci17
Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoZG91YmxlKQotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGU7IHRoZXJlZm9y
ZSwgY2Fubm90IHNldCByYXRlCisgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZShtX2Nsb2NrLT5jdXJyZW50VGltZSgpKTsKIH0KIAogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5ldHdvcmtTdGF0ZSgpIGNv
bnN0CkBAIC0zMDcsODUgKzI4OCwxMjggQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQ
bGF5ZXJQcml2YQogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaXplQ2hhbmdlZCgpCitNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRS
ZWFkeVN0YXRlKCkKIHsKLSAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLX0KKyAgICBpZiAo
bV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGE7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4obWluTWVkaWFU
aW1lU2Vla2FibGUoKSwgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSk7Ci19CisgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOworICAgIH0KIAotTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBkdXJhdGlvbk1lZGlhVGltZSgpOworICAg
IHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKLU1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1pbk1lZGlhVGltZVNl
ZWthYmxlKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphY3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKLSAgICByZXR1cm4gc3RhcnRUaW1lKCk7Ci19Cisg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0
YXRlKCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpcywgbmV3UmVhZHlTdGF0ZV0geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworICAgIH0pOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6UmVuZGVyaW5nTW9kZVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJiBz
aXplKQogewotICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgPSBtX2xvYWRpbmdQcm9ncmVzc2Vk
OwotICAgIG1fbG9hZGluZ1Byb2dyZXNzZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gbG9hZGluZ1By
b2dyZXNzZWQ7Ci19CisgICAgaWYgKHNpemUgPT0gbV9pbnRyaW5zaWNTaXplKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCi17Ci0gICAgLy8gTm8t
b3AuCisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsKKworICAgIGlmIChtX3ZpZGVvQmFja2dy
b3VuZExheWVyIHx8ICFtX3BsYXllciB8fCAhbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCisgICAgICAgIHJldHVybiBSZW5k
ZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAh
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIFJl
bmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyaW5nTW9kZUNoYW5nZWQ7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdlRnJvbVNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycygpCiB7Ci0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAg
dm9pZCAqYmFzZUFkZHJlc3MgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MoaW1hZ2VCdWZm
ZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChpbWFnZUJ1ZmZlcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJl
dGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ3JlYXRlV2l0aERhdGEoTlVMTCwgYmFzZUFkZHJlc3MsIGJ5dGVzUGVyUm93ICogaGVpZ2h0
LCBOVUxMKSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHF1YXJ0ekltYWdlID0gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgY29sb3JT
cGFjZS5nZXQoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0LCBwcm92aWRlci5nZXQoKSwgTlVMTCwgdHJ1ZSwga0NHUmVuZGVyaW5n
SW50ZW50RGVmYXVsdCkpOwotICAgIAotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHF1YXJ0ekltYWdlOworICAgIGlm
IChtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBt
X3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JHZXRD
b25zdGFudENvbG9yKGtDR0NvbG9yQ2xlYXIpOworI2lmbmRlZiBOREVCVUcKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyLmdldCgpLm5hbWUgPSBAIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQyBwcmV2aWV3IGJhY2tncm91bmQgbGF5ZXIiOworI2VuZGlmCisKKyAgICBtX3By
ZXZpZXdMYXllciA9IG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wbGF0Zm9ybUxheWVyKCk7CisgICAg
bV9wcmV2aWV3TGF5ZXIuZ2V0KCkuY29udGVudHNHcmF2aXR5ID0ga0NBR3Jhdml0eVJlc2l6ZTsK
KyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hbmNob3JQb2ludCA9IENHUG9pbnRaZXJvOworICAg
IG1fcHJldmlld0xheWVyLmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FMYXllcldpZHRoU2l6
YWJsZSB8IGtDQUxheWVySGVpZ2h0U2l6YWJsZTsKKyAgICBpZiAoIW1fcGxheWluZykKKyAgICAg
ICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0gdHJ1ZTsKKworICAgIFttX3ZpZGVvQmFj
a2dyb3VuZExheWVyIGFkZFN1YmxheWVyOm1fcHJldmlld0xheWVyLmdldCgpXTsKIH0KIAotdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50KEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKQogewotICAg
IHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOworICAgIFJlbmRlcmlu
Z01vZGVTdGF0dXMgc3RhdHVzID0gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKyAgICBib29sIHNp
emVDaGFuZ2VkID0gZmFsc2U7CisKKyAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSA9IG1fbWVk
aWFTdHJlYW1Qcml2YXRlLT5pbnRyaW5zaWNTaXplKCk7CisgICAgaWYgKGludHJpbnNpY1NpemUu
aGVpZ2h0KCkgIT0gbV9pbnRyaW5zaWNTaXplLmhlaWdodCgpIHx8IGludHJpbnNpY1NpemUud2lk
dGgoKSAhPSBtX2ludHJpbnNpY1NpemUud2lkdGgoKSkgeworICAgICAgICBzdGF0dXMgPSB1cGRh
dGVJbnRyaW5zaWNTaXplKGludHJpbnNpY1NpemUpOworICAgICAgICBzaXplQ2hhbmdlZCA9IHRy
dWU7CisgICAgfQorCisgICAgaWYgKG1fd2FpdGluZ0Zvck5ld0ZyYW1lICYmIG1fbWVkaWFTdHJl
YW1Qcml2YXRlLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc2V0UGF1c2VkSW1hZ2VWaXNp
YmxlKGZhbHNlKTsKKworICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIG5ld1JlYWR5U3RhdGUg
PSBjdXJyZW50UmVhZHlTdGF0ZSgpOworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBz
aXplQ2hhbmdlZCwgbmV3UmVhZHlTdGF0ZSwgc3RhdHVzXSB7CisgICAgICAgIGlmIChuZXdSZWFk
eVN0YXRlICE9IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgICAgIHNldFJlYWR5U3RhdGUobmV3UmVh
ZHlTdGF0ZSk7CisKKyAgICAgICAgaWYgKCFtX3BsYXllcikKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICBtX3BsYXllci0+Y2hhcmFjdGVyaXN0aWNDaGFuZ2VkKCk7CisgICAgICAgIGlm
IChzaXplQ2hhbmdlZCkgeworICAgICAgICAgICAgbV9wbGF5ZXItPnNpemVDaGFuZ2VkKCk7Cisg
ICAgICAgICAgICBpZiAoc3RhdHVzID09IFJlbmRlcmluZ01vZGVDaGFuZ2VkKQorICAgICAgICAg
ICAgICAgIG1fcGxheWVyLT5jbGllbnQoKS5tZWRpYVBsYXllclJlbmRlcmluZ01vZGVDaGFuZ2Vk
KG1fcGxheWVyKTsKKyAgICAgICAgfQorICAgIH0pOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRp
bWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUo
KSBjb25zdAogewotICAgIC8vIEZJWE1FKDEyNTE1Nyk6IEltcGxlbWVudCBwYWludGluZy4KKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiB9CiAKLWJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c0FjY2VsZXJh
dGVkUmVuZGVyaW5nKCkgY29uc3QKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAog
ewotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3Jt
VGltZVJhbmdlcz4oKTsKIH0KIAotTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKCkgY29uc3QKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gTWVkaWFQ
bGF5ZXI6OkxpdmVTdHJlYW07CisgICAgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4
dCwgcmVjdCk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpwcmVwYXJlRm9yUmVuZGVyaW5nKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICAvLyBOby1vcC4KKyAgICBpZiAo
IW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIW1f
aGF2ZUV2ZXJQbGF5ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX3BsYXlpbmcpCisg
ICAgICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5wYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChj
b250ZXh0LCByZWN0KTsKKyAgICBlbHNlIGlmIChtX3BhdXNlZEltYWdlKSB7CisgICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICAgICAgY29u
dGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgICAgIGNvbnRleHQuc2V0
SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBvbGF0aW9uTG93KTsKKyAgICAgICAgSW50
UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0
LmhlaWdodCgpKSk7CisgICAgICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3Jt
Q29udGV4dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3Qu
aGVpZ2h0KCkpLCBtX3BhdXNlZEltYWdlLmdldCgpKTsKKyAgICB9CiB9CiAKIFN0cmluZyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmVuZ2luZURlc2NyaXB0aW9uKCkgY29u
c3QKQEAgLTM5NCwxNyArNDE4LDYgQEAgU3RyaW5nIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGTwogICAgIHJldHVybiBkZXNjcmlwdGlvbjsKIH0KIAotU3RyaW5nIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkg
Y29uc3QKLXsKLSAgICAvLyBGSVhNRSgxMjUxNTgpOiBpbXBsZW1lbnQgbGFuZ3VhZ2VPZlByaW1h
cnlBdWRpb1RyYWNrKCkKLSAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKLX0KLQotc2l6ZV90IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gMDsKLX0KLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNob3VsZEJlUGxheWluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGxh
eWluZyAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVGdXR1cmVEYXRhOwpAQCAt
NDIwLDYgKzQzMywyNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
CiAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUpCit7CisgICAgaWYgKG1fbmV0d29ya1N0YXRlID09
IG5ldHdvcmtTdGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9uZXR3b3JrU3RhdGUgPSBu
ZXR3b3JrU3RhdGU7CisgICAgbV9wbGF5ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVmZXJy
ZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoZnVu
Y3Rpb24pOworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgY2FsbE9u
TWFpblRocmVhZChbd2Vha1RoaXMsIGZ1bmN0aW9uXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9KTsKK30K
KwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVN0cmVhbVByaXZhdGVBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw4NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBNZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDX2gKLSNkZWZpbmUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQ19oCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jaW5jbHVkZSAiTWVk
aWFQbGF5ZXIuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NZWRp
YVRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotT0JKQ19DTEFTUyBBVkFzc2V0OwotT0JK
Q19DTEFTUyBBVlN0cmVhbURhdGFQYXJzZXI7Ci1PQkpDX0NMQVNTIE5TRXJyb3I7Ci1PQkpDX0NM
QVNTIE5TT2JqZWN0OwotdHlwZWRlZiBzdHJ1Y3Qgb3BhcXVlQ01TYW1wbGVCdWZmZXIgKkNNU2Ft
cGxlQnVmZmVyUmVmOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENETVNlc3Npb247
Ci1jbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM7Ci1jbGFzcyBNZWRp
YVN0cmVhbVByaXZhdGU7Ci1jbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ7Ci1jbGFzcyBQ
bGF0Zm9ybVRpbWVSYW5nZXM7Ci1jbGFzcyBUaW1lUmFuZ2VzOwotCi1jbGFzcyBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDIGZpbmFsIDogcHVibGljIE1lZGlhU3RyZWFtUHJpdmF0ZSB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBjcmVhdGUo
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRl
Jik7Ci0gICAgdmlydHVhbCB+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpOwotCi0gICAgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBwbGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX3BsYXllcjsgfQotCi0gICAgdmlydHVhbCBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNs
aWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50LmdldCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHNldENsaWVudChNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9
IGNsaWVudDsgfQotCi0gICAgTWVkaWFUaW1lIGR1cmF0aW9uKCk7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKLQotICAgIGJvb2wgaGFzQXVkaW8o
KSBjb25zdDsKLSAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHNldFJlYWR5
U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUpOwotICAgIEZsb2F0U2l6ZSBuYXR1cmFsU2l6
ZSgpIGNvbnN0OwotCi0gICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0OwotCi1wcml2YXRlOgotICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiwgTWVkaWFTdHJlYW1Qcml2YXRlJik7Ci0KLSAg
ICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIG1fcGxheWVyOwotICAgIFJl
ZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ+IG1fY2xpZW50OwotfTsKLSAgICAKLX0KLQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNl
bmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDk4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2ltcG9ydCAiQ29udGVudFR5cGUuaCIKLSNpbXBvcnQg
IkV4Y2VwdGlvbkNvZGVQbGFjZWhvbGRlci5oIgotI2ltcG9ydCAiTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNp
bXBvcnQgIlNvZnRMaW5raW5nLmgiCi0jaW1wb3J0ICJTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5oIgotI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9BdG9taWNT
dHJpbmcuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi0jcHJhZ21hIG1hcmsgLQotI3ByYWdtYSBtYXJrIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMKLQotUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM+IE1lZGlhU3Ry
ZWFtUHJpdmF0ZUFWRk9iakM6OmNyZWF0ZShNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMmIHBhcmVudCwgTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCi17Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKHBhcmVudCwgc3RyZWFtKSk7
Ci19Ci0KLU1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Ok1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akMoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQsIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYgc3RyZWFtKQotICAgIDogTWVkaWFTdHJlYW1Qcml2YXRlKCpzdHJlYW0uY2xp
ZW50KCkpCi0gICAgLCBtX3BsYXllcigmcGFyZW50KQotewotfQotCi1NZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDOjp+TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQygpCi17Ci19Ci0KLU1lZGlhVGlt
ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpkdXJhdGlvbigpCi17Ci0gICAgcmV0dXJuIE1l
ZGlhVGltZTo6cG9zaXRpdmVJbmZpbml0ZVRpbWUoKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtVGltZVJhbmdlcz4gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6YnVmZmVyZWQoKQot
ewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwotfQot
Ci1NZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpyZWFk
eVN0YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPnJlYWR5U3RhdGUoKTsKLX0K
LQotdm9pZCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpzZXRSZWFkeVN0YXRlKE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUpCi17Ci0gICAgbV9wbGF5ZXItPnNldFJlYWR5U3Rh
dGUocmVhZHlTdGF0ZSk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFz
QXVkaW8oKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzQXVkaW8oKTsKLX0KLQot
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fcGxheWVyLT5oYXNWaWRlbygpOwotfQotCi1GbG9hdFNpemUgTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQzo6bmF0dXJhbFNpemUoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXll
ci0+bmF0dXJhbFNpemUoKTsKLX0KLSAgICAKLX0KLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHJl
dmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzEsMTIg
KzMyLDE0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhU3Ry
ZWFtUHJpdmF0ZS5oIgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtUHJpdmF0ZS5oIgotCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5j
bHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIlVVSUQuaCIKKyNpbmNsdWRlIDx3dGYvTWFpblRo
cmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCkBAIC02MiwyNSArNjUsMzMgQEAgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gTWVk
aWFTdHJlYW1QcgogfQogCiBNZWRpYVN0cmVhbVByaXZhdGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZShj
b25zdCBTdHJpbmcmIGlkLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYgdHJh
Y2tzKQotICAgIDogbV9pZChpZCkKKyAgICA6IG1fd2Vha1B0ckZhY3RvcnkodGhpcykKKyAgICAs
IG1faWQoaWQpCiB7CiAgICAgQVNTRVJUKCFtX2lkLmlzRW1wdHkoKSk7CiAKLSAgICBmb3IgKGF1
dG8mIHRyYWNrIDogdHJhY2tzKQorICAgIGZvciAoYXV0byYgdHJhY2sgOiB0cmFja3MpIHsKKyAg
ICAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsKICAgICAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3RpdmVTdGF0ZShOb3Rp
ZnlDbGllbnRPcHRpb246OkRvbnROb3RpZnkpOwogfQogCi1NZWRpYVN0cmVhbVByaXZhdGU6Ok1l
ZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmIGNsaWVudCkKLSAgICA6
IG1fY2xpZW50KCZjbGllbnQpCitNZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZh
dGUoKQoreworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2ZXIoTWVkaWFT
dHJlYW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7CisgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKCZvYnNlcnZlcik7CiB9CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlhU3RyZWFtUHJp
dmF0ZSgpCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIoTWVkaWFTdHJl
YW1Qcml2YXRlOjpPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgbV9jbGllbnQgPSBudWxscHRy
OwotICAgIG1faXNBY3RpdmUgPSBmYWxzZTsKKyAgICBzaXplX3QgcG9zID0gbV9vYnNlcnZlcnMu
ZmluZCgmb2JzZXJ2ZXIpOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQpCisgICAgICAgIG1fb2Jz
ZXJ2ZXJzLnJlbW92ZShwb3MpOwogfQogCiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBN
ZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrcygpIGNvbnN0CkBAIC05NCwyMSArMTA1LDI5IEBAIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWEKIAogdm9pZCBNZWRpYVN0cmVh
bVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGll
bnRPcHRpb24pCiB7Ci0gICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBhdCBsZWFz
dCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgYm9vbCBuZXdBY3RpdmVTdGF0ZSA9IGZhbHNlOwor
ICAgIG1fYWN0aXZlVmlkZW9UcmFjayA9IG51bGxwdHI7CiAgICAgZm9yIChhdXRvJiB0cmFjayA6
IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKwogICAgICAgICBpZiAoIXRyYWNrLT5lbmRlZCgpKSB7
CiAgICAgICAgICAgICBuZXdBY3RpdmVTdGF0ZSA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGlmICh0cmFjay0+c291cmNlKCktPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbykgeworICAgICAgICAgICAgICAgIG1fYWN0aXZlVmlkZW9UcmFj
ayA9IHRyYWNrLmdldCgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQog
ICAgICAgICB9CiAgICAgfQogCisgICAgLy8gQSBzdHJlYW0gaXMgYWN0aXZlIGlmIGl0IGhhcyBh
dCBsZWFzdCBvbmUgdW4tZW5kZWQgdHJhY2suCiAgICAgaWYgKG5ld0FjdGl2ZVN0YXRlID09IG1f
aXNBY3RpdmUpCiAgICAgICAgIHJldHVybjsKKwogICAgIG1faXNBY3RpdmUgPSBuZXdBY3RpdmVT
dGF0ZTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5
Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5hY3RpdmVTdGF0dXNDaGFu
Z2VkKCk7CisgICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246
Ok5vdGlmeSkgeworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisg
ICAgICAgICAgICBvYnNlcnZlci0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOworICAgIH0KIH0KIAog
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4mJiB0cmFjaywgTm90aWZ5Q2xpZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikK
QEAgLTExOSw4ICsxMzgsMTAgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKFJl
ZlB0cgogICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgbV90cmFja1NldC5hZGQo
dHJhY2stPmlkKCksIHRyYWNrKTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRP
cHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5k
aWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOworICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0g
Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZl
ciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmRpZEFkZFRyYWNrKCp0cmFj
ay5nZXQoKSk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUobm90aWZ5Q2xpZW50T3B0
aW9uKTsKIH0KQEAgLTEzMiwxMiArMTUzLDE0MiBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
cmVtb3ZlVHJhY2soTWVkCiAKICAgICB0cmFjay5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiAKLSAg
ICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlv
bjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlVHJhY2sodHJhY2spOworICAg
IGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsK
KyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAg
b2JzZXJ2ZXItPmRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3Rp
dmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJl
YW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RhcnRQcm9kdWNpbmdEYXRh
KCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7
CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHRy
YWNrLT5zdG9wUHJvZHVjaW5nRGF0YSgpOworfQorCitib29sIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
aXNQcm9kdWNpbmdEYXRhKCkgY29uc3QKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFj
a1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPmlzUHJvZHVjaW5nRGF0YSgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc1ZpZGVvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6Omhhc0F1ZGlvKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRy
YWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbyAmJiB0cmFjay0+ZW5hYmxlZCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwor
RmxvYXRTaXplIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aW50cmluc2ljU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgRmxvYXRTaXplIHNpemU7CisKKyAgICBpZiAobV9hY3RpdmVWaWRlb1RyYWNrKSB7CisgICAg
ICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcyA9IG1fYWN0aXZlVmlk
ZW9UcmFjay0+c291cmNlKCktPnN0YXRlcygpOworICAgICAgICBzaXplLnNldFdpZHRoKHN0YXRl
cy53aWR0aCgpKTsKKyAgICAgICAgc2l6ZS5zZXRIZWlnaHQoc3RhdGVzLmhlaWdodCgpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gc2l6ZTsKK30KKworUGxhdGZvcm1MYXllciogTWVkaWFTdHJlYW1Q
cml2YXRlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fYWN0aXZlVmlkZW9U
cmFjaykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9hY3RpdmVWaWRl
b1RyYWNrLT5zb3VyY2UoKS0+cGxhdGZvcm1MYXllcigpOworfQorCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgaWYgKGNvbnRleHQucGFpbnRpbmdE
aXNhYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYWN0aXZlKCkgJiYgbV9hY3Rp
dmVWaWRlb1RyYWNrKQorICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5wYWlu
dEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICBlbHNlIHsKKyAgICAg
ICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAg
ICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsK
KyAgICAgICAgY29udGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICAgICAgSW50UmVj
dCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53aWR0aCgpLCByZWN0Lmhl
aWdodCgpKSk7CisgICAgICAgIGNvbnRleHQuZmlsbFJlY3QocGFpbnRSZWN0LCBDb2xvcjo6Ymxh
Y2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIH0KK30KKworUmVmUHRyPEltYWdlPiBNZWRp
YVN0cmVhbVByaXZhdGU6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAgICBpZiAoIWFjdGl2ZSgp
ICYmICFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
cmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPmN1cnJlbnRGcmFtZUltYWdlKCk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkK
K3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2Vy
dmVyLT5jaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2
YXRlOjp0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAg
c2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tTdGF0
ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuYWJsZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVk
VGFzayhbdGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhb
dGhpc10geworICAgICAgICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0
aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBhdXRv
IHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtU
aGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTUgRXJpY3Nzb24gQUIuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
NSwyOCArMzYsMzIgQEAKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKKyNpbmNsdWRlICJG
bG9hdFNpemUuaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZTsKLQotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50IDogcHVibGljIFJl
ZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVh
bCB+TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWN0
aXZlU3RhdHVzQ2hhbmdlZCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVHJhY2soTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotfTsKK2NsYXNzIE1lZGlhU3RyZWFt
OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsK
IHB1YmxpYzoKKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0
dWFsIH5PYnNlcnZlcigpIHsgfQorCisgICAgICAgIHZpcnR1YWwgdm9pZCBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2Vk
KCkgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICB9OworCiAgICAgc3RhdGljIFJlZlB0cjxNZWRp
YVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgYXVkaW9Tb3VyY2VzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiYgdmlkZW9Tb3VyY2VzKTsKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtUHJp
dmF0ZT4gY3JlYXRlKGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJik7CiAKQEAg
LTY0LDggKzY5LDExIEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgTm90aWZ5Q2xpZW50T3B0
aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGll
bnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgdm9pZCBzZXRDbGll
bnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7
IH0KKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNl
cnZlcihPYnNlcnZlciYpOworCisgICAgTWVkaWFTdHJlYW0qIHB1YmxpY1N0cmVhbSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHVibGljU3RyZWFtOyB9CisgICAgdm9pZCBzZXRQdWJsaWNTdHJlYW0oTWVk
aWFTdHJlYW0qIHN0cmVhbSkgeyBtX3B1YmxpY1N0cmVhbSA9IHN0cmVhbTsgfQogCiAgICAgU3Ry
aW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03NywyMSArODUsNDEgQEAgcHVi
bGljOgogICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYm
LCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAgICAg
dm9pZCByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE5vdGlmeUNsaWVudE9w
dGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAotcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmKTsKKyAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEo
KTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OworCisgICAgUGxhdGZvcm1MYXll
ciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1l
SW1hZ2UoKTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBoYXNWaWRlbygpOworICAgIGJv
b2wgaGFzQXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3Q7CisK
KyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgTWVk
aWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlVmVjdG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQo
TWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLQotICAgIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgdm9pZCB0cmFja011dGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJh
Y2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAg
dm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsK
KworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsK
KworICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFrUHRyRmFjdG9y
eTsKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBNZWRpYVN0cmVhbSog
bV9wdWJsaWNTdHJlYW0geyBudWxscHRyIH07CiAgICAgU3RyaW5nIG1faWQ7Ci0gICAgYm9vbCBt
X2lzQWN0aXZlIHsgZmFsc2UgfTsKLQorICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2Fj
dGl2ZVZpZGVvVHJhY2sgeyBudWxscHRyIH07CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4+IG1fdHJhY2tTZXQ7CisgICAgYm9vbCBtX2lzQWN0aXZl
IHsgZmFsc2UgfTsKIH07CiAKIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxNZWRpYVN0cmVhbVByaXZh
dGU+PiBNZWRpYVN0cmVhbVByaXZhdGVWZWN0b3I7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1By
aXZhdGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE3OCw2ICsxNzgsMTggQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlU3Rh
dAogICAgICAgICBvYnNlcnZlci0+dHJhY2tTdGF0ZXNDaGFuZ2VkKCp0aGlzKTsKIH0KIAordm9p
ZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKQor
eworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2
ZXItPnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoKnRoaXMpOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VFbmFibGVkQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRv
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+dHJhY2tFbmFibGVk
Q2hhbmdlZCgqdGhpcyk7Cit9CisKIGJvb2wgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnByZXZl
bnRTb3VyY2VGcm9tU3RvcHBpbmcoKQogewogICAgIHJldHVybiAhbV9pc0VuZGVkOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9p
ZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAg
IH07CiAgICAgCiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4gY3Jl
YXRlKFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiYmKTsKQEAgLTYyLDYgKzY0LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNlLT5zdGFydFBy
b2R1Y2luZ0RhdGEoKTsgfQogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IG1fc291cmNl
LT5zdG9wUHJvZHVjaW5nRGF0YSgpOyB9CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSB7IHJl
dHVybiBtX3NvdXJjZS0+aXNQcm9kdWNpbmdEYXRhKCk7IH0KIAogICAgIGJvb2wgbXV0ZWQoKSBj
b25zdDsKICAgICB2b2lkIHNldE11dGVkKGJvb2wgbXV0ZWQpIGNvbnN0IHsgbV9zb3VyY2UtPnNl
dE11dGVkKG11dGVkKTsgfQpAQCAtOTgsNyArMTAxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNv
dXJjZVN0b3BwZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZU11dGVkQ2hhbmdl
ZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpIG92ZXJy
aWRlIGZpbmFsOworICAgIHZvaWQgc291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQoKSBvdmVycmlk
ZSBmaW5hbDsKICAgICBib29sIHByZXZlbnRTb3VyY2VGcm9tU3RvcHBpbmcoKSBvdmVycmlkZSBm
aW5hbDsKKyAgICB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAK
ICAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gbV9zb3VyY2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkocmV2aXNp
b24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMSw2ICsxMDEsMjIgQEAgdm9p
ZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdGF0ZXNEaWRDaGFuZwogICAgICAgICBvYnNlcnZlci0+
c291cmNlU3RhdGVzQ2hhbmdlZCgpOwogfQogCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Omlz
UHJvZHVjaW5nRGF0YURpZENoYW5nZSgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQo
KTsKK30KKwordm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKGJvb2wgZW5hYmxl
ZCkKK3sKKyAgICBpZiAobV9lbmFibGVkID09IGVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fZW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2Jz
ZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+c291cmNlRW5hYmxlZENoYW5nZWQoKTsKK30KKwog
Ym9vbCBSZWFsdGltZU1lZGlhU291cmNlOjpyZWFkb25seSgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fcmVhZG9ubHk7CkBAIC0xMTksNiArMTM1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjpzdG9wKE9ic2VydmVyKgogICAgIH0KIAogICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAg
cmVzZXQoKTsKIH0KIAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkocmV2aXNpb24g
MTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw5IEBACiAjaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKIAogI2luY2x1ZGUgIkF1ZGlvU291cmNlUHJvdmlkZXIuaCIKKyNpbmNs
dWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIk1lZGlhQ29uc3RyYWludHMuaCIKKyNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cy5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtNDUsNiArNDcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0
UmVjdDsKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1lZGlhQ29uc3RyYWludHM7CiBj
bGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
OwpAQCAtNTksNiArNjMsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VT
dG9wcGVkKCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RhdGVzQ2hhbmdlZCgpID0gMDsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkgPSAwOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSA9IDA7CiAKICAgICAgICAg
Ly8gT2JzZXJ2ZXIgc3RhdGUgcXVlcmllcy4KICAgICAgICAgdmlydHVhbCBib29sIHByZXZlbnRT
b3VyY2VGcm9tU3RvcHBpbmcoKSA9IDA7CkBAIC02Niw4ICs3Miw2IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KIAotICAgIGJvb2wgaXNBdWRpb1N0
cmVhbVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHR5cGUoKSA9PSBBdWRpbzsgfQotCiAgICAgY29u
c3QgU3RyaW5nJiBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAogICAgIGNvbnN0IFN0cmlu
ZyYgcGVyc2lzdGVudElEKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50SUQ7IH0KQEAgLTgy
LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgZml0bmVzc1Njb3JlKCkg
Y29uc3QgeyByZXR1cm4gbV9maXRuZXNzU2NvcmU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml0
bmVzc1Njb3JlKGNvbnN0IHVuc2lnbmVkIGZpdG5lc3NTY29yZSkgeyBtX2ZpdG5lc3NTY29yZSA9
IGZpdG5lc3NTY29yZTsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpID0gMDsK
ICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpID0g
MDsKICAgICB2b2lkIHN0YXRlc0RpZENoYW5nZWQoKTsKICAgICAKQEAgLTk3LDE5ICsxMDEsMjgg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCByZW1vdGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
bW90ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW1vdGUoYm9vbCByZW1vdGUpIHsgbV9yZW1v
dGUgPSByZW1vdGU7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgYm9vbCBlbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9lbmFibGVkOyB9CisKICAg
ICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyKik7CiAgICAgdm9pZCByZW1vdmVPYnNlcnZlcihP
YnNlcnZlciopOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
dm9pZCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKIAogICAgIHZvaWQgc3RvcChPYnNlcnZl
ciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAgICAgdm9pZCByZXF1ZXN0U3RvcChPYnNl
cnZlciogY2FsbGluZ09ic2VydmVyID0gbnVsbHB0cik7CiAKLSAgICB2b2lkIHJlc2V0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlc2V0KCk7CiAKICAgICB2aXJ0dWFsIEF1ZGlvU291cmNlUHJvdmlk
ZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgCisKKyAg
ICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCB7IHJldHVybiBu
dWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkg
eyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgdm9pZCBwYWludEN1cnJlbnRGcmFtZUlu
Q29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSB7IH0KKwogcHJvdGVj
dGVkOgogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgVHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKIApAQCAtMTI0LDYgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX211dGVkOwogICAgIGJvb2wgbV9yZWFkb25seTsKICAgICBib29sIG1fcmVtb3RlOworICAg
IGJvb2wgbV9lbmFibGVkIHsgdHJ1ZSB9OwogICAgIAogICAgIHVuc2lnbmVkIG1fZml0bmVzc1Nj
b3JlOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsMTAgKzU4LDEyIEBAIHByaXZhdGU6
CiAgICAgQVZBdWRpb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWlj
U3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+QVZB
dWRpb0NhcHR1cmVTb3VyY2UoKTsKICAgICAKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKSBv
dmVycmlkZTsKKwogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZy
b21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNhcHR1
cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNz
aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRpb1NvdXJjZVBy
b3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UubW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsMTQgKzQwLDE2IEBACiAKICNpbXBvcnQgIkNvcmVNZWRpYVNvZnRMaW5r
LmgiCiAKK3R5cGVkZWYgQVZDYXB0dXJlQXVkaW9DaGFubmVsIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5l
bFR5cGU7Cit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1cmVBdWRpb0Rh
dGFPdXRwdXRUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVDb25uZWN0aW9uIEFWQ2FwdHVyZUNvbm5l
Y3Rpb25UeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVEZXZpY2UgQVZDYXB0dXJlRGV2aWNlVHlwZTsK
IHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlSW5wdXQgQVZDYXB0dXJlRGV2aWNlSW5wdXRUeXBlOwog
dHlwZWRlZiBBVkNhcHR1cmVPdXRwdXQgQVZDYXB0dXJlT3V0cHV0VHlwZTsKLXR5cGVkZWYgQVZD
YXB0dXJlQXVkaW9EYXRhT3V0cHV0IEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU7CiAKIFNP
RlRfTElOS19GUkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCitTT0ZUX0xJTktfQ0xB
U1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0NoYW5uZWwpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQpCiBTT0ZUX0xJTktfQ0xBU1Mo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVDb25uZWN0aW9uKQogU09GVF9MSU5LX0NMQVNTKEFWRm91
bmRhdGlvbiwgQVZDYXB0dXJlRGV2aWNlKQpAQCAtNzcsMTAgKzc5LDEwIEBAIEFWQXVkaW9DYXB0
dXJlU291cmNlOjp+QVZBdWRpb0NhcHR1cmVTb3UKIHsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMo
KSBjb25zdAordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJmNhcGFiaWxpdGllcykKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIC8vIEZJWE1FOiBmaW5p
c2ggdGhpcyBpbXBsZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJl
YWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6Ok1pY3JvcGhvbmUpOwogfQogCiB2b2lkIEFWQXVkaW9D
YXB0dXJlU291cmNlOjp1cGRhdGVTdGF0ZXMoKQpAQCAtOTAsMTEgKzkyLDggQEAgdm9pZCBBVkF1
ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKAogCiB2b2lkIEFWQXVkaW9DYXB0dXJlU291
cmNlOjphZGRPYnNlcnZlcihBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6T2JzZXJ2ZXIqIG9ic2VydmVy
KQogewotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0gICAgICAgIG1f
b2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7Ci0gICAgfQotCisgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbG9jayk7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKICAgICBpZiAobV9p
bnB1dERlc2NyaXB0aW9uLT5tU2FtcGxlUmF0ZSkKICAgICAgICAgb2JzZXJ2ZXItPnByZXBhcmUo
bV9pbnB1dERlc2NyaXB0aW9uLmdldCgpKTsKIH0KQEAgLTExMCwxNiArMTA5LDQwIEBAIHZvaWQg
QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnJlbW92ZU9ic2VydmUKIHZvaWQgQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVE
ZXZpY2VJbnB1dFR5cGU+IGF1ZGlvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlu
cHV0SW5zdGFuY2UoKSBpbml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBB
U1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDphdWRpb0luLmdldCgpXSk7Ci0gICAgaWYgKFtz
ZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07Ci0gICAgCisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2Fu
QWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIGF1ZGlv
IGlucHV0IGRldmljZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNz
aW9uKCkgYWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV07CisKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJl
QXVkaW9EYXRhT3V0cHV0VHlwZT4gYXVkaW9PdXRwdXQgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVy
ZUF1ZGlvRGF0YU91dHB1dEluc3RhbmNlKCkgaW5pdF0pOwogICAgIHNldEF1ZGlvU2FtcGxlQnVm
ZmVyRGVsZWdhdGUoYXVkaW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vzc2lvbigpIGNh
bkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lvbigpIGNhbkFk
ZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkT3V0cHV0
OmF1ZGlvT3V0cHV0LmdldCgpXTsKLSAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IGFkb3B0TlMoW2F1
ZGlvT3V0cHV0LmdldCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW9d
KTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCld
KSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1
cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCBhdWRpbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBk
ZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXTsKKyAgICBtX2F1ZGlvQ29ubmVjdGlvbiA9IFth
dWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlv
XTsKK30KKwordm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lv
bigpCit7CisgICAgeworICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKworICAgICAg
ICBtX2F1ZGlvQ29ubmVjdGlvbiA9IG51bGxwdHI7CisgICAgICAgIG1faW5wdXREZXNjcmlwdGlv
biA9IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPigpOworCisg
ICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9i
c2VydmVyLT51bnByZXBhcmUoKTsKKyAgICAgICAgbV9vYnNlcnZlcnMuc2hyaW5rKDApOworICAg
IH0KKworICAgIC8vIERvbid0IGhvbGQgdGhlIGxvY2sgd2hlbiBkZXN0cm95aW5nIHRoZSBhdWRp
byBwcm92aWRlciwgaXQgd2lsbCBjYWxsIGJhY2sgaW50byB0aGlzIG9iamVjdAorICAgIC8vIHRv
IHJlbW92ZSBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIuCisgICAgbV9hdWRpb1NvdXJjZVByb3ZpZGVy
ID0gbnVsbHB0cjsKIH0KIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24mIGEsIGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYg
YikKQEAgLTE0MSwyNyArMTY0LDMwIEBAIHN0YXRpYyBib29sIG9wZXJhdG9yIT0oY29uc3QgQXVk
aW9TdHJlYW0KIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91
dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNh
bXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKikKIHsK
LSAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBvYnNlcnZlcnM7Ci0gICAgewotICAgICAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKLSAgICAgICAgaWYgKG1fb2JzZXJ2ZXJzLmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb3B5VG9WZWN0b3IobV9vYnNlcnZlcnMsIG9i
c2VydmVycyk7Ci0gICAgfQorICAgIGlmICghZW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CiAK
ICAgICBDTUZvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uID0gQ01TYW1wbGVC
dWZmZXJHZXRGb3JtYXREZXNjcmlwdGlvbihzYW1wbGVCdWZmZXIpOwogICAgIGlmICghZm9ybWF0
RGVzY3JpcHRpb24pCiAgICAgICAgIHJldHVybjsKIAorICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9j
az4gbG9jayhtX2xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOworICAgIGlmICghbG9jay5vd25zX2xv
Y2soKSkgeworICAgICAgICAvLyBGYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jaywganVzdCByZXR1
cm4gaW5zdGVhZCBvZiBibG9ja2luZy4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlm
IChtX29ic2VydmVycy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGNvbnN0IEF1
ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiogc3RyZWFtRGVzY3JpcHRpb24gPSBDTUF1ZGlvRm9y
bWF0RGVzY3JpcHRpb25HZXRTdHJlYW1CYXNpY0Rlc2NyaXB0aW9uKGZvcm1hdERlc2NyaXB0aW9u
KTsKICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqc3RyZWFtRGVzY3JpcHRpb24pIHsK
ICAgICAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24+KCpzdHJlYW1EZXNjcmlwdGlvbik7Ci0gICAgICAgIGZvciAoYXV0
byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKICAgICAgICAgICAgIG9ic2VydmVyLT5wcmVwYXJlKG1faW5wdXREZXNjcmlw
dGlvbi5nZXQoKSk7CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG9ic2VydmVy
cykKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAgICAgIG9ic2Vy
dmVyLT5wcm9jZXNzKGZvcm1hdERlc2NyaXB0aW9uLCBzYW1wbGVCdWZmZXIpOwogfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNl
TWFuYWdlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkocmV2aXNpb24gMTkxNjM3KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1h
bmFnZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMy0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAzLDEwICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgU3Ry
aW5nIG1fZ3JvdXBJRDsKIAogICAgIFN0cmluZyBtX2F1ZGlvU291cmNlSWQ7Ci0gICAgUmVmUHRy
PEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0KICAg
ICBTdHJpbmcgbV92aWRlb1NvdXJjZUlkOwotICAgIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJj
ZT4gbV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwogCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiB9
OwpAQCAtMTQ2LDcgKzE0MywxNSBAQCBzdGF0aWMgdm9pZCByZWZyZXNoQ2FwdHVyZURldmljZUxp
c3QoKQogICAgIAogICAgIGZvciAoQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlIGluIFtBVkNh
cHR1cmVEZXZpY2UgZGV2aWNlc10pIHsKICAgICAgICAgQ2FwdHVyZURldmljZSBzb3VyY2U7Ci0g
ICAgICAgIAorCisgICAgICAgIGlmICghW2RldmljZSBpc0Nvbm5lY3RlZF0pCisgICAgICAgICAg
ICBjb250aW51ZTsKKworI2lmICFQTEFURk9STShJT1MpCisgICAgICAgIGlmIChbZGV2aWNlIGlz
U3VzcGVuZGVkXSB8fCBbZGV2aWNlIGlzSW5Vc2VCeUFub3RoZXJBcHBsaWNhdGlvbl0pCisgICAg
ICAgICAgICBjb250aW51ZTsKKyNlbmRpZgorCiAgICAgICAgIGlmICghY2FwdHVyZURldmljZUZy
b21EZXZpY2VJRChkZXZpY2UudW5pcXVlSUQsIHNvdXJjZSkpIHsKICAgICAgICAgICAgIC8vIEFu
IEFWQ2FwdHVyZURldmljZSBoYXMgYSB1bmlxdWUgSUQsIGJ1dCB3ZSBjYW4ndCB1c2UgaXQgZm9y
IHRoZSBzb3VyY2UgSUQgYmVjYXVzZToKICAgICAgICAgICAgIC8vIDEuIGlmIGl0IHByb3ZpZGVz
IGJvdGggYXVkaW8gYW5kIHZpZGVvIHdlIHdpbGwgbmVlZCB0byBjcmVhdGUgdHdvIHNvdXJjZXMg
Zm9yIGl0CkBAIC0zODgsMjQgKzM5MywyMCBAQCBWZWN0b3I8UmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+PiBBVkNhCiAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAvLyBGSVhNRTogY29uc2lkZXIgdGhlIGNvbnN0
cmFpbnRzIHdoZW4gY2hvb3NpbmcgYW1vbmcgbXVsdGlwbGUgZGV2aWNlcy4gRm9yIG5vdyBqdXN0
IHNlbGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlCi0gICAgICAgIC8vIGRldmljZSBvZiB0aGUgYXBw
cm9wcmlhdGUgdHlwZS4KICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW8gJiYgIWNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAg
ICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkg
ewotICAgICAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1
cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNl
SURdOwotICAgICAgICAgICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAgICAgICAgICAgIGNh
cHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLCBjb25z
dHJhaW50cyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBw
ZW5kKGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKTsKKyAgICAgICAg
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlID0gQVZDYXB0dXJl
RGV2aWNlTWFuYWdlcjo6c291cmNlV2l0aFVJRChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmlj
ZUlELCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbywgY29uc3RyYWludHMuZ2V0KCkpOworICAg
ICAgICAgICAgaWYgKCFjYXB0dXJlU291cmNlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1Jl
ZigpKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvICYmICFjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UpIHsKLSAgICAgICAgICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZD
YXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURl
dmljZUlEXTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAgICAgICAgICAg
ICBjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0
dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwg
Y29uc3RyYWludHMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0
LmFwcGVuZChjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSk7CisgICAg
ICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FwdHVyZVNvdXJjZSA9IEFWQ2Fw
dHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQoY2FwdHVyZURldmljZS5tX2NhcHR1cmVE
ZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8sIGNvbnN0cmFpbnRzLmdldCgpKTsK
KyAgICAgICAgICAgIGlmICghY2FwdHVyZVNvdXJjZSkKKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0dXJlU291cmNlLmxl
YWtSZWYoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgc3RkOjpzb3J0KGJlc3RTb3VyY2VzTGlz
dC5iZWdpbigpLCBiZXN0U291cmNlc0xpc3QuZW5kKCksIHNvcnRCYXNlZE9mZkZpdG5lc3NTY29y
ZSk7CkBAIC00MTYsNDEgKzQxNyw0MSBAQCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gQVZD
YXB0dXJlRGV2CiB7CiAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm4gMDsK
LSAgICAKKwogICAgIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgZGV2aWNlcyA9IGNhcHR1cmVEZXZp
Y2VMaXN0KCk7Ci0gICAgZm9yIChhdXRvIGNhcHR1cmVEZXZpY2UgOiBkZXZpY2VzKSB7Ci0gICAg
ICAgIGlmICghY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCisgICAgZm9yIChhdXRvJiBjYXB0dXJl
RGV2aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAoY2FwdHVyZURldmljZS5tX2NhcHR1cmVE
ZXZpY2VJRCAhPSBkZXZpY2VVSUQgfHwgIWNhcHR1cmVEZXZpY2UubV9lbmFibGVkKQogICAgICAg
ICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2
aWNlSUQgIT0gZGV2aWNlVUlEKQorICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpbyAmJiBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW8gJiYgY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQuaXNFbXB0eSgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKKyAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2
aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5t
X2NhcHR1cmVEZXZpY2VJRF07CisgICAgICAgIEFTU0VSVChkZXZpY2UpOworCisgICAgICAgIFJl
ZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY2FwdHVyZVNvdXJjZTsKKyAgICAgICAgaWYgKHR5
cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgICAgICAgICBjYXB0dXJlU291
cmNlID0gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2Uu
bV9hdWRpb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IGNhcHR1cmVTb3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2Fw
dHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKKwogICAgICAgICBpZiAo
Y29uc3RyYWludHMpIHsKICAgICAgICAgICAgIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHM7CiAg
ICAgICAgICAgICBBVkNhcHR1cmVTZXNzaW9uVHlwZSAqc2Vzc2lvbiA9IG5pbDsKIAotICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gJiYgY2FwdHVyZURl
dmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2FwdHVy
ZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKLSAgICAgICAg
ICAgIGVsc2UgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgY2FwdHVy
ZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAgICAgY2Fw
dHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKKyAgICAg
ICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvKQorICAgICAgICAg
ICAgICAgIHNlc3Npb24gPSBjYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7CisgICAgICAgICAgICBl
bHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQorICAgICAgICAgICAg
ICAgIHNlc3Npb24gPSBjYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7CiAgICAgICAgICAgICBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS52ZXJpZnlDb25zdHJhaW50c0Zvck1lZGlh
VHlwZShzZXNzaW9uLCB0eXBlLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnRzKTsKIAog
ICAgICAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludHMuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBBVkNhcHR1cmVE
ZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpj
YXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlEXTsKLSAgICAgICAgQVNTRVJUKGRldmljZSk7
Ci0gICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvICYmICFjYXB0
dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmICgh
Y2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpCi0gICAgICAgICAgICAg
ICAgY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlvQ2Fw
dHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQs
IGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIHJldHVybiBjYXB0dXJlRGV2aWNlLm1fYXVkaW9B
Vk1lZGlhQ2FwdHVyZVNvdXJjZTsKLSAgICAgICAgfQotICAgICAgICBpZiAodHlwZSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiAhY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQu
aXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVk
aWFDYXB0dXJlU291cmNlKQotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV92aWRlb0FW
TWVkaWFDYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7Ci0gICAgICAgICAg
ICByZXR1cm4gY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0gICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGNhcHR1cmVTb3VyY2UubGVha1JlZigpOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gbnVsbHB0cjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5o
CShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNDUgKzUy
LDUyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0
U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZm
ZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2Fw
dHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpOworICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlU2Vz
c2lvbklzUnVubmluZ0RpZENoYW5nZShib29sKTsKICAgICAKICAgICBBVkNhcHR1cmVTZXNzaW9u
ICpzZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9zZXNzaW9uLmdldCgpOyB9CiAKKyAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSBvdmVycmlkZTsKKwogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9pc1J1bm5pbmc7IH0KKworICAgIFdlYWtQdHI8QVZNZWRpYUNhcHR1cmVT
b3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgQVZNZWRpYUNhcHR1cmVTb3VyY2UoQVZDYXB0
dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZSwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAKLSAgICBjb25zdCBSZWFsdGltZU1l
ZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSBvdmVycmlkZTsKICAgICBBdWRpb1NvdXJjZVByb3Zp
ZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQg
c2V0dXBDYXB0dXJlU2Vzc2lvbigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdGVzKCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmKSA9IDA7CiAKICAgICBBVkNhcHR1cmVEZXZpY2UgKmRldmljZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGV2aWNlLmdldCgpOyB9CisKICAgICBSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzKiBjdXJyZW50U3RhdGVzKCkgeyByZXR1cm4gJm1fY3VycmVudFN0YXRlczsgfQogICAg
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKCkgeyByZXR1cm4gbV9jb25zdHJhaW50cy5n
ZXQoKTsgfQogCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNh
cGFiaWxpdGllcygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzZXRWaWRlb1NhbXBsZUJ1ZmZlckRl
bGVnYXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dCopOwogICAgIHZvaWQgc2V0QXVkaW9TYW1w
bGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQqKTsKIAogICAgIHZvaWQg
c2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkICgpPik7CiAKLSAgICB2b2lk
IHN0YXRlc0RpZENoYW5nZWQoKSB7IH0KLSAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBzZXR1cFNl
c3Npb24oKTsKLSAgICBXZWFrUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBjcmVhdGVXZWFrUHRy
KCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKyAgICB2b2lk
IHJlc2V0KCkgb3ZlcnJpZGU7CiAKICAgICBXZWFrUHRyRmFjdG9yeTxBVk1lZGlhQ2FwdHVyZVNv
dXJjZT4gbV93ZWFrUHRyRmFjdG9yeTsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUFWTWVkaWFDYXB0
dXJlU291cmNlT2JzZXJ2ZXI+IG1fb2JqY09ic2VydmVyOwogICAgIFJlZlB0cjxNZWRpYUNvbnN0
cmFpbnRzPiBtX2NvbnN0cmFpbnRzOworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsKICAgICBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
IG1fY3VycmVudFN0YXRlczsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlU2Vzc2lvbj4gbV9zZXNz
aW9uOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2U+IG1fZGV2aWNlOwotICAgIAotICAg
IGJvb2wgbV9pc1J1bm5pbmc7CisgICAgYm9vbCBtX2lzUnVubmluZyB7IGZhbHNlfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2Uu
bW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtOTQsMTIg
Kzk0LDE0IEBAIEBpbnRlcmZhY2UgV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2IKIAogLShp
ZClpbml0V2l0aENhbGxiYWNrOihBVk1lZGlhQ2FwdHVyZVNvdXJjZSopY2FsbGJhY2s7CiAtKHZv
aWQpZGlzY29ubmVjdDsKLS0odm9pZCljYXB0dXJlU2Vzc2lvblN0b3BwZWRSdW5uaW5nOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKIC0odm9pZCljYXB0dXJlT3V0cHV0OihBVkNhcHR1
cmVPdXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZmZXI6KENNU2Ft
cGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0dXJlQ29ubmVj
dGlvblR5cGUgKiljb25uZWN0aW9uOworLSh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5
UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNv
bnRleHQ6KHZvaWQqKWNvbnRleHQ7CiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3Rh
dGljIE5TQXJyYXkqIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCk7CisKIHN0YXRpYyBkaXNwYXRjaF9x
dWV1ZV90IGdsb2JhQXVkaW9DYXB0dXJlU2VyaWFsUXVldWUoKQogewogICAgIHN0YXRpYyBkaXNw
YXRjaF9xdWV1ZV90IGdsb2JhbFF1ZXVlOwpAQCAtMTI3LDcgKzEyOSw2IEBAIEFWTWVkaWFDYXB0
dXJlU291cmNlOjpBVk1lZGlhQ2FwdHVyZVNvdXIKICAgICAsIG1fb2JqY09ic2VydmVyKGFkb3B0
TlMoW1tXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhD
YWxsYmFjazp0aGlzXSkpCiAgICAgLCBtX2NvbnN0cmFpbnRzKGNvbnN0cmFpbnRzKQogICAgICwg
bV9kZXZpY2UoZGV2aWNlKQotICAgICwgbV9pc1J1bm5pbmcoZmFsc2UpCiB7CiAgICAgc2V0TmFt
ZShkZXZpY2UubG9jYWxpemVkTmFtZSk7CiAgICAgc2V0UGVyc2lzdGVudElEKGRldmljZS51bmlx
dWVJRCk7CkBAIC0xMzYsOSArMTM3LDEzIEBAIEFWTWVkaWFDYXB0dXJlU291cmNlOjpBVk1lZGlh
Q2FwdHVyZVNvdXIKIAogQVZNZWRpYUNhcHR1cmVTb3VyY2U6On5BVk1lZGlhQ2FwdHVyZVNvdXJj
ZSgpCiB7Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVP
YnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKV07CiAgICAgW21fb2JqY09ic2VydmVyIGRpc2Nv
bm5lY3RdOwotICAgIFttX3Nlc3Npb24uZ2V0KCkgc3RvcFJ1bm5pbmddOworCisgICAgaWYgKG1f
c2Vzc2lvbikgeworICAgICAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGluIHNlc3Npb25LVk9Q
cm9wZXJ0aWVzKCkpCisgICAgICAgICAgICBbbV9zZXNzaW9uLmdldCgpIHJlbW92ZU9ic2VydmVy
Om1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6a2V5TmFtZV07CisgICAgICAgIFttX3Nl
c3Npb24uZ2V0KCkgc3RvcFJ1bm5pbmddOworICAgIH0KIH0KIAogdm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKQEAgLTE1MCw4ICsxNTUsNiBAQCB2b2lkIEFW
TWVkaWFDYXB0dXJlU291cmNlOjpzdGFydFByb2R1Y2luCiAgICAgICAgIHJldHVybjsKICAgICAK
ICAgICBbbV9zZXNzaW9uLmdldCgpIHN0YXJ0UnVubmluZ107Ci0KLSAgICBtX2lzUnVubmluZyA9
IHRydWU7CiB9CiAKIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRh
KCkKQEAgLTE2MCw4ICsxNjMsNiBAQCB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJv
ZHVjaW5nCiAgICAgICAgIHJldHVybjsKIAogICAgIFttX3Nlc3Npb24uZ2V0KCkgc3RvcFJ1bm5p
bmddOwotCi0gICAgbV9pc1J1bm5pbmcgPSB0cnVlOwogfQogCiBjb25zdCBSZWFsdGltZU1lZGlh
U291cmNlU3RhdGVzJiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhdGVzKCkKQEAgLTE3MCwyMSAr
MTcxLDQ3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMmIEFWTWVkaWEKICAgICBy
ZXR1cm4gbV9jdXJyZW50U3RhdGVzOwogfQogCitSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcz4gQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpCit7CisgICAg
aWYgKCFtX2NhcGFiaWxpdGllcykgeworICAgICAgICBtX2NhcGFiaWxpdGllcyA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM6OmNyZWF0ZSgpOworICAgICAgICBtX2NhcGFiaWxpdGll
cy0+c2V0U291cmNlSWQobV9jdXJyZW50U3RhdGVzLnNvdXJjZUlkKCkpOworICAgICAgICBpbml0
aWFsaXplQ2FwYWJpbGl0aWVzKCptX2NhcGFiaWxpdGllcy5nZXQoKSk7CisgICAgfQorICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllczsKK30KKwogdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0
dXBTZXNzaW9uKCkKIHsKICAgICBpZiAobV9zZXNzaW9uKQogICAgICAgICByZXR1cm47CiAKICAg
ICBtX3Nlc3Npb24gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZVNlc3Npb25JbnN0YW5jZSgpIGlu
aXRdKTsKLSAgICAKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIHNlbGVjdG9yOkBzZWxlY3RvcihjYXB0dXJl
U2Vzc2lvblN0b3BwZWRSdW5uaW5nOikgbmFtZTpBVkNhcHR1cmVTZXNzaW9uRGlkU3RvcFJ1bm5p
bmdOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgCisgICAgZm9yIChOU1N0cmluZyAqa2V5
TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICBbbV9zZXNzaW9uLmdldCgp
IGFkZE9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6a2V5TmFtZSBvcHRp
b25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKW5pbF07CisK
ICAgICBzZXR1cENhcHR1cmVTZXNzaW9uKCk7CiB9Ci0gCi12b2lkIEFWTWVkaWFDYXB0dXJlU291
cmNlOjpjYXB0dXJlU2Vzc2lvblN0b3BwZWRSdW5uaW5nKCkKKwordm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6cmVzZXQoKQogewotICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6cmVzZXQoKTsKKyAgICBtX2lzUnVubmluZyA9IGZhbHNlOworICAgIGZv
ciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRpZXMoKSkKKyAgICAgICAg
W21fc2Vzc2lvbi5nZXQoKSByZW1vdmVPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JL
ZXlQYXRoOmtleU5hbWVdOworICAgIHNodXRkb3duQ2FwdHVyZVNlc3Npb24oKTsKKyAgICBtX3Nl
c3Npb24gPSBudWxscHRyOworfQorCit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJl
U2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShib29sIHN0YXRlKQoreworICAgIHNjaGVkdWxlRGVm
ZXJyZWRUYXNrKFt0aGlzLCBzdGF0ZV0geworICAgICAgICBpZiAoc3RhdGUgPT0gbV9pc1J1bm5p
bmcpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9pc1J1bm5pbmcgPSBzdGF0ZTsK
KyAgICAgICAgaXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlKCk7CisgICAgfSk7CiB9CiAKIHZvaWQg
QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZDYXB0
dXJlVmlkZW9EYXRhT3V0cHV0VHlwZSogdmlkZW9PdXRwdXQpCkBAIC0yMTYsNiArMjQzLDEyIEBA
IEF1ZGlvU291cmNlUHJvdmlkZXIqIEFWTWVkaWFDYXB0dXJlU291cmMKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAorTlNBcnJheSogc2Vzc2lvbktWT1Byb3BlcnRpZXMoKQoreworICAgIHN0YXRp
YyBOU0FycmF5KiBrZXlzID0gQFtAInJ1bm5pbmciXTsKKyAgICByZXR1cm4ga2V5czsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUFWTWVkaWFD
YXB0dXJlU291cmNlT2JzZXJ2ZXIKQEAgLTIzNSwyNSArMjY4LDM3IEBAIC0gKHZvaWQpZGlzY29u
bmVjdAogICAgIG1fY2FsbGJhY2sgPSAwOwogfQogCi0tICh2b2lkKWNhcHR1cmVTZXNzaW9uU3Rv
cHBlZFJ1bm5pbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCistICh2b2lkKWNhcHR1
cmVPdXRwdXQ6KEFWQ2FwdHVyZU91dHB1dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNh
bXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9u
OihBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSAqKWNvbm5lY3Rpb24KIHsKLSAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uKTsKLQogICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAg
ICAgICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgICAgICBtX2NhbGxiYWNrLT5jYXB0dXJlU2Vz
c2lvblN0b3BwZWRSdW5uaW5nKCk7Ci0gICAgfSk7CisgICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91
dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNh
bXBsZUJ1ZmZlciwgY29ubmVjdGlvbik7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZU91dHB1dDooQVZD
YXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVmZmVyOihD
TVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2FwdHVyZUNv
bm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgorLSh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6
a2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdl
IGNvbnRleHQ6KHZvaWQqKWNvbnRleHQKIHsKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisKICAgICBpZiAoIW1fY2FsbGJhY2spCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY2FsbGJhY2stPmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVC
dWZmZXJGcm9tQ29ubmVjdGlvbihjYXB0dXJlT3V0cHV0LCBzYW1wbGVCdWZmZXIsIGNvbm5lY3Rp
b24pOworICAgIGlkIG5ld1ZhbHVlID0gW2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hh
bmdlTmV3S2V5XTsKKworI2lmICFMT0dfRElTQUJMRUQKKyAgICBib29sIHdpbGxDaGFuZ2UgPSBb
W2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktl
eV0gYm9vbFZhbHVlXTsKKworICAgIGlmICh3aWxsQ2hhbmdlKQorICAgICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aCglcCkgLSB3aWxsIGNoYW5nZSwga2V5UGF0aCA9ICVzIiwgc2VsZiwgW2tleVBhdGggVVRG
OFN0cmluZ10pOworICAgIGVsc2UgeworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHZhbHVl
U3RyaW5nID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVAIiwg
bmV3VmFsdWVdKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291
cmNlT2JzZXJ2ZXI6Om9ic2VydmVWYWx1ZUZvcktleVBhdGgoJXApIC0gZGlkIGNoYW5nZSwga2V5
UGF0aCA9ICVzLCB2YWx1ZSA9ICVzIiwgc2VsZiwgW2tleVBhdGggVVRGOFN0cmluZ10sIFt2YWx1
ZVN0cmluZy5nZXQoKSBVVEY4U3RyaW5nXSk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoW2tl
eVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicnVubmluZyJdKQorICAgICAgICBtX2NhbGxiYWNrLT5j
YXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShbbmV3VmFsdWUgYm9vbFZhbHVlXSk7CiB9
CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiQVZNZWRpYUNhcHR1cmVTb3VyY2UuaCIKIAotT0JKQ19DTEFTUyBBVkNhcHR1cmVWaWRlb1By
ZXZpZXdMYXllcjsKK09CSkNfQ0xBU1MgQ0FMYXllcjsKIAogdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFn
ZSAqQ0dJbWFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3Jp
cHRpb24gKkNNRm9ybWF0RGVzY3JpcHRpb25SZWY7CkBAIC00OCwzNiArNDgsMzggQEAgcHVibGlj
OgogICAgIGludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgaW50
MzJfdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogCi0gICAgQVZDYXB0dXJl
VmlkZW9QcmV2aWV3TGF5ZXIqIHByZXZpZXdMYXllcigpIHsgcmV0dXJuIG1fdmlkZW9QcmV2aWV3
TGF5ZXIuZ2V0KCk7IH0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBjdXJyZW50RnJhbWVTYW1wbGVC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQotICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7
Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGN1cnJlbnRGcmFtZUltYWdlKCk7Ci0KIHByaXZh
dGU6CiAgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+
QVZWaWRlb0NhcHR1cmVTb3VyY2UoKTsKIAogICAgIHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigp
IG92ZXJyaWRlOworICAgIHZvaWQgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwor
CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBhcHBseUNvbnN0cmFpbnRzKE1lZGlhQ29u
c3RyYWludHMqKTsKICAgICBib29sIHNldEZyYW1lUmF0ZUNvbnN0cmFpbnQoZmxvYXQgbWluRnJh
bWVSYXRlLCBmbG9hdCBtYXhGcmFtZVJhdGUpOwogCi0gICAgYm9vbCBjYWxjdWxhdGVGcmFtZXJh
dGUoQ01TYW1wbGVCdWZmZXJSZWYpOworICAgIGJvb2wgdXBkYXRlRnJhbWVyYXRlKENNU2FtcGxl
QnVmZmVyUmVmKTsKIAogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZl
ckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNh
cHR1cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9jZXNzTmV3RnJhbWUoUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPik7CiAKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlQ29u
bmVjdGlvbj4gbV92aWRlb0Nvbm5lY3Rpb247Ci0gICAgUmV0YWluUHRyPEFWQ2FwdHVyZVZpZGVv
UHJldmlld0xheWVyPiBtX3ZpZGVvUHJldmlld0xheWVyOworICAgIHZvaWQgcGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGN1cnJlbnRGcmFtZUNHSW1hZ2UoKTsKKyAgICBS
ZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkgb3ZlcnJpZGU7CisKICAgICBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1fYnVmZmVyOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBtX2xhc3RJbWFnZTsKICAgICBWZWN0b3I8RmxvYXQ2ND4gbV92aWRlb0ZyYW1lVGltZVN0YW1w
czsKLSAgICBGbG9hdDY0IG1fZnJhbWVSYXRlOwotICAgIGludDMyX3QgbV93aWR0aDsKLSAgICBp
bnQzMl90IG1faGVpZ2h0OworICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1f
dmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgRmxvYXQ2NCBtX2ZyYW1lUmF0ZSB7IDAgfTsKKyAgICBp
bnQzMl90IG1fd2lkdGggeyAwIH07CisgICAgaW50MzJfdCBtX2hlaWdodCB7IDAgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
bW0JKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAg
KzMxLDEyIEBACiAjaW1wb3J0ICJBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW1wb3J0ICJC
bG9ja0V4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW1wb3J0
ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgogI2ltcG9ydCAiTWVkaWFDb25zdHJhaW50cy5oIgogI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPG9iamMvcnVudGltZS5oPgpAQCAtOTgsOSArMTAwLDYgQEAgUmVmUHRyPEFWTWVkaWFDYXB0
dXJlU291cmNlPiBBVlZpZGVvQ2FwdAogCiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0Nh
cHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnQpCiAgICAgOiBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkLCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
bywgY29uc3RyYWludCkKLSAgICAsIG1fZnJhbWVSYXRlKDApCi0gICAgLCBtX3dpZHRoKDApCi0g
ICAgLCBtX2hlaWdodCgwKQogewogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlSWQoaWQp
OwogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzOjpDYW1lcmEpOwpAQCAtMTEwLDEwICsxMDksMTEgQEAgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6On5BVlZpZGVvQ2FwdHVyZVNvdQogewogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
Cit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIC8vIEZJWE1FOiBmaW5pc2ggdGhpcyBpbXBs
ZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5zZXRTb3VyY2VJZChjdXJyZW50U3RhdGVzKCkt
PnNvdXJjZUlkKCkpOworICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CiB9CiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnVwZGF0ZVN0YXRlcygpCkBAIC0yMTgsOSArMjE4LDEzIEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmFwcGx5Q29uc3RyYWkKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2Fw
dHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VJbnB1dFR5cGU+
IHZpZGVvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlucHV0SW5zdGFuY2UoKSBp
bml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBBU1NFUlQoW3Nlc3Npb24o
KSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9uKCkgY2FuQWRk
SW5wdXQ6dmlkZW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkSW5wdXQ6dmlkZW9J
bi5nZXQoKV07CisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6dmlkZW9Jbi5nZXQo
KV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2Fw
dHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIHZpZGVvIGlucHV0IGRldmljZSIsIHRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2aWRl
b0luLmdldCgpXTsKIAogICAgIGlmIChjb25zdHJhaW50cygpKQogICAgICAgICBhcHBseUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzKCkpOwpAQCAtMjMxLDE1ICsyMzUsMjYgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlUwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBuaWxdKTsKICAgICBbdmlkZW9PdXRwdXQg
c2V0VmlkZW9TZXR0aW5nczpzZXR0aW5nc0RpY3Rpb25hcnkuZ2V0KCldOwogICAgIHNldFZpZGVv
U2FtcGxlQnVmZmVyRGVsZWdhdGUodmlkZW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vz
c2lvbigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lv
bigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKIAotICAgIG1fdmlkZW9Db25uZWN0aW9uID0g
YWRvcHROUyhbdmlkZW9PdXRwdXQuZ2V0KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6QVZNZWRp
YVR5cGVWaWRlb10pOwotICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFtbQVZDYXB0
dXJlVmlkZW9QcmV2aWV3TGF5ZXIgYWxsb2NdIGluaXRXaXRoU2Vzc2lvbjpzZXNzaW9uKCldKTsK
KyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkgewor
ICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vz
c2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gc2FtcGxlIGJ1ZmZlciBvdXRwdXQgZGVsZWdh
dGUiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBbc2Vzc2lvbigpIGFkZE91
dHB1dDp2aWRlb091dHB1dC5nZXQoKV07Cit9CisKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnNodXRkb3duQ2FwdHVyZVNlc3Npb24oKQoreworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBu
dWxscHRyOworICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2xhc3RJbWFnZSA9IG51bGxw
dHI7CisgICAgbV92aWRlb0ZyYW1lVGltZVN0YW1wcy5jbGVhcigpOworICAgIG1fZnJhbWVSYXRl
ID0gMDsKKyAgICBtX3dpZHRoID0gMDsKKyAgICBtX2hlaWdodCA9IDA7CiB9CiAKLWJvb2wgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmNhbGN1bGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIpCitib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjp1cGRhdGVGcmFtZXJhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQogewogICAgIENNVGltZSBzYW1wbGVUaW1l
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsK
ICAgICBpZiAoIUNNVElNRV9JU19OVU1FUklDKHNhbXBsZVRpbWUpKQpAQCAtMjYxLDEzICsyNzYs
MTkgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbQogCiB2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVCdWZmZXIpCiB7CisgICAgLy8gSWdub3JlIGZyYW1lcyBkZWxpdmVyZWQg
d2hlbiB0aGUgc2Vzc2lvbiBpcyBub3QgcnVubmluZywgd2Ugd2FudCB0byBoYW5nIG9udG8gdGhl
IGxhc3QgaW1hZ2UKKyAgICAvLyBkZWxpdmVyZWQgYmVmb3JlIGl0IHN0b3BwZWQuCisgICAgaWYg
KG1fbGFzdEltYWdlICYmICghaXNQcm9kdWNpbmdEYXRhKCkgfHwgIWVuYWJsZWQoKSkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5nZXQo
KSk7CiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgcmV0dXJuOwogCisgICAg
dXBkYXRlRnJhbWVyYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CisKICAgICBib29sIHN0YXRlc0No
YW5nZWQgPSBmYWxzZTsKIAotICAgIHN0YXRlc0NoYW5nZWQgPSBjYWxjdWxhdGVGcmFtZXJhdGUo
c2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICBtX2J1ZmZlciA9IHNhbXBsZUJ1ZmZlcjsKICAgICBt
X2xhc3RJbWFnZSA9IG51bGxwdHI7CiAKQEAgLTI5MSw3ICszMTIsMjMgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dAogICAgIH0pOwogfQogCi1SZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUltYWdlKCkKK1JlZlB0
cjxJbWFnZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAg
ICBpZiAoIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0KDAsIDAsIG1fd2lkdGgsIG1faGVpZ2h0KTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKworICAgIGlmICghaW1hZ2VC
dWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoaW1hZ2VCdWZmZXItPmNvbnRleHQoKSwgaW1hZ2VSZWN0KTsKKworICAgIHJldHVy
biBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKCk7Cit9CisKK1JldGFpblB0cjxDR0ltYWdlUmVmPiBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lQ0dJbWFnZSgpCiB7CiAgICAgaWYgKG1f
bGFzdEltYWdlKQogICAgICAgICByZXR1cm4gbV9sYXN0SW1hZ2U7CkBAIC0zMTgsNyArMzU1LDcg
QEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IEFWVmlkZW9DYXB0dXJlU291cgogCiB2b2lkIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoY29udGV4dC5w
YWludGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUltYWdlKCkpCisgICAgaWYgKGNvbnRl
eHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjdXJyZW50RnJhbWVDR0ltYWdlKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKQEAgLTMyOSw2ICszNjYsMTkgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cGFp
bnRDdXJyZW50RgogICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3QuaGVpZ2h0
KCkpLCBtX2xhc3RJbWFnZS5nZXQoKSk7CiB9CiAKK1BsYXRmb3JtTGF5ZXIqIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWRlb1ByZXZp
ZXdMYXllcikKKyAgICAgICAgcmV0dXJuIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCk7CisKKyAg
ICBtX3ZpZGVvUHJldmlld0xheWVyID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllckluc3RhbmNlKCkgaW5pdFdpdGhTZXNzaW9uOnNlc3Npb24oKV0pOworI2lmbmRlZiBO
REVCVUcKKyAgICBtX3ZpZGVvUHJldmlld0xheWVyLmdldCgpLm5hbWUgPSBAIkFWVmlkZW9DYXB0
dXJlU291cmNlIHByZXZpZXcgbGF5ZXIiOworI2VuZGlmCisKKyAgICByZXR1cm4gbV92aWRlb1By
ZXZpZXdMYXllci5nZXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAko
d29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1f
bGlzdEJ1ZmZlclNpemUgeyAwIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVmZmVyTGlz
dD4gbV9saXN0OwotICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRlclJlZj4gbV9jb252ZXJ0ZXI7
CisgICAgQXVkaW9Db252ZXJ0ZXJSZWYgbV9jb252ZXJ0ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVzY3Jp
cHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2
ICs3MywxMSBAQCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6V2ViQXVkaW9TCiAKIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMoKQogeworICAgIGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICAvLyBGSVhNRTogbWFrZSBh
bmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9Db252ZXJ0ZXIKKyAgICAgICAgQXVkaW9D
b252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxs
cHRyOworICAgIH0KICAgICBpZiAobV9jb25uZWN0ZWQpCiAgICAgICAgIG1fY2FwdHVyZVNvdXJj
ZS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiB9CkBAIC0xMjMsNyArMTI4LDcgQEAgdm9pZCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdgogICAgIG1fcmVhZENvdW50ICs9IGZyYW1l
c1RvUHJvY2VzczsKIAogICAgIGlmIChtX2NvbnZlcnRlcikKLSAgICAgICAgQXVkaW9Db252ZXJ0
ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNz
LCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIEF1ZGlvQ29udmVydGVyQ29u
dmVydENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIsIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0Lmdl
dCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMTgw
LDkgKzE4NSwxOSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwCiAg
ICAgbV9vdXRwdXREZXNjcmlwdGlvbi0+bUJ5dGVzUGVyRnJhbWUgPSBzaXplb2YoRmxvYXQzMik7
CiAgICAgbV9vdXRwdXREZXNjcmlwdGlvbi0+bUZvcm1hdEZsYWdzIHw9IGtBdWRpb0Zvcm1hdEZs
YWdJc05vbkludGVybGVhdmVkOwogCisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8v
IEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgor
ICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2Nv
bnZlcnRlciA9IG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKCptX2lucHV0RGVzY3JpcHRpb24g
IT0gKm1fb3V0cHV0RGVzY3JpcHRpb24pIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJSZWYgb3V0
Q29udmVydGVyID0gbnVsbHB0cjsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJOZXcobV9pbnB1dERl
c2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVy
KTsKKyAgICAgICAgT1NTdGF0dXMgZXJyID0gQXVkaW9Db252ZXJ0ZXJOZXcobV9pbnB1dERlc2Ny
aXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsK
KyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoJXApIC0gQXVkaW9Db252ZXJ0ZXJOZXcgcmV0dXJu
ZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAgICAgICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwogICAgIH0KIApAQCAtMjIxLDYg
KzIzNiwxMSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByCiAgICAg
bV9yaW5nQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2xpc3QgPSBudWxscHRyOwogICAgIG1fbGlz
dEJ1ZmZlclNpemUgPSAwOworICAgIGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICAvLyBGSVhN
RTogbWFrZSBhbmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9Db252ZXJ0ZXIKKyAgICAg
ICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0
ZXIgPSBudWxscHRyOworICAgIH0KIH0KIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2VzcyhDTUZvcm1hdERlc2NyaXB0aW9uUmVmLCBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIpCkBAIC0yMzQsNyArMjU0LDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJvYwogICAgIE9TU3RhdHVzIGVyciA9IENNU2FtcGxlQnVmZmVyR2V0QXVk
aW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRy
LCBtX2xpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1
bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9C
dWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcik7CiAKICAgICBpZiAoZXJy
KSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9lc3MoJXApIC0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRC
bG9ja0J1ZmZlciByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgIExPRyhN
ZWRpYSwgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKCVwKSAtIENNU2Ft
cGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgcmV0dXJu
ZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAkocmV2aXNpb24g
MTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcg
QEAgUmVhbHRpbWVNZWRpYVNvdXJjZU93cihPd3JNZWRpYVNvdXJjZSogbQogCiAgICAgdmlydHVh
bCB+UmVhbHRpbWVNZWRpYVNvdXJjZU93cigpIHsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1
cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsg
fQogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkg
eyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9CiAKICAgICBPd3JNZWRpYVNvdXJjZSogbWVkaWFT
b3VyY2UoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TW9ja1NvdXJjZSgp
IHsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2
aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgeyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9
CiAKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmls
aXRpZXM7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxNS0xMC0yNyAgRXJpYyBDYXJs
c29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFBs
YXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBjYW52
YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDQ0
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWw6CisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0
cmVhbS5odG1sOgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY29uc3Ry
dWN0LXdpdGgtZW5kZWQtdHJhY2tzLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbUNvbnN0cnVjdG9yLmh0bWw6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzOgorICAgICAgICAocmVqZWN0KToKKyAg
ICAgICAgKGdldFVzZXJNZWRpYSk6CisKIDIwMTUtMTAtMjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybiBJREI6IFN1cHBvcnQgSURCT2JqZWN0U3Rv
cmUucHV0L2dldCBzdXBwb3J0LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtZW5kZWQtdHJhY2tzLmh0bWwJKHJl
dmlzaW9uIDE5MTYzNykKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0tYWRkLWVuZGVkLXRyYWNrcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBA
CiAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdhdWRpb1RyYWNrLnJlYWR5
U3RhdGUnLCAnZW5kZWQnKTsKIAogICAgICAgICAgICAgICAgIGRlYnVnKCIqKiogY29uc3RydWN0
IG5ldyAnZW1wdHknIHN0cmVhbTIiKQotICAgICAgICAgICAgICAgIHN0cmVhbTIgPSBuZXcgd2Vi
a2l0TWVkaWFTdHJlYW0oKTsKKyAgICAgICAgICAgICAgICBzdHJlYW0yID0gbmV3IE1lZGlhU3Ry
ZWFtKCk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ3N0cmVhbTIuZ2V0VHJhY2tzKCkubGVu
Z3RoJywgJzAnKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgnc3RyZWFtMi5hY3RpdmUnLCAn
ZmFsc2UnKTsKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVh
bS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tYWRkLXRyYWNrcy10by1pbmFjdGl2
ZS1zdHJlYW0uaHRtbAkocmV2aXNpb24gMTkxNjM3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbS1hZGQtdHJhY2tzLXRvLWluYWN0aXZlLXN0cmVhbS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw3IEBACiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNy
ZWF0ZVN0cmVhbUFuZEFkZFRyYWNrcygpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg
c3RyZWFtMiA9IG5ldyB3ZWJraXRNZWRpYVN0cmVhbSgpOworICAgICAgICAgICAgICAgIHN0cmVh
bTIgPSBuZXcgTWVkaWFTdHJlYW0oKTsKICAgICAgICAgICAgICAgICBkZWJ1ZygiTWVkaWFTdHJl
YW0gd2l0aG91dCB0cmFja3MgY3JlYXRlZC4iKTsKICAgICAgICAgICAgICAgICBzaG91bGRCZSgn
c3RyZWFtMi5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCcsICcwJyk7CiAgICAgICAgICAgICAgICAg
YXVkaW9UcmFjayA9IHN0cmVhbTEuZ2V0QXVkaW9UcmFja3MoKVswXTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY29uc3RydWN0LXdpdGgtZW5kZWQtdHJh
Y2tzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS1jb25zdHJ1Y3Qtd2l0aC1lbmRlZC10cmFja3MuaHRtbAkocmV2aXNpb24gMTkxNjM3
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1jb25zdHJ1Y3Qt
d2l0aC1lbmRlZC10cmFja3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksMTIgKzI5LDEyIEBA
CiAgICAgICAgICAgICAgICAgdmFyIHRyYWNrc0FycmF5ID0gW107CiAgICAgICAgICAgICAgICAg
dHJhY2tzQXJyYXkucHVzaCh2aWRlb1RyYWNrKTsKICAgICAgICAgICAgICAgICB0cmFja3NBcnJh
eS5wdXNoKGF1ZGlvVHJhY2spOwotICAgICAgICAgICAgICAgIG5ld01lZGlhU3RyZWFtID0gbmV3
IHdlYmtpdE1lZGlhU3RyZWFtKHRyYWNrc0FycmF5KTsKKyAgICAgICAgICAgICAgICBuZXdNZWRp
YVN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbSh0cmFja3NBcnJheSk7CiAKICAgICAgICAgICAgICAg
ICBzaG91bGRFdmFsdWF0ZVRvKCduZXdNZWRpYVN0cmVhbS5hY3RpdmUnLCBmYWxzZSk7CiAgICAg
ICAgICAgICAgICAgc2hvdWxkTm90QmUoJ21lZGlhU3RyZWFtLmlkJywgJ25ld01lZGlhU3RyZWFt
LmlkJyk7CiAKLSAgICAgICAgICAgICAgICBtZWRpYVN0cmVhbUNvcHkgPSBuZXcgd2Via2l0TWVk
aWFTdHJlYW0obmV3TWVkaWFTdHJlYW0pOworICAgICAgICAgICAgICAgIG1lZGlhU3RyZWFtQ29w
eSA9IG5ldyBNZWRpYVN0cmVhbShuZXdNZWRpYVN0cmVhbSk7CiAgICAgICAgICAgICAgICAgc2hv
dWxkRXZhbHVhdGVUbygnbWVkaWFTdHJlYW1Db3B5LmFjdGl2ZScsIGZhbHNlKTsKICAgICAgICAg
ICAgICAgICBzaG91bGROb3RCZSgnbWVkaWFTdHJlYW1Db3B5LmlkJywgJ25ld01lZGlhU3RyZWFt
LmlkJyk7CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1D
b25zdHJ1Y3Rvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Db25zdHJ1Y3Rvci5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ29uc3RydWN0b3IuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAKICAgICAgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+CiAgICAgICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogICAgICAgICA8c2NyaXB0Pgot
ICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIHdlYmtpdE1lZGlhU3RyZWFtLiIpOworICAg
ICAgICAgICAgZGVzY3JpcHRpb24oIlRlc3RzIE1lZGlhU3RyZWFtLiIpOwogCiAgICAgICAgICAg
ICB2YXIgdW5kZWZpbmVkOwogICAgICAgICAgICAgdmFyIHN0cmVhbTsKQEAgLTQ3LDMwICs0Nywz
MCBAQAogICAgICAgICAgICAgICAgIHNob3VsZEJlKCdsb2NhbFN0cmVhbS5nZXRBdWRpb1RyYWNr
cygpLmxlbmd0aCcsICcxJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2xvY2FsU3RyZWFt
LmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoJywgJzEnKTsKIAotICAgICAgICAgICAgICAgIHNob3Vs
ZEJlVHJ1ZSgidHlwZW9mIHdlYmtpdE1lZGlhU3RyZWFtID09PSAnb2JqZWN0JyIpOworICAgICAg
ICAgICAgICAgIHNob3VsZEJlVHJ1ZSgidHlwZW9mIE1lZGlhU3RyZWFtID09PSAnb2JqZWN0JyIp
OwogICAgICAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgnY2hlY2tJZEF0dHJpYnV0ZShsb2NhbFN0
cmVhbS5pZCknKTsKICAgICAgICAgICAgICAgICB0ZXN0Q29uc3RydWN0b3IobG9jYWxTdHJlYW0p
OwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Q29uc3RydWN0b3Io
cykgewogICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7Ci0gICAgICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShkb2N1bWVudCknKTsKLSAgICAgICAgICAgICAg
ICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtkb2N1bWVudF0pJyk7Ci0gICAg
ICAgICAgICAgICAgc2hvdWxkVGhyb3coJ25ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKClbMF0sIGRvY3VtZW50XSknKTsKLSAgICAgICAgICAgICAgICBzaG91bGRU
aHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtudWxsXSknKTsKLSAgICAgICAgICAgICAgICBz
aG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKFt1bmRlZmluZWRdKScpOwotICAgICAg
ICAgICAgICAgIHNob3VsZFRocm93KCduZXcgd2Via2l0TWVkaWFTdHJlYW0obnVsbCknKTsKLSAg
ICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IHdlYmtpdE1lZGlhU3RyZWFtKHVuZGVmaW5l
ZCknKTsKLQotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IHdlYmtpdE1lZGlhU3Ry
ZWFtKCkiLCAwLCAwKTsKLSAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRN
ZWRpYVN0cmVhbShbXSkiLCAwLCAwKTsKLQotICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgi
bmV3IHdlYmtpdE1lZGlhU3RyZWFtKHN0cmVhbSkiLCBzLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3Ro
LCBzLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoKTsKLQotICAgICAgICAgICAgICAgIHZlcmlmeVN0
cmVhbSgibmV3IHdlYmtpdE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXV0p
IiwgMSwgMCk7Ci0gICAgICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgd2Via2l0TWVkaWFT
dHJlYW0oW3N0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdXSkiLCAwLCAxKTsKLSAgICAgICAgICAg
ICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlv
VHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRlb1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKLSAgICAg
ICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyB3ZWJraXRNZWRpYVN0cmVhbShbc3RyZWFtLmdl
dFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0
VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7CisgICAgICAgICAgICAgICAgc2hvdWxkVGhyb3co
J25ldyBNZWRpYVN0cmVhbShkb2N1bWVudCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJv
dygnbmV3IE1lZGlhU3RyZWFtKFtkb2N1bWVudF0pJyk7CisgICAgICAgICAgICAgICAgc2hvdWxk
VGhyb3coJ25ldyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIGRvY3Vt
ZW50XSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1lZGlhU3RyZWFtKFtu
dWxsXSknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1lZGlhU3RyZWFtKFt1
bmRlZmluZWRdKScpOworICAgICAgICAgICAgICAgIHNob3VsZFRocm93KCduZXcgTWVkaWFTdHJl
YW0obnVsbCknKTsKKyAgICAgICAgICAgICAgICBzaG91bGRUaHJvdygnbmV3IE1lZGlhU3RyZWFt
KHVuZGVmaW5lZCknKTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3IE1lZGlh
U3RyZWFtKCkiLCAwLCAwKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5ldyBNZWRp
YVN0cmVhbShbXSkiLCAwLCAwKTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3
IE1lZGlhU3RyZWFtKHN0cmVhbSkiLCBzLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoLCBzLmdldFZp
ZGVvVHJhY2tzKCkubGVuZ3RoKTsKKworICAgICAgICAgICAgICAgIHZlcmlmeVN0cmVhbSgibmV3
IE1lZGlhU3RyZWFtKFtzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVswXV0pIiwgMSwgMCk7CisgICAg
ICAgICAgICAgICAgdmVyaWZ5U3RyZWFtKCJuZXcgTWVkaWFTdHJlYW0oW3N0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdXSkiLCAwLCAxKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5l
dyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldEF1ZGlvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRWaWRl
b1RyYWNrcygpWzBdXSkiLCAxLCAxKTsKKyAgICAgICAgICAgICAgICB2ZXJpZnlTdHJlYW0oIm5l
dyBNZWRpYVN0cmVhbShbc3RyZWFtLmdldFZpZGVvVHJhY2tzKClbMF0sIHN0cmVhbS5nZXRBdWRp
b1RyYWNrcygpWzBdLCBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXV0pIiwgMSwgMSk7CiAKICAg
ICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICAgICAgICAgIH0KQEAgLTg0LDcgKzg0
LDcgQEAKICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdTdHJlYW0gY29uc3RydWN0ZWQnKTsK
ICAgICAgICAgICAgICAgICBzaG91bGRCZU5vbk51bGwobmV3U3RyZWFtKTsKICAgICAgICAgICAg
ICAgICBzaG91bGRCZURlZmluZWQobmV3U3RyZWFtKTsKLSAgICAgICAgICAgICAgICBzaG91bGRC
ZSgibmV3U3RyZWFtLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3Qgd2Via2l0TWVk
aWFTdHJlYW1Db25zdHJ1Y3Rvcl0nIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmUoIm5ld1N0
cmVhbS5jb25zdHJ1Y3Rvci50b1N0cmluZygpIiwgIidbb2JqZWN0IE1lZGlhU3RyZWFtQ29uc3Ry
dWN0b3JdJyIpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlKCduZXdTdHJlYW0uZ2V0QXVkaW9U
cmFja3MoKS5sZW5ndGgnLCAnbkF1ZGlvJyk7CiAgICAgICAgICAgICAgICAgc2hvdWxkQmUoJ25l
d1N0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCcsICduVmlkZW8nKTsKIApJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLW9uZW5kZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJh
Y2stb25lbmRlZC5odG1sCShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2stb25lbmRlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xOCw3ICsxOCw3IEBACiAgICAgICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICAg
ICAgbmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYShkaWN0aW9uYXJ5LCBjYWxsYmFjaywgZXJy
b3IpOwogICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgnd2Via2l0R2V0VXNlck1lZGlhIHRocmV3IGV4Y2VwdGlvbiA6JyArIGUpOwor
ICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCdnZXRVc2VyTWVkaWEgdGhyZXcgZXhjZXB0
aW9uIDonICsgZSk7CiAgICAgICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTM2LDcgKzM2LDcgQEAKICAgICAgICAgICAg
IGZ1bmN0aW9uIGdvdFN0cmVhbTIocykgewogICAgICAgICAgICAgICAgIGRlYnVnKCIiKTsKICAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCdnb3RTdHJlYW0yIHdhcyBjYWxsZWQuJyk7Ci0gICAg
ICAgICAgICAgICAgc3RyZWFtID0gbmV3IHdlYmtpdE1lZGlhU3RyZWFtKHMpOworICAgICAgICAg
ICAgICAgIHN0cmVhbSA9IG5ldyBNZWRpYVN0cmVhbShzKTsKICAgICAgICAgICAgICAgICB0cmFj
ayA9IHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpWzBdOwogICAgICAgICAgICAgICAgIHRyYWNrQ2xv
bmUgPSB0cmFjay5jbG9uZSgpOwogICAgICAgICAgICAgICAgIHNob3VsZEJlRmFsc2UoJ3RyYWNr
LnJlYWR5U3RhdGUgPT0gImVuZGVkIicpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpz
CShyZXZpc2lvbiAxOTE2MzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291
cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBA
QCBmdW5jdGlvbiBnZXRVc2VyTWVkaWEocGVybWlzc2lvbiwgY29uc3RyCiAgICAgZWxzZSB7CiAg
ICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1
bm5lciIpOwogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOwogICAgIH0K
IAogICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKS50
aGVuKHN1Y2Nlc3NDYWxsYmFjaywgcmVqZWN0KS5jYXRjaChkZWZhdWx0UmVqZWN0T3JDYXRjaCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264248</attachid>
            <date>2015-10-28 14:35:53 -0700</date>
            <delta_ts>2015-10-28 16:59:50 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>media_player_stream_patch_16.txt</filename>
            <type>text/plain</type>
            <size>120990</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MSBAQAorMjAxNS0xMC0yNyAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycyBzbyB0
aGUgbGlzdAorICAgICAgICAgIGNhbid0IGJlIG11dGF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbik6IExvZyBhbmQgZmFpbCBp
ZiB0aGUgc2Vzc2lvbiB3b24ndCBhZGQgdGhlCisgICAgICAgICAgaW5wdXQgb3Igb3V0cHV0Lgor
ICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNodXRkb3duQ2FwdHVyZVNl
c3Npb24pOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0
IGJsb2NrCisgICAgICAgICAgaWYgaXQgaXNuJ3QgcG9zc2libGUgdG8gYWNxdWlyZSB0aGUgbG9j
ay4gSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAgICAgICAgKFdlYkNv
cmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEZWxldGVkLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpyZWZyZXNoQ2FwdHVyZURldmljZUxpc3QpOiBEb24ndCBpbmNs
dWRlIGRldmljZXMgdGhhdCBjYW4ndCBiZSB1c2VkLgorICAgICAgICAoV2ViQ29yZTo6QVZDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWludHMpOiAgVXNl
IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQKKyAgICAgICAgICBzbyBjb25z
dHJhaW50cyBhcmUgY29uc2lkZXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFWQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQpOiBEb24ndCBjb25zaWRlciBkaXNhYmxlZCBkZXZpY2Vz
LiBBbHdheXMKKyAgICAgICAgICBjcmVhdGUgYSBuZXcgY2FwdHVyZSBkZXZpY2Ugc28gZWFjaCB0
cmFjayBzdGFydHMgb3V0IHdpdGggYSB1bmlxdWUgc291cmNlLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Z2xvYmFBdWRpb0NhcHR1cmVTZXJpYWxRdWV1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6On5BVk1lZGlhQ2FwdHVyZVNvdXJjZSk6IFJl
bW92ZSBLVk8gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3Vy
Y2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6IG1faXNSdW5uaW5nIGlzIGNoYW5nZWQgaW4gY2FwdHVy
ZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2Fw
dHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKTogQWRkIEtWT2JzZXJ2ZXJz
IGZvciB0aGUgcHJvcGVydGllcyB3ZSBjYXJlIGFib3V0LgorICAgICAgICAoV2ViQ29yZTo6QVZN
ZWRpYUNhcHR1cmVTb3VyY2U6OnJlc2V0KTogTmV3LCBjbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdl
KTogRGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhyZWFkIAorICAgICAgICAgIHRvIHNldCBtX2lzUnVu
bmluZywgY2FsbCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2Ugc28gb2JzZXJ2ZXJzIGNhbiBmaW5k
IG91dC4KKyAgICAgICAgKFdlYkNvcmU6OnNlc3Npb25LVk9Qcm9wZXJ0aWVzKToKKyAgICAgICAg
KC1bV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgZGlzY29ubmVjdF0pOgorICAg
ICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlT3V0cHV0
OmRpZE91dHB1dFNhbXBsZUJ1ZmZlcjpmcm9tQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bV2Vi
Q29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpv
Zk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKTogUmVzcG9uZAorICAgICAgICAgIHRvIHJ1bm5pbmcg
Y2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJl
U2Vzc2lvblN0b3BwZWRSdW5uaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViQ29yZUFWTWVk
aWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZzpdKTog
RGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNl
Ojppbml0aWFsaXplQ2FwYWJpbGl0aWVzKTogUGFydGlhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKTog
IExvZyBhbmQgZmFpbCBpZiB0aGUgc2Vzc2lvbiB3b24ndCBhZGQgdGhlCisgICAgICAgICAgaW5w
dXQgb3Igb3V0cHV0LgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNo
dXRkb3duQ2FwdHVyZVNlc3Npb24pOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1lcmF0ZSk6IFJlbmFtZWQgZnJvbSBjYWxjdWxhdGVG
cmFtZXJhdGUuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVu
dEZyYW1lSW1hZ2UpOiBSZXR1cm4gYW4gSW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6cGxhdGZvcm1MYXllcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6OkFW
VmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhbGN1bGF0ZUZyYW1lcmF0ZSk6IERlbGV0ZWQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKTogQXVk
aW9Db252ZXJ0ZXJSZWYgaXMKKyAgICAgICAgICBub3QgYSBDRi9PYmpDIG9iamVjdCBzbyB3ZSBj
YW4ndCB1c2UgYSBSZXRhaW5QdHI8PiBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFy
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByb2Nlc3MpOiBGaXggdHlwbyBpbiBsb2dnaW5nLgorCisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrU291cmNlOjpjYXBhYmlsaXRpZXMpOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGllcyBjaGFu
Z2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaDogVXBkYXRlIGZvciBjYXBhYmlsaXRpZXMgY2hhbmdlLgorCiAyMDE1
LTEwLTI3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQ2FuY2VsIG5hdmlnYXRpb24gcG9saWN5IGNoZWNrcyBsaWtlIHdlIGRvIGNvbnRlbnQg
cG9saWN5IGNoZWNrcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNiArNDAsMzYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgVmVjdG9y
PE1lZGlhU3RyZWFtKj4mIG1lZGlhU3RyZWFtcygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxNZWRpYVN0cmVhbSo+PiBzdHJlYW1zOworICAgIHJldHVybiBzdHJlYW1zOwor
fQorCitzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtKiBzdHJlYW0p
Cit7CisgICAgbWVkaWFTdHJlYW1zKCkuYXBwZW5kKHN0cmVhbSk7Cit9CisKK3N0YXRpYyB2b2lk
IHVuUmVnaXN0ZXJNZWRpYVN0cmVhbShNZWRpYVN0cmVhbSogc3RyZWFtKQoreworICAgIFZlY3Rv
cjxNZWRpYVN0cmVhbSo+JiBhbGxTdHJlYW1zID0gbWVkaWFTdHJlYW1zKCk7CisgICAgc2l6ZV90
IHBvcyA9IGFsbFN0cmVhbXMuZmluZChzdHJlYW0pOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQp
CisgICAgICAgIGFsbFN0cmVhbXMucmVtb3ZlKHBvcyk7Cit9CisKK01lZGlhU3RyZWFtKiBNZWRp
YVN0cmVhbTo6bG9va1VwKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgcHJpdmF0ZVN0cmVhbSkK
K3sKKyAgICBWZWN0b3I8TWVkaWFTdHJlYW0qPiYgYWxsU3RyZWFtcyA9IG1lZGlhU3RyZWFtcygp
OworICAgIGZvciAoYXV0byYgc3RyZWFtIDogYWxsU3RyZWFtcykgeworICAgICAgICBpZiAoc3Ry
ZWFtLT5tX3ByaXZhdGUgPT0gJnByaXZhdGVTdHJlYW0pCisgICAgICAgICAgICByZXR1cm4gc3Ry
ZWFtOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiBzdGF0aWMgVVJMUmVnaXN0
cnkqIHNfcmVnaXN0cnk7CiAKIHZvaWQgTWVkaWFTdHJlYW06OnNldFJlZ2lzdHJ5KFVSTFJlZ2lz
dHJ5JiByZWdpc3RyeSkKQEAgLTU4LDcgKzg4LDcgQEAgTWVkaWFTdHJlYW0qIE1lZGlhU3RyZWFt
Ojpsb29rVXAoY29uc3QgVQogCiBSZWY8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4gTWVkaWFTdHJl
YW06OmNyZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4gTWVkaWFTdHJlYW06OmNyZWF0ZShjb250
ZXh0LCBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPj4oKSkpOwogfQogCiBSZWY8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTWVkaWFTdHJlYW0qIHN0cmVh
bSkKQEAgLTk1LDcgKzEyNSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIHJlZ2lzdGVyTWVkaWFTdHJlYW0odGhpcyk7CiB9CiAKIE1lZGlhU3RyZWFtOjpN
ZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPiYmIHN0cmVhbVByaXZhdGUpCkBAIC0xMDUsNyArMTM2LDggQEAgTWVkaWFT
dHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbgogICAgICwgbV9hY3Rpdml0eUV2ZW50
VGltZXIoKnRoaXMsICZNZWRpYVN0cmVhbTo6YWN0aXZpdHlFdmVudFRpbWVyRmlyZWQpCiB7CiAg
ICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7Cisg
ICAgbV9wcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgcmVnaXN0ZXJNZWRpYVN0cmVh
bSh0aGlzKTsKIAogICAgIGZvciAoYXV0byYgdHJhY2tQcml2YXRlIDogbV9wcml2YXRlLT50cmFj
a3MoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gdHJhY2sgPSBNZWRpYVN0
cmVhbVRyYWNrOjpjcmVhdGUoY29udGV4dCwgKnRyYWNrUHJpdmF0ZSk7CkBAIC0xMTYsNyArMTQ4
LDEwIEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KIAogTWVkaWFT
dHJlYW06On5NZWRpYVN0cmVhbSgpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0
cik7CisgICAgdW5SZWdpc3Rlck1lZGlhU3RyZWFtKHRoaXMpOworICAgIG1fcHJpdmF0ZS0+cmVt
b3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZh
bHVlcygpKQorICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiB9CiAKIFJlZlB0
cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNsb25lKCkKQEAgLTE5OSwxMiArMjM0LDE0IEBA
IHZvaWQgTWVkaWFTdHJlYW06OmRpZEFkZFRyYWNrKE1lZGlhU3RyZWEKICAgICBpZiAoIWNvbnRl
eHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1U
cmFjazo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxh
dGZvcm0pOworICAgIGlmICghZ2V0VHJhY2tCeUlkKHRyYWNrUHJpdmF0ZS5pZCgpKSkKKyAgICAg
ICAgaW50ZXJuYWxBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRy
YWNrUHJpdmF0ZSksIFN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKIHZvaWQgTWVkaWFT
dHJlYW06OmRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFja1ByaXZh
dGUpCiB7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrID0gZ2V0VHJhY2tCeUlk
KHRyYWNrUHJpdmF0ZS5pZCgpKTsKKyAgICBBU1NFUlQodHJhY2spOwogICAgIGludGVybmFsUmVt
b3ZlVHJhY2soV1RGOjptb3ZlKHRyYWNrKSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKIH0K
IApAQCAtMjU0LDYgKzI5MSw3IEBAIHZvaWQgTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1l
ckZpcmUKICAgICBldmVudHMuc3dhcChtX3NjaGVkdWxlZEFjdGl2aXR5RXZlbnRzKTsKIAogICAg
IGZvciAoYXV0byYgZXZlbnQgOiBldmVudHMpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY2Fu
J3QgYmUgcmlnaHQsIHRoZSBldmVudCB0eXBlIGlzIHNldCBmcm9tIG1faXNBY3RpdmUgaW4gc2No
ZWR1bGVBY3RpdmVTdGF0ZUNoYW5nZSEgLSBodHRwczovL3dlYmtpdC5vcmcvYi8xNTA2MzUKICAg
ICAgICAgbV9pc0FjdGl2ZSA9IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFjdGl2ZUV2
ZW50OwogICAgICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0u
aAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVn
aXN0cmFibGUsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBNZWRpYVN0cmVhbVByaXZh
dGVDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciB7
CitjbGFzcyBNZWRpYVN0cmVhbSBmaW5hbCA6IHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIE1lZGlhU3RyZWFtVHJhY2s6Ok9i
c2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFTdHJlYW0+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAg
cHVibGljOgpAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0UmVn
aXN0cnkoVVJMUmVnaXN0cnkmKTsKICAgICBzdGF0aWMgTWVkaWFTdHJlYW0qIGxvb2tVcChjb25z
dCBVUkwmKTsKIAorICAgIHN0YXRpYyBNZWRpYVN0cmVhbSogbG9va1VwKGNvbnN0IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpOworCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE1lZGlhU3RyZWFtKik7CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVN0cmVhbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBNZWRpYVN0
cmVhbVRyYWNrVmVjdG9yJik7CkBAIC04MSw4ICs4Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gTWVkaWFTdHJlYW1FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICB2aXJ0
dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0
ZUNsaWVudD46OnJlZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZUNs
aWVudD46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+OjpyZWY7Cisg
ICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OmRlcmVmOwogCiAgICAgLy8gVVJMUmVn
aXN0cmFibGUKICAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0IG92ZXJy
aWRlOwpAQCAtMTA3LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW1UcmFj
azo6T2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tEaWRFbmQoKSBvdmVycmlkZSBmaW5h
bDsKIAotICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudAorICAgIC8vIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6T2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgYWN0aXZlU3RhdHVzQ2hhbmdlZCgp
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1v
dmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIGZpbmFsOwpJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMs
NiArMjEzLDE2IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tTdGF0ZXNDaGFuZ2UKICAg
ICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6
OnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQorewor
ICAgIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAg
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpj
b25maWd1cmVUcmFja1JlbmRlcmluZygpCiB7CiAgICAgLy8gNC4zLjEKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJs
ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAKICAgICBWZWN0
b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+IG1fcHJpdmF0ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAxOTE2MzcpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjQ5LDE0ICs2NDksMTIgQEAgdm9pZCBSVENQZWVyQ29ubmVj
dGlvbjo6ZGlkQWRkUmVtb3RlU3RyZQogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6ZGlkUmVtb3Zl
UmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtUHJpdmF0ZSogcHJpdmF0ZVN0cmVhbSkKIHsKICAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAg
QVNTRVJUKHByaXZhdGVTdHJlYW0tPmNsaWVudCgpKTsKLQotICAgIC8vIEZJWE1FOiB0aGlzIGNs
YXNzIHNob3VsZG4ndCBrbm93IHRoYXQgdGhlIHByaXZhdGUgc3RyZWFtIGNsaWVudCBpcyBhIE1l
ZGlhU3RyZWFtIQotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gc3RhdGljX2Nhc3Q8
TWVkaWFTdHJlYW0qPihwcml2YXRlU3RyZWFtLT5jbGllbnQoKSk7CiAKICAgICBpZiAobV9zaWdu
YWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZUNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6bG9va1VwKCpwcml2
YXRlU3RyZWFtKTsKKyAgICBBU1NFUlQoc3RyZWFtKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjIgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworY2xhc3MgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50OworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVk
aWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCk7CkBAIC01OCwxMTYgKzU2
LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotICAg
IHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7Ci0gICAg
dm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQot
ICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsK
LSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
Kik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1wbGVtZW50IG5lY2Vzc2FyeSBjb25mb3Jt
YXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVsZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAot
ICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH07CisgICAgLy8gTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBGSVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQg
bmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRhcmQgaW4gSFRNTE1lZGlhRWxlbWVudCBm
b3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlkZSB7IH07CisgICAgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwogI2VuZGlm
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2
YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOwotICAgIFBsYXRmb3JtTWVkaWEg
cGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBwbGF5KCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLQogICAgIHZvaWQgcGF1c2UoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsKLQogICAgIGJvb2wgcGF1c2VkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBib29sKTsKICAgICB2b2lkIHNldE11dGVk
KGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRWaXNp
YmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKSBvdmVycmlkZSB7
IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlIHsgfTsKLSAgICBib29sIHNl
ZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRl
IHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIGJv
b2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0
ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsgfQogCi0gICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JSZW5k
ZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxv
YWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07
IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwot
Ci0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVf
dCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKICAgICBi
b29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKKworICAgIGVudW0gUmVu
ZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRlcmluZ01vZGVVbmNoYW5nZWQsCisgICAg
ICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1
cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOworCisgICAgdm9pZCBjcmVh
dGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNldFBhdXNlZEltYWdlVmlzaWJsZShib29s
KTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+
KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOworICAgIC8v
IE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5n
ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSBvdmVycmlk
ZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKKyAgICBNZWRpYVBsYXllciogbV9wbGF5
ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIFJlZlB0cjxNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJpdmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZB
c3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+
IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0gICAgVmVjdG9yPFJldGFpblB0cjxBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwot
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJbWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+
IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFpblB0cjxpZD4gbV9kdXJhdGlvbk9ic2Vy
dmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Npb24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwotICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAgICBNZWRpYVRpbWUgbV9sYXN0U2Vla1Rp
bWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29sIG1fcGxheWluZzsKLSAgICBib29sIG1f
c2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRlZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9s
b2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX21lZGlh
U3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxDQUxheWVyPiBtX3ByZXZpZXdM
YXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX3BhdXNlZEltYWdlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsKKyAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5n
IH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7
IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5ld0ZyYW1lIHtmYWxzZSB9OworICAgIGJv
b2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9OwogICAgIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxOCArMjgsMTQgQEAKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQg
IkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5o
IgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9ydCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJl
YW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0jaW1w
b3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5o
IgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWVGltZS5oPgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4K
ICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNTAsMTggKzQ2LDYgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKLVNPRlRfTElOS19DTEFTU19P
UFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllcikKLVNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwotCi0jcHJhZ21hIG1hcmsgLQot
I3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1AaW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lv
biA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRV
Ukw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBlbmQKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25ldHdvcmtT
dGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAgICAsIG1fcGxheWluZygwKQotICAgICwg
bV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29tcGxldGVkKHRydWUpCi0gICAgLCBtX2xv
YWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7
Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyglcCkiLCB0aGlzKTsKIH0KIAog
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRlKQorICAgICAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21h
IG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeSgpCi0gICAg
ICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwotICAgIHN0YXRpYyBib29sIHR5cGVMaXN0
SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0eXBlTGlzdEluaXRpYWxpemVkKQotICAg
ICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAg
ICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVU
eXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5cGUgaW4gdHlwZXMpCi0gICAgICAgIGNh
Y2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICByZXR1cm4gY2FjaGU7CisgICAgcmV0dXJu
IEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykKIHsKLSAgICB0eXBlcyA9IG1pbWVU
eXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBj
YWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5
OCwxNzQgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaQogI3ByYWdt
YSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgT3ZlcnJp
ZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNv
bnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBN
ZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAg
ICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOwor
fQorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0
cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNl
dE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKE1l
ZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bG9hZCglcCkiLCB0aGlzKTsKIAotICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlID0gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6Y3JlYXRlKCp0aGlz
LCBzdHJlYW0pOwotICAgIGZvciAoYXV0byB0cmFjayA6IHN0cmVhbS50cmFja3MoKSkgewotICAg
ICAgICBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkVHJhY2soV1RGOjptb3ZlKHRyYWNrKSk7Ci0g
ICAgICAgIGlmICghdHJhY2stPmVuZGVkKCkpIHsKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7Ci0gICAgICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0
cnVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZSA9ICZzdHJl
YW07CisgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisKICAgICBtX3ByZXZp
ZXdMYXllciA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Q
cml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKLSAgICAgICAgICAgIG1fcHJldmlld0xheWVyID0g
c3RhdGljX2Nhc3Q8QVZWaWRlb0NhcHR1cmVTb3VyY2UqPih0cmFjay0+c291cmNlKCkpLT5wcmV2
aWV3TGF5ZXIoKTsKLSAgICB9Ci0gICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVu
ZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworCisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2so
W3RoaXNdIHsKKyAgICAgICAgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpJZGxlKTsKKyAg
ICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0
YWRhdGEpCisgICAgICAgICAgICB0aGlzLT5zZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlOjpIYXZlTWV0YWRhdGEpOworICAgIH0pOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCgpCiB7CisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCVwKSIsIHRo
aXMpOworICAgIHBhdXNlKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCkKIHsKLX0KLQotUGxhdGZvcm1NZWRpYSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAotewot
ICAgIFBsYXRmb3JtTWVkaWEgcG07Ci0gICAgcG0udHlwZSA9IFBsYXRmb3JtTWVkaWE6OkFWRm91
bmRhdGlvbkFzc2V0VHlwZTsKLSAgICBwbS5tZWRpYS5hdmZBc3NldCA9IG1fYXNzZXQuZ2V0KCk7
Ci0gICAgcmV0dXJuIHBtOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSglcCkiLCB0aGlzKTsKIH0KIAogUGxhdGZvcm1M
YXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVy
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJldmlld0xheWVyKQorICAgIGlmICghbV92aWRlb0Jh
Y2tncm91bmRMYXllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFBsYXRmb3JtTGF5ZXIqPihtX3ByZXZpZXdMYXllcik7CisKKyAgICByZXR1cm4gbV92
aWRlb0JhY2tncm91bmRMYXllci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnBsYXkoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldFBhdXNlZEltYWdlVmlzaWJsZShib29sIHZpc2libGUpCiB7Ci0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpc10gewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB3ZWFrVGhpcy5nZXQoKS0+cGxheUludGVybmFsKCk7Ci0gICAgfSk7CisgICAgaWYg
KCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8ICFtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAodmlzaWJsZSA9PSBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRk
ZW4pCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgZG8geworICAgICAgICBpZiAodmlzaWJs
ZSkgeworICAgICAgICAgICAgbV9jbG9jay0+c3RvcCgpOworCisgICAgICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmN1cnJlbnRGcmFtZUltYWdlKCk7
CisgICAgICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBtX3BhdXNlZEltYWdlID0gaW1hZ2UtPmdldENHSW1hZ2VSZWYoKTsKKyAgICAgICAg
ICAgIGlmICghbV9wYXVzZWRJbWFnZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5jb250ZW50cyA9IChpZCltX3BhdXNl
ZEltYWdlLmdldCgpOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0g
dHJ1ZTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFsc2U7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5pc1Byb2R1
Y2luZ0RhdGEoKSkgeworICAgICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bV9jbG9jay0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFs
c2U7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSBmYWxzZTsKKyAg
ICAgICAgICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuY29udGVudHMgPSBuaWw7Cisg
ICAgICAgICAgICBtX3BhdXNlZEltYWdlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gd2hp
bGUgKDApOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCgpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiB7Ci0gICAgbV9wbGF5aW5n
ID0gdHJ1ZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXkoJXApIiwgdGhpcyk7CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2hhdmVFdmVyUGxheWVkID0g
dHJ1ZTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogewotICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
d2Vha1RoaXMuZ2V0KCktPnBhdXNlSW50ZXJuYWwoKTsKLSAgICB9KTsKLX0KKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCVwKSIsIHRo
aXMpOwogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJ
bnRlcm5hbCgpCi17Ci0gICAgbV9wbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9N
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0
b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKHRydWUpOworICAg
IG1fcGxheWluZyA9IGZhbHNlOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICAvLyBTaG91bGRuJ3QgYmUgYWJsZSB0
byBwYXVzZSBzdHJlYW1zCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhbV9wbGF5aW5n
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omlu
dGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbCBpbnRlcm5hbCkKIHsKKyAgICBpZiAo
IWludGVybmFsKQorICAgICAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKworICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFNldCB2b2x1
bWUgb25jZSB3ZSBhY3R1YWxseSBwbGF5IGF1ZGlvLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbFNldFZvbHVtZSh2b2x1bWUsIGZh
bHNlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJl
YW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c2V0TXV0ZWQobXV0ZWQpOwotICAgIH0KLX0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKCVwKSIsIHRoaXMpOwogCi1GbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGZsb2F0U2l6ZSgwLCAwKTsKLSAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7Ci0gICAg
ICAgICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogc291cmNlID0gKEFWVmlkZW9DYXB0dXJlU291
cmNlKil0cmFjay0+c291cmNlKCk7Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZS0+c3RvcHBlZCgp
ICYmIHRyYWNrLT5lbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLT53aWR0
aCgpID4gZmxvYXRTaXplLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5z
ZXRXaWR0aChzb3VyY2UtPndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhl
aWdodCgpID4gZmxvYXRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBmbG9hdFNp
emUuc2V0SGVpZ2h0KHNvdXJjZS0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiBmbG9hdFNpemU7CisgICAgaWYgKG11dGVkID09IG1fbXV0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICAKKyAgICBpbnRl
cm5hbFNldFZvbHVtZShtdXRlZCA/IDAgOiBtX3ZvbHVtZSwgdHJ1ZSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewot
ICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNWaWRlbygpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0VmlzaWJsZShib29sKQotewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aGFzQXVkaW8oKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdApAQCAtMjgy
LDE5ICsyNzUsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BCiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FKDE0NzEyNSk6IE11c3QgaW1wbGVtZW50
IHRoaXMgbGF0ZXIKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0Ci17
Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoZG91YmxlKQotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGU7IHRoZXJlZm9y
ZSwgY2Fubm90IHNldCByYXRlCisgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZShtX2Nsb2NrLT5jdXJyZW50VGltZSgpKTsKIH0KIAogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5ldHdvcmtTdGF0ZSgpIGNv
bnN0CkBAIC0zMDcsODUgKzI4OCwxMjcgQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQ
bGF5ZXJQcml2YQogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaXplQ2hhbmdlZCgpCitNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRS
ZWFkeVN0YXRlKCkKIHsKLSAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLX0KKyAgICBpZiAo
bV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGE7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4obWluTWVkaWFU
aW1lU2Vla2FibGUoKSwgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSk7Ci19CisgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOworICAgIH0KIAotTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBkdXJhdGlvbk1lZGlhVGltZSgpOworICAg
IHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKLU1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1pbk1lZGlhVGltZVNl
ZWthYmxlKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphY3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKLSAgICByZXR1cm4gc3RhcnRUaW1lKCk7Ci19Cisg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0
YXRlKCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpcywgbmV3UmVhZHlTdGF0ZV0geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworICAgIH0pOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6UmVuZGVyaW5nTW9kZVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJiBz
aXplKQogewotICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgPSBtX2xvYWRpbmdQcm9ncmVzc2Vk
OwotICAgIG1fbG9hZGluZ1Byb2dyZXNzZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gbG9hZGluZ1By
b2dyZXNzZWQ7Ci19CisgICAgaWYgKHNpemUgPT0gbV9pbnRyaW5zaWNTaXplKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCi17Ci0gICAgLy8gTm8t
b3AuCisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsKKworICAgIGlmIChtX3ZpZGVvQmFja2dy
b3VuZExheWVyIHx8ICFtX3BsYXllciB8fCAhbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCisgICAgICAgIHJldHVybiBSZW5k
ZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAh
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIFJl
bmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyaW5nTW9kZUNoYW5nZWQ7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdlRnJvbVNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycygpCiB7Ci0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAg
dm9pZCAqYmFzZUFkZHJlc3MgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MoaW1hZ2VCdWZm
ZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChpbWFnZUJ1ZmZlcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJl
dGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ3JlYXRlV2l0aERhdGEoTlVMTCwgYmFzZUFkZHJlc3MsIGJ5dGVzUGVyUm93ICogaGVpZ2h0
LCBOVUxMKSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHF1YXJ0ekltYWdlID0gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgY29sb3JT
cGFjZS5nZXQoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0LCBwcm92aWRlci5nZXQoKSwgTlVMTCwgdHJ1ZSwga0NHUmVuZGVyaW5n
SW50ZW50RGVmYXVsdCkpOwotICAgIAotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHF1YXJ0ekltYWdlOworICAgIGlm
IChtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5uYW1lID0gQCJNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgcHJldmlldyBiYWNrZ3JvdW5kIGxheWVy
IjsKKyNlbmRpZgorCisgICAgbV9wcmV2aWV3TGF5ZXIgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+
cGxhdGZvcm1MYXllcigpOworICAgIG1fcHJldmlld0xheWVyLmdldCgpLmNvbnRlbnRzR3Jhdml0
eSA9IGtDQUdyYXZpdHlSZXNpemU7CisgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuYW5jaG9yUG9p
bnQgPSBDR1BvaW50WmVybzsKKyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hdXRvcmVzaXppbmdN
YXNrID0ga0NBTGF5ZXJXaWR0aFNpemFibGUgfCBrQ0FMYXllckhlaWdodFNpemFibGU7CisgICAg
aWYgKCFtX3BsYXlpbmcpCisgICAgICAgIG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbiA9IHRy
dWU7CisKKyAgICBbbV92aWRlb0JhY2tncm91bmRMYXllciBhZGRTdWJsYXllcjptX3ByZXZpZXdM
YXllci5nZXQoKV07CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjaGFyYWN0ZXJp
c3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0
LCByZWN0KTsKKyAgICBSZW5kZXJpbmdNb2RlU3RhdHVzIHN0YXR1cyA9IFJlbmRlcmluZ01vZGVV
bmNoYW5nZWQ7CisgICAgYm9vbCBzaXplQ2hhbmdlZCA9IGZhbHNlOworCisgICAgRmxvYXRTaXpl
IGludHJpbnNpY1NpemUgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+aW50cmluc2ljU2l6ZSgpOwor
ICAgIGlmIChpbnRyaW5zaWNTaXplLmhlaWdodCgpICE9IG1faW50cmluc2ljU2l6ZS5oZWlnaHQo
KSB8fCBpbnRyaW5zaWNTaXplLndpZHRoKCkgIT0gbV9pbnRyaW5zaWNTaXplLndpZHRoKCkpIHsK
KyAgICAgICAgc3RhdHVzID0gdXBkYXRlSW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKTsKKyAg
ICAgICAgc2l6ZUNoYW5nZWQgPSB0cnVlOworICAgIH0KKworICAgIGlmIChtX3dhaXRpbmdGb3JO
ZXdGcmFtZSAmJiBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAg
ICAgIHNldFBhdXNlZEltYWdlVmlzaWJsZShmYWxzZSk7CisKKyAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSBuZXdSZWFkeVN0YXRlID0gY3VycmVudFJlYWR5U3RhdGUoKTsKKyAgICBzY2hlZHVs
ZURlZmVycmVkVGFzayhbdGhpcywgc2l6ZUNoYW5nZWQsIG5ld1JlYWR5U3RhdGUsIHN0YXR1c10g
eworICAgICAgICBpZiAobmV3UmVhZHlTdGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAg
ICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5U3RhdGUpOworCisgICAgICAgIGlmICghbV9wbGF5ZXIp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9wbGF5ZXItPmNoYXJhY3RlcmlzdGlj
Q2hhbmdlZCgpOworICAgICAgICBpZiAoc2l6ZUNoYW5nZWQpIHsKKyAgICAgICAgICAgIG1fcGxh
eWVyLT5zaXplQ2hhbmdlZCgpOworICAgICAgICAgICAgaWYgKHN0YXR1cyA9PSBSZW5kZXJpbmdN
b2RlQ2hhbmdlZCkKKyAgICAgICAgICAgICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5
ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CisgICAgICAgIH0KKyAgICB9KTsKIH0K
IAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCitzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNlZWthYmxlKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSgxMjUxNTcpOiBJ
bXBsZW1lbnQgcGFpbnRpbmcuCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1U
aW1lUmFuZ2VzPigpOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0CitzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmJ1ZmZlcmVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7CiB9CiAKLU1lZGlhUGxheWVyOjpN
b3ZpZUxvYWRUeXBlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bW92aWVM
b2FkVHlwZSgpIGNvbnN0Cit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3Qp
CiB7Ci0gICAgcmV0dXJuIE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtOworICAgIHBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cHJlcGFyZUZvclJlbmRlcmluZygpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0g
ICAgLy8gTm8tb3AuCisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8IGNvbnRleHQucGFp
bnRpbmdEaXNhYmxlZCgpIHx8ICFtX2hhdmVFdmVyUGxheWVkKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAobV9wbGF5aW5nKQorICAgICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7CisgICAgZWxzZSBpZiAobV9wYXVz
ZWRJbWFnZSkgeworICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIo
Y29udGV4dCk7CisgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSAr
IHJlY3QuaGVpZ2h0KCkpOworICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkp
OworICAgICAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xh
dGlvbkxvdyk7CisgICAgICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRT
aXplKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkpOworICAgICAgICBDR0NvbnRleHREcmF3
SW1hZ2UoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJl
Y3Qud2lkdGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpKSwgbV9wYXVzZWRJbWFnZS5nZXQoKSk7Cisg
ICAgfQogfQogCiBTdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpl
bmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0CkBAIC0zOTQsMTcgKzQxNyw2IEBAIFN0cmluZyBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk8KICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9
CiAKLVN0cmluZyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omxhbmd1YWdl
T2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUUoMTI1MTU4KTogaW1w
bGVtZW50IGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpCi0gICAgcmV0dXJuIGVtcHR5U3Ry
aW5nKCk7Ci19Ci0KLXNpemVfdCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaG91bGRCZVBsYXlpbmcoKSBjb25z
dAogewogICAgIHJldHVybiBtX3BsYXlpbmcgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVy
OjpIYXZlRnV0dXJlRGF0YTsKQEAgLTQyMCw2ICs0MzIsMjcgQEAgdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iagogICAgIG1fcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgp
OwogfQogCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TmV0
d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKQoreworICAg
IGlmIChtX25ldHdvcmtTdGF0ZSA9PSBuZXR3b3JrU3RhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fbmV0d29ya1N0YXRlID0gbmV0d29ya1N0YXRlOworICAgIG1fcGxheWVyLT5uZXR3b3Jr
U3RhdGVDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rp
b24pCit7CisgICAgQVNTRVJUKGZ1bmN0aW9uKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRl
V2Vha1B0cigpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3dlYWtUaGlzLCBmdW5jdGlvbl0gewor
ICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1
bmN0aW9uKCk7CisgICAgfSk7Cit9CisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVB
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQ19oCi0jZGVmaW5lIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakNfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRB
VElPTikKLQotI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Q
cml2YXRlLmgiCi0jaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KLSNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLU9C
SkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1MgQVZTdHJlYW1EYXRhUGFyc2VyOwotT0JKQ19D
TEFTUyBOU0Vycm9yOwotT0JKQ19DTEFTUyBOU09iamVjdDsKLXR5cGVkZWYgc3RydWN0IG9wYXF1
ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBsZUJ1ZmZlclJlZjsKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBDRE1TZXNzaW9uOwotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOwotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwotY2xhc3MgTWVkaWFTdHJlYW1Q
cml2YXRlQ2xpZW50OwotY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzOwotY2xhc3MgVGltZVJhbmdl
czsKLQotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBNZWRp
YVN0cmVhbVByaXZhdGUgewotcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQz4gY3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
QyYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMoKTsKLQotICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyog
cGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXI7IH0KLQotICAgIHZpcnR1YWwgTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC5nZXQo
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDbGllbnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50
KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KLQotICAgIE1lZGlhVGltZSBkdXJhdGlv
bigpOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7
Ci0KLSAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Q7Ci0gICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0
OwotCi0gICAgdm9pZCBzZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKLSAg
ICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdDsKLQotICAgIE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBNZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYsIE1lZGlh
U3RyZWFtUHJpdmF0ZSYpOwotCi0gICAgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKiBtX3BsYXllcjsKLSAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiBtX2Ns
aWVudDsKLX07Ci0gICAgCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjM3KQor
KysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw5OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaCIKLQotI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNpbXBvcnQgIkNv
bnRlbnRUeXBlLmgiCi0jaW1wb3J0ICJFeGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKLSNpbXBv
cnQgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oIgotI2ltcG9ydCAiTWVk
aWFTdHJlYW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJTb2Z0TGlua2luZy5oIgotI2ltcG9ydCAiU291
cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCIKLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgotI2lt
cG9ydCA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotI3ByYWdtYSBtYXJrIC0KLSNwcmFn
bWEgbWFyayBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDCi0KLVJlZlB0cjxNZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDPiBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDJiBwYXJlbnQsIE1lZGlhU3RyZWFtUHJpdmF0ZSYg
c3RyZWFtKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1Qcml2YXRlQVZG
T2JqQyhwYXJlbnQsIHN0cmVhbSkpOwotfQotCi1NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpN
ZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyYgcGFyZW50LCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKLSAgICA6IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSgqc3RyZWFtLmNsaWVudCgpKQotICAgICwgbV9wbGF5ZXIoJnBhcmVudCkKLXsK
LX0KLQotTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6fk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akMoKQotewotfQotCi1NZWRpYVRpbWUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6ZHVyYXRp
b24oKQotewotICAgIHJldHVybiBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7Ci19
Ci0KLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakM6OmJ1ZmZlcmVkKCkKLXsKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRm
b3JtVGltZVJhbmdlcz4oKTsKLX0KLQotTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFTdHJl
YW1Qcml2YXRlQVZGT2JqQzo6cmVhZHlTdGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxh
eWVyLT5yZWFkeVN0YXRlKCk7Ci19Ci0KLXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6
c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKQotewotICAg
IG1fcGxheWVyLT5zZXRSZWFkeVN0YXRlKHJlYWR5U3RhdGUpOwotfQotCi1ib29sIE1lZGlhU3Ry
ZWFtUHJpdmF0ZUFWRk9iakM6Omhhc0F1ZGlvKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5
ZXItPmhhc0F1ZGlvKCk7Ci19Ci0KLWJvb2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFz
VmlkZW8oKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+aGFzVmlkZW8oKTsKLX0KLQot
RmxvYXRTaXplIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Om5hdHVyYWxTaXplKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPm5hdHVyYWxTaXplKCk7Ci19Ci0gICAgCi19Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEVyaWNzc29uIEFC
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDE1
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTMxLDEyICszMiwxNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKIAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pCiAKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLQorI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJVVUlELmgi
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNjIsMjUgKzY1LDM1IEBAIFJlZlB0cjxN
ZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlhU3RyZWFtUHIKIH0KIAogTWVkaWFTdHJlYW1Qcml2YXRl
OjpNZWRpYVN0cmVhbVByaXZhdGUoY29uc3QgU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGVWZWN0b3ImIHRyYWNrcykKLSAgICA6IG1faWQoaWQpCisgICAgOiBtX3dlYWtQ
dHJGYWN0b3J5KHRoaXMpCisgICAgLCBtX2lkKGlkKQogewogICAgIEFTU0VSVCghbV9pZC5pc0Vt
cHR5KCkpOwogCi0gICAgZm9yIChhdXRvJiB0cmFjayA6IHRyYWNrcykKKyAgICBmb3IgKGF1dG8m
IHRyYWNrIDogdHJhY2tzKSB7CisgICAgICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAg
ICAgICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CisgICAgfQogCiAgICAg
dXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpEb250Tm90aWZ5KTsKIH0KIAot
TWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRl
Q2xpZW50JiBjbGllbnQpCi0gICAgOiBtX2NsaWVudCgmY2xpZW50KQorTWVkaWFTdHJlYW1Qcml2
YXRlOjp+TWVkaWFTdHJlYW1Qcml2YXRlKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90
cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsK
K30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmFkZE9ic2VydmVyKE1lZGlhU3RyZWFtUHJp
dmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogeworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZCgmb2Jz
ZXJ2ZXIpOwogfQogCi1NZWRpYVN0cmVhbVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZhdGUoKQor
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFtUHJpdmF0
ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKLSAgICBt
X2lzQWN0aXZlID0gZmFsc2U7CisgICAgc2l6ZV90IHBvcyA9IG1fb2JzZXJ2ZXJzLmZpbmQoJm9i
c2VydmVyKTsKKyAgICBpZiAocG9zICE9IG5vdEZvdW5kKQorICAgICAgICBtX29ic2VydmVycy5y
ZW1vdmUocG9zKTsKIH0KIAogTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgTWVkaWFTdHJl
YW1Qcml2YXRlOjp0cmFja3MoKSBjb25zdApAQCAtOTQsMjEgKzEwNywyOSBAQCBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZVZlY3RvciBNZWRpYVN0cmVhCiAKIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRl
Ojp1cGRhdGVBY3RpdmVTdGF0ZShOb3RpZnlDbGllbnRPcHRpb24gbm90aWZ5Q2xpZW50T3B0aW9u
KQogewotICAgIC8vIEEgc3RyZWFtIGlzIGFjdGl2ZSBpZiBpdCBoYXMgYXQgbGVhc3Qgb25lIHVu
LWVuZGVkIHRyYWNrLgogICAgIGJvb2wgbmV3QWN0aXZlU3RhdGUgPSBmYWxzZTsKKyAgICBtX2Fj
dGl2ZVZpZGVvVHJhY2sgPSBudWxscHRyOwogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNr
U2V0LnZhbHVlcygpKSB7CisKICAgICAgICAgaWYgKCF0cmFjay0+ZW5kZWQoKSkgewogICAgICAg
ICAgICAgbmV3QWN0aXZlU3RhdGUgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBpZiAodHJhY2stPnNvdXJjZSgpLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8pIHsKKyAgICAgICAgICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2sgPSB0cmFj
ay5nZXQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KIAorICAgIC8vIEEgc3RyZWFtIGlzIGFjdGl2ZSBpZiBpdCBoYXMgYXQgbGVhc3Qg
b25lIHVuLWVuZGVkIHRyYWNrLgogICAgIGlmIChuZXdBY3RpdmVTdGF0ZSA9PSBtX2lzQWN0aXZl
KQogICAgICAgICByZXR1cm47CisKICAgICBtX2lzQWN0aXZlID0gbmV3QWN0aXZlU3RhdGU7CiAK
LSAgICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9w
dGlvbjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOwor
ICAgIGlmIChub3RpZnlDbGllbnRPcHRpb24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkp
IHsKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAg
ICAgb2JzZXJ2ZXItPmFjdGl2ZVN0YXR1c0NoYW5nZWQoKTsKKyAgICB9CiB9CiAKIHZvaWQgTWVk
aWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+
JiYgdHJhY2ssIE5vdGlmeUNsaWVudE9wdGlvbiBub3RpZnlDbGllbnRPcHRpb24pCkBAIC0xMTks
OCArMTQwLDEwIEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFjayhSZWZQdHIKICAg
ICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5p
ZCgpLCB0cmFjayk7CiAKLSAgICBpZiAobV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09
IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkQWRkVHJh
Y2soKnRyYWNrLmdldCgpKTsKKyAgICBpZiAobm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNs
aWVudE9wdGlvbjo6Tm90aWZ5KSB7CisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29i
c2VydmVycykKKyAgICAgICAgICAgIG9ic2VydmVyLT5kaWRBZGRUcmFjaygqdHJhY2suZ2V0KCkp
OworICAgIH0KIAogICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKG5vdGlmeUNsaWVudE9wdGlvbik7CiB9
CkBAIC0xMzIsMTIgKzE1NSwxNDIgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZVRy
YWNrKE1lZAogCiAgICAgdHJhY2sucmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogCi0gICAgaWYgKG1f
Y2xpZW50ICYmIG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlm
eSkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICBpZiAobm90
aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7CisgICAgICAg
IGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9ic2VydmVy
LT5kaWRSZW1vdmVUcmFjayh0cmFjayk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUo
Tm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0
ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFj
a1NldC52YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQor
Cit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZv
ciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3Rv
cFByb2R1Y2luZ0RhdGEoKTsKK30KKworYm9vbCBNZWRpYVN0cmVhbVByaXZhdGU6OmlzUHJvZHVj
aW5nRGF0YSgpIGNvbnN0Cit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFs
dWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTWVk
aWFTdHJlYW1Qcml2YXRlOjpoYXNWaWRlbygpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1f
dHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYgdHJhY2stPmVuYWJsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTWVk
aWFTdHJlYW1Qcml2YXRlOjpoYXNBdWRpbygpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1f
dHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8gJiYgdHJhY2stPmVuYWJsZWQoKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0Zsb2F0U2l6
ZSBNZWRpYVN0cmVhbVByaXZhdGU6OmludHJpbnNpY1NpemUoKSBjb25zdAoreworICAgIEZsb2F0
U2l6ZSBzaXplOworCisgICAgaWYgKG1fYWN0aXZlVmlkZW9UcmFjaykgeworICAgICAgICBjb25z
dCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMgPSBtX2FjdGl2ZVZpZGVvVHJhY2st
PnNvdXJjZSgpLT5zdGF0ZXMoKTsKKyAgICAgICAgc2l6ZS5zZXRXaWR0aChzdGF0ZXMud2lkdGgo
KSk7CisgICAgICAgIHNpemUuc2V0SGVpZ2h0KHN0YXRlcy5oZWlnaHQoKSk7CisgICAgfQorCisg
ICAgcmV0dXJuIHNpemU7Cit9CisKK1BsYXRmb3JtTGF5ZXIqIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2FjdGl2ZVZpZGVvVHJhY2spCisg
ICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+
c291cmNlKCktPnBsYXRmb3JtTGF5ZXIoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6
OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29u
c3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGFjdGl2ZSgpICYmIG1fYWN0aXZlVmlkZW9U
cmFjaykKKyAgICAgICAgbV9hY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS0+cGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7CisgICAgZWxzZSB7CisgICAgICAgIEdyYXBo
aWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICAgICAgY29udGV4
dC50cmFuc2xhdGUocmVjdC54KCksIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAgICAg
IGNvbnRleHQuc2NhbGUoRmxvYXRTaXplKDEsIC0xKSk7CisgICAgICAgIEludFJlY3QgcGFpbnRS
ZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkp
OworICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHBhaW50UmVjdCwgQ29sb3I6OmJsYWNrLCBDb2xv
clNwYWNlRGV2aWNlUkdCKTsKKyAgICB9Cit9CisKK1JlZlB0cjxJbWFnZT4gTWVkaWFTdHJlYW1Q
cml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSgpCit7CisgICAgaWYgKCFhY3RpdmUoKSAmJiAhbV9h
Y3RpdmVWaWRlb1RyYWNrKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBt
X2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5jdXJyZW50RnJhbWVJbWFnZSgpOworfQorCit2
b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpCit7CisgICAg
Zm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+Y2hh
cmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJh
Y2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQoreworICAgIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsK
KyAgICB9KTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdl
ZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdl
ZCgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tFbmFibGVkQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3Ro
aXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworICAgIH0pOworfQorCit2
b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tQcm9kdWNpbmdEYXRhQ2hhbmdlZChNZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsK
KyAgICAgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1l
ZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGZ1bmN0aW9uKQoreworICAgIEFTU0VSVChmdW5jdGlvbik7CisgICAgYXV0byB3ZWFrVGhp
cyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcywgZnVu
Y3Rpb25dIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJ
KHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICog
Q29weXJpZ2h0IChDKSAyMDExLCAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJz
aWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMjggKzM2
LDMyIEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCisjaW5jbHVkZSAiRmxvYXRTaXpl
LmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
TWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVk
PE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudD4gewotcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlh
U3RyZWFtUHJpdmF0ZUNsaWVudCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGFjdGl2ZVN0YXR1
c0NoYW5nZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVUcmFjayhNZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKLX07CitjbGFzcyBNZWRpYVN0cmVhbTsKIAogY2xh
c3MgTWVkaWFTdHJlYW1Qcml2YXRlIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpP
YnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlPiB7CiBwdWJsaWM6
CisgICAgY2xhc3MgT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2Jz
ZXJ2ZXIoKSB7IH0KKworICAgICAgICB2aXJ0dWFsIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdl
ZCgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgYWN0aXZlU3RhdHVzQ2hhbmdlZCgpIHsgfQor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgeyB9CisgICAgfTsKKwogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1Q
cml2YXRlPiBjcmVhdGUoY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4m
IGF1ZGlvU291cmNlcywgY29uc3QgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4m
IHZpZGVvU291cmNlcyk7CiAgICAgc3RhdGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNy
ZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYpOwogCkBAIC02NCw4ICs2
OSw4IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgTm90aWZ5Q2xpZW50T3B0aW9uIHsgTm90
aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9Ci0gICAgdm9pZCBzZXRDbGllbnQoTWVkaWFT
dHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICB2
b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNl
cnZlciYpOwogCiAgICAgU3RyaW5nIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03
NywyMSArODIsNDAgQEAgcHVibGljOgogICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlPiYmLCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRp
b246Ok5vdGlmeSk7CiAgICAgdm9pZCByZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYsIE5vdGlmeUNsaWVudE9wdGlvbiA9IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAot
cHJvdGVjdGVkOgotICAgIGV4cGxpY2l0IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVBy
aXZhdGVDbGllbnQmKTsKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQg
c3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0Owor
CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJ
bWFnZT4gY3VycmVudEZyYW1lSW1hZ2UoKTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5D
b250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBo
YXNWaWRlbygpOworICAgIGJvb2wgaGFzQXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5z
aWNTaXplKCkgY29uc3Q7CisKKyAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAK
IHByaXZhdGU6CiAgICAgTWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRD
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0
cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0K
KyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGU7CisgICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAotICAgIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgU3RyaW5nIG1faWQ7Ci0g
ICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFsc2UgfTsKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0No
YW5nZWQoKTsKIAorICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2
b2lkKCk+KTsKKworICAgIFdlYWtQdHJGYWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFr
UHRyRmFjdG9yeTsKKyAgICBWZWN0b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBTdHJp
bmcgbV9pZDsKKyAgICBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSogbV9hY3RpdmVWaWRlb1RyYWNr
IHsgbnVsbHB0ciB9OwogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU+PiBtX3RyYWNrU2V0OworICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07CiB9
OwogCiB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPj4gTWVkaWFTdHJl
YW1Qcml2YXRlVmVjdG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAkocmV2
aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNiArMTc4LDE4
IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVN0YXQKICAgICAgICAgb2Jz
ZXJ2ZXItPnRyYWNrU3RhdGVzQ2hhbmdlZCgqdGhpcyk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGU6OnNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1
dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT50cmFja1Byb2R1
Y2luZ0RhdGFDaGFuZ2VkKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6c291cmNlRW5hYmxlZENoYW5nZWQoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnRyYWNrRW5hYmxlZENoYW5nZWQoKnRoaXMp
OworfQorCiBib29sIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpwcmV2ZW50U291cmNlRnJvbVN0
b3BwaW5nKCkKIHsKICAgICByZXR1cm4gIW1faXNFbmRlZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NDgsNiArNDgsOCBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tN
dXRlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmFibGVk
Q2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKICAgICB9OwogICAgIAogICAg
IHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+IGNyZWF0ZShSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZT4mJik7CkBAIC02Miw2ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgeyBtX3NvdXJjZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7
IH0KICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgeyBtX3NvdXJjZS0+c3RvcFByb2R1Y2lu
Z0RhdGEoKTsgfQorICAgIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgeyByZXR1cm4gbV9zb3VyY2Ut
PmlzUHJvZHVjaW5nRGF0YSgpOyB9CiAKICAgICBib29sIG11dGVkKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRNdXRlZChib29sIG11dGVkKSBjb25zdCB7IG1fc291cmNlLT5zZXRNdXRlZChtdXRlZCk7
IH0KQEAgLTk4LDcgKzEwMSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBvdmVycmlkZSBm
aW5hbDsKICAgICB2b2lkIHNvdXJjZVN0YXRlc0NoYW5nZWQoKSBvdmVycmlkZSBmaW5hbDsKKyAg
ICB2b2lkIHNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAg
Ym9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9p
ZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpIG92ZXJyaWRlIGZpbmFsOwogCiAgICAgVmVjdG9yPE9i
c2VydmVyKj4gbV9vYnNlcnZlcnM7CiAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1f
c291cmNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAJKHJldmlzaW9uIDE5MTYzNykKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsNiArMTAxLDIyIEBAIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6c3RhdGVzRGlkQ2hhbmcKICAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZVN0YXRlc0No
YW5nZWQoKTsKIH0KIAordm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjppc1Byb2R1Y2luZ0RhdGFE
aWRDaGFuZ2UoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAg
ICAgICAgb2JzZXJ2ZXItPnNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKCk7Cit9CisKK3ZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYg
KG1fZW5hYmxlZCA9PSBlbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VuYWJsZWQg
PSBlbmFibGVkOworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAg
ICAgb2JzZXJ2ZXItPnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCk7Cit9CisKIGJvb2wgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6cmVhZG9ubHkoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlYWRvbmx5OwpA
QCAtMTE5LDYgKzEzNSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcChPYnNlcnZl
cioKICAgICB9CiAKICAgICBzdG9wUHJvZHVjaW5nRGF0YSgpOworICAgIHJlc2V0KCk7CiB9CiAK
IHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdP
YnNlcnZlcikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsOSBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAKICNpbmNsdWRlICJBdWRpb1NvdXJjZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIK
ICNpbmNsdWRlICJNZWRpYUNvbnN0cmFpbnRzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5o
IgogI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ1LDYgKzQ3
LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBH
cmFwaGljc0NvbnRleHQ7CiBjbGFzcyBNZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJl
YW1Qcml2YXRlOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczsKQEAgLTU5LDYgKzYz
LDggQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlU3RvcHBlZCgpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZU11dGVkQ2hhbmdlZCgpID0gMDsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNvdXJjZVN0YXRlc0NoYW5nZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBzb3VyY2VQcm9kdWNpbmdEYXRhQ2hhbmdlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2
b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkgPSAwOwogCiAgICAgICAgIC8vIE9ic2VydmVyIHN0
YXRlIHF1ZXJpZXMuCiAgICAgICAgIHZpcnR1YWwgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3Bw
aW5nKCkgPSAwOwpAQCAtNjYsOCArNzIsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5SZWFs
dGltZU1lZGlhU291cmNlKCkgeyB9CiAKLSAgICBib29sIGlzQXVkaW9TdHJlYW1Tb3VyY2UoKSBj
b25zdCB7IHJldHVybiB0eXBlKCkgPT0gQXVkaW87IH0KLQogICAgIGNvbnN0IFN0cmluZyYgaWQo
KSBjb25zdCB7IHJldHVybiBtX2lkOyB9CiAKICAgICBjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJ
RCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVyc2lzdGVudElEOyB9CkBAIC04Miw3ICs4Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGZpdG5lc3NTY29yZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZml0bmVzc1Njb3JlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldEZpdG5lc3NTY29yZShjb25z
dCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUpIHsgbV9maXRuZXNzU2NvcmUgPSBmaXRuZXNzU2NvcmU7
IH0KIAotICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IGNhcGFiaWxpdGllcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSA9IDA7CiAgICAgdmlydHVhbCBj
b25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSA9IDA7CiAgICAgdm9pZCBz
dGF0ZXNEaWRDaGFuZ2VkKCk7CiAgICAgCkBAIC05NywxOSArMTAxLDI4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgcmVtb3RlKCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVtb3RlKGJvb2wgcmVtb3RlKSB7IG1fcmVtb3RlID0gcmVtb3RlOyB9
CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RW5hYmxlZChib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wg
ZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxlZDsgfQorCiAgICAgdm9pZCBhZGRPYnNl
cnZlcihPYnNlcnZlciopOwogICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9kdWNpbmdE
YXRhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaXNQcm9kdWNp
bmdEYXRhRGlkQ2hhbmdlKCk7CiAKICAgICB2b2lkIHN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNl
cnZlciA9IG51bGxwdHIpOwogICAgIHZvaWQgcmVxdWVzdFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdP
YnNlcnZlciA9IG51bGxwdHIpOwogCi0gICAgdm9pZCByZXNldCgpOworICAgIHZpcnR1YWwgdm9p
ZCByZXNldCgpOwogCiAgICAgdmlydHVhbCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJj
ZVByb3ZpZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIAorCisgICAgdmlydHVhbCBQbGF0
Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAg
IHZpcnR1YWwgUmVmUHRyPEltYWdlPiBjdXJyZW50RnJhbWVJbWFnZSgpIHsgcmV0dXJuIG51bGxw
dHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgeyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFs
dGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5cGUsIGNvbnN0IFN0cmluZyYgbmFt
ZSk7CiAKQEAgLTEyNCw2ICsxMzcsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9tdXRlZDsKICAg
ICBib29sIG1fcmVhZG9ubHk7CiAgICAgYm9vbCBtX3JlbW90ZTsKKyAgICBib29sIG1fZW5hYmxl
ZCB7IHRydWUgfTsKICAgICAKICAgICB1bnNpZ25lZCBtX2ZpdG5lc3NTY29yZTsKIH07CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVT
b3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU4LDEwICs1OCwxMiBAQCBwcml2YXRlOgogICAgIEFWQXVkaW9D
YXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogICAgIHZpcnR1YWwgfkFWQXVkaW9DYXB0dXJlU291
cmNlKCk7CiAgICAgCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+
IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFi
aWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJikgb3ZlcnJpZGU7CisKICAg
ICB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihB
VkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiop
IG92ZXJyaWRlOwogICAgIAogICAgIHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRl
OworICAgIHZvaWQgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIHZvaWQg
dXBkYXRlU3RhdGVzKCkgb3ZlcnJpZGU7CiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9T
b3VyY2VQcm92aWRlcigpIG92ZXJyaWRlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291
cmNlLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTQw
LDE0ICs0MCwxNiBAQAogCiAjaW1wb3J0ICJDb3JlTWVkaWFTb2Z0TGluay5oIgogCit0eXBlZGVm
IEFWQ2FwdHVyZUF1ZGlvQ2hhbm5lbCBBVkNhcHR1cmVBdWRpb0NoYW5uZWxUeXBlOwordHlwZWRl
ZiBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0VHlwZTsK
IHR5cGVkZWYgQVZDYXB0dXJlQ29ubmVjdGlvbiBBVkNhcHR1cmVDb25uZWN0aW9uVHlwZTsKIHR5
cGVkZWYgQVZDYXB0dXJlRGV2aWNlIEFWQ2FwdHVyZURldmljZVR5cGU7CiB0eXBlZGVmIEFWQ2Fw
dHVyZURldmljZUlucHV0IEFWQ2FwdHVyZURldmljZUlucHV0VHlwZTsKIHR5cGVkZWYgQVZDYXB0
dXJlT3V0cHV0IEFWQ2FwdHVyZU91dHB1dFR5cGU7Ci10eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0
YU91dHB1dCBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXRUeXBlOwogCiBTT0ZUX0xJTktfRlJBTUVX
T1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAorU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlv
biwgQVZDYXB0dXJlQXVkaW9DaGFubmVsKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwg
QVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0KQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwg
QVZDYXB0dXJlQ29ubmVjdGlvbikKIFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2Fw
dHVyZURldmljZSkKQEAgLTc3LDEwICs3OSwxMCBAQCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6fkFW
QXVkaW9DYXB0dXJlU291CiB7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK3ZvaWQg
QVZBdWRpb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyZjYXBhYmlsaXRpZXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAvLyBGSVhNRTogZmluaXNoIHRoaXMgaW1wbGVt
ZW50YXRpb24gLSBodHRwczovL3dlYmtpdC5vcmcvYi8xMjI0MzAKKyAgICBjYXBhYmlsaXRpZXMu
YWRkU291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsKIH0K
IAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKCkKQEAgLTkwLDExICs5
Miw4IEBAIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZVN0YXRlcygKIAogdm9pZCBB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6YWRkT2JzZXJ2ZXIoQVZBdWRpb0NhcHR1cmVTb3VyY2U6Ok9i
c2VydmVyKiBvYnNlcnZlcikKIHsKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2xv
Y2spOwotICAgICAgICBtX29ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOwotICAgIH0KLQorICAg
IExvY2tIb2xkZXIgbG9jayhtX2xvY2spOworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZl
cik7CiAgICAgaWYgKG1faW5wdXREZXNjcmlwdGlvbi0+bVNhbXBsZVJhdGUpCiAgICAgICAgIG9i
c2VydmVyLT5wcmVwYXJlKG1faW5wdXREZXNjcmlwdGlvbi5nZXQoKSk7CiB9CkBAIC0xMTAsMTYg
KzEwOSw0MCBAQCB2b2lkIEFWQXVkaW9DYXB0dXJlU291cmNlOjpyZW1vdmVPYnNlcnZlCiB2b2lk
IEFWQXVkaW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBSZXRh
aW5QdHI8QVZDYXB0dXJlRGV2aWNlSW5wdXRUeXBlPiBhdWRpb0luID0gYWRvcHROUyhbYWxsb2NB
VkNhcHR1cmVEZXZpY2VJbnB1dEluc3RhbmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJy
b3I6bmlsXSk7Ci0gICAgQVNTRVJUKFtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQo
KV0pOwotICAgIGlmIChbc2Vzc2lvbigpIGNhbkFkZElucHV0OmF1ZGlvSW4uZ2V0KCldKQotICAg
ICAgICBbc2Vzc2lvbigpIGFkZElucHV0OmF1ZGlvSW4uZ2V0KCldOwotICAgIAorCisgICAgaWYg
KCFbc2Vzc2lvbigpIGNhbkFkZElucHV0OmF1ZGlvSW4uZ2V0KCldKSB7CisgICAgICAgIExPRyhN
ZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCVwKSwgdW5h
YmxlIHRvIGFkZCBhdWRpbyBpbnB1dCBkZXZpY2UiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBbc2Vzc2lvbigpIGFkZElucHV0OmF1ZGlvSW4uZ2V0KCldOworCiAgICAgUmV0
YWluUHRyPEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU+IGF1ZGlvT3V0cHV0ID0gYWRvcHRO
UyhbYWxsb2NBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXRJbnN0YW5jZSgpIGluaXRdKTsKICAgICBz
ZXRBdWRpb1NhbXBsZUJ1ZmZlckRlbGVnYXRlKGF1ZGlvT3V0cHV0LmdldCgpKTsKLSAgICBBU1NF
UlQoW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCldKTsKLSAgICBpZiAo
W3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6YXVkaW9PdXRwdXQuZ2V0KCldKQotICAgICAgICBbc2Vz
c2lvbigpIGFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV07Ci0gICAgbV9hdWRpb0Nvbm5lY3Rp
b24gPSBhZG9wdE5TKFthdWRpb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpB
Vk1lZGlhVHlwZUF1ZGlvXSk7CisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OmF1
ZGlvT3V0cHV0LmdldCgpXSkgeworICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBhZGQgYXVkaW8gc2FtcGxl
IGJ1ZmZlciBvdXRwdXQgZGVsZWdhdGUiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBbc2Vzc2lvbigpIGFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV07CisgICAgbV9hdWRp
b0Nvbm5lY3Rpb24gPSBbYXVkaW9PdXRwdXQuZ2V0KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6
QVZNZWRpYVR5cGVBdWRpb107Cit9CisKK3ZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNodXRk
b3duQ2FwdHVyZVNlc3Npb24oKQoreworICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
bG9jayk7CisKKyAgICAgICAgbV9hdWRpb0Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgICAgICBt
X2lucHV0RGVzY3JpcHRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvU3RyZWFtQmFzaWNEZXNj
cmlwdGlvbj4oKTsKKworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMp
CisgICAgICAgICAgICBvYnNlcnZlci0+dW5wcmVwYXJlKCk7CisgICAgICAgIG1fb2JzZXJ2ZXJz
LnNocmluaygwKTsKKyAgICB9CisKKyAgICAvLyBEb24ndCBob2xkIHRoZSBsb2NrIHdoZW4gZGVz
dHJveWluZyB0aGUgYXVkaW8gcHJvdmlkZXIsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gdGhpcyBv
YmplY3QKKyAgICAvLyB0byByZW1vdmUgaXRzZWxmIGFzIGFuIG9ic2VydmVyLgorICAgIG1fYXVk
aW9Tb3VyY2VQcm92aWRlciA9IG51bGxwdHI7CiB9CiAKIHN0YXRpYyBib29sIG9wZXJhdG9yPT0o
Y29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBhLCBjb25zdCBBdWRpb1N0cmVhbUJh
c2ljRGVzY3JpcHRpb24mIGIpCkBAIC0xNDEsMjcgKzE2NCwzMCBAQCBzdGF0aWMgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IEF1ZGlvU3RyZWFtCiAKIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNh
cHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVP
dXRwdXRUeXBlKiwgQ01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyLCBBVkNhcHR1cmVDb25u
ZWN0aW9uVHlwZSopCiB7Ci0gICAgVmVjdG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzOwotICAgIHsK
LSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7Ci0gICAgICAgIGlmIChtX29ic2VydmVy
cy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29weVRvVmVjdG9y
KG1fb2JzZXJ2ZXJzLCBvYnNlcnZlcnMpOwotICAgIH0KKyAgICBpZiAoIWVuYWJsZWQoKSkKKyAg
ICAgICAgcmV0dXJuOwogCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlw
dGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyKTsK
ICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBzdGQ6
OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9sb2NrLCBzdGQ6OnRyeV90b19sb2NrKTsKKyAgICBp
ZiAoIWxvY2sub3duc19sb2NrKCkpIHsKKyAgICAgICAgLy8gRmFpbGVkIHRvIGFjcXVpcmUgdGhl
IGxvY2ssIGp1c3QgcmV0dXJuIGluc3RlYWQgb2YgYmxvY2tpbmcuCisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAobV9vYnNlcnZlcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKICAgICBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24qIHN0cmVhbURlc2NyaXB0
aW9uID0gQ01BdWRpb0Zvcm1hdERlc2NyaXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihm
b3JtYXREZXNjcmlwdGlvbik7CiAgICAgaWYgKCptX2lucHV0RGVzY3JpcHRpb24gIT0gKnN0cmVh
bURlc2NyaXB0aW9uKSB7CiAgICAgICAgIG1faW5wdXREZXNjcmlwdGlvbiA9IHN0ZDo6bWFrZV91
bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPigqc3RyZWFtRGVzY3JpcHRpb24pOwot
ICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogb2JzZXJ2ZXJzKQorICAgICAgICBmb3IgKGF1
dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCiAgICAgICAgICAgICBvYnNlcnZlci0+cHJlcGFy
ZShtX2lucHV0RGVzY3JpcHRpb24uZ2V0KCkpOwogICAgIH0KIAotICAgIGZvciAoYXV0byYgb2Jz
ZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJz
KQogICAgICAgICBvYnNlcnZlci0+cHJvY2Vzcyhmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlQnVm
ZmVyKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0JKHJldmlz
aW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwMywxMCArMTAzLDcgQEAg
cHVibGljOgogICAgIFN0cmluZyBtX2dyb3VwSUQ7CiAKICAgICBTdHJpbmcgbV9hdWRpb1NvdXJj
ZUlkOwotICAgIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gbV9hdWRpb0FWTWVkaWFDYXB0
dXJlU291cmNlOwotCiAgICAgU3RyaW5nIG1fdmlkZW9Tb3VyY2VJZDsKLSAgICBSZWZQdHI8QVZN
ZWRpYUNhcHR1cmVTb3VyY2U+IG1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKIAogICAgIGJv
b2wgbV9lbmFibGVkOwogfTsKQEAgLTE0Niw3ICsxNDMsMTUgQEAgc3RhdGljIHZvaWQgcmVmcmVz
aENhcHR1cmVEZXZpY2VMaXN0KCkKICAgICAKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZVR5cGUg
KmRldmljZSBpbiBbQVZDYXB0dXJlRGV2aWNlIGRldmljZXNdKSB7CiAgICAgICAgIENhcHR1cmVE
ZXZpY2Ugc291cmNlOwotICAgICAgICAKKworICAgICAgICBpZiAoIVtkZXZpY2UgaXNDb25uZWN0
ZWRdKQorICAgICAgICAgICAgY29udGludWU7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgICAg
ICBpZiAoW2RldmljZSBpc1N1c3BlbmRlZF0gfHwgW2RldmljZSBpc0luVXNlQnlBbm90aGVyQXBw
bGljYXRpb25dKQorICAgICAgICAgICAgY29udGludWU7CisjZW5kaWYKKwogICAgICAgICBpZiAo
IWNhcHR1cmVEZXZpY2VGcm9tRGV2aWNlSUQoZGV2aWNlLnVuaXF1ZUlELCBzb3VyY2UpKSB7CiAg
ICAgICAgICAgICAvLyBBbiBBVkNhcHR1cmVEZXZpY2UgaGFzIGEgdW5pcXVlIElELCBidXQgd2Ug
Y2FuJ3QgdXNlIGl0IGZvciB0aGUgc291cmNlIElEIGJlY2F1c2U6CiAgICAgICAgICAgICAvLyAx
LiBpZiBpdCBwcm92aWRlcyBib3RoIGF1ZGlvIGFuZCB2aWRlbyB3ZSB3aWxsIG5lZWQgdG8gY3Jl
YXRlIHR3byBzb3VyY2VzIGZvciBpdApAQCAtMzg4LDI0ICszOTMsMjAgQEAgVmVjdG9yPFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPj4gQVZDYQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2Uu
bV9lbmFibGVkKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgLy8gRklYTUU6IGNv
bnNpZGVyIHRoZSBjb25zdHJhaW50cyB3aGVuIGNob29zaW5nIGFtb25nIG11bHRpcGxlIGRldmlj
ZXMuIEZvciBub3cganVzdCBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJsZQotICAgICAgICAvLyBk
ZXZpY2Ugb2YgdGhlIGFwcHJvcHJpYXRlIHR5cGUuCiAgICAgICAgIGlmICh0eXBlID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvICYmICFjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRp
YUNhcHR1cmVTb3VyY2UpIHsKLSAgICAgICAgICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpk
ZXZpY2UgPSBbQVZDYXB0dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNl
Lm1fY2FwdHVyZURldmljZUlEXTsKLSAgICAgICAgICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAg
ICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9
IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVk
aW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmVz
dFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNv
dXJjZSk7CisgICAgICAgICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FwdHVyZVNv
dXJjZSA9IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQoY2FwdHVyZURldmlj
ZS5tX2NhcHR1cmVEZXZpY2VJRCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFp
bnRzLmdldCgpKTsKKyAgICAgICAgICAgIGlmICghY2FwdHVyZVNvdXJjZSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0
dXJlU291cmNlLmxlYWtSZWYoKSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodHlwZSA9PSBS
ZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiAhY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNl
SWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV92aWRlb0FW
TWVkaWFDYXB0dXJlU291cmNlKSB7Ci0gICAgICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlw
ZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURl
dmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGRldmljZSk7
Ci0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5t
X3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1
cmVTb3VyY2UpOworICAgICAgICAgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1
cmVTb3VyY2UgPSBBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzb3VyY2VXaXRoVUlEKGNhcHR1cmVE
ZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBjb25z
dHJhaW50cy5nZXQoKSk7CisgICAgICAgICAgICBpZiAoIWNhcHR1cmVTb3VyY2UpCisgICAgICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQo
Y2FwdHVyZVNvdXJjZS5sZWFrUmVmKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIHN0ZDo6c29y
dChiZXN0U291cmNlc0xpc3QuYmVnaW4oKSwgYmVzdFNvdXJjZXNMaXN0LmVuZCgpLCBzb3J0QmFz
ZWRPZmZGaXRuZXNzU2NvcmUpOwpAQCAtNDE2LDQxICs0MTcsNDEgQEAgUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IEFWQ2FwdHVyZURldgogewogICAgIGlmICghaXNBdmFpbGFibGUoKSkKICAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgCisKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmlj
ZXMgPSBjYXB0dXJlRGV2aWNlTGlzdCgpOwotICAgIGZvciAoYXV0byBjYXB0dXJlRGV2aWNlIDog
ZGV2aWNlcykgewotICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9lbmFibGVkKQorICAgIGZv
ciAoYXV0byYgY2FwdHVyZURldmljZSA6IGRldmljZXMpIHsKKyAgICAgICAgaWYgKGNhcHR1cmVE
ZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQgIT0gZGV2aWNlVUlEIHx8ICFjYXB0dXJlRGV2aWNlLm1f
ZW5hYmxlZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChjYXB0dXJlRGV2
aWNlLm1fY2FwdHVyZURldmljZUlEICE9IGRldmljZVVJRCkKKyAgICAgICAgaWYgKHR5cGUgPT0g
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNl
SWQuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlmICh0eXBlID09
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvICYmIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJj
ZUlkLmlzRW1wdHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCisgICAgICAgIEFWQ2FwdHVy
ZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlE
OmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSURdOworICAgICAgICBBU1NFUlQoZGV2aWNl
KTsKKworICAgICAgICBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNhcHR1cmVTb3VyY2U7
CisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQorICAgICAg
ICAgICAgY2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNl
LCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBjYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7
CisKICAgICAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgICAgICBTdHJpbmcgaW52YWxp
ZENvbnN0cmFpbnRzOwogICAgICAgICAgICAgQVZDYXB0dXJlU2Vzc2lvblR5cGUgKnNlc3Npb24g
PSBuaWw7CiAKLSAgICAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvICYmIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAgICAg
ICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlLT5zZXNz
aW9uKCk7Ci0gICAgICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvICYmIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAg
ICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlLT5z
ZXNzaW9uKCk7CisgICAgICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlbykKKyAgICAgICAgICAgICAgICBzZXNzaW9uID0gY2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigp
OworICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
bykKKyAgICAgICAgICAgICAgICBzZXNzaW9uID0gY2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwog
ICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29u
c3RyYWludHNGb3JNZWRpYVR5cGUoc2Vzc2lvbiwgdHlwZSwgY29uc3RyYWludHMsIGludmFsaWRD
b25zdHJhaW50cyk7CiAKICAgICAgICAgICAgIGlmICghaW52YWxpZENvbnN0cmFpbnRzLmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZp
Y2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0gICAgICAg
IEFTU0VSVChkZXZpY2UpOwotICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpbyAmJiAhY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0g
ICAgICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNl
KQotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291
cmNlID0gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2Uu
bV9hdWRpb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7Ci0gICAgICAgICAgICByZXR1cm4gY2FwdHVy
ZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2U7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gJiYgIWNhcHR1cmVEZXZpY2Uu
bV92aWRlb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2
aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJl
RGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNl
OjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWlu
dHMpOwotICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0
dXJlU291cmNlOwotICAgICAgICB9CisgICAgICAgIHJldHVybiBjYXB0dXJlU291cmNlLmxlYWtS
ZWYoKTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRp
YUNhcHR1cmVTb3VyY2UuaAkocmV2aXNpb24gMTkxNjM3KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTUyLDQ1ICs1Miw1MiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FwdHVy
ZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1
dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNhcHR1cmVDb25uZWN0aW9uKikgPSAwOwogCi0gICAg
dmlydHVhbCB2b2lkIGNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgY2FwdHVyZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UoYm9vbCk7CiAgICAgCiAgICAg
QVZDYXB0dXJlU2Vzc2lvbiAqc2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQo
KTsgfQogCisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3Zl
cnJpZGU7CisKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZv
aWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0
YSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNSdW5uaW5nOyB9CisKKyAgICBXZWFrUHRy
PEFWTWVkaWFDYXB0dXJlU291cmNlPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRy
RmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIAogcHJvdGVjdGVkOgogICAgIEFWTWVkaWFDYXB0
dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlR5cGUsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogCi0gICAg
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJpZGU7CiAgICAg
QXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCB2b2lkIHNldHVwQ2FwdHVyZVNlc3Npb24oKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNodXRkb3duQ2FwdHVyZVNlc3Npb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZVN0YXRlcygpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJikgPSAwOwogCiAgICAgQVZDYXB0dXJlRGV2
aWNlICpkZXZpY2UoKSBjb25zdCB7IHJldHVybiBtX2RldmljZS5nZXQoKTsgfQorCiAgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZVN0YXRlcyogY3VycmVudFN0YXRlcygpIHsgcmV0dXJuICZtX2N1cnJl
bnRTdGF0ZXM7IH0KICAgICBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cygpIHsgcmV0dXJu
IG1fY29uc3RyYWludHMuZ2V0KCk7IH0KIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBvdmVycmlkZTsKKwogICAgIHZvaWQgc2V0Vmlk
ZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQqKTsKICAgICB2
b2lkIHNldEF1ZGlvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0
Kik7CiAKICAgICB2b2lkIHNjaGVkdWxlRGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAo
KT4pOwogCi0gICAgdm9pZCBzdGF0ZXNEaWRDaGFuZ2VkKCkgeyB9Ci0gICAgCiBwcml2YXRlOgog
ICAgIHZvaWQgc2V0dXBTZXNzaW9uKCk7Ci0gICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVyZVNvdXJj
ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0
cigpOyB9CisgICAgdm9pZCByZXNldCgpIG92ZXJyaWRlOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8
QVZNZWRpYUNhcHR1cmVTb3VyY2U+IG1fd2Vha1B0ckZhY3Rvcnk7CiAgICAgUmV0YWluUHRyPFdl
YkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICBS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKKyAgICBSZWZQdHI8UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZVN0YXRlcyBtX2N1cnJlbnRTdGF0ZXM7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVy
ZVNlc3Npb24+IG1fc2Vzc2lvbjsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlPiBtX2Rl
dmljZTsKLSAgICAKLSAgICBib29sIG1faXNSdW5uaW5nOworICAgIGJvb2wgbV9pc1J1bm5pbmcg
eyBmYWxzZX07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVk
aWFDYXB0dXJlU291cmNlLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTk0LDEyICs5NCwxNCBAQCBAaW50ZXJmYWNlIFdlYkNvcmVBVk1lZGlhQ2FwdHVy
ZVNvdXJjZU9iCiAKIC0oaWQpaW5pdFdpdGhDYWxsYmFjazooQVZNZWRpYUNhcHR1cmVTb3VyY2Uq
KWNhbGxiYWNrOwogLSh2b2lkKWRpc2Nvbm5lY3Q7Ci0tKHZvaWQpY2FwdHVyZVNlc3Npb25TdG9w
cGVkUnVubmluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247CiAtKHZvaWQpY2FwdHVy
ZU91dHB1dDooQVZDYXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2Ft
cGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246
KEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlICopY29ubmVjdGlvbjsKKy0odm9pZClvYnNlcnZlVmFs
dWVGb3JLZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlv
bmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkKiljb250ZXh0OwogQGVuZAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3N0YXRpYyBOU0FycmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpOworCiBz
dGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKCkKIHsK
ICAgICBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBnbG9iYWxRdWV1ZTsKQEAgLTEyNyw3ICsxMjks
NiBAQCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyCiAgICAgLCBtX29i
amNPYnNlcnZlcihhZG9wdE5TKFtbV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIg
YWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6dGhpc10pKQogICAgICwgbV9jb25zdHJhaW50cyhjb25z
dHJhaW50cykKICAgICAsIG1fZGV2aWNlKGRldmljZSkKLSAgICAsIG1faXNSdW5uaW5nKGZhbHNl
KQogewogICAgIHNldE5hbWUoZGV2aWNlLmxvY2FsaXplZE5hbWUpOwogICAgIHNldFBlcnNpc3Rl
bnRJRChkZXZpY2UudW5pcXVlSUQpOwpAQCAtMTM2LDkgKzEzNywxMyBAQCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyCiAKIEFWTWVkaWFDYXB0dXJlU291cmNlOjp+QVZN
ZWRpYUNhcHR1cmVTb3VyY2UoKQogewotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2ZXIuZ2V0KCldOwogICAgIFttX29i
amNPYnNlcnZlciBkaXNjb25uZWN0XTsKLSAgICBbbV9zZXNzaW9uLmdldCgpIHN0b3BSdW5uaW5n
XTsKKworICAgIGlmIChtX3Nlc3Npb24pIHsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqa2V5TmFt
ZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICAgICAgW21fc2Vzc2lvbi5nZXQo
KSByZW1vdmVPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWVd
OworICAgICAgICBbbV9zZXNzaW9uLmdldCgpIHN0b3BSdW5uaW5nXTsKKyAgICB9CiB9CiAKIHZv
aWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCkBAIC0xNTAsOCAr
MTU1LDYgQEAgdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbgogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgW21fc2Vzc2lvbi5nZXQoKSBzdGFydFJ1bm5pbmddOwotCi0g
ICAgbV9pc1J1bm5pbmcgPSB0cnVlOwogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpz
dG9wUHJvZHVjaW5nRGF0YSgpCkBAIC0xNjAsOCArMTYzLDYgQEAgdm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6c3RvcFByb2R1Y2luZwogICAgICAgICByZXR1cm47CiAKICAgICBbbV9zZXNzaW9u
LmdldCgpIHN0b3BSdW5uaW5nXTsKLQotICAgIG1faXNSdW5uaW5nID0gdHJ1ZTsKIH0KIAogY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXRl
cygpCkBAIC0xNzAsMjEgKzE3MSw0NyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVz
JiBBVk1lZGlhCiAgICAgcmV0dXJuIG1fY3VycmVudFN0YXRlczsKIH0KIAorUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmls
aXRpZXMoKQoreworICAgIGlmICghbV9jYXBhYmlsaXRpZXMpIHsKKyAgICAgICAgbV9jYXBhYmls
aXRpZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUoKTsKKyAgICAg
ICAgbV9jYXBhYmlsaXRpZXMtPnNldFNvdXJjZUlkKG1fY3VycmVudFN0YXRlcy5zb3VyY2VJZCgp
KTsKKyAgICAgICAgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcygqbV9jYXBhYmlsaXRpZXMuZ2V0KCkp
OworICAgIH0KKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7Cit9CisKIHZvaWQgQVZNZWRpYUNh
cHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbigpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9zZXNzaW9uID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVTZXNz
aW9uSW5zdGFuY2UoKSBpbml0XSk7Ci0gICAgCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBzZWxlY3RvcjpA
c2VsZWN0b3IoY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZzopIG5hbWU6QVZDYXB0dXJlU2Vz
c2lvbkRpZFN0b3BSdW5uaW5nTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAgIAorICAgIGZv
ciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRpZXMoKSkKKyAgICAgICAg
W21fc2Vzc2lvbi5nZXQoKSBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQ
YXRoOmtleU5hbWUgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6
KHZvaWQgKiluaWxdOworCiAgICAgc2V0dXBDYXB0dXJlU2Vzc2lvbigpOwogfQotIAotdm9pZCBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpCisKK3Zv
aWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnJlc2V0KCkKK3sKKyAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpyZXNldCgpOworICAgIG1faXNSdW5uaW5nID0gZmFsc2U7CisgICAgZm9yIChOU1N0cmlu
ZyAqa2V5TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGllcygpKQorICAgICAgICBbbV9zZXNzaW9u
LmdldCgpIHJlbW92ZU9ic2VydmVyOm1fb2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6a2V5
TmFtZV07CisgICAgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpOworICAgIG1fc2Vzc2lvbiA9IG51
bGxwdHI7Cit9CisKK3ZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uSXNS
dW5uaW5nRGlkQ2hhbmdlKGJvb2wgc3RhdGUpCiB7Ci0gICAgc3RvcFByb2R1Y2luZ0RhdGEoKTsK
KyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpcywgc3RhdGVdIHsKKyAgICAgICAgaWYgKHN0
YXRlID09IG1faXNSdW5uaW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1faXNS
dW5uaW5nID0gc3RhdGU7CisgICAgICAgIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSgpOworICAg
IH0pOwogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXRWaWRlb1NhbXBsZUJ1ZmZl
ckRlbGVnYXRlKEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dFR5cGUqIHZpZGVvT3V0cHV0KQpAQCAt
MjE2LDYgKzI0MywxMiBAQCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBBVk1lZGlhQ2FwdHVyZVNvdXJj
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK05TQXJyYXkqIHNlc3Npb25LVk9Qcm9wZXJ0aWVz
KCkKK3sKKyAgICBzdGF0aWMgTlNBcnJheSoga2V5cyA9IFtAW0AicnVubmluZyJdIHJldGFpbl07
CisgICAgcmV0dXJuIGtleXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogQGltcGxl
bWVudGF0aW9uIFdlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyCkBAIC0yMjUsNiAr
MjU4LDcgQEAgLSAoaWQpaW5pdFdpdGhDYWxsYmFjazooQVZNZWRpYUNhcHR1cmVTbwogICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwor
CiAgICAgbV9jYWxsYmFjayA9IGNhbGxiYWNrOwogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjM1
LDI1ICsyNjksMzcgQEAgLSAodm9pZClkaXNjb25uZWN0CiAgICAgbV9jYWxsYmFjayA9IDA7CiB9
CiAKLS0gKHZvaWQpY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZzooTlNOb3RpZmljYXRpb24g
Kilub3RpZmljYXRpb24KKy0gKHZvaWQpY2FwdHVyZU91dHB1dDooQVZDYXB0dXJlT3V0cHV0VHlw
ZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJl
ZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlICop
Y29ubmVjdGlvbgogewotICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwotCiAgICAgaWYg
KCFtX2NhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBpZiAobV9jYWxsYmFjaykKLSAgICAg
ICAgICAgIG1fY2FsbGJhY2stPmNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKTsKLSAgICB9
KTsKKyAgICBtX2NhbGxiYWNrLT5jYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJv
bUNvbm5lY3Rpb24oY2FwdHVyZU91dHB1dCwgc2FtcGxlQnVmZmVyLCBjb25uZWN0aW9uKTsKIH0K
IAotLSAodm9pZCljYXB0dXJlT3V0cHV0OihBVkNhcHR1cmVPdXRwdXRUeXBlICopY2FwdHVyZU91
dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZmZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZl
ciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0dXJlQ29ubmVjdGlvblR5cGUgKiljb25uZWN0aW9uCist
KHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3Qg
Y2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCopY29udGV4dAogewor
ICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKwog
ICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jYWxsYmFjay0+
Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKGNhcHR1cmVP
dXRwdXQsIHNhbXBsZUJ1ZmZlciwgY29ubmVjdGlvbik7CisgICAgaWQgbmV3VmFsdWUgPSBbY2hh
bmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOZXdLZXldOworCisjaWYgIUxPR19ESVNB
QkxFRAorICAgIGJvb2wgd2lsbENoYW5nZSA9IFtbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFs
dWVDaGFuZ2VOb3RpZmljYXRpb25Jc1ByaW9yS2V5XSBib29sVmFsdWVdOworCisgICAgaWYgKHdp
bGxDaGFuZ2UpCisgICAgICAgIExPRyhNZWRpYSwgIldlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJj
ZU9ic2VydmVyOjpvYnNlcnZlVmFsdWVGb3JLZXlQYXRoKCVwKSAtIHdpbGwgY2hhbmdlLCBrZXlQ
YXRoID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5nXSk7CisgICAgZWxzZSB7CisgICAg
ICAgIFJldGFpblB0cjxOU1N0cmluZz4gdmFsdWVTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcg
YWxsb2NdIGluaXRXaXRoRm9ybWF0OkAiJUAiLCBuZXdWYWx1ZV0pOworICAgICAgICBMT0coTWVk
aWEsICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlcjo6b2JzZXJ2ZVZhbHVlRm9y
S2V5UGF0aCglcCkgLSBkaWQgY2hhbmdlLCBrZXlQYXRoID0gJXMsIHZhbHVlID0gJXMiLCBzZWxm
LCBba2V5UGF0aCBVVEY4U3RyaW5nXSwgW3ZhbHVlU3RyaW5nLmdldCgpIFVURjhTdHJpbmddKTsK
KyAgICB9CisjZW5kaWYKKworICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJydW5u
aW5nIl0pCisgICAgICAgIG1fY2FsbGJhY2stPmNhcHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hh
bmdlKFtuZXdWYWx1ZSBib29sVmFsdWVdKTsKIH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLmgJKHJldmlzaW9uIDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw3ICszMCw3IEBACiAKICNpbmNsdWRlICJBVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIgog
Ci1PQkpDX0NMQVNTIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyOworT0JKQ19DTEFTUyBDQUxh
eWVyOwogCiB0eXBlZGVmIHN0cnVjdCBDR0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRlZiBjb25z
dCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXREZXNjcmlwdGlvbiAqQ01Gb3JtYXREZXNjcmlwdGlvblJl
ZjsKQEAgLTQ4LDM2ICs0OCwzOCBAQCBwdWJsaWM6CiAgICAgaW50MzJfdCB3aWR0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJu
IG1faGVpZ2h0OyB9CiAKLSAgICBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciogcHJldmlld0xh
eWVyKCkgeyByZXR1cm4gbV92aWRlb1ByZXZpZXdMYXllci5nZXQoKTsgfQotICAgIENNU2FtcGxl
QnVmZmVyUmVmIGN1cnJlbnRGcmFtZVNhbXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVm
ZmVyLmdldCgpOyB9Ci0gICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGlj
c0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
Y3VycmVudEZyYW1lSW1hZ2UoKTsKLQogcHJpdmF0ZToKICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHM+KTsKICAgICB2aXJ0dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAg
ICAgdm9pZCBzZXR1cENhcHR1cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93
bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpIG92
ZXJyaWRlOwogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNh
cGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxp
dGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJikgb3ZlcnJpZGU7CiAKICAgICBi
b29sIGFwcGx5Q29uc3RyYWludHMoTWVkaWFDb25zdHJhaW50cyopOwogICAgIGJvb2wgc2V0RnJh
bWVSYXRlQ29uc3RyYWludChmbG9hdCBtaW5GcmFtZVJhdGUsIGZsb2F0IG1heEZyYW1lUmF0ZSk7
CiAKLSAgICBib29sIGNhbGN1bGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAg
Ym9vbCB1cGRhdGVGcmFtZXJhdGUoQ01TYW1wbGVCdWZmZXJSZWYpOwogCiAgICAgdm9pZCBjYXB0
dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0
cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBvdmVycmlkZTsK
ICAgICB2b2lkIHByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+KTsK
IAotICAgIFJldGFpblB0cjxBVkNhcHR1cmVDb25uZWN0aW9uPiBtX3ZpZGVvQ29ubmVjdGlvbjsK
LSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+IG1fdmlkZW9QcmV2aWV3
TGF5ZXI7CisgICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0
Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
Y3VycmVudEZyYW1lQ0dJbWFnZSgpOworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1lSW1h
Z2UoKSBvdmVycmlkZTsKKwogICAgIFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9idWZm
ZXI7CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fbGFzdEltYWdlOwogICAgIFZlY3RvcjxG
bG9hdDY0PiBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBzOwotICAgIEZsb2F0NjQgbV9mcmFtZVJhdGU7
Ci0gICAgaW50MzJfdCBtX3dpZHRoOwotICAgIGludDMyX3QgbV9oZWlnaHQ7CisgICAgbXV0YWJs
ZSBSZXRhaW5QdHI8UGxhdGZvcm1MYXllcj4gbV92aWRlb1ByZXZpZXdMYXllcjsKKyAgICBGbG9h
dDY0IG1fZnJhbWVSYXRlIHsgMCB9OworICAgIGludDMyX3QgbV93aWR0aCB7IDAgfTsKKyAgICBp
bnQzMl90IG1faGVpZ2h0IHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJl
U291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNpb24gMTkxNjM3KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxMCArMzEsMTIgQEAKICNpbXBvcnQgIkFWQ2FwdHVy
ZURldmljZU1hbmFnZXIuaCIKICNpbXBvcnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAi
R3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNpbXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJJ
bnRSZWN0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRz
LmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgorI2ltcG9ydCAiUGxhdGZvcm1MYXllci5o
IgogI2ltcG9ydCAiUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcy5oIgogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkBAIC05OCw5
ICsxMDAsNiBAQCBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0CiAKIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VU
eXBlKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25z
dHJhaW50cz4gY29uc3RyYWludCkKICAgICA6IEFWTWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwg
aWQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBjb25zdHJhaW50KQotICAgICwgbV9mcmFt
ZVJhdGUoMCkKLSAgICAsIG1fd2lkdGgoMCkKLSAgICAsIG1faGVpZ2h0KDApCiB7CiAgICAgY3Vy
cmVudFN0YXRlcygpLT5zZXRTb3VyY2VJZChpZCk7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRT
b3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CkBAIC0xMTAsMTAg
KzEwOSwxMSBAQCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291CiB7CiB9
CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OmluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYg
Y2FwYWJpbGl0aWVzKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Cisg
ICAgLy8gRklYTUU6IGZpbmlzaCB0aGlzIGltcGxlbWVudGF0aW9uCisgICAgY2FwYWJpbGl0aWVz
LnNldFNvdXJjZUlkKGN1cnJlbnRTdGF0ZXMoKS0+c291cmNlSWQoKSk7CisgICAgY2FwYWJpbGl0
aWVzLmFkZFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJhKTsKIH0K
IAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6dXBkYXRlU3RhdGVzKCkKQEAgLTIxOCw5ICsy
MTgsMTMgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6YXBwbHlDb25zdHJhaQogdm9pZCBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgUmV0YWlu
UHRyPEFWQ2FwdHVyZURldmljZUlucHV0VHlwZT4gdmlkZW9JbiA9IGFkb3B0TlMoW2FsbG9jQVZD
YXB0dXJlRGV2aWNlSW5wdXRJbnN0YW5jZSgpIGluaXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9y
Om5pbF0pOwotICAgIEFTU0VSVChbc2Vzc2lvbigpIGNhbkFkZElucHV0OnZpZGVvSW4uZ2V0KCld
KTsKLSAgICBpZiAoW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSkKLSAgICAg
ICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2aWRlb0luLmdldCgpXTsKKworICAgIGlmICghW3Nlc3Np
b24oKSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSkgeworICAgICAgICBMT0coTWVkaWEsICJB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBh
ZGQgdmlkZW8gaW5wdXQgZGV2aWNlIiwgdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBbc2Vzc2lvbigpIGFkZElucHV0OnZpZGVvSW4uZ2V0KCldOwogCiAgICAgaWYgKGNvbnN0
cmFpbnRzKCkpCiAgICAgICAgIGFwcGx5Q29uc3RyYWludHMoY29uc3RyYWludHMoKSk7CkBAIC0y
MzEsMTUgKzIzNSwyNiBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVT
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAsIG5pbF0pOwogICAgIFt2aWRlb091dHB1dCBzZXRWaWRlb1NldHRpbmdzOnNldHRpbmdzRGlj
dGlvbmFyeS5nZXQoKV07CiAgICAgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZSh2aWRlb091
dHB1dC5nZXQoKSk7Ci0gICAgQVNTRVJUKFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0
cHV0LmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0
LmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCld
OwogCi0gICAgbV92aWRlb0Nvbm5lY3Rpb24gPSBhZG9wdE5TKFt2aWRlb091dHB1dC5nZXQoKSBj
b25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZVZpZGVvXSk7Ci0gICAgbV92aWRlb1By
ZXZpZXdMYXllciA9IGFkb3B0TlMoW1tBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBhbGxvY10g
aW5pdFdpdGhTZXNzaW9uOnNlc3Npb24oKV0pOworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRP
dXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9D
YXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCB2aWRl
byBzYW1wbGUgYnVmZmVyIG91dHB1dCBkZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIFtzZXNzaW9uKCkgYWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKK30K
Kwordm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpCit7
CisgICAgbV92aWRlb1ByZXZpZXdMYXllciA9IG51bGxwdHI7CisgICAgbV9idWZmZXIgPSBudWxs
cHRyOworICAgIG1fbGFzdEltYWdlID0gbnVsbHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVUaW1lU3Rh
bXBzLmNsZWFyKCk7CisgICAgbV9mcmFtZVJhdGUgPSAwOworICAgIG1fd2lkdGggPSAwOworICAg
IG1faGVpZ2h0ID0gMDsKIH0KIAotYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRl
RnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKK2Jvb2wgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZm
ZXIpCiB7CiAgICAgQ01UaW1lIHNhbXBsZVRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRh
dGlvblRpbWVTdGFtcChzYW1wbGVCdWZmZXIpOwogICAgIGlmICghQ01USU1FX0lTX05VTUVSSUMo
c2FtcGxlVGltZSkpCkBAIC0yNjEsMTMgKzI3NiwxOSBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291
cmNlOjpjYWxjdWxhdGVGcmFtCiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NO
ZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlcikKIHsKKyAg
ICAvLyBJZ25vcmUgZnJhbWVzIGRlbGl2ZXJlZCB3aGVuIHRoZSBzZXNzaW9uIGlzIG5vdCBydW5u
aW5nLCB3ZSB3YW50IHRvIGhhbmcgb250byB0aGUgbGFzdCBpbWFnZQorICAgIC8vIGRlbGl2ZXJl
ZCBiZWZvcmUgaXQgc3RvcHBlZC4KKyAgICBpZiAobV9sYXN0SW1hZ2UgJiYgKCFpc1Byb2R1Y2lu
Z0RhdGEoKSB8fCAhZW5hYmxlZCgpKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQ01Gb3JtYXRE
ZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0
RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0
aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICB1cGRhdGVGcmFtZXJhdGUoc2FtcGxlQnVmZmVy
LmdldCgpKTsKKwogICAgIGJvb2wgc3RhdGVzQ2hhbmdlZCA9IGZhbHNlOwogCi0gICAgc3RhdGVz
Q2hhbmdlZCA9IGNhbGN1bGF0ZUZyYW1lcmF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgIG1f
YnVmZmVyID0gc2FtcGxlQnVmZmVyOwogICAgIG1fbGFzdEltYWdlID0gbnVsbHB0cjsKIApAQCAt
MjkxLDcgKzMxMiwyMyBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0
CiAgICAgfSk7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVmPiBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQorUmVmUHRyPEltYWdlPiBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQoreworICAgIGlmICghY3VycmVudEZyYW1lQ0dJbWFnZSgp
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoMCwg
MCwgbV93aWR0aCwgbV9oZWlnaHQpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4g
aW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCksIFVuYWNj
ZWxlcmF0ZWQpOworCisgICAgaWYgKCFpbWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChpbWFnZUJ1ZmZlci0+Y29udGV4
dCgpLCBpbWFnZVJlY3QpOworCisgICAgcmV0dXJuIGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoKTsK
K30KKworUmV0YWluUHRyPENHSW1hZ2VSZWY+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjdXJyZW50
RnJhbWVDR0ltYWdlKCkKIHsKICAgICBpZiAobV9sYXN0SW1hZ2UpCiAgICAgICAgIHJldHVybiBt
X2xhc3RJbWFnZTsKQEAgLTMxOCw3ICszNTUsNyBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gQVZW
aWRlb0NhcHR1cmVTb3VyCiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogewotICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSB8fCAhY3VycmVu
dEZyYW1lSW1hZ2UoKSkKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWN1
cnJlbnRGcmFtZUNHSW1hZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NDb250
ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOwpAQCAtMzI5LDYgKzM2NiwxOSBAQCB2
b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpwYWludEN1cnJlbnRGCiAgICAgQ0dDb250ZXh0RHJh
d0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRS
ZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQoKSksIG1fbGFzdEltYWdlLmdldCgpKTsKIH0K
IAorUGxhdGZvcm1MYXllciogQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnBsYXRmb3JtTGF5ZXIoKSBj
b25zdAoreworICAgIGlmIChtX3ZpZGVvUHJldmlld0xheWVyKQorICAgICAgICByZXR1cm4gbV92
aWRlb1ByZXZpZXdMYXllci5nZXQoKTsKKworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9w
dE5TKFthbGxvY0FWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVySW5zdGFuY2UoKSBpbml0V2l0aFNl
c3Npb246c2Vzc2lvbigpXSk7CisjaWZuZGVmIE5ERUJVRworICAgIG1fdmlkZW9QcmV2aWV3TGF5
ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRlb0NhcHR1cmVTb3VyY2UgcHJldmlldyBsYXllciI7Cisj
ZW5kaWYKKworICAgIHJldHVybiBtX3ZpZGVvUHJldmlld0xheWVyLmdldCgpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgJKHJldmlzaW9u
IDE5MTYzNykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3
IEBAIHByaXZhdGU6CiAKICAgICBzaXplX3QgbV9saXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdWZmZXJMaXN0PiBtX2xpc3Q7Ci0gICAgUmV0YWluUHRyPEF1
ZGlvQ29udmVydGVyUmVmPiBtX2NvbnZlcnRlcjsKKyAgICBBdWRpb0NvbnZlcnRlclJlZiBtX2Nv
bnZlcnRlcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9u
PiBtX2lucHV0RGVzY3JpcHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbj4gbV9vdXRwdXREZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZmZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMubW0JKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDExIEBAIFdlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDOjpXZWJBdWRpb1MKIAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6
On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7CisgICAgaWYgKG1fY29udmVydGVy
KSB7CisgICAgICAgIC8vIEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBB
dWRpb0NvbnZlcnRlcgorICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIp
OworICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CisgICAgfQogICAgIGlmIChtX2Nvbm5l
Y3RlZCkKICAgICAgICAgbV9jYXB0dXJlU291cmNlLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKIH0K
QEAgLTEyMyw3ICsxMjgsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm92CiAgICAgbV9yZWFkQ291bnQgKz0gZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29u
dmVydGVyKQotICAgICAgICBBdWRpb0NvbnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29u
dmVydGVyLmdldCgpLCBmcmFtZXNUb1Byb2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgp
KTsKKyAgICAgICAgQXVkaW9Db252ZXJ0ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRl
ciwgZnJhbWVzVG9Qcm9jZXNzLCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZv
aWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVBy
b3ZpZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0xODAsOSArMTg1LDE5IEBAIHZvaWQgV2ViQXVkaW9T
b3VyY2VQcm92aWRlckFWRk9iakM6OnByZXAKICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5tQnl0
ZXNQZXJGcmFtZSA9IHNpemVvZihGbG9hdDMyKTsKICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5t
Rm9ybWF0RmxhZ3MgfD0ga0F1ZGlvRm9ybWF0RmxhZ0lzTm9uSW50ZXJsZWF2ZWQ7CiAKKyAgICBp
ZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAgICAgLy8gRklYTUU6IG1ha2UgYW5kIHVzZSBhIHNtYXJ0
IHBvaW50ZXIgZm9yIEF1ZGlvQ29udmVydGVyCisgICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9z
ZShtX2NvbnZlcnRlcik7CisgICAgICAgIG1fY29udmVydGVyID0gbnVsbHB0cjsKKyAgICB9CisK
ICAgICBpZiAoKm1faW5wdXREZXNjcmlwdGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewog
ICAgICAgICBBdWRpb0NvbnZlcnRlclJlZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAg
ICBBdWRpb0NvbnZlcnRlck5ldyhtX2lucHV0RGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVz
Y3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAgICAgICBPU1N0YXR1cyBlcnIgPSBB
dWRpb0NvbnZlcnRlck5ldyhtX2lucHV0RGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3Jp
cHRpb24uZ2V0KCksICZvdXRDb252ZXJ0ZXIpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAg
ICAgICBMT0coTWVkaWEsICJXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSgl
cCkgLSBBdWRpb0NvbnZlcnRlck5ldyByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRD
b252ZXJ0ZXI7CiAgICAgfQogCkBAIC0yMjEsNiArMjM2LDExIEBAIHZvaWQgV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnVucHIKICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOwogICAg
IG1fbGlzdCA9IG51bGxwdHI7CiAgICAgbV9saXN0QnVmZmVyU2l6ZSA9IDA7CisgICAgaWYgKG1f
Y29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2lu
dGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9j
b252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRlciA9IG51bGxwdHI7CisgICAgfQogfQogCiB2
b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKENNRm9ybWF0RGVzY3Jp
cHRpb25SZWYsIENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKQEAgLTIzNCw3ICsyNTQs
NyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jCiAgICAgT1NTdGF0
dXMgZXJyID0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9j
a0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51bGxwdHIsIG1fbGlzdC5nZXQoKSwgbV9saXN0QnVmZmVy
U2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVs
dCwga0NNU2FtcGxlQnVmZmVyRmxhZ19BdWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25t
ZW50LCAmYnVmZmVyKTsKIAogICAgIGlmIChlcnIpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2VzcyglcCkgLSBDTVNhbXBsZUJ1ZmZlckdl
dEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRhaW5lZEJsb2NrQnVmZmVyIHJldHVybmVkIGVycm9yICVp
IiwgdGhpcywgZXJyKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnByb2Nlc3MoJXApIC0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RX
aXRoUmV0YWluZWRCbG9ja0J1ZmZlciByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRp
bWVNZWRpYVNvdXJjZU93ci5oCShyZXZpc2lvbiAxOTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAko
d29ya2luZyBjb3B5KQpAQCAtNTgsNyArNTgsNyBAQCBSZWFsdGltZU1lZGlhU291cmNlT3dyKE93
ck1lZGlhU291cmNlKiBtCiAKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlT3dyKCkg
eyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVz
PiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZp
cnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGlt
ZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0K
IAogICAgIE93ck1lZGlhU291cmNlKiBtZWRpYVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVk
aWFTb3VyY2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCShyZXZpc2lvbiAx
OTE2MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIH5Nb2NrU291cmNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJl
dHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVz
OyB9CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMo
KSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzPiBtX2NhcGFiaWxpdGllczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264268</attachid>
            <date>2015-10-28 16:59:50 -0700</date>
            <delta_ts>2015-10-28 21:36:24 -0700</delta_ts>
            <desc>Updated path for landing.</desc>
            <filename>media_player_patch_17.txt</filename>
            <type>text/plain</type>
            <size>121023</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MSBAQAorMjAxNS0xMC0yOCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVN0cmVhbTo6Y3JlYXRlKTogRG9uJ3QgZGllIGEgcmVjdXJzaXZlIGRlYXRoLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFkZE9i
c2VydmVyLiBTZXQgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKTogc2V0Q2xpZW50IC0+IGFk
ZE9ic2VydmVyLiBDbGVhciBwcml2YXRlIHN0cmVhbSdzIHB1YmxpYyBzdHJlYW0gcG9pbnRlci4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtOjpkaWRBZGRUcmFjayk6IFNob3J0IGNpcmN1
aXQgY2FsbGluZyBpbnRlcm5hbEFkZFRyYWNrIHdoZW4gdGhlIHRyYWNrIGlzIHVua25vd24uCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2spOiBBU1NFUlQgdGhh
dCB0aGUgdHJhY2sgaXMga25vd24uCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbS5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2s6OnRyYWNrUHJvZHVj
aW5nRGF0YUNoYW5nZWQpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNr
Ojp0cmFja0VuYWJsZWRDaGFuZ2VkKTogTmV3LgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1UcmFjay5oOgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKTogVXNlIHRoZSBuZXcgTWVkaWFTdHJlYW1Qcml2YXRl
OjpwdWJsaWNTdHJlYW0oKSBtZXRob2QuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwOgorXSAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcyk6IGNhcGFiaWxpdGllcyBpc24ndCBjb25zdC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCk6
IFJlZm9ybWF0IHRvIG1ha2UgaXQgdXNlIGVhcmx5IHJldHVybi4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogUmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0vaCwgdGhleSBhcmUgbm8gbG9uZ2VyIG5lY2Vzc2FyeS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1aWxk
TWVkaWFFbmdpbmVzVmVjdG9yKTogUmVnaXN0ZXIgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDIGVuZ2luZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQ2xlYW51cCwgYWRkIGxvZ2dpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMpOiBBZGQKKyAgICAgICAgICBsb2dnaW5nLCByZW1vdmUgcHJpdmF0ZSBzdHJlYW0g
b2JzZXJ2ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUpOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppc0F2YWlsYWJsZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpnZXRTdXBwb3J0ZWRUeXBlcyk6IFJldHVybiBhbiBlbXB0eSB2ZWN0b3IuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQpOiBV
c2UgdGhlIE1lZGlhU3RyZWFtUHJpdmF0ZSBwYXNzZWQgaW5zdGVhZAorICAgICAgICAgIG9mIGNy
ZWF0aW5nIGEgbmV3IHByaXZhdGUgc3RyZWFtLiAKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCk6IFBhdXNlIG91dHB1dC4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZVRvUGxheSk6IEFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVyKTogbV9wcmV2aWV3TGF5
ZXIgLT4gbV92aWRlb0JhY2tncm91bmRMYXllci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKTogTmV3
LCBzaG93L2hpZGUgdGhlIHByZXZpZXcgbGF5ZXIgYW5kIGNvbmZpZ3VyZQorICAgICAgICAgIHRo
ZSBiYWNrZ3JvdW5kIGxheWVyIHNvIHdlIHNob3cgYSBzdGlsbCBpbWFnZSBldmVuIHRob3VnaCB0
aGUgY2FwdHVyZSBkZXZpY2UgY29udGludWVzIHRvIHJ1bi4gU3RhcnQvc3RvcCBjbG9jay4KKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxh
eSk6IERvbid0IG5lZWQgdG8gc3RhcnQgdGhlIHNvdXJjZSwgdGhhdCBoYXBwZW5zIGluIGluIGxv
YWQuIEp1c3QKKyAgICAgICAgICBzZXQgZmxhZ3MgYW5kIGhpZGUgdGhlIHBhdXNlZCBpbWFnZS4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cGF1c2UpOiBEb24ndCBzdG9wIHRoZSBzb3VyY2UsIGl0IG1heSBiZSBzaGFyZWQgYnkgbW9yZSB0
aGFuIG9uZSAKKyAgICAgICAgICBzdHJlYW0vdHJhY2suIEp1c3Qgc2V0IHRoZSBwbGF5aW5nIGZs
YWcgYW5kIHNob3cgdGhlIHBhdXNlZCBpbWFnZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VkKTogRml4LgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjppbnRlcm5hbFNldFZv
bHVtZSk6IE5ldywgY2FsbGVkIGJ5IHNldE11dGVkIGFuZCBzZXRWb2x1bWUuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFZvbHVtZSk6
IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2V0TXV0ZWQpOiBEb24ndCBtdXRlIHRoZSBzb3VyY2UsIGl0IGRvZXNuJ3QgZG8gd2hh
dCB5b3UgdGhpbmsuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6Omhhc1ZpZGVvKTogUGFzcy10aHJvdWdoIHRvIHN0cmVhbS4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6Y3VycmVudE1lZGlhVGltZSk6IFJldHVybiBjbG9jayB0aW1lLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjdXJyZW50UmVh
ZHlTdGF0ZSk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6YWN0aXZlU3RhdHVzQ2hhbmdlZCk6IFVwZGF0ZSByZWFkeVN0YXRlLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp1
cGRhdGVJbnRyaW5zaWNTaXplKTogVXBkYXRlIGludHJpbnNpYyBzaXplLCBjcmVhdGUgbGF5ZXJz
IGlmIG5lY2Vzc2FyeS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycyk6IENyZWF0ZSBwcmV2aWV3IGxheWVy
cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCk6IFVwZGF0ZSBmb3IgY2hhbmdlZCBjaGFyYWN0ZXJp
c3RpY3MuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnNlZWthYmxlKTogJ3NlZWthYmxlJyBtdXN0IHJldHVybiBhbiBlbXB0eSBUaW1lUmFu
Z2VzIG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbWVUeXBlQ2FjaGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
bGF0Zm9ybU1lZGlhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJbnRl
cm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1lU2Vla2Fi
bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjptaW5NZWRpYVRpbWVTZWVrYWJsZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdl
RnJvbVNhbXBsZUJ1ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjptb3ZpZUxvYWRUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZXh0cmFNZW1vcnlDb3N0KTogRGVs
ZXRlZC4KKworICAgICAgICBEZWxldGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbS8uaCBh
cyB0aGV5IGFyZW4ndCBuZWNlc3NhcnkuIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVBy
aXZhdGVBVkZPYmpDLm1tOiBSZW1vdmVkLgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKTogQWRkIHRyYWNrIG9ic2VydmVyIQorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjphZGRPYnNlcnZlcik6IE5ldy4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBOZXcuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnVwZGF0ZUFjdGl2ZVN0YXRlKTog
UmVtZW1iZXIgdGhlIGZpcnN0IGFjdGl2ZSB2aWRlbyB0cmFjay4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2spOiBOb3RpZnkgb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpzdGFydFByb2R1Y2luZ0RhdGEpOiBQ
YXNzLXRocm91Z2ggdG8gdHJhY2tzLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2
YXRlOjpzdG9wUHJvZHVjaW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dCk6IEVp
dGhlciBwYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZpZGVvCisgICAgICAgICAgdHJhY2ss
IG9yIHBhaW50IHRoZSBjb250ZXh0IGJsYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJl
YW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFnZSk6IFBhc3MtdGhyb3VnaCB0byBmaXJzdCBhY3Rp
dmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBJbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja011dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2spOiBOZXcsIGNhbGwgYSBmdW5jdGlvbiBhc3luY2hyb25vdXNseSBvbgorICAgICAgICAg
IHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlOjplbmRUcmFjayk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJp
dmF0ZTo6c291cmNlUHJvZHVjaW5nRGF0YUNoYW5nZWQpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxl
ZENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UpOiBOZXcsIGluZm9ybSBvYnNlcnZlcnMuCisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzZXRFbmFibGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKTogQ2FsbCByZXNl
dCgpOworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDogRG9uJ3QgZGVjbGFyZSAiY2FwYWJpbGl0aWVzIiBhcyBjb25zdCBzbyAKKyAgICAgICAgICBj
YXBhYmlsaXRpZXMgY2FuIGJlIGNyZWF0ZWQgYW5kIGluaXRpYWxpemVkIGxhemlseS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmFkZE9ic2VydmVyKTogSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycyBzbyB0
aGUgbGlzdAorICAgICAgICAgIGNhbid0IGJlIG11dGF0ZWQuCisgICAgICAgIChXZWJDb3JlOjpB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbik6IExvZyBhbmQgZmFpbCBp
ZiB0aGUgc2Vzc2lvbiB3b24ndCBhZGQgdGhlCisgICAgICAgICAgaW5wdXQgb3Igb3V0cHV0Lgor
ICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNodXRkb3duQ2FwdHVyZVNl
c3Npb24pOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbik6IERvbid0
IGJsb2NrCisgICAgICAgICAgaWYgaXQgaXNuJ3QgcG9zc2libGUgdG8gYWNxdWlyZSB0aGUgbG9j
ay4gSG9sZCB0aGUgbG9jayB3aGlsZSBjYWxsaW5nIG9ic2VydmVycy4KKyAgICAgICAgKFdlYkNv
cmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEZWxldGVkLgorCisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpyZWZyZXNoQ2FwdHVyZURldmljZUxpc3QpOiBEb24ndCBpbmNs
dWRlIGRldmljZXMgdGhhdCBjYW4ndCBiZSB1c2VkLgorICAgICAgICAoV2ViQ29yZTo6QVZDYXB0
dXJlRGV2aWNlTWFuYWdlcjo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWludHMpOiAgVXNl
IEFWQ2FwdHVyZURldmljZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQKKyAgICAgICAgICBzbyBjb25z
dHJhaW50cyBhcmUgY29uc2lkZXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFWQ2FwdHVyZURldmlj
ZU1hbmFnZXI6OnNvdXJjZVdpdGhVSUQpOiBEb24ndCBjb25zaWRlciBkaXNhYmxlZCBkZXZpY2Vz
LiBBbHdheXMKKyAgICAgICAgICBjcmVhdGUgYSBuZXcgY2FwdHVyZSBkZXZpY2Ugc28gZWFjaCB0
cmFjayBzdGFydHMgb3V0IHdpdGggYSB1bmlxdWUgc291cmNlLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5oOgorCisgICAgICAgICogcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Z2xvYmFBdWRpb0NhcHR1cmVTZXJpYWxRdWV1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6On5BVk1lZGlhQ2FwdHVyZVNvdXJjZSk6IFJl
bW92ZSBLVk8gb2JzZXJ2ZXJzLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVTb3Vy
Y2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSk6IG1faXNSdW5uaW5nIGlzIGNoYW5nZWQgaW4gY2FwdHVy
ZVNlc3Npb25Jc1J1bm5pbmdEaWRDaGFuZ2UuCisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2Fw
dHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBOZXcuCisgICAgICAgIChXZWJD
b3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c2V0dXBTZXNzaW9uKTogQWRkIEtWT2JzZXJ2ZXJz
IGZvciB0aGUgcHJvcGVydGllcyB3ZSBjYXJlIGFib3V0LgorICAgICAgICAoV2ViQ29yZTo6QVZN
ZWRpYUNhcHR1cmVTb3VyY2U6OnJlc2V0KTogTmV3LCBjbGVhbnVwLgorICAgICAgICAoV2ViQ29y
ZTo6QVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdl
KTogRGlzcGF0Y2ggdG8gdGhlIG1haW4gdGhyZWFkIAorICAgICAgICAgIHRvIHNldCBtX2lzUnVu
bmluZywgY2FsbCBpc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2Ugc28gb2JzZXJ2ZXJzIGNhbiBmaW5k
IG91dC4KKyAgICAgICAgKFdlYkNvcmU6OnNlc3Npb25LVk9Qcm9wZXJ0aWVzKToKKyAgICAgICAg
KC1bV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgZGlzY29ubmVjdF0pOgorICAg
ICAgICAoLVtXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlciBjYXB0dXJlT3V0cHV0
OmRpZE91dHB1dFNhbXBsZUJ1ZmZlcjpmcm9tQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bV2Vi
Q29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpv
Zk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKTogUmVzcG9uZAorICAgICAgICAgIHRvIHJ1bm5pbmcg
Y2hhbmdlcy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJl
U2Vzc2lvblN0b3BwZWRSdW5uaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViQ29yZUFWTWVk
aWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZzpdKTog
RGVsZXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVv
Q2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNl
Ojppbml0aWFsaXplQ2FwYWJpbGl0aWVzKTogUGFydGlhbCBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKTog
IExvZyBhbmQgZmFpbCBpZiB0aGUgc2Vzc2lvbiB3b24ndCBhZGQgdGhlCisgICAgICAgICAgaW5w
dXQgb3Igb3V0cHV0LgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNo
dXRkb3duQ2FwdHVyZVNlc3Npb24pOiBDbGVhbnVwLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1lcmF0ZSk6IFJlbmFtZWQgZnJvbSBjYWxjdWxhdGVG
cmFtZXJhdGUuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVu
dEZyYW1lSW1hZ2UpOiBSZXR1cm4gYW4gSW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6cGxhdGZvcm1MYXllcik6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6OkFW
VmlkZW9DYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhbGN1bGF0ZUZyYW1lcmF0ZSk6IERlbGV0ZWQu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKTogQXVk
aW9Db252ZXJ0ZXJSZWYgaXMKKyAgICAgICAgICBub3QgYSBDRi9PYmpDIG9iamVjdCBzbyB3ZSBj
YW4ndCB1c2UgYSBSZXRhaW5QdHI8PiBmb3IgaXQuCisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFy
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByb2Nlc3MpOiBGaXggdHlwbyBpbiBsb2dnaW5nLgorCisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrU291cmNlOjpjYXBhYmlsaXRpZXMpOiBVcGRhdGUgZm9yIGNhcGFiaWxpdGllcyBjaGFu
Z2UuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaDogVXBkYXRlIGZvciBjYXBhYmlsaXRpZXMgY2hhbmdlLgorCiAyMDE1
LTEwLTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXNzZXJ0
aW9uIGZhaWx1cmUgaW4gV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN0b3BMb2FkaW5nKCkgcnVubmlu
ZyBmYXN0L2V2ZW50cyB0ZXN0cwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5jcHAJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCwzNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBW
ZWN0b3I8TWVkaWFTdHJlYW0qPiYgbWVkaWFTdHJlYW1zKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8VmVjdG9yPE1lZGlhU3RyZWFtKj4+IHN0cmVhbXM7CisgICAgcmV0dXJuIHN0cmVh
bXM7Cit9CisKK3N0YXRpYyB2b2lkIHJlZ2lzdGVyTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW0qIHN0
cmVhbSkKK3sKKyAgICBtZWRpYVN0cmVhbXMoKS5hcHBlbmQoc3RyZWFtKTsKK30KKworc3RhdGlj
IHZvaWQgdW5SZWdpc3Rlck1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtKiBzdHJlYW0pCit7CisgICAg
VmVjdG9yPE1lZGlhU3RyZWFtKj4mIGFsbFN0cmVhbXMgPSBtZWRpYVN0cmVhbXMoKTsKKyAgICBz
aXplX3QgcG9zID0gYWxsU3RyZWFtcy5maW5kKHN0cmVhbSk7CisgICAgaWYgKHBvcyAhPSBub3RG
b3VuZCkKKyAgICAgICAgYWxsU3RyZWFtcy5yZW1vdmUocG9zKTsKK30KKworTWVkaWFTdHJlYW0q
IE1lZGlhU3RyZWFtOjpsb29rVXAoY29uc3QgTWVkaWFTdHJlYW1Qcml2YXRlJiBwcml2YXRlU3Ry
ZWFtKQoreworICAgIFZlY3RvcjxNZWRpYVN0cmVhbSo+JiBhbGxTdHJlYW1zID0gbWVkaWFTdHJl
YW1zKCk7CisgICAgZm9yIChhdXRvJiBzdHJlYW0gOiBhbGxTdHJlYW1zKSB7CisgICAgICAgIGlm
IChzdHJlYW0tPm1fcHJpdmF0ZSA9PSAmcHJpdmF0ZVN0cmVhbSkKKyAgICAgICAgICAgIHJldHVy
biBzdHJlYW07CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIHN0YXRpYyBVUkxS
ZWdpc3RyeSogc19yZWdpc3RyeTsKIAogdm9pZCBNZWRpYVN0cmVhbTo6c2V0UmVnaXN0cnkoVVJM
UmVnaXN0cnkmIHJlZ2lzdHJ5KQpAQCAtNTgsNyArODgsNyBAQCBNZWRpYVN0cmVhbSogTWVkaWFT
dHJlYW06Omxvb2tVcChjb25zdCBVCiAKIFJlZjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogewotICAgIHJldHVybiBNZWRp
YVN0cmVhbTo6Y3JlYXRlKGNvbnRleHQpOworICAgIHJldHVybiBNZWRpYVN0cmVhbTo6Y3JlYXRl
KGNvbnRleHQsIE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKFZlY3RvcjxSZWZQdHI8TWVkaWFT
dHJlYW1UcmFja1ByaXZhdGU+PigpKSk7CiB9CiAKIFJlZjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJl
YW06OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBNZWRpYVN0cmVhbSog
c3RyZWFtKQpAQCAtOTUsNyArMTI1LDggQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlw
dEV4ZWN1dGlvbgogCiAgICAgbV9wcml2YXRlID0gTWVkaWFTdHJlYW1Qcml2YXRlOjpjcmVhdGUo
dHJhY2tQcml2YXRlcyk7CiAgICAgbV9pc0FjdGl2ZSA9IG1fcHJpdmF0ZS0+YWN0aXZlKCk7Ci0g
ICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7CisgICAgbV9wcml2YXRlLT5hZGRPYnNlcnZl
cigqdGhpcyk7CisgICAgcmVnaXN0ZXJNZWRpYVN0cmVhbSh0aGlzKTsKIH0KIAogTWVkaWFTdHJl
YW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFJlZlB0cjxN
ZWRpYVN0cmVhbVByaXZhdGU+JiYgc3RyZWFtUHJpdmF0ZSkKQEAgLTEwNSw3ICsxMzYsOCBAQCBN
ZWRpYVN0cmVhbTo6TWVkaWFTdHJlYW0oU2NyaXB0RXhlY3V0aW9uCiAgICAgLCBtX2FjdGl2aXR5
RXZlbnRUaW1lcigqdGhpcywgJk1lZGlhU3RyZWFtOjphY3Rpdml0eUV2ZW50VGltZXJGaXJlZCkK
IHsKICAgICBBU1NFUlQobV9wcml2YXRlKTsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCh0aGlz
KTsKKyAgICBtX3ByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICByZWdpc3Rlck1lZGlh
U3RyZWFtKHRoaXMpOwogCiAgICAgZm9yIChhdXRvJiB0cmFja1ByaXZhdGUgOiBtX3ByaXZhdGUt
PnRyYWNrcygpKSB7CiAgICAgICAgIFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrPiB0cmFjayA9IE1l
ZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZShjb250ZXh0LCAqdHJhY2tQcml2YXRlKTsKQEAgLTExNiw3
ICsxNDgsMTAgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbgogCiBN
ZWRpYVN0cmVhbTo6fk1lZGlhU3RyZWFtKCkKIHsKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudChu
dWxscHRyKTsKKyAgICB1blJlZ2lzdGVyTWVkaWFTdHJlYW0odGhpcyk7CisgICAgbV9wcml2YXRl
LT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tT
ZXQudmFsdWVzKCkpCisgICAgICAgIHRyYWNrLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKIH0KIAog
UmVmUHRyPE1lZGlhU3RyZWFtPiBNZWRpYVN0cmVhbTo6Y2xvbmUoKQpAQCAtMTk5LDEyICsyMzQs
MTQgQEAgdm9pZCBNZWRpYVN0cmVhbTo6ZGlkQWRkVHJhY2soTWVkaWFTdHJlYQogICAgIGlmICgh
Y29udGV4dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaW50ZXJuYWxBZGRUcmFjayhNZWRpYVN0
cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRyYWNrUHJpdmF0ZSksIFN0cmVhbU1vZGlmaWVy
OjpQbGF0Zm9ybSk7CisgICAgaWYgKCFnZXRUcmFja0J5SWQodHJhY2tQcml2YXRlLmlkKCkpKQor
ICAgICAgICBpbnRlcm5hbEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2s6OmNyZWF0ZSgqY29udGV4
dCwgdHJhY2tQcml2YXRlKSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKIH0KIAogdm9pZCBN
ZWRpYVN0cmVhbTo6ZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmIHRyYWNr
UHJpdmF0ZSkKIHsKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gdHJhY2sgPSBnZXRUcmFj
a0J5SWQodHJhY2tQcml2YXRlLmlkKCkpOworICAgIEFTU0VSVCh0cmFjayk7CiAgICAgaW50ZXJu
YWxSZW1vdmVUcmFjayhXVEY6Om1vdmUodHJhY2spLCBTdHJlYW1Nb2RpZmllcjo6UGxhdGZvcm0p
OwogfQogCkBAIC0yNTQsNiArMjkxLDcgQEAgdm9pZCBNZWRpYVN0cmVhbTo6YWN0aXZpdHlFdmVu
dFRpbWVyRmlyZQogICAgIGV2ZW50cy5zd2FwKG1fc2NoZWR1bGVkQWN0aXZpdHlFdmVudHMpOwog
CiAgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50cykgeworICAgICAgICAvLyBGSVhNRTogVGhp
cyBjYW4ndCBiZSByaWdodCwgdGhlIGV2ZW50IHR5cGUgaXMgc2V0IGZyb20gbV9pc0FjdGl2ZSBp
biBzY2hlZHVsZUFjdGl2ZVN0YXRlQ2hhbmdlISAtIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MDYz
NQogICAgICAgICBtX2lzQWN0aXZlID0gZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYWN0
aXZlRXZlbnQ7CiAgICAgICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQucmVsZWFzZSgpKTsKICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbS5oCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVN0cmVhbSBmaW5hbCA6IHB1YmxpYyBV
UkxSZWdpc3RyYWJsZSwgcHVibGljIFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBD
b250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIE1lZGlhU3RyZWFtVHJhY2s6Ok9ic2Vy
dmVyIHsKK2NsYXNzIE1lZGlhU3RyZWFtIGZpbmFsIDogcHVibGljIFVSTFJlZ2lzdHJhYmxlLCBw
dWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwg
cHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1UcmFj
azo6T2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMg
UmVmQ291bnRlZDxNZWRpYVN0cmVhbT4gewogcHVibGljOgogICAgIGNsYXNzIE9ic2VydmVyIHsK
ICAgICBwdWJsaWM6CkBAIC01NSw2ICs1NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBz
ZXRSZWdpc3RyeShVUkxSZWdpc3RyeSYpOwogICAgIHN0YXRpYyBNZWRpYVN0cmVhbSogbG9va1Vw
KGNvbnN0IFVSTCYpOwogCisgICAgc3RhdGljIE1lZGlhU3RyZWFtKiBsb29rVXAoY29uc3QgTWVk
aWFTdHJlYW1Qcml2YXRlJik7CisKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogICAgIHN0YXRpYyBSZWY8TWVkaWFTdHJlYW0+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTWVkaWFTdHJlYW0qKTsKICAgICBzdGF0aWMg
UmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IE1l
ZGlhU3RyZWFtVHJhY2tWZWN0b3ImKTsKQEAgLTgxLDggKzgzLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBNZWRpYVN0cmVhbUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAg
IHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCk7IH0KIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Q
cml2YXRlQ2xpZW50Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2
YXRlQ2xpZW50Pjo6ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OnJl
ZjsKKyAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtPjo6ZGVyZWY7CiAKICAgICAvLyBV
UkxSZWdpc3RyYWJsZQogICAgIHZpcnR1YWwgVVJMUmVnaXN0cnkmIHJlZ2lzdHJ5KCkgY29uc3Qg
b3ZlcnJpZGU7CkBAIC0xMDcsNyArMTA5LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZWRpYVN0cmVh
bVRyYWNrOjpPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCB0cmFja0RpZEVuZCgpIG92ZXJyaWRl
IGZpbmFsOwogCi0gICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50CisgICAgLy8gTWVkaWFT
dHJlYW1Qcml2YXRlOjpPYnNlcnZlcgogICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFu
Z2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlh
U3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgZmluYWw7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1UcmFjay5jcHAJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxMyw2ICsyMTMsMTYgQEAgdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjp0cmFja1N0YXRlc0NoYW5n
ZQogICAgIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1U
cmFjazo6dHJhY2tQcm9kdWNpbmdEYXRhQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
Cit7CisgICAgY29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKK30KKwordm9pZCBNZWRpYVN0cmVh
bVRyYWNrOjp0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikKK3sK
KyAgICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOworfQorCiB2b2lkIE1lZGlhU3RyZWFtVHJh
Y2s6OmNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCkKIHsKICAgICAvLyA0LjMuMQpJbmRleDogU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrLmgJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4LDgg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUm
KSBvdmVycmlkZTsKICAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNrUHJvZHVjaW5nRGF0YUNo
YW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHRyYWNr
RW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKIAogICAg
IFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogICAgIFJlZjxNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZT4gbV9wcml2YXRlOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAJKHJldmlzaW9uIDE5MTY5
NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rp
b24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NDksMTQgKzY0OSwxMiBAQCB2b2lkIFJUQ1BlZXJD
b25uZWN0aW9uOjpkaWRBZGRSZW1vdGVTdHJlCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpkaWRS
ZW1vdmVSZW1vdGVTdHJlYW0oTWVkaWFTdHJlYW1Qcml2YXRlKiBwcml2YXRlU3RyZWFtKQogewog
ICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4dFRocmVhZCgpKTsK
LSAgICBBU1NFUlQocHJpdmF0ZVN0cmVhbS0+Y2xpZW50KCkpOwotCi0gICAgLy8gRklYTUU6IHRo
aXMgY2xhc3Mgc2hvdWxkbid0IGtub3cgdGhhdCB0aGUgcHJpdmF0ZSBzdHJlYW0gY2xpZW50IGlz
IGEgTWVkaWFTdHJlYW0hCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBzdGF0aWNf
Y2FzdDxNZWRpYVN0cmVhbSo+KHByaXZhdGVTdHJlYW0tPmNsaWVudCgpKTsKIAogICAgIGlmICht
X3NpZ25hbGluZ1N0YXRlID09IFNpZ25hbGluZ1N0YXRlQ2xvc2VkKQogICAgICAgICByZXR1cm47
CiAKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW0+IHN0cmVhbSA9IE1lZGlhU3RyZWFtOjpsb29rVXAo
KnByaXZhdGVTdHJlYW0pOworICAgIEFTU0VSVChzdHJlYW0pOwogICAgIHNpemVfdCBwb3MgPSBt
X3JlbW90ZVN0cmVhbXMuZmluZChzdHJlYW0pOwogICAgIEFTU0VSVChwb3MgIT0gbm90Rm91bmQp
OwogICAgIG1fcmVtb3RlU3RyZWFtcy5yZW1vdmUocG9zKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNl
LmNwcAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNyArNDQs
NyBAQCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpNZWRpYVN0cmVhbUF1ZGlvCiB7CiB9CiAKLVJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlOjpjYXBhYmlsaXRpZXMoKSBjb25zdAorUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBh
YmlsaXRpZXM+IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCiB7CiAgICAg
Ly8gRklYTUU6IGltcGxlbWVudCB0aGlzLgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjI0MzAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5oCShyZXZpc2lvbiAx
OTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAg
ICB+TWVkaWFTdHJlYW1BdWRpb1NvdXJjZSgpIHsgfQogCi0gICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJyaWRlOworICAg
IFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBv
dmVycmlkZTsKICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSBv
dmVycmlkZTsKICAgICAKICAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkKCkgY29uc3QgeyByZXR1
cm4gbV9kZXZpY2VJZDsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9N
ZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAJKHJldmlz
aW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OSwzNyArNjksMzggQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6On5NZWRpYVN0cmVhbQogdm9pZCBNZWRpYVN0cmVh
bUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNpemVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9h
dCBzb3VyY2VTYW1wbGVSYXRlKQogewogICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0aGlzLT5zYW1w
bGVSYXRlKCk7Ci0gICAgaWYgKG51bWJlck9mQ2hhbm5lbHMgIT0gbV9zb3VyY2VOdW1iZXJPZkNo
YW5uZWxzIHx8IHNvdXJjZVNhbXBsZVJhdGUgIT0gc2FtcGxlUmF0ZSkgewotICAgICAgICAvLyBU
aGUgc2FtcGxlLXJhdGUgbXVzdCBiZSBlcXVhbCB0byB0aGUgY29udGV4dCdzIHNhbXBsZS1yYXRl
LgotICAgICAgICBpZiAoIW51bWJlck9mQ2hhbm5lbHMgfHwgbnVtYmVyT2ZDaGFubmVscyA+IEF1
ZGlvQ29udGV4dDo6bWF4TnVtYmVyT2ZDaGFubmVscygpIHx8IHNvdXJjZVNhbXBsZVJhdGUgIT0g
c2FtcGxlUmF0ZSkgewotICAgICAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUgc2ls
ZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCi0gICAgICAgICAgICBMT0coTWVk
aWEsICJNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KCV1LCAlZikgLSB1bmhh
bmRsZWQgZm9ybWF0IGNoYW5nZSIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihudW1iZXJPZkNoYW5u
ZWxzKSwgc291cmNlU2FtcGxlUmF0ZSk7Ci0gICAgICAgICAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSAwOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8g
U3luY2hyb25pemUgd2l0aCBwcm9jZXNzKCkuCi0gICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2Nr
PiBsb2NrKG1fcHJvY2Vzc011dGV4KTsKLQotICAgICAgICBtX3NvdXJjZU51bWJlck9mQ2hhbm5l
bHMgPSBudW1iZXJPZkNoYW5uZWxzOwotICAgICAgICBtX3NvdXJjZVNhbXBsZVJhdGUgPSBzb3Vy
Y2VTYW1wbGVSYXRlOwotCi0gICAgICAgIGlmIChzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJh
dGUpCi0gICAgICAgICAgICBtX211bHRpQ2hhbm5lbFJlc2FtcGxlciA9IG51bGxwdHI7Ci0gICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0gc291cmNlU2FtcGxl
UmF0ZSAvIHNhbXBsZVJhdGU7Ci0gICAgICAgICAgICBtX211bHRpQ2hhbm5lbFJlc2FtcGxlciA9
IHN0ZDo6bWFrZV91bmlxdWU8TXVsdGlDaGFubmVsUmVzYW1wbGVyPihzY2FsZUZhY3RvciwgbnVt
YmVyT2ZDaGFubmVscyk7Ci0gICAgICAgIH0KLQotICAgICAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOwotCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFRo
ZSBjb250ZXh0IG11c3QgYmUgbG9ja2VkIHdoZW4gY2hhbmdpbmcgdGhlIG51bWJlciBvZiBvdXRw
dXQgY2hhbm5lbHMuCi0gICAgICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4
dExvY2tlcigqY29udGV4dCgpKTsKLQotICAgICAgICAgICAgLy8gRG8gYW55IG5lY2Vzc3Nhcnkg
cmUtY29uZmlndXJhdGlvbiB0byB0aGUgb3V0cHV0J3MgbnVtYmVyIG9mIGNoYW5uZWxzLgotICAg
ICAgICAgICAgb3V0cHV0KDApLT5zZXROdW1iZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5lbHMp
OwotICAgICAgICB9CisgICAgaWYgKG51bWJlck9mQ2hhbm5lbHMgPT0gbV9zb3VyY2VOdW1iZXJP
ZkNoYW5uZWxzICYmIHNvdXJjZVNhbXBsZVJhdGUgPT0gc2FtcGxlUmF0ZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gVGhlIHNhbXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRl
eHQncyBzYW1wbGUtcmF0ZS4KKyAgICBpZiAoIW51bWJlck9mQ2hhbm5lbHMgfHwgbnVtYmVyT2ZD
aGFubmVscyA+IEF1ZGlvQ29udGV4dDo6bWF4TnVtYmVyT2ZDaGFubmVscygpIHx8IHNvdXJjZVNh
bXBsZVJhdGUgIT0gc2FtcGxlUmF0ZSkgeworICAgICAgICAvLyBwcm9jZXNzKCkgd2lsbCBnZW5l
cmF0ZSBzaWxlbmNlIGZvciB0aGVzZSB1bmluaXRpYWxpemVkIHZhbHVlcy4KKyAgICAgICAgTE9H
KE1lZGlhLCAiTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0g
dW5oYW5kbGVkIGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZD
aGFubmVscyksIHNvdXJjZVNhbXBsZVJhdGUpOworICAgICAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSAwOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gU3luY2hyb25pemUg
d2l0aCBwcm9jZXNzKCkuCisgICAgc3RkOjpsb2NrX2d1YXJkPExvY2s+IGxvY2sobV9wcm9jZXNz
TXV0ZXgpOworCisgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVs
czsKKyAgICBtX3NvdXJjZVNhbXBsZVJhdGUgPSBzb3VyY2VTYW1wbGVSYXRlOworCisgICAgaWYg
KHNvdXJjZVNhbXBsZVJhdGUgPT0gc2FtcGxlUmF0ZSkKKyAgICAgICAgbV9tdWx0aUNoYW5uZWxS
ZXNhbXBsZXIgPSBudWxscHRyOworICAgIGVsc2UgeworICAgICAgICBkb3VibGUgc2NhbGVGYWN0
b3IgPSBzb3VyY2VTYW1wbGVSYXRlIC8gc2FtcGxlUmF0ZTsKKyAgICAgICAgbV9tdWx0aUNoYW5u
ZWxSZXNhbXBsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2Nh
bGVGYWN0b3IsIG51bWJlck9mQ2hhbm5lbHMpOworICAgIH0KKworICAgIG1fc291cmNlTnVtYmVy
T2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7CisKKyAgICB7CisgICAgICAgIC8vIFRoZSBj
b250ZXh0IG11c3QgYmUgbG9ja2VkIHdoZW4gY2hhbmdpbmcgdGhlIG51bWJlciBvZiBvdXRwdXQg
Y2hhbm5lbHMuCisgICAgICAgIEF1ZGlvQ29udGV4dDo6QXV0b0xvY2tlciBjb250ZXh0TG9ja2Vy
KCpjb250ZXh0KCkpOworCisgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNvbmZpZ3Vy
YXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KKyAgICAgICAgb3V0cHV0
KDApLT5zZXROdW1iZXJPZkNoYW5uZWxzKG51bWJlck9mQ2hhbm5lbHMpOwogICAgIH0KIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02NTQsOCArNjU0LDYgQEAKIAkJ
MTRGRkUzMUUwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0RkZFMzFDMEFFMTk2
MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgKi87IH07CiAJCTE1MDUyNEY0
MUI3MTJGRjYwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE1MDUyNEYw
MUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMu
aCAqLzsgfTsKIAkJMTUwNTI0RjUxQjcxMkZGOTAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDE1MDUyNEYxMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0gKi87IH07Ci0JCTE1MDUyNEY2MUI3MTJGRkMwMDY5NkFB
OSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMjFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFT
dHJlYW1Qcml2YXRlQVZGT2JqQy5oICovOyB9OwotCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkg
LyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE1MDUyNEYzMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0
cmVhbVByaXZhdGVBVkZPYmpDLm1tICovOyB9OwogCQkxNTE0NUI5MDFCM0ExQ0UwMDA2NjJCRjcg
LyogTWVkaWFEZXZpY2VJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNTE0NUI4RjFCM0ExQjNFMDA2NjJCRjcgLyogTWVkaWFEZXZpY2VJbmZvLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTU3MzlC
QkExQjQyMDEyQTAwRDI1OEMxIC8qIEpTTWVkaWFEZXZpY2VzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE1NzM5QkI4MUI0MjAxMjIwMEQyNThDMSAv
KiBKU01lZGlhRGV2aWNlcy5jcHAgKi87IH07CiAJCTE1NzM5QkJCMUI0MjAxMkQwMEQyNThDMSAv
KiBKU01lZGlhRGV2aWNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTU3MzlCQjkxQjQyMDEyMjAwRDI1OEMxIC8qIEpTTWVkaWFEZXZpY2VzLmggKi87
IH07CkBAIC03OTMxLDggKzc5MjksNiBAQAogCQkxNEZGRTMxQzBBRTE5NjMzMDAxMzZCRjUgLyog
SFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNTA1MjRGMDFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQkxNTA1MjRGMjFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTE1MDUyNEYz
MUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTUxNDVCOEYxQjNBMUIzRTAwNjYy
QkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYURldmljZUluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTUxNDVCOTExQjNBMUQ0QzAwNjYyQkY3
IC8qIE1lZGlhRGV2aWNlSW5mby5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFEZXZp
Y2VJbmZvLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTU3MzlCQjgxQjQyMDEy
MjAwRDI1OEMxIC8qIEpTTWVkaWFEZXZpY2VzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTWVkaWFEZXZpY2VzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIyNzUwLDggKzIyNzQ2LDYgQEAKIAkJCQkxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkg
LyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tICovLAogCQkJCUNEQzhC
NUE1MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLmggKi8sCiAJ
CQkJQ0RDOEI1QTQxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFWRk9iakMu
bW0gKi8sCi0JCQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMuaCAqLywKLQkJCQkxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJl
YW1Qcml2YXRlQVZGT2JqQy5tbSAqLywKIAkJCQk3QTI5RjU3MTE4QzY5NTE0MDA0RDBGODEgLyog
T3V0T2ZCYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRi5oICovLAogCQkJCUNEQzhCNUE5MTgwNDdGRjEw
MDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNEQzhCNUE4
MTgwNDdGRjEwMDE2RTY4NSAvKiBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSAqLywKQEAg
LTI2NjE3LDcgKzI2NjExLDYgQEAKIAkJCQkwNzhFMDkzOTE3RDE2QjJDMDA0MjBBQTEgLyogTWVk
aWFTdHJlYW1DcmVhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTYxN0Qx
NEQxQzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3
OEUwOTM3MTdEMTZCMkMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVByaXZhdGUuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTE1MDUyNEY2MUI3MTJGRkMwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVB
VkZPYmpDLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxNzE3RDE0RDFDMDA0MjBBQTEgLyog
TWVkaWFTdHJlYW1SZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTgxN0QxNEQx
QzAwNDIwQUExIC8qIE1lZGlhU3RyZWFtVHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUw
OTE5MTdEMTREMUMwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMzAyOTgsNyArMzAyOTEsNiBAQAogCQkJCTA3MDU4NTE1MTdGQjBFRUEwMDVGMkJD
QiAvKiBNZWRpYVN0cmVhbUNhcGFiaWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhF
MDkwMDE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1FdmVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwNzExNTg5MTE3REY2RjY2MDBFREZFMkIgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTE1MDUyNEY3MUI3MTJGRkYwMDY5NkFBOSAvKiBNZWRpYVN0
cmVhbVByaXZhdGVBVkZPYmpDLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDExN0QxNENF
RTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDc4RTA5MDIxN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtVHJhY2suY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc4RTA5MDMxN0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtVHJhY2tF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNzIsNiArNzIsMTAgQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNF
KEFWRk9VTkRBVElPTikKKyNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakMuaCIKKyNlbmRpZgorCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKICNpZiBQTEFU
Rk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pICYmICFVU0UoR1NUUkVBTUVSKQpAQCAtMTkw
LDYgKzE5NCwxMCBAQCBzdGF0aWMgdm9pZCBidWlsZE1lZGlhRW5naW5lc1ZlY3RvcigpCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cmVnaXN0ZXJNZWRpYUVu
Z2luZShhZGRNZWRpYUVuZ2luZSk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CisgICAgICAgIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cmVnaXN0ZXJN
ZWRpYUVuZ2luZShhZGRNZWRpYUVuZ2luZSk7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFdJTikK
ICAgICAgICAgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMuaAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDI0ICsyOSwyMiBAQAogI2lmIEVOQUJMRShNRURJQV9T
VFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZh
dGUuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0jaW5jbHVkZSAi
U291cmNlQnVmZmVyUHJpdmF0ZUNsaWVudC5oIgorI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0
ZS5oIgogI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAotT0JKQ19DTEFTUyBBVkFzc2V0OwotT0JKQ19D
TEFTUyBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllcjsKIE9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZm
ZXJBdWRpb1JlbmRlcmVyOwotT0JKQ19DTEFTUyBBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsK
LU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJSZW5kZXJTeW5jaHJvbml6ZXI7CiBPQkpDX0NMQVNT
IEFWU3RyZWFtU2Vzc2lvbjsKLQotdHlwZWRlZiBzdHJ1Y3QgT3BhcXVlQ01UaW1lYmFzZSogQ01U
aW1lYmFzZVJlZjsKK3R5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBs
ZUJ1ZmZlclJlZjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJm
YWNlIHsKK2NsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlOworY2xhc3MgQ2xvY2s7CitjbGFzcyBN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQ7CisKK2NsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQyA6IHB1YmxpYyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UsIHB1Ymxp
YyBNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoTWVkaWFQbGF5ZXIqKTsKICAgICB2
aXJ0dWFsIH5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoKTsKQEAgLTU4LDEx
NiArNTYsMTA5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZz4mIHR5cGVzKTsKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYpOwog
Ci0gICAgdm9pZCBhZGREaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsK
LSAgICB2b2lkIHJlbW92ZURpc3BsYXlMYXllcihBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllciop
OwotCi0gICAgdm9pZCBhZGRBdWRpb1JlbmRlcmVyKEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
ciopOwotICAgIHZvaWQgcmVtb3ZlQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVu
ZGVyZXIqKTsKLQogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6Ok5l
dHdvcmtTdGF0ZSk7CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSk7CiAKLSAgICB2b2lkIHNpemVDaGFuZ2VkKCk7Ci0gICAgdm9pZCBjaGFyYWN0ZXJpc3Rp
Y3NDaGFuZ2VkKCk7Ci0KICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgICAgIC8vIE1lZGlhUGxheWVyUHJpdmF0ZUlu
dGVyZmFjZQotICAgICAgICAvLyBGSVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQgbmVjZXNzYXJ5IGNv
bmZvcm1hdGlvbnMgdG8gc3RhbmRhcmQgaW4gSFRNTE1lZGlhRWxlbWVudCBmb3IgTWVkaWFTdHJl
YW0gCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlIHsgfTsKKyAgICAvLyBN
ZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UKKworICAgIC8vIEZJWE1FKDE0Njg1Myk6IEltcGxl
bWVudCBuZWNlc3NhcnkgY29uZm9ybWF0aW9ucyB0byBzdGFuZGFyZCBpbiBIVE1MTWVkaWFFbGVt
ZW50IGZvciBNZWRpYVN0cmVhbQorCisgICAgdm9pZCBsb2FkKGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOwogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpCi0gICAgdm9pZCBsb2FkKGNvbnN0IFN0cmlu
ZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlIHsgfTsKKyAgICB2b2lkIGxv
YWQoY29uc3QgU3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50Kikgb3ZlcnJpZGU7CiAj
ZW5kaWYKLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogICAgIHZvaWQgbG9hZChNZWRpYVN0cmVh
bVByaXZhdGUmKSBvdmVycmlkZTsKLSNlbmRpZgogICAgIHZvaWQgY2FuY2VsTG9hZCgpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBwcmVwYXJlVG9QbGF5KCkgb3ZlcnJpZGU7Ci0gICAgUGxhdGZvcm1N
ZWRpYSBwbGF0Zm9ybU1lZGlhKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUGxhdGZvcm1MYXllciog
cGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxz
Y3JlZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIHBsYXko
KSBvdmVycmlkZTsKLSAgICB2b2lkIHBsYXlJbnRlcm5hbCgpOwotCiAgICAgdm9pZCBwYXVzZSgp
IG92ZXJyaWRlOwotICAgIHZvaWQgcGF1c2VJbnRlcm5hbCgpOwotCiAgICAgYm9vbCBwYXVzZWQo
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSBvdmVycmlkZTsK
LSAgICBib29sIHN1cHBvcnRzTXV0aW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsg
fQorICAgIHZvaWQgaW50ZXJuYWxTZXRWb2x1bWUoZmxvYXQsIGJvb2wpOwogICAgIHZvaWQgc2V0
TXV0ZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgYm9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNv
bnN0IG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNTY2FubmluZygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2ludHJpbnNpY1NpemU7IH0KIAogICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGhhc0F1ZGlvKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHNl
dFZpc2libGUoYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWaXNpYmxlKGJvb2wpIG92ZXJy
aWRlIHsgLyogTm8tb3AgKi8gfQogCiAgICAgTWVkaWFUaW1lIGR1cmF0aW9uTWVkaWFUaW1lKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgTWVkaWFUaW1lIGN1cnJlbnRNZWRpYVRpbWUoKSBjb25zdCBv
dmVycmlkZTsKIAotICAgIHZvaWQgc2Vla1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiwg
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGUgeyB9OwotICAgIGJv
b2wgc2Vla2luZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UmF0ZURvdWJsZShkb3Vi
bGUpIG92ZXJyaWRlOworICAgIGJvb2wgc2Vla2luZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBzZWVr
YWJsZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIE1lZGlhVGltZSBtYXhNZWRpYVRpbWVTZWVrYWJs
ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIE1lZGlhVGltZSBtaW5NZWRpYVRpbWVTZWVrYWJsZSgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+
IGJ1ZmZlcmVkKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBib29sIGRpZExvYWRpbmdQcm9ncmVz
cygpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF5aW5nOyB9CiAKLSAgICB2b2lkIHNldFNpemUoY29uc3Qg
SW50U2l6ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBJbnRTaXplJikgb3Zl
cnJpZGUgeyAvKiBOby1vcCAqLyB9CiAKICAgICB2b2lkIHBhaW50KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgYm9vbCBtZXRhRGF0YUF2YWlsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTdHJlYW1Q
cml2YXRlICYmIG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6SGF2ZU1ldGFkYXRhOyB9CiAK
LSAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxv
YWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBoYXNTaW5nbGVTZWN1cml0eU9yaWdp
bigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQgcHJlcGFyZUZv
clJlbmRlcmluZygpIG92ZXJyaWRlOworICAgIE1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIG1v
dmllTG9hZFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNZWRpYVBsYXllcjo6TGl2ZVN0
cmVhbTsgfQogCiAgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICBTdHJpbmcgbGFuZ3VhZ2VPZlByaW1hcnlBdWRpb1RyYWNrKCkgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLSAgICBzaXplX3QgZXh0cmFNZW1vcnlDb3N0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
c2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAog
ICAgIGJvb2wgc2hvdWxkQmVQbGF5aW5nKCkgY29uc3Q7CiAKLSAgICBSZXRhaW5QdHI8Q0dJbWFn
ZVJlZj4gY3JlYXRlSW1hZ2VGcm9tU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmKTsKKyAg
ICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBjdXJyZW50UmVhZHlTdGF0ZSgpOworCisgICAgZW51
bSBSZW5kZXJpbmdNb2RlU3RhdHVzIHsKKyAgICAgICAgUmVuZGVyaW5nTW9kZVVuY2hhbmdlZCwK
KyAgICAgICAgUmVuZGVyaW5nTW9kZUNoYW5nZWQsCisgICAgfTsKKyAgICBSZW5kZXJpbmdNb2Rl
U3RhdHVzIHVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJik7CisKKyAgICB2b2lk
IGNyZWF0ZVByZXZpZXdMYXllcnMoKTsKKworICAgIHZvaWQgc2V0UGF1c2VkSW1hZ2VWaXNpYmxl
KGJvb2wpOworCisgICAgdm9pZCBzY2hlZHVsZURlZmVycmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZv
aWQoKT4pOwogCi0gICAgZnJpZW5kIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM7Cisg
ICAgLy8gTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlcgorICAgIHZvaWQgYWN0aXZlU3RhdHVz
Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIG92
ZXJyaWRlOwogCi0gICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyOworICAgIE1lZGlhUGxheWVyKiBt
X3BsYXllciB7IG51bGxwdHIgfTsKICAgICBXZWFrUHRyRmFjdG9yeTxNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM+IG1fd2Vha1B0ckZhY3Rvcnk7Ci0gICAgUmVmUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZUFWRk9iakM+IG1fTWVkaWFTdHJlYW1Qcml2YXRlOwotICAgIFJldGFpblB0
cjxBVkFzc2V0PiBtX2Fzc2V0OwotICAgIFJldGFpblB0cjxBVkNhcHR1cmVWaWRlb1ByZXZpZXdM
YXllcj4gbV9wcmV2aWV3TGF5ZXI7Ci0gICAgUmV0YWluUHRyPEFWU2FtcGxlQnVmZmVyRGlzcGxh
eUxheWVyPiBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjsKLSAgICBWZWN0b3I8UmV0YWluUHRy
PEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlcj4+IG1fc2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJl
cnM7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fbGFzdEltYWdlOwotICAgIFJldGFpblB0
cjxpZD4gbV90aW1lSnVtcGVkT2JzZXJ2ZXI7Ci0gICAgUmV0YWluUHRyPGlkPiBtX2R1cmF0aW9u
T2JzZXJ2ZXI7Ci0gICAgUmV0YWluUHRyPEFWU3RyZWFtU2Vzc2lvbj4gbV9zdHJlYW1TZXNzaW9u
OwotICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGU7Ci0gICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlOwotICAgIE1lZGlhVGltZSBtX2xhc3RT
ZWVrVGltZTsKLSAgICBkb3VibGUgbV9yYXRlOwotICAgIGJvb2wgbV9wbGF5aW5nOwotICAgIGJv
b2wgbV9zZWVraW5nOwotICAgIGJvb2wgbV9zZWVrQ29tcGxldGVkOwotICAgIG11dGFibGUgYm9v
bCBtX2xvYWRpbmdQcm9ncmVzc2VkOworICAgIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IG1f
bWVkaWFTdHJlYW1Qcml2YXRlOworICAgIG11dGFibGUgUmV0YWluUHRyPENBTGF5ZXI+IG1fcHJl
dmlld0xheWVyOworICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9C
YWNrZ3JvdW5kTGF5ZXI7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcGF1c2VkSW1hZ2U7
CisgICAgc3RkOjp1bmlxdWVfcHRyPENsb2NrPiBtX2Nsb2NrOworICAgIE1lZGlhUGxheWVyOjpO
ZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGUgeyBNZWRpYVBsYXllcjo6RW1wdHkgfTsKKyAgICBN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBtX3JlYWR5U3RhdGUgeyBNZWRpYVBsYXllcjo6SGF2ZU5v
dGhpbmcgfTsKKyAgICBGbG9hdFNpemUgbV9pbnRyaW5zaWNTaXplOworICAgIGZsb2F0IG1fdm9s
dW1lIHsgMSB9OworICAgIGJvb2wgbV9wbGF5aW5nIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbXV0
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV93YWl0aW5nRm9yTmV3RnJhbWUge2ZhbHNlIH07Cisg
ICAgYm9vbCBtX2hhdmVFdmVyUGxheWVkIHsgZmFsc2UgfTsKIH07CiAgICAgCiB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDE4ICsyOCwxNCBA
QAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAorI2lt
cG9ydCAiQVZBdWRpb0NhcHR1cmVTb3VyY2UuaCIKICNpbXBvcnQgIkFWVmlkZW9DYXB0dXJlU291
cmNlLmgiCi0jaW1wb3J0ICJGaWxlU3lzdGVtLmgiCisjaW1wb3J0ICJDbG9jay5oIgorI2ltcG9y
dCAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJNZWRp
YVN0cmVhbVByaXZhdGUuaCIKLSNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaCIK
LSNpbXBvcnQgIk1lZGlhVGltZUFWRm91bmRhdGlvbi5oIgotI2ltcG9ydCAiUGxhdGZvcm1DbG9j
a0NNLmgiCi0jaW1wb3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCi0jaW1wb3J0IDxBVkZv
dW5kYXRpb24vQVZBc3NldC5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ2FwdHVyZVZpZGVv
UHJldmlld0xheWVyLmg+Ci0jaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZUaW1lLmg+CiAjaW1wb3J0
IDxRdWFydHpDb3JlL0NBTGF5ZXIuaD4KKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FUcmFuc2FjdGlv
bi5oPgogI2ltcG9ydCA8b2JqY19ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5o
PgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC01MCwxOCArNDYsNiBAQAogCiBT
T0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIAotU09GVF9MSU5LX0NM
QVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZBc3NldCkKLVNPRlRfTElOS19DTEFTU19PUFRJ
T05BTChBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVZpZGVvUHJldmlld0xheWVyKQotU09GVF9MSU5L
X0NMQVNTX09QVElPTkFMKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldCkKLVNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWU3RyZWFtU2Vzc2lvbik7Ci0KLSNwcmFnbWEgbWFy
ayAtCi0jcHJhZ21hIG1hcmsgQVZTdHJlYW1TZXNzaW9uCi0KLUBpbnRlcmZhY2UgQVZTdHJlYW1T
ZXNzaW9uIDogTlNPYmplY3QKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFN0b3JhZ2VEaXJlY3Rv
cnlBdFVSTDooTlNVUkwgKilzdG9yYWdlRGlyZWN0b3J5OwotQGVuZAotCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICNwcmFnbWEgbWFyayAtCkBAIC03MCwxOSArNTQsMTYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoTWVkaWFQbGF5ZXIqIHBsYXllcikKICAgICA6IG1f
cGxheWVyKHBsYXllcikKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAgICAsIG1fbmV0
d29ya1N0YXRlKE1lZGlhUGxheWVyOjpJZGxlKQotICAgICwgbV9yZWFkeVN0YXRlKE1lZGlhUGxh
eWVyOjpIYXZlTm90aGluZykKLSAgICAsIG1fcmF0ZSgxKQotICAgICwgbV9wbGF5aW5nKDApCi0g
ICAgLCBtX3NlZWtpbmcoZmFsc2UpCi0gICAgLCBtX3NlZWtDb21wbGV0ZWQodHJ1ZSkKLSAgICAs
IG1fbG9hZGluZ1Byb2dyZXNzZWQoZmFsc2UpCisgICAgLCBtX2Nsb2NrKENsb2NrOjpjcmVhdGUo
KSkKIHsKLQorICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCVwKSIsIHRoaXMpOwog
fQogCiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMoKQogeworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6fk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQyglcCkiLCB0aGlzKTsKKyAgICBpZiAobV9tZWRpYVN0cmVhbVByaXZhdGUpCisgICAg
ICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKICNw
cmFnbWEgbWFyayAtCkBAIC05NywyOSArNzgsMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iagogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6aXNBdmFpbGFibGUoKQogewotICAgIHJldHVybiBBVkZvdW5kYXRpb25MaWJyYXJ5KCkK
LSAgICAgICAgJiYgaXNDb3JlTWVkaWFGcmFtZXdvcmtBdmFpbGFibGUoKTsKLX0KLQotc3RhdGlj
IGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgbWltZVR5cGVDYWNoZSgpCi17Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gY2FjaGU7Ci0gICAgc3RhdGljIGJvb2wgdHlw
ZUxpc3RJbml0aWFsaXplZCA9IGZhbHNlOwotCi0gICAgaWYgKHR5cGVMaXN0SW5pdGlhbGl6ZWQp
Ci0gICAgICAgIHJldHVybiBjYWNoZTsKLSAgICB0eXBlTGlzdEluaXRpYWxpemVkID0gdHJ1ZTsK
LQotICAgIE5TQXJyYXkgKnR5cGVzID0gW2dldEFWVVJMQXNzZXRDbGFzcygpIGF1ZGlvdmlzdWFs
TUlNRVR5cGVzXTsKLSAgICBmb3IgKE5TU3RyaW5nICptaW1lVHlwZSBpbiB0eXBlcykKLSAgICAg
ICAgY2FjaGUuZ2V0KCkuYWRkKG1pbWVUeXBlKTsKLQotICAgIHJldHVybiBjYWNoZTsKKyAgICBy
ZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeSgpICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxh
YmxlKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpn
ZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mIHR5cGVzKQogewotICAgIHR5cGVzID0g
bWltZVR5cGVDYWNoZSgpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoU2V0PFN0cmlu
Zz4+IGNhY2hlOworICAgIHR5cGVzID0gY2FjaGU7CiB9CiAKIE1lZGlhUGxheWVyOjpTdXBwb3J0
c1R5cGUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1R5cGUo
Y29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycykKQEAgLTEzMywx
NDYgKzk4LDE3NCBAQCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIE1lZGlhUGxheWVyUHJpCiAj
cHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSBP
dmVycmlkZXMKIAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omxv
YWQoY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBUaGlzIG1lZGlhIGVuZ2luZSBvbmx5IHN1cHBv
cnRzIE1lZGlhU3RyZWFtIFVSTHMuCisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsK
KyAgICAgICAgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CisgICAg
fSk7Cit9CisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OmxvYWQoY29uc3QgU3RyaW5nJiwgTWVkaWFTb3VyY2VQcml2
YXRlQ2xpZW50KikKK3sKKyAgICAvLyBUaGlzIG1lZGlhIGVuZ2luZSBvbmx5IHN1cHBvcnRzIE1l
ZGlhU3RyZWFtIFVSTHMuCisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAg
ICAgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CisgICAgfSk7Cit9
CisjZW5kaWYKKwogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omxv
YWQoTWVkaWFTdHJlYW1Qcml2YXRlJiBzdHJlYW0pCiB7CiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKCVwKSIsIHRoaXMpOwogCi0gICAg
bV9NZWRpYVN0cmVhbVByaXZhdGUgPSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpjcmVhdGUo
KnRoaXMsIHN0cmVhbSk7Ci0gICAgZm9yIChhdXRvIHRyYWNrIDogc3RyZWFtLnRyYWNrcygpKSB7
Ci0gICAgICAgIG1fTWVkaWFTdHJlYW1Qcml2YXRlLT5hZGRUcmFjayhXVEY6Om1vdmUodHJhY2sp
KTsKLSAgICAgICAgaWYgKCF0cmFjay0+ZW5kZWQoKSkgewotICAgICAgICAgICAgdHJhY2stPnNv
dXJjZSgpLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKLSAgICAgICAgICAgIHRyYWNrLT5zZXRFbmFi
bGVkKHRydWUpOwotICAgICAgICB9Ci0gICAgfQorICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlID0g
JnN0cmVhbTsKKyAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwor
ICAgIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKKwogICAgIG1f
cHJldmlld0xheWVyID0gbnVsbHB0cjsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0
cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKQotICAgICAgICAgICAgbV9wcmV2aWV3TGF5
ZXIgPSBzdGF0aWNfY2FzdDxBVlZpZGVvQ2FwdHVyZVNvdXJjZSo+KHRyYWNrLT5zb3VyY2UoKSkt
PnByZXZpZXdMYXllcigpOwotICAgIH0KLSAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5
ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZChtX3BsYXllcik7CisKKyAgICBzY2hlZHVsZURlZmVycmVk
VGFzayhbdGhpc10geworICAgICAgICBzZXROZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OklkbGUp
OworICAgICAgICBpZiAobV9yZWFkeVN0YXRlIDwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGU6Okhh
dmVNZXRhZGF0YSkKKyAgICAgICAgICAgIHRoaXMtPnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGU6OkhhdmVNZXRhZGF0YSk7CisgICAgfSk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCkKIHsKKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNhbmNlbExvYWQoJXAp
IiwgdGhpcyk7CisgICAgcGF1c2UoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakM6OnByZXBhcmVUb1BsYXkoKQogewotfQotCi1QbGF0Zm9ybU1lZGlhIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0
Ci17Ci0gICAgUGxhdGZvcm1NZWRpYSBwbTsKLSAgICBwbS50eXBlID0gUGxhdGZvcm1NZWRpYTo6
QVZGb3VuZGF0aW9uQXNzZXRUeXBlOwotICAgIHBtLm1lZGlhLmF2ZkFzc2V0ID0gbV9hc3NldC5n
ZXQoKTsKLSAgICByZXR1cm4gcG07CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCVwKSIsIHRoaXMpOwogfQogCiBQbGF0
Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3Jt
TGF5ZXIoKSBjb25zdAogewotICAgIGlmICghbV9wcmV2aWV3TGF5ZXIpCisgICAgaWYgKCFtX3Zp
ZGVvQmFja2dyb3VuZExheWVyKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8UGxhdGZvcm1MYXllcio+KG1fcHJldmlld0xheWVyKTsKKworICAgIHJldHVy
biBtX3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6c2V0UGF1c2VkSW1hZ2VWaXNpYmxlKGJvb2wgdmlzaWJsZSkKIHsK
LSAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIGNhbGxPbk1haW5UaHJl
YWQoW3dlYWtUaGlzXSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIHdlYWtUaGlzLmdldCgpLT5wbGF5SW50ZXJuYWwoKTsKLSAgICB9KTsKKyAg
ICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgIW1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIGlmICh2aXNpYmxlID09IG1fcHJldmlld0xheWVyLmdldCgp
LmhpZGRlbikKKyAgICAgICAgcmV0dXJuOworCisgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwor
ICAgIFtDQVRyYW5zYWN0aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOjBdOworICAgIFtDQVRyYW5z
YWN0aW9uIHNldERpc2FibGVBY3Rpb25zOllFU107CisKKyAgICBkbyB7CisgICAgICAgIGlmICh2
aXNpYmxlKSB7CisgICAgICAgICAgICBtX2Nsb2NrLT5zdG9wKCk7CisKKyAgICAgICAgICAgIFJl
ZlB0cjxJbWFnZT4gaW1hZ2UgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+Y3VycmVudEZyYW1lSW1h
Z2UoKTsKKyAgICAgICAgICAgIGlmICghaW1hZ2UpCisgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgIG1fcGF1c2VkSW1hZ2UgPSBpbWFnZS0+Z2V0Q0dJbWFnZVJlZigpOworICAg
ICAgICAgICAgaWYgKCFtX3BhdXNlZEltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgICBtX3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpLmNvbnRlbnRzID0gKGlkKW1f
cGF1c2VkSW1hZ2UuZ2V0KCk7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRk
ZW4gPSB0cnVlOworICAgICAgICAgICAgbV93YWl0aW5nRm9yTmV3RnJhbWUgPSBmYWxzZTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGlmICghbV9tZWRpYVN0cmVhbVByaXZhdGUtPmlz
UHJvZHVjaW5nRGF0YSgpKSB7CisgICAgICAgICAgICAgICAgbV93YWl0aW5nRm9yTmV3RnJhbWUg
PSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBtX2Nsb2NrLT5zdGFydCgpOworICAgICAgICAgICAgbV93YWl0aW5nRm9yTmV3RnJhbWUg
PSBmYWxzZTsKKyAgICAgICAgICAgIG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbiA9IGZhbHNl
OworICAgICAgICAgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5jb250ZW50cyA9IG5p
bDsKKyAgICAgICAgICAgIG1fcGF1c2VkSW1hZ2UgPSBudWxscHRyOworICAgICAgICB9CisgICAg
fSB3aGlsZSAoMCk7CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCi12b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheUludGVybmFsKCkKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF5KCkKIHsKLSAgICBtX3Bs
YXlpbmcgPSB0cnVlOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGxheSglcCkiLCB0aGlzKTsKIAotICAgIGZvciAoYXV0byYgdHJhY2sgOiBt
X01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCkpCi0gICAgICAgIHRyYWNrLT5zb3VyY2UoKS0+
c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3BsYXlpbmcgPSB0cnVlOworICAgIG1faGF2ZUV2ZXJQbGF5
ZWQgPSB0cnVlOworICAgIHNldFBhdXNlZEltYWdlVmlzaWJsZShmYWxzZSk7CiB9CiAKIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYXVzZSgpCiB7Ci0gICAgYXV0
byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3ZWFr
VGhpc10gewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB3ZWFrVGhpcy5nZXQoKS0+cGF1c2VJbnRlcm5hbCgpOwotICAgIH0pOwotfQorICAgIExP
RyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoJXAp
IiwgdGhpcyk7CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpw
YXVzZUludGVybmFsKCkKLXsKLSAgICBtX3BsYXlpbmcgPSBmYWxzZTsKKyAgICBpZiAoIW1ldGFE
YXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoYXV0byYgdHJhY2sg
OiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCkpCi0gICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUodHJ1ZSk7
CisgICAgbV9wbGF5aW5nID0gZmFsc2U7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpwYXVzZWQoKSBjb25zdAogewotICAgIC8vIFNob3VsZG4ndCBiZSBh
YmxlIHRvIHBhdXNlIHN0cmVhbXMKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuICFtX3Bs
YXlpbmc7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpz
ZXRWb2x1bWUoZmxvYXQpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6aW50ZXJuYWxTZXRWb2x1bWUoZmxvYXQgdm9sdW1lLCBib29sIGludGVybmFsKQogeworICAg
IGlmICghaW50ZXJuYWwpCisgICAgICAgIG1fdm9sdW1lID0gdm9sdW1lOworCisgICAgaWYgKCFt
ZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBGSVhNRTogU2V0
IHZvbHVtZSBvbmNlIHdlIGFjdHVhbGx5IHBsYXkgYXVkaW8uCiB9CiAKLWJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c1NjYW5uaW5nKCkgY29uc3QKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWb2x1bWUoZmxvYXQg
dm9sdW1lKQogewotICAgIHJldHVybiB0cnVlOworICAgIGludGVybmFsU2V0Vm9sdW1lKHZvbHVt
ZSwgZmFsc2UpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2Jq
Qzo6c2V0TXV0ZWQoYm9vbCBtdXRlZCkKIHsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvKQotICAgICAgICAgICAgdHJhY2stPnNv
dXJjZSgpLT5zZXRNdXRlZChtdXRlZCk7Ci0gICAgfQotfQorICAgIExPRyhNZWRpYSwgIk1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TXV0ZWQoJXApIiwgdGhpcyk7CiAK
LUZsb2F0U2l6ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5hdHVyYWxT
aXplKCkgY29uc3QKLXsKLSAgICBGbG9hdFNpemUgZmxvYXRTaXplKDAsIDApOwotICAgIGZvciAo
YXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tzKCkpIHsKLSAgICAgICAg
aWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pIHsK
LSAgICAgICAgICAgIEFWVmlkZW9DYXB0dXJlU291cmNlKiBzb3VyY2UgPSAoQVZWaWRlb0NhcHR1
cmVTb3VyY2UqKXRyYWNrLT5zb3VyY2UoKTsKLSAgICAgICAgICAgIGlmICghc291cmNlLT5zdG9w
cGVkKCkgJiYgdHJhY2stPmVuYWJsZWQoKSkgewotICAgICAgICAgICAgICAgIGlmIChzb3VyY2Ut
PndpZHRoKCkgPiBmbG9hdFNpemUud2lkdGgoKSkKLSAgICAgICAgICAgICAgICAgICAgZmxvYXRT
aXplLnNldFdpZHRoKHNvdXJjZS0+d2lkdGgoKSk7Ci0gICAgICAgICAgICAgICAgaWYgKHNvdXJj
ZS0+aGVpZ2h0KCkgPiBmbG9hdFNpemUuaGVpZ2h0KCkpCi0gICAgICAgICAgICAgICAgICAgIGZs
b2F0U2l6ZS5zZXRIZWlnaHQoc291cmNlLT5oZWlnaHQoKSk7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZsb2F0U2l6ZTsKKyAgICBpZiAobXV0ZWQgPT0gbV9t
dXRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tdXRlZCA9IG11dGVkOworICAgIAorICAg
IGludGVybmFsU2V0Vm9sdW1lKG11dGVkID8gMCA6IG1fdm9sdW1lLCB0cnVlKTsKIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omhhc1ZpZGVvKCkgY29uc3QK
IHsKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygp
KSB7Ci0gICAgICAgIGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGU6OlZpZGVvKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICByZXR1cm4gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmhhc1ZpZGVvKCk7CiB9
CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNBdWRpbygp
IGNvbnN0CiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50
cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpzZXRWaXNpYmxlKGJvb2wpCi17Ci0gICAgLy8gTm8tb3AuCisgICAgaWYgKCFtZXRhRGF0
YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIG1f
bWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNBdWRpbygpOwogfQogCiBNZWRpYVRpbWUgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0CkBA
IC0yODIsMTkgKzI3NSw3IEBAIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUEKIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3Vy
cmVudE1lZGlhVGltZSgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUUoMTQ3MTI1KTogTXVzdCBpbXBs
ZW1lbnQgdGhpcyBsYXRlcgotICAgIHJldHVybiBNZWRpYVRpbWU6Onplcm9UaW1lKCk7Ci19Ci0K
LWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZWVraW5nKCkgY29u
c3QKLXsKLSAgICAvLyBNZWRpYVN0cmVhbSBpcyB1bnNlZWthYmxlCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0UmF0
ZURvdWJsZShkb3VibGUpCi17Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZTsgdGhl
cmVmb3JlLCBjYW5ub3Qgc2V0IHJhdGUKKyAgICByZXR1cm4gTWVkaWFUaW1lOjpjcmVhdGVXaXRo
RG91YmxlKG1fY2xvY2stPmN1cnJlbnRUaW1lKCkpOwogfQogCiBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bmV0d29ya1N0YXRl
KCkgY29uc3QKQEAgLTMwNyw4NSArMjg4LDEyOSBAQCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBN
ZWRpYVBsYXllclByaXZhCiAgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKIH0KIAotdm9pZCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNpemVDaGFuZ2VkKCkKK01lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3Vy
cmVudFJlYWR5U3RhdGUoKQogewotICAgIG1fcGxheWVyLT5zaXplQ2hhbmdlZCgpOwotfQorICAg
IGlmIChtX21lZGlhU3RyZWFtUHJpdmF0ZSkgeworICAgICAgICBpZiAobV9tZWRpYVN0cmVhbVBy
aXZhdGUtPmFjdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpSZWFkeVN0
YXRlOjpIYXZlRW5vdWdoRGF0YTsKIAotc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZWVrYWJsZSgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPihtaW5N
ZWRpYVRpbWVTZWVrYWJsZSgpLCBtYXhNZWRpYVRpbWVTZWVrYWJsZSgpKTsKLX0KKyAgICAgICAg
cmV0dXJuIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlQ3VycmVudERhdGE7CisgICAgfQog
Ci1NZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjptYXhNZWRp
YVRpbWVTZWVrYWJsZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGR1cmF0aW9uTWVkaWFUaW1lKCk7
CisgICAgcmV0dXJuIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTm90aGluZzsKIH0KIAot
TWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWluTWVkaWFU
aW1lU2Vla2FibGUoKSBjb25zdAordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OmFjdGl2ZVN0YXR1c0NoYW5nZWQoKQogewotICAgIHJldHVybiBzdGFydFRpbWUoKTsK
LX0KKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBuZXdSZWFkeVN0YXRlID0gY3VycmVudFJl
YWR5U3RhdGUoKTsKIAotc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpidWZmZXJlZCgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOworICAgIHNjaGVk
dWxlRGVmZXJyZWRUYXNrKFt0aGlzLCBuZXdSZWFkeVN0YXRlXSB7CisgICAgICAgIGlmIChuZXdS
ZWFkeVN0YXRlICE9IG1fcmVhZHlTdGF0ZSkKKyAgICAgICAgICAgIHNldFJlYWR5U3RhdGUobmV3
UmVhZHlTdGF0ZSk7CisgICAgfSk7CiB9CiAKLWJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmpDOjpkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBjb25zdAorTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpSZW5kZXJpbmdNb2RlU3RhdHVzIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRlSW50cmluc2ljU2l6ZShjb25zdCBGbG9hdFNp
emUmIHNpemUpCiB7Ci0gICAgYm9vbCBsb2FkaW5nUHJvZ3Jlc3NlZCA9IG1fbG9hZGluZ1Byb2dy
ZXNzZWQ7Ci0gICAgbV9sb2FkaW5nUHJvZ3Jlc3NlZCA9IGZhbHNlOwotICAgIHJldHVybiBsb2Fk
aW5nUHJvZ3Jlc3NlZDsKLX0KKyAgICBpZiAoc2l6ZSA9PSBtX2ludHJpbnNpY1NpemUpCisgICAg
ICAgIHJldHVybiBSZW5kZXJpbmdNb2RlVW5jaGFuZ2VkOwogCi12b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0U2l6ZShjb25zdCBJbnRTaXplJikKLXsKLSAgICAv
LyBOby1vcC4KKyAgICBtX2ludHJpbnNpY1NpemUgPSBzaXplOworCisgICAgaWYgKG1fdmlkZW9C
YWNrZ3JvdW5kTGF5ZXIgfHwgIW1fcGxheWVyIHx8ICFtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQ
bGF5ZXJSZW5kZXJpbmdDYW5CZUFjY2VsZXJhdGVkKG1fcGxheWVyKSkKKyAgICAgICAgcmV0dXJu
IFJlbmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRl
IHx8ICFtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cGxhdGZvcm1MYXllcigpKQorICAgICAgICByZXR1
cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKKworICAgIGNyZWF0ZVByZXZpZXdMYXllcnMoKTsK
KworICAgIHJldHVybiBSZW5kZXJpbmdNb2RlQ2hhbmdlZDsKIH0KIAotUmV0YWluUHRyPENHSW1h
Z2VSZWY+IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlSW1hZ2VG
cm9tU2FtcGxlQnVmZmVyKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZUJ1ZmZlcikKK3ZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjcmVhdGVQcmV2aWV3TGF5ZXJzKCkK
IHsKLSAgICBDVlBpeGVsQnVmZmVyUmVmIGltYWdlQnVmZmVyID0gc3RhdGljX2Nhc3Q8Q1ZQaXhl
bEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihzYW1wbGVCdWZmZXIpKTsK
LSAgICBDVlBpeGVsQnVmZmVyTG9ja0Jhc2VBZGRyZXNzKGltYWdlQnVmZmVyLCAwKTsKLSAgICAK
LSAgICB2b2lkICpiYXNlQWRkcmVzcyA9IENWUGl4ZWxCdWZmZXJHZXRCYXNlQWRkcmVzcyhpbWFn
ZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IGJ5dGVzUGVyUm93ID0gQ1ZQaXhlbEJ1ZmZlckdldEJ5dGVz
UGVyUm93KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3Qgd2lkdGggPSBDVlBpeGVsQnVmZmVyR2V0
V2lkdGgoaW1hZ2VCdWZmZXIpOwotICAgIHNpemVfdCBoZWlnaHQgPSBDVlBpeGVsQnVmZmVyR2V0
SGVpZ2h0KGltYWdlQnVmZmVyKTsKLSAgICAKLSAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVm
PiBjb2xvclNwYWNlID0gYWRvcHRDRihDR0NvbG9yU3BhY2VDcmVhdGVEZXZpY2VSR0IoKSk7Ci0g
ICAgUmV0YWluUHRyPENHRGF0YVByb3ZpZGVyUmVmPiBwcm92aWRlciA9IGFkb3B0Q0YoQ0dEYXRh
UHJvdmlkZXJDcmVhdGVXaXRoRGF0YShOVUxMLCBiYXNlQWRkcmVzcywgYnl0ZXNQZXJSb3cgKiBo
ZWlnaHQsIE5VTEwpKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gcXVhcnR6SW1hZ2UgPSBh
ZG9wdENGKENHSW1hZ2VDcmVhdGUod2lkdGgsIGhlaWdodCwgOCwgMzIsIGJ5dGVzUGVyUm93LCBj
b2xvclNwYWNlLmdldCgpLCBrQ0dCaXRtYXBCeXRlT3JkZXIzMkxpdHRsZSB8IGtDR0ltYWdlQWxw
aGFQcmVtdWx0aXBsaWVkRmlyc3QsIHByb3ZpZGVyLmdldCgpLCBOVUxMLCB0cnVlLCBrQ0dSZW5k
ZXJpbmdJbnRlbnREZWZhdWx0KSk7Ci0gICAgCi0gICAgQ1ZQaXhlbEJ1ZmZlclVubG9ja0Jhc2VB
ZGRyZXNzKGltYWdlQnVmZmVyLCAwKTsKLSAgICAKLSAgICByZXR1cm4gcXVhcnR6SW1hZ2U7Cisg
ICAgaWYgKG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
dmlkZW9CYWNrZ3JvdW5kTGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwor
I2lmbmRlZiBOREVCVUcKKyAgICBtX3ZpZGVvQmFja2dyb3VuZExheWVyLmdldCgpLm5hbWUgPSBA
Ik1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyBwcmV2aWV3IGJhY2tncm91bmQg
bGF5ZXIiOworI2VuZGlmCisKKyAgICBtX3ByZXZpZXdMYXllciA9IG1fbWVkaWFTdHJlYW1Qcml2
YXRlLT5wbGF0Zm9ybUxheWVyKCk7CisgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuY29udGVudHNH
cmF2aXR5ID0ga0NBR3Jhdml0eVJlc2l6ZTsKKyAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5hbmNo
b3JQb2ludCA9IENHUG9pbnRaZXJvOworI2lmICFQTEFURk9STShJT1MpCisgICAgbV9wcmV2aWV3
TGF5ZXIuZ2V0KCkuYXV0b3Jlc2l6aW5nTWFzayA9IGtDQUxheWVyV2lkdGhTaXphYmxlIHwga0NB
TGF5ZXJIZWlnaHRTaXphYmxlOworI2VuZGlmCisgICAgaWYgKCFtX3BsYXlpbmcpCisgICAgICAg
IG1fcHJldmlld0xheWVyLmdldCgpLmhpZGRlbiA9IHRydWU7CisKKyAgICBbbV92aWRlb0JhY2tn
cm91bmRMYXllciBhZGRTdWJsYXllcjptX3ByZXZpZXdMYXllci5nZXQoKV07CiB9CiAKLXZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwYWludChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCkKIHsKLSAgICBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0KTsKKyAgICBSZW5kZXJpbmdN
b2RlU3RhdHVzIHN0YXR1cyA9IFJlbmRlcmluZ01vZGVVbmNoYW5nZWQ7CisgICAgYm9vbCBzaXpl
Q2hhbmdlZCA9IGZhbHNlOworCisgICAgRmxvYXRTaXplIGludHJpbnNpY1NpemUgPSBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aW50cmluc2ljU2l6ZSgpOworICAgIGlmIChpbnRyaW5zaWNTaXplLmhl
aWdodCgpICE9IG1faW50cmluc2ljU2l6ZS5oZWlnaHQoKSB8fCBpbnRyaW5zaWNTaXplLndpZHRo
KCkgIT0gbV9pbnRyaW5zaWNTaXplLndpZHRoKCkpIHsKKyAgICAgICAgc3RhdHVzID0gdXBkYXRl
SW50cmluc2ljU2l6ZShpbnRyaW5zaWNTaXplKTsKKyAgICAgICAgc2l6ZUNoYW5nZWQgPSB0cnVl
OworICAgIH0KKworICAgIGlmIChtX3dhaXRpbmdGb3JOZXdGcmFtZSAmJiBtX21lZGlhU3RyZWFt
UHJpdmF0ZS0+aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgIHNldFBhdXNlZEltYWdlVmlzaWJs
ZShmYWxzZSk7CisKKyAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBuZXdSZWFkeVN0YXRlID0g
Y3VycmVudFJlYWR5U3RhdGUoKTsKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpcywgc2l6
ZUNoYW5nZWQsIG5ld1JlYWR5U3RhdGUsIHN0YXR1c10geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworCisgICAgICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgbV9wbGF5ZXItPmNoYXJhY3RlcmlzdGljQ2hhbmdlZCgpOworICAgICAgICBpZiAo
c2l6ZUNoYW5nZWQpIHsKKyAgICAgICAgICAgIG1fcGxheWVyLT5zaXplQ2hhbmdlZCgpOworICAg
ICAgICAgICAgaWYgKHN0YXR1cyA9PSBSZW5kZXJpbmdNb2RlQ2hhbmdlZCkKKyAgICAgICAgICAg
ICAgICBtX3BsYXllci0+Y2xpZW50KCkubWVkaWFQbGF5ZXJSZW5kZXJpbmdNb2RlQ2hhbmdlZCht
X3BsYXllcik7CisgICAgICAgIH0KKyAgICB9KTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1l
UmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNlZWthYmxlKCkg
Y29uc3QKIHsKLSAgICAvLyBGSVhNRSgxMjUxNTcpOiBJbXBsZW1lbnQgcGFpbnRpbmcuCisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFuZ2VzPigpOwogfQogCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNBY2NlbGVyYXRl
ZFJlbmRlcmluZygpIGNvbnN0CitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmJ1ZmZlcmVkKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQbGF0Zm9ybVRp
bWVSYW5nZXM+KCk7CiB9CiAKLU1lZGlhUGxheWVyOjpNb3ZpZUxvYWRUeXBlIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bW92aWVMb2FkVHlwZSgpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIE1lZGlhUGxh
eWVyOjpMaXZlU3RyZWFtOworICAgIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQs
IHJlY3QpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
cHJlcGFyZUZvclJlbmRlcmluZygpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgLy8gTm8tb3AuCisgICAgaWYgKCFt
ZXRhRGF0YUF2YWlsYWJsZSgpIHx8IGNvbnRleHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFtX2hh
dmVFdmVyUGxheWVkKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9wbGF5aW5nKQorICAg
ICAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29u
dGV4dCwgcmVjdCk7CisgICAgZWxzZSBpZiAobV9wYXVzZWRJbWFnZSkgeworICAgICAgICBHcmFw
aGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisgICAgICAgIGNvbnRl
eHQudHJhbnNsYXRlKHJlY3QueCgpLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpOworICAgICAg
ICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAtMSkpOworICAgICAgICBjb250ZXh0LnNldElt
YWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxvdyk7CisgICAgICAgIEludFJl
Y3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRTaXplKHJlY3Qud2lkdGgoKSwgcmVjdC5o
ZWlnaHQoKSkpOworICAgICAgICBDR0NvbnRleHREcmF3SW1hZ2UoY29udGV4dC5wbGF0Zm9ybUNv
bnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lkdGgoKSwgcGFpbnRSZWN0Lmhl
aWdodCgpKSwgbV9wYXVzZWRJbWFnZS5nZXQoKSk7CisgICAgfQogfQogCiBTdHJpbmcgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0
CkBAIC0zOTQsMTcgKzQxOSw2IEBAIFN0cmluZyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk8KICAgICByZXR1cm4gZGVzY3JpcHRpb247CiB9CiAKLVN0cmluZyBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNv
bnN0Ci17Ci0gICAgLy8gRklYTUUoMTI1MTU4KTogaW1wbGVtZW50IGxhbmd1YWdlT2ZQcmltYXJ5
QXVkaW9UcmFjaygpCi0gICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7Ci19Ci0KLXNpemVfdCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpzaG91bGRCZVBsYXlpbmcoKSBjb25zdAogewogICAgIHJldHVybiBtX3BsYXlp
bmcgJiYgbV9yZWFkeVN0YXRlID49IE1lZGlhUGxheWVyOjpIYXZlRnV0dXJlRGF0YTsKQEAgLTQy
MCw2ICs0MzQsMjcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iagog
ICAgIG1fcGxheWVyLT5yZWFkeVN0YXRlQ2hhbmdlZCgpOwogfQogCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpO
ZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKQoreworICAgIGlmIChtX25ldHdvcmtTdGF0ZSA9PSBu
ZXR3b3JrU3RhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbmV0d29ya1N0YXRlID0gbmV0
d29ya1N0YXRlOworICAgIG1fcGxheWVyLT5uZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Cit9CisKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzY2hlZHVsZURlZmVycmVk
VGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKGZ1bmN0
aW9uKTsKKyAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGNhbGxPbk1h
aW5UaHJlYWQoW3dlYWtUaGlzLCBmdW5jdGlvbl0geworICAgICAgICBpZiAoIXdlYWtUaGlzKQor
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgfSk7Cit9CisK
IH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFT
dHJlYW1Qcml2YXRlQVZGT2JqQy5oCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVB
VkZPYmpDLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTWVkaWFTdHJlYW1Qcml2YXRl
QVZGT2JqQ19oCi0jZGVmaW5lIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakNfaAotCi0jaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2luY2x1ZGUgIk1lZGlh
UGxheWVyLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTWVkaWFU
aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNf
Q0xBU1MgQVZTdHJlYW1EYXRhUGFyc2VyOwotT0JKQ19DTEFTUyBOU0Vycm9yOwotT0JKQ19DTEFT
UyBOU09iamVjdDsKLXR5cGVkZWYgc3RydWN0IG9wYXF1ZUNNU2FtcGxlQnVmZmVyICpDTVNhbXBs
ZUJ1ZmZlclJlZjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDRE1TZXNzaW9uOwot
Y2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOwotY2xhc3MgTWVkaWFT
dHJlYW1Qcml2YXRlOwotY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50OwotY2xhc3MgUGxh
dGZvcm1UaW1lUmFuZ2VzOwotY2xhc3MgVGltZVJhbmdlczsKLQotY2xhc3MgTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBNZWRpYVN0cmVhbVByaXZhdGUgewotcHVibGlj
OgotICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQz4gY3JlYXRlKE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYp
OwotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoKTsKLQotICAgIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyogcGxheWVyKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF5ZXI7IH0KLQotICAgIHZpcnR1YWwgTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGll
bnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudC5nZXQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDbGllbnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBj
bGllbnQ7IH0KLQotICAgIE1lZGlhVGltZSBkdXJhdGlvbigpOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7Ci0KLSAgICBib29sIGhhc0F1ZGlvKCkg
Y29uc3Q7Ci0gICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRSZWFkeVN0
YXRlKE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlKTsKLSAgICBGbG9hdFNpemUgbmF0dXJhbFNpemUo
KSBjb25zdDsKLQotICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25z
dDsKLQotcHJpdmF0ZToKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYsIE1lZGlhU3RyZWFtUHJpdmF0ZSYpOwotCi0gICAg
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKiBtX3BsYXllcjsKLSAgICBSZWZQ
dHI8TWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50PiBtX2NsaWVudDsKLX07Ci0gICAgCi19Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotCi0jZW5k
aWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMSw5OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYm
IFVTRShBVkZPVU5EQVRJT04pCi0KLSNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCi0jaW1wb3J0ICJF
eGNlcHRpb25Db2RlUGxhY2Vob2xkZXIuaCIKLSNpbXBvcnQgIk1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5oIgotI2ltcG9ydCAiTWVkaWFTdHJlYW1Qcml2YXRlLmgiCi0jaW1w
b3J0ICJTb2Z0TGlua2luZy5oIgotI2ltcG9ydCAiU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
aCIKLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgotI2ltcG9ydCA8d3RmL3RleHQvQXRvbWljU3Ry
aW5nLmg+Ci0jaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotI3ByYWdtYSBtYXJrIC0KLSNwcmFnbWEgbWFyayBNZWRpYVN0cmVhbVByaXZh
dGVBVkZPYmpDCi0KLVJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDPiBNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDOjpjcmVhdGUoTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDJiBwYXJlbnQsIE1lZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQotewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQyhwYXJlbnQsIHN0cmVhbSkpOwot
fQotCi1NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
KE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYgcGFyZW50LCBNZWRpYVN0cmVh
bVByaXZhdGUmIHN0cmVhbSkKLSAgICA6IE1lZGlhU3RyZWFtUHJpdmF0ZSgqc3RyZWFtLmNsaWVu
dCgpKQotICAgICwgbV9wbGF5ZXIoJnBhcmVudCkKLXsKLX0KLQotTWVkaWFTdHJlYW1Qcml2YXRl
QVZGT2JqQzo6fk1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMoKQotewotfQotCi1NZWRpYVRpbWUg
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6ZHVyYXRpb24oKQotewotICAgIHJldHVybiBNZWRp
YVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybVRpbWVSYW5nZXM+IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6OmJ1ZmZlcmVkKCkKLXsK
LSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKLX0KLQot
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6cmVhZHlT
dGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5yZWFkeVN0YXRlKCk7Ci19Ci0K
LXZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKQotewotICAgIG1fcGxheWVyLT5zZXRSZWFkeVN0YXRl
KHJlYWR5U3RhdGUpOwotfQotCi1ib29sIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Omhhc0F1
ZGlvKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXItPmhhc0F1ZGlvKCk7Ci19Ci0KLWJv
b2wgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6aGFzVmlkZW8oKSBjb25zdAotewotICAgIHJl
dHVybiBtX3BsYXllci0+aGFzVmlkZW8oKTsKLX0KLQotRmxvYXRTaXplIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakM6Om5hdHVyYWxTaXplKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wbGF5ZXIt
Pm5hdHVyYWxTaXplKCk7Ci19Ci0gICAgCi19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCShyZXZp
c2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVByaXZhdGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDExLCAyMDE1IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEzIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMxLDEyICsz
MiwxNCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVh
bVByaXZhdGUuaCIKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKLSNpbmNsdWRlICJNZWRp
YVN0cmVhbVByaXZhdGUuaCIKLQorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1
ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJVVUlELmgiCisjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KIApAQCAtNjIsMjUgKzY1LDM1IEBAIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IE1lZGlh
U3RyZWFtUHIKIH0KIAogTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRpYVN0cmVhbVByaXZhdGUoY29u
c3QgU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImIHRyYWNr
cykKLSAgICA6IG1faWQoaWQpCisgICAgOiBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCisgICAgLCBt
X2lkKGlkKQogewogICAgIEFTU0VSVCghbV9pZC5pc0VtcHR5KCkpOwogCi0gICAgZm9yIChhdXRv
JiB0cmFjayA6IHRyYWNrcykKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogdHJhY2tzKSB7CisgICAg
ICAgIHRyYWNrLT5hZGRPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIG1fdHJhY2tTZXQuYWRkKHRy
YWNrLT5pZCgpLCB0cmFjayk7CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5
Q2xpZW50T3B0aW9uOjpEb250Tm90aWZ5KTsKIH0KIAotTWVkaWFTdHJlYW1Qcml2YXRlOjpNZWRp
YVN0cmVhbVByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50JiBjbGllbnQpCi0gICAgOiBt
X2NsaWVudCgmY2xpZW50KQorTWVkaWFTdHJlYW1Qcml2YXRlOjp+TWVkaWFTdHJlYW1Qcml2YXRl
KCkKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAg
ICAgdHJhY2stPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVBy
aXZhdGU6OmFkZE9ic2VydmVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVy
KQogeworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCi1NZWRpYVN0cmVh
bVByaXZhdGU6On5NZWRpYVN0cmVhbVByaXZhdGUoKQordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6
OnJlbW92ZU9ic2VydmVyKE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXImIG9ic2VydmVyKQog
ewotICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKLSAgICBtX2lzQWN0aXZlID0gZmFsc2U7CisgICAg
c2l6ZV90IHBvcyA9IG1fb2JzZXJ2ZXJzLmZpbmQoJm9ic2VydmVyKTsKKyAgICBpZiAocG9zICE9
IG5vdEZvdW5kKQorICAgICAgICBtX29ic2VydmVycy5yZW1vdmUocG9zKTsKIH0KIAogTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgTWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja3MoKSBjb25z
dApAQCAtOTQsMjEgKzEwNywyOSBAQCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciBNZWRp
YVN0cmVhCiAKIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjp1cGRhdGVBY3RpdmVTdGF0ZShOb3Rp
ZnlDbGllbnRPcHRpb24gbm90aWZ5Q2xpZW50T3B0aW9uKQogewotICAgIC8vIEEgc3RyZWFtIGlz
IGFjdGl2ZSBpZiBpdCBoYXMgYXQgbGVhc3Qgb25lIHVuLWVuZGVkIHRyYWNrLgogICAgIGJvb2wg
bmV3QWN0aXZlU3RhdGUgPSBmYWxzZTsKKyAgICBtX2FjdGl2ZVZpZGVvVHJhY2sgPSBudWxscHRy
OwogICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisKICAgICAg
ICAgaWYgKCF0cmFjay0+ZW5kZWQoKSkgewogICAgICAgICAgICAgbmV3QWN0aXZlU3RhdGUgPSB0
cnVlOwotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgp
LT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pIHsKKyAgICAgICAg
ICAgICAgICBtX2FjdGl2ZVZpZGVvVHJhY2sgPSB0cmFjay5nZXQoKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIEEgc3Ry
ZWFtIGlzIGFjdGl2ZSBpZiBpdCBoYXMgYXQgbGVhc3Qgb25lIHVuLWVuZGVkIHRyYWNrLgogICAg
IGlmIChuZXdBY3RpdmVTdGF0ZSA9PSBtX2lzQWN0aXZlKQogICAgICAgICByZXR1cm47CisKICAg
ICBtX2lzQWN0aXZlID0gbmV3QWN0aXZlU3RhdGU7CiAKLSAgICBpZiAobV9jbGllbnQgJiYgbm90
aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KQotICAgICAgICBt
X2NsaWVudC0+YWN0aXZlU3RhdHVzQ2hhbmdlZCgpOworICAgIGlmIChub3RpZnlDbGllbnRPcHRp
b24gPT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBv
YnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPmFjdGl2ZVN0YXR1
c0NoYW5nZWQoKTsKKyAgICB9CiB9CiAKIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjphZGRUcmFj
ayhSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+JiYgdHJhY2ssIE5vdGlmeUNsaWVudE9w
dGlvbiBub3RpZnlDbGllbnRPcHRpb24pCkBAIC0xMTksOCArMTQwLDEwIEBAIHZvaWQgTWVkaWFT
dHJlYW1Qcml2YXRlOjphZGRUcmFjayhSZWZQdHIKICAgICB0cmFjay0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOwogICAgIG1fdHJhY2tTZXQuYWRkKHRyYWNrLT5pZCgpLCB0cmFjayk7CiAKLSAgICBpZiAo
bV9jbGllbnQgJiYgbm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90
aWZ5KQotICAgICAgICBtX2NsaWVudC0+ZGlkQWRkVHJhY2soKnRyYWNrLmdldCgpKTsKKyAgICBp
ZiAobm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7Cisg
ICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9i
c2VydmVyLT5kaWRBZGRUcmFjaygqdHJhY2suZ2V0KCkpOworICAgIH0KIAogICAgIHVwZGF0ZUFj
dGl2ZVN0YXRlKG5vdGlmeUNsaWVudE9wdGlvbik7CiB9CkBAIC0xMzIsMTIgKzE1NSwxNDIgQEAg
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZVRyYWNrKE1lZAogCiAgICAgdHJhY2sucmVt
b3ZlT2JzZXJ2ZXIoKnRoaXMpOwogCi0gICAgaWYgKG1fY2xpZW50ICYmIG5vdGlmeUNsaWVudE9w
dGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSkKLSAgICAgICAgbV9jbGllbnQtPmRp
ZFJlbW92ZVRyYWNrKHRyYWNrKTsKKyAgICBpZiAobm90aWZ5Q2xpZW50T3B0aW9uID09IE5vdGlm
eUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7CisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKKyAgICAgICAgICAgIG9ic2VydmVyLT5kaWRSZW1vdmVUcmFjayh0cmFjayk7
CisgICAgfQogCiAgICAgdXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3Rp
ZnkpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkK
K3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkKKyAgICAgICAg
dHJhY2stPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0
ZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNr
U2V0LnZhbHVlcygpKQorICAgICAgICB0cmFjay0+c3RvcFByb2R1Y2luZ0RhdGEoKTsKK30KKwor
Ym9vbCBNZWRpYVN0cmVhbVByaXZhdGU6OmlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0Cit7CisgICAg
Zm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRy
YWNrLT5pc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTWVkaWFTdHJlYW1Qcml2YXRlOjpoYXNWaWRl
bygpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKyAg
ICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Vmlk
ZW8gJiYgdHJhY2stPmVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgTWVkaWFTdHJlYW1Qcml2YXRlOjpoYXNBdWRp
bygpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpIHsKKyAg
ICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVk
aW8gJiYgdHJhY2stPmVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0Zsb2F0U2l6ZSBNZWRpYVN0cmVhbVByaXZhdGU6Omlu
dHJpbnNpY1NpemUoKSBjb25zdAoreworICAgIEZsb2F0U2l6ZSBzaXplOworCisgICAgaWYgKG1f
YWN0aXZlVmlkZW9UcmFjaykgeworICAgICAgICBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3Rh
dGVzJiBzdGF0ZXMgPSBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5zdGF0ZXMoKTsKKyAg
ICAgICAgc2l6ZS5zZXRXaWR0aChzdGF0ZXMud2lkdGgoKSk7CisgICAgICAgIHNpemUuc2V0SGVp
Z2h0KHN0YXRlcy5oZWlnaHQoKSk7CisgICAgfQorCisgICAgcmV0dXJuIHNpemU7Cit9CisKK1Bs
YXRmb3JtTGF5ZXIqIE1lZGlhU3RyZWFtUHJpdmF0ZTo6cGxhdGZvcm1MYXllcigpIGNvbnN0Cit7
CisgICAgaWYgKCFtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgcmV0dXJuIG1fYWN0aXZlVmlkZW9UcmFjay0+c291cmNlKCktPnBsYXRmb3JtTGF5ZXIo
KTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQorewor
ICAgIGlmIChjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGFjdGl2ZSgpICYmIG1fYWN0aXZlVmlkZW9UcmFjaykKKyAgICAgICAgbV9hY3RpdmVW
aWRlb1RyYWNrLT5zb3VyY2UoKS0+cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwg
cmVjdCk7CisgICAgZWxzZSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3Rh
dGVTYXZlcihjb250ZXh0KTsKKyAgICAgICAgY29udGV4dC50cmFuc2xhdGUocmVjdC54KCksIHJl
Y3QueSgpICsgcmVjdC5oZWlnaHQoKSk7CisgICAgICAgIGNvbnRleHQuc2NhbGUoRmxvYXRTaXpl
KDEsIC0xKSk7CisgICAgICAgIEludFJlY3QgcGFpbnRSZWN0KEludFBvaW50KDAsIDApLCBJbnRT
aXplKHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSkpOworICAgICAgICBjb250ZXh0LmZpbGxS
ZWN0KHBhaW50UmVjdCwgQ29sb3I6OmJsYWNrLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICB9
Cit9CisKK1JlZlB0cjxJbWFnZT4gTWVkaWFTdHJlYW1Qcml2YXRlOjpjdXJyZW50RnJhbWVJbWFn
ZSgpCit7CisgICAgaWYgKCFhY3RpdmUoKSAmJiAhbV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJj
ZSgpLT5jdXJyZW50RnJhbWVJbWFnZSgpOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1f
b2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci0+Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOwor
fQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJl
YW1UcmFja1ByaXZhdGUmKQoreworICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7Cisg
ICAgICAgIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRp
YVN0cmVhbVByaXZhdGU6OnRyYWNrU3RhdGVzQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpCit7CisgICAgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpOworfQorCit2b2lkIE1lZGlhU3Ry
ZWFtUHJpdmF0ZTo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYp
Cit7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVy
aXN0aWNzQ2hhbmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6
dHJhY2tQcm9kdWNpbmdEYXRhQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7Cisg
ICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXNdIHsKKyAgICAgICAgY2hhcmFjdGVyaXN0aWNz
Q2hhbmdlZCgpOworICAgIH0pOworfQorCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1
bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uKQoreworICAgIEFT
U0VSVChmdW5jdGlvbik7CisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBjYWxsT25NYWluVGhyZWFkKFt3ZWFrVGhpcywgZnVuY3Rpb25dIHsKKyAgICAgICAgaWYgKCF3
ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmdW5jdGlvbigpOworICAg
IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVE
SUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgJKHJldmlzaW9uIDE5MTY5NikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDExLCAyMDE1
IEVyaWNzc29uIEFCLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTMg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzUsMjggKzM2LDMyIEBACiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCisjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW1UcmFjay5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU7Ci0KLWNsYXNzIE1lZGlhU3RyZWFt
UHJpdmF0ZUNsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVu
dD4gewotcHVibGljOgotICAgIHZpcnR1YWwgfk1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCgpIHsg
fQotCi0gICAgdmlydHVhbCB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEFkZFRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0g
MDsKLX07CitjbGFzcyBNZWRpYVN0cmVhbTsKIAogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDog
cHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNvdW50
ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlPiB7CiBwdWJsaWM6CisgICAgY2xhc3MgT2JzZXJ2ZXIgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSB7IH0KKworICAgICAgICB2
aXJ0dWFsIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpIHsgfQorICAgICAgICB2aXJ0dWFs
IHZvaWQgYWN0aXZlU3RhdHVzQ2hhbmdlZCgpIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSB7IH0KKyAgICAgICAgdmlydHVhbCB2
b2lkIGRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgeyB9CisgICAgfTsK
KwogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGUoY29uc3QgVmVj
dG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIGF1ZGlvU291cmNlcywgY29uc3QgVmVj
dG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4mIHZpZGVvU291cmNlcyk7CiAgICAgc3Rh
dGljIFJlZlB0cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZShjb25zdCBNZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZVZlY3RvciYpOwogCkBAIC02NCw4ICs2OSw4IEBAIHB1YmxpYzoKIAogICAgIGVu
dW0gY2xhc3MgTm90aWZ5Q2xpZW50T3B0aW9uIHsgTm90aWZ5LCBEb250Tm90aWZ5IH07CiAKLSAg
ICBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50OyB9Ci0gICAgdm9pZCBzZXRDbGllbnQoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGll
bnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVy
Jik7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwogCiAgICAgU3RyaW5nIGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCkBAIC03NywyMSArODIsNDAgQEAgcHVibGljOgog
ICAgIHZvaWQgYWRkVHJhY2soUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmLCBOb3Rp
ZnlDbGllbnRPcHRpb24gPSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAgICAgdm9pZCBy
ZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYsIE5vdGlmeUNsaWVudE9wdGlvbiA9
IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsKIAotcHJvdGVjdGVkOgotICAgIGV4cGxpY2l0
IE1lZGlhU3RyZWFtUHJpdmF0ZShNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQmKTsKKyAgICB2b2lk
IHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAg
ICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0OworCisgICAgUGxhdGZvcm1MYXllciogcGxh
dGZvcm1MYXllcigpIGNvbnN0OworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1lSW1hZ2Uo
KTsKKyAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IEZsb2F0UmVjdCYpOworCisgICAgYm9vbCBoYXNWaWRlbygpOworICAgIGJvb2wgaGFz
QXVkaW8oKTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplKCkgY29uc3Q7CisKKyAgICBX
ZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vh
a1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6CiAgICAgTWVkaWFTdHJl
YW1Qcml2YXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVj
dG9yJik7CiAKICAgICB2b2lkIHRyYWNrRW5kZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBv
dmVycmlkZSB7IH0KLSAgICB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgb3ZlcnJpZGUgeyB9Ci0gICAgdm9pZCB0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHRyYWNrTXV0ZWRDaGFu
Z2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja1N0
YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVycmlkZTsKKyAgICB2b2lk
IHRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSBvdmVycmlkZTsKIAotICAgIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCogbV9jbGllbnQg
eyBudWxscHRyIH07Ci0gICAgU3RyaW5nIG1faWQ7Ci0gICAgYm9vbCBtX2lzQWN0aXZlIHsgZmFs
c2UgfTsKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKIAorICAgIHZvaWQgc2No
ZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKKworICAgIFdlYWtQdHJG
YWN0b3J5PE1lZGlhU3RyZWFtUHJpdmF0ZT4gbV93ZWFrUHRyRmFjdG9yeTsKKyAgICBWZWN0b3I8
T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKKyAgICBTdHJpbmcgbV9pZDsKKyAgICBNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSogbV9hY3RpdmVWaWRlb1RyYWNrIHsgbnVsbHB0ciB9OwogICAgIEhhc2hN
YXA8U3RyaW5nLCBSZWZQdHI8TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU+PiBtX3RyYWNrU2V0Owor
ICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07CiB9OwogCiB0eXBlZGVmIFZlY3RvcjxSZWZQ
dHI8TWVkaWFTdHJlYW1Qcml2YXRlPj4gTWVkaWFTdHJlYW1Qcml2YXRlVmVjdG9yOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzgsNiArMTc4LDE4IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGU6OnNvdXJjZVN0YXQKICAgICAgICAgb2JzZXJ2ZXItPnRyYWNrU3RhdGVzQ2hhbmdl
ZCgqdGhpcyk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZVByb2R1
Y2luZ0RhdGFDaGFuZ2VkKCkKK3sKKyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCisgICAgICAgIG9ic2VydmVyLT50cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKCp0aGlzKTsK
K30KKwordm9pZCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6c291cmNlRW5hYmxlZENoYW5nZWQo
KQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2Jz
ZXJ2ZXItPnRyYWNrRW5hYmxlZENoYW5nZWQoKnRoaXMpOworfQorCiBib29sIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkKIHsKICAgICByZXR1cm4g
IW1faXNFbmRlZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuaAkocmV2aXNpb24gMTkx
Njk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDgsNiArNDgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tNdXRlZENoYW5nZWQoTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFja1N0YXRlc0NoYW5n
ZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCB0
cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZSYpID0gMDsKICAgICB9OwogICAgIAogICAgIHN0YXRpYyBSZWZQdHI8TWVkaWFTdHJl
YW1UcmFja1ByaXZhdGU+IGNyZWF0ZShSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJik7CkBA
IC02Miw2ICs2NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkg
eyBtX3NvdXJjZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KICAgICB2b2lkIHN0b3BQcm9kdWNp
bmdEYXRhKCkgeyBtX3NvdXJjZS0+c3RvcFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIGJvb2wgaXNQ
cm9kdWNpbmdEYXRhKCkgeyByZXR1cm4gbV9zb3VyY2UtPmlzUHJvZHVjaW5nRGF0YSgpOyB9CiAK
ICAgICBib29sIG11dGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNdXRlZChib29sIG11dGVkKSBj
b25zdCB7IG1fc291cmNlLT5zZXRNdXRlZChtdXRlZCk7IH0KQEAgLTk4LDcgKzEwMSw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzb3VyY2VTdG9wcGVkKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdm9p
ZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBvdmVycmlkZSBmaW5hbDsKICAgICB2b2lkIHNvdXJjZVN0
YXRlc0NoYW5nZWQoKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2b2lkIHNvdXJjZVByb2R1Y2luZ0Rh
dGFDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0
b3BwaW5nKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgp
IG92ZXJyaWRlIGZpbmFsOwogCiAgICAgVmVjdG9yPE9ic2VydmVyKj4gbV9vYnNlcnZlcnM7CiAg
ICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZS5jcHAJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDEsNiArMTAxLDIyIEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhdGVzRGlkQ2hhbmcK
ICAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZVN0YXRlc0NoYW5nZWQoKTsKIH0KIAordm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjppc1Byb2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKQoreworICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZVBy
b2R1Y2luZ0RhdGFDaGFuZ2VkKCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgaWYgKG1fZW5hYmxlZCA9PSBlbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2VuYWJsZWQgPSBlbmFibGVkOworICAgIGZvciAoYXV0
byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXItPnNvdXJjZUVuYWJs
ZWRDaGFuZ2VkKCk7Cit9CisKIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVhZG9ubHkoKSBj
b25zdAogewogICAgIHJldHVybiBtX3JlYWRvbmx5OwpAQCAtMTE5LDYgKzEzNSw3IEBAIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcChPYnNlcnZlcioKICAgICB9CiAKICAgICBzdG9wUHJv
ZHVjaW5nRGF0YSgpOworICAgIHJlc2V0KCk7CiB9CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6cmVxdWVzdFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlLmgJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyAr
MzcsOSBAQAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJBdWRpb1NvdXJj
ZVByb3ZpZGVyLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJNZWRpYUNvbnN0cmFp
bnRzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTQ1LDYgKzQ3LDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBGbG9hdFJlY3Q7CitjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBN
ZWRpYUNvbnN0cmFpbnRzOwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOwogY2xhc3MgUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlczsKQEAgLTU5LDYgKzYzLDggQEAgcHVibGljOgogICAgICAgICB2
aXJ0dWFsIHZvaWQgc291cmNlU3RvcHBlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNv
dXJjZU11dGVkQ2hhbmdlZCgpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZVN0YXRl
c0NoYW5nZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VQcm9kdWNpbmdEYXRh
Q2hhbmdlZCgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHNvdXJjZUVuYWJsZWRDaGFuZ2Vk
KCkgPSAwOwogCiAgICAgICAgIC8vIE9ic2VydmVyIHN0YXRlIHF1ZXJpZXMuCiAgICAgICAgIHZp
cnR1YWwgYm9vbCBwcmV2ZW50U291cmNlRnJvbVN0b3BwaW5nKCkgPSAwOwpAQCAtNjYsOCArNzIs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlKCkgeyB9CiAK
LSAgICBib29sIGlzQXVkaW9TdHJlYW1Tb3VyY2UoKSBjb25zdCB7IHJldHVybiB0eXBlKCkgPT0g
QXVkaW87IH0KLQogICAgIGNvbnN0IFN0cmluZyYgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
CiAKICAgICBjb25zdCBTdHJpbmcmIHBlcnNpc3RlbnRJRCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVy
c2lzdGVudElEOyB9CkBAIC04Miw3ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2ln
bmVkIGZpdG5lc3NTY29yZSgpIGNvbnN0IHsgcmV0dXJuIG1fZml0bmVzc1Njb3JlOyB9CiAgICAg
dmlydHVhbCB2b2lkIHNldEZpdG5lc3NTY29yZShjb25zdCB1bnNpZ25lZCBmaXRuZXNzU2NvcmUp
IHsgbV9maXRuZXNzU2NvcmUgPSBmaXRuZXNzU2NvcmU7IH0KIAotICAgIHZpcnR1YWwgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0ID0g
MDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBj
YXBhYmlsaXRpZXMoKSA9IDA7CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzJiBzdGF0ZXMoKSA9IDA7CiAgICAgdm9pZCBzdGF0ZXNEaWRDaGFuZ2VkKCk7CiAgICAg
CkBAIC05NywxOSArMTAxLDI4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcmVtb3RlKCkg
Y29uc3QgeyByZXR1cm4gbV9yZW1vdGU7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVtb3RlKGJv
b2wgcmVtb3RlKSB7IG1fcmVtb3RlID0gcmVtb3RlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
RW5hYmxlZChib29sKTsKKyAgICB2aXJ0dWFsIGJvb2wgZW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fZW5hYmxlZDsgfQorCiAgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciopOwogICAgIHZv
aWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBy
b2R1Y2luZ0RhdGEoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9kdWNpbmdEYXRhKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlKCk7CiAKICAg
ICB2b2lkIHN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlciA9IG51bGxwdHIpOwogICAgIHZv
aWQgcmVxdWVzdFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlciA9IG51bGxwdHIpOwogCi0g
ICAgdm9pZCByZXNldCgpOworICAgIHZpcnR1YWwgdm9pZCByZXNldCgpOwogCiAgICAgdmlydHVh
bCBBdWRpb1NvdXJjZVByb3ZpZGVyKiBhdWRpb1NvdXJjZVByb3ZpZGVyKCkgeyByZXR1cm4gbnVs
bHB0cjsgfQotICAgIAorCisgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPEltYWdlPiBj
dXJyZW50RnJhbWVJbWFnZSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JikgeyB9CisKIHByb3RlY3RlZDoKICAgICBSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0
cmluZyYgaWQsIFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSk7CiAKQEAgLTEyNCw2ICsxMzcsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9tdXRlZDsKICAgICBib29sIG1fcmVhZG9ubHk7CiAgICAg
Ym9vbCBtX3JlbW90ZTsKKyAgICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKICAgICAKICAgICB1
bnNpZ25lZCBtX2ZpdG5lc3NTY29yZTsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3Vy
Y2UuaAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDEw
ICs1OCwxMiBAQCBwcml2YXRlOgogICAgIEFWQXVkaW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURl
dmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4p
OwogICAgIHZpcnR1YWwgfkFWQXVkaW9DYXB0dXJlU291cmNlKCk7CiAgICAgCi0gICAgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92
ZXJyaWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzJikgb3ZlcnJpZGU7CisKICAgICB2b2lkIGNhcHR1cmVPdXRwdXREaWRP
dXRwdXRTYW1wbGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBs
ZUJ1ZmZlclJlZiwgQVZDYXB0dXJlQ29ubmVjdGlvbiopIG92ZXJyaWRlOwogICAgIAogICAgIHZv
aWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOworICAgIHZvaWQgc2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlU3RhdGVzKCkgb3ZlcnJpZGU7
CiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIG92ZXJyaWRl
OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRp
b0NhcHR1cmVTb3VyY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCShyZXZpc2lvbiAxOTE2OTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1
cmVTb3VyY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwLDE0ICs0MCwxNiBAQAogCiAjaW1wb3J0
ICJDb3JlTWVkaWFTb2Z0TGluay5oIgogCit0eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5lbCBB
VkNhcHR1cmVBdWRpb0NoYW5uZWxUeXBlOwordHlwZWRlZiBBVkNhcHR1cmVBdWRpb0RhdGFPdXRw
dXQgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0VHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlQ29ubmVj
dGlvbiBBVkNhcHR1cmVDb25uZWN0aW9uVHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlRGV2aWNlIEFW
Q2FwdHVyZURldmljZVR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZURldmljZUlucHV0IEFWQ2FwdHVy
ZURldmljZUlucHV0VHlwZTsKIHR5cGVkZWYgQVZDYXB0dXJlT3V0cHV0IEFWQ2FwdHVyZU91dHB1
dFR5cGU7Ci10eXBlZGVmIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCBBVkNhcHR1cmVBdWRpb0Rh
dGFPdXRwdXRUeXBlOwogCiBTT0ZUX0xJTktfRlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlv
bikKIAorU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQXVkaW9DaGFubmVs
KQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0
KQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZDYXB0dXJlQ29ubmVjdGlvbikKIFNP
RlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZURldmljZSkKQEAgLTc3LDEwICs3
OSwxMCBAQCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6fkFWQXVkaW9DYXB0dXJlU291CiB7CiB9CiAK
LVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBBVkF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK3ZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6Omlu
aXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyZjYXBh
YmlsaXRpZXMpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAvLyBGSVhNRTogZmluaXNoIHRoaXMgaW1wbGVtZW50YXRpb24gLSBodHRwczovL3dlYmtp
dC5vcmcvYi8xMjI0MzAKKyAgICBjYXBhYmlsaXRpZXMuYWRkU291cmNlVHlwZShSZWFsdGltZU1l
ZGlhU291cmNlU3RhdGVzOjpNaWNyb3Bob25lKTsKIH0KIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNv
dXJjZTo6dXBkYXRlU3RhdGVzKCkKQEAgLTkwLDExICs5Miw4IEBAIHZvaWQgQVZBdWRpb0NhcHR1
cmVTb3VyY2U6OnVwZGF0ZVN0YXRlcygKIAogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6YWRk
T2JzZXJ2ZXIoQVZBdWRpb0NhcHR1cmVTb3VyY2U6Ok9ic2VydmVyKiBvYnNlcnZlcikKIHsKLSAg
ICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2xvY2spOwotICAgICAgICBtX29ic2VydmVy
cy5hcHBlbmQob2JzZXJ2ZXIpOwotICAgIH0KLQorICAgIExvY2tIb2xkZXIgbG9jayhtX2xvY2sp
OworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CiAgICAgaWYgKG1faW5wdXREZXNj
cmlwdGlvbi0+bVNhbXBsZVJhdGUpCiAgICAgICAgIG9ic2VydmVyLT5wcmVwYXJlKG1faW5wdXRE
ZXNjcmlwdGlvbi5nZXQoKSk7CiB9CkBAIC0xMTAsMTYgKzEwOSw0MCBAQCB2b2lkIEFWQXVkaW9D
YXB0dXJlU291cmNlOjpyZW1vdmVPYnNlcnZlCiB2b2lkIEFWQXVkaW9DYXB0dXJlU291cmNlOjpz
ZXR1cENhcHR1cmVTZXNzaW9uKCkKIHsKICAgICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlSW5w
dXRUeXBlPiBhdWRpb0luID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVEZXZpY2VJbnB1dEluc3Rh
bmNlKCkgaW5pdFdpdGhEZXZpY2U6ZGV2aWNlKCkgZXJyb3I6bmlsXSk7Ci0gICAgQVNTRVJUKFtz
ZXNzaW9uKCkgY2FuQWRkSW5wdXQ6YXVkaW9Jbi5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lvbigp
IGNhbkFkZElucHV0OmF1ZGlvSW4uZ2V0KCldKQotICAgICAgICBbc2Vzc2lvbigpIGFkZElucHV0
OmF1ZGlvSW4uZ2V0KCldOwotICAgIAorCisgICAgaWYgKCFbc2Vzc2lvbigpIGNhbkFkZElucHV0
OmF1ZGlvSW4uZ2V0KCldKSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291
cmNlOjpzZXR1cENhcHR1cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCBhdWRpbyBpbnB1dCBk
ZXZpY2UiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBbc2Vzc2lvbigpIGFk
ZElucHV0OmF1ZGlvSW4uZ2V0KCldOworCiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZUF1ZGlvRGF0
YU91dHB1dFR5cGU+IGF1ZGlvT3V0cHV0ID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVBdWRpb0Rh
dGFPdXRwdXRJbnN0YW5jZSgpIGluaXRdKTsKICAgICBzZXRBdWRpb1NhbXBsZUJ1ZmZlckRlbGVn
YXRlKGF1ZGlvT3V0cHV0LmdldCgpKTsKLSAgICBBU1NFUlQoW3Nlc3Npb24oKSBjYW5BZGRPdXRw
dXQ6YXVkaW9PdXRwdXQuZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6
YXVkaW9PdXRwdXQuZ2V0KCldKQotICAgICAgICBbc2Vzc2lvbigpIGFkZE91dHB1dDphdWRpb091
dHB1dC5nZXQoKV07Ci0gICAgbV9hdWRpb0Nvbm5lY3Rpb24gPSBhZG9wdE5TKFthdWRpb091dHB1
dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpBVk1lZGlhVHlwZUF1ZGlvXSk7CisKKyAg
ICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OmF1ZGlvT3V0cHV0LmdldCgpXSkgeworICAg
ICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lv
biglcCksIHVuYWJsZSB0byBhZGQgYXVkaW8gc2FtcGxlIGJ1ZmZlciBvdXRwdXQgZGVsZWdhdGUi
LCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBbc2Vzc2lvbigpIGFkZE91dHB1
dDphdWRpb091dHB1dC5nZXQoKV07CisgICAgbV9hdWRpb0Nvbm5lY3Rpb24gPSBbYXVkaW9PdXRw
dXQuZ2V0KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRpb107Cit9CisK
K3ZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OnNodXRkb3duQ2FwdHVyZVNlc3Npb24oKQorewor
ICAgIHsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisKKyAgICAgICAgbV9hdWRp
b0Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgICAgICBtX2lucHV0RGVzY3JpcHRpb24gPSBzdGQ6
Om1ha2VfdW5pcXVlPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4oKTsKKworICAgICAgICBm
b3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgICAgICBvYnNlcnZlci0+
dW5wcmVwYXJlKCk7CisgICAgICAgIG1fb2JzZXJ2ZXJzLnNocmluaygwKTsKKyAgICB9CisKKyAg
ICAvLyBEb24ndCBob2xkIHRoZSBsb2NrIHdoZW4gZGVzdHJveWluZyB0aGUgYXVkaW8gcHJvdmlk
ZXIsIGl0IHdpbGwgY2FsbCBiYWNrIGludG8gdGhpcyBvYmplY3QKKyAgICAvLyB0byByZW1vdmUg
aXRzZWxmIGFzIGFuIG9ic2VydmVyLgorICAgIG1fYXVkaW9Tb3VyY2VQcm92aWRlciA9IG51bGxw
dHI7CiB9CiAKIHN0YXRpYyBib29sIG9wZXJhdG9yPT0oY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uJiBhLCBjb25zdCBBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24mIGIpCkBAIC0x
NDEsMjcgKzE2NCwzMCBAQCBzdGF0aWMgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEF1ZGlvU3RyZWFt
CiAKIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1w
bGVCdWZmZXJGcm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXRUeXBlKiwgQ01TYW1wbGVCdWZm
ZXJSZWYgc2FtcGxlQnVmZmVyLCBBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSopCiB7Ci0gICAgVmVj
dG9yPE9ic2VydmVyKj4gb2JzZXJ2ZXJzOwotICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2Nr
KG1fbG9jayk7Ci0gICAgICAgIGlmIChtX29ic2VydmVycy5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgY29weVRvVmVjdG9yKG1fb2JzZXJ2ZXJzLCBvYnNlcnZlcnMp
OwotICAgIH0KKyAgICBpZiAoIWVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOwogCiAgICAgQ01G
b3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNjcmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0
Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVyKTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0
aW9uKQogICAgICAgICByZXR1cm47CiAKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2so
bV9sb2NrLCBzdGQ6OnRyeV90b19sb2NrKTsKKyAgICBpZiAoIWxvY2sub3duc19sb2NrKCkpIHsK
KyAgICAgICAgLy8gRmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2ssIGp1c3QgcmV0dXJuIGluc3Rl
YWQgb2YgYmxvY2tpbmcuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9vYnNl
cnZlcnMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKICAgICBjb25zdCBBdWRpb1N0cmVh
bUJhc2ljRGVzY3JpcHRpb24qIHN0cmVhbURlc2NyaXB0aW9uID0gQ01BdWRpb0Zvcm1hdERlc2Ny
aXB0aW9uR2V0U3RyZWFtQmFzaWNEZXNjcmlwdGlvbihmb3JtYXREZXNjcmlwdGlvbik7CiAgICAg
aWYgKCptX2lucHV0RGVzY3JpcHRpb24gIT0gKnN0cmVhbURlc2NyaXB0aW9uKSB7CiAgICAgICAg
IG1faW5wdXREZXNjcmlwdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8QXVkaW9TdHJlYW1CYXNpY0Rl
c2NyaXB0aW9uPigqc3RyZWFtRGVzY3JpcHRpb24pOwotICAgICAgICBmb3IgKGF1dG8mIG9ic2Vy
dmVyIDogb2JzZXJ2ZXJzKQorICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCiAgICAgICAgICAgICBvYnNlcnZlci0+cHJlcGFyZShtX2lucHV0RGVzY3JpcHRpb24uZ2V0
KCkpOwogICAgIH0KIAotICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBvYnNlcnZlcnMpCisgICAg
Zm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQogICAgICAgICBvYnNlcnZlci0+cHJv
Y2Vzcyhmb3JtYXREZXNjcmlwdGlvbiwgc2FtcGxlQnVmZmVyKTsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQ2FwdHVyZURldmljZU1hbmFnZXIu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQ2FwdHVyZURldmljZU1hbmFnZXIubW0JKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTEwMywxMCArMTAzLDcgQEAgcHVibGljOgogICAgIFN0cmluZyBtX2dy
b3VwSUQ7CiAKICAgICBTdHJpbmcgbV9hdWRpb1NvdXJjZUlkOwotICAgIFJlZlB0cjxBVk1lZGlh
Q2FwdHVyZVNvdXJjZT4gbV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlOwotCiAgICAgU3RyaW5n
IG1fdmlkZW9Tb3VyY2VJZDsKLSAgICBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IG1fdmlk
ZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKIAogICAgIGJvb2wgbV9lbmFibGVkOwogfTsKQEAgLTE0
Niw3ICsxNDMsMTUgQEAgc3RhdGljIHZvaWQgcmVmcmVzaENhcHR1cmVEZXZpY2VMaXN0KCkKICAg
ICAKICAgICBmb3IgKEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSBpbiBbQVZDYXB0dXJlRGV2
aWNlIGRldmljZXNdKSB7CiAgICAgICAgIENhcHR1cmVEZXZpY2Ugc291cmNlOwotICAgICAgICAK
KworICAgICAgICBpZiAoIVtkZXZpY2UgaXNDb25uZWN0ZWRdKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgICAgICBpZiAoW2RldmljZSBpc1N1c3BlbmRl
ZF0gfHwgW2RldmljZSBpc0luVXNlQnlBbm90aGVyQXBwbGljYXRpb25dKQorICAgICAgICAgICAg
Y29udGludWU7CisjZW5kaWYKKwogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2VGcm9tRGV2aWNl
SUQoZGV2aWNlLnVuaXF1ZUlELCBzb3VyY2UpKSB7CiAgICAgICAgICAgICAvLyBBbiBBVkNhcHR1
cmVEZXZpY2UgaGFzIGEgdW5pcXVlIElELCBidXQgd2UgY2FuJ3QgdXNlIGl0IGZvciB0aGUgc291
cmNlIElEIGJlY2F1c2U6CiAgICAgICAgICAgICAvLyAxLiBpZiBpdCBwcm92aWRlcyBib3RoIGF1
ZGlvIGFuZCB2aWRlbyB3ZSB3aWxsIG5lZWQgdG8gY3JlYXRlIHR3byBzb3VyY2VzIGZvciBpdApA
QCAtMzg4LDI0ICszOTMsMjAgQEAgVmVjdG9yPFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPj4g
QVZDYQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV9lbmFibGVkKQogICAgICAgICAgICAg
Y29udGludWU7CiAKLSAgICAgICAgLy8gRklYTUU6IGNvbnNpZGVyIHRoZSBjb25zdHJhaW50cyB3
aGVuIGNob29zaW5nIGFtb25nIG11bHRpcGxlIGRldmljZXMuIEZvciBub3cganVzdCBzZWxlY3Qg
dGhlIGZpcnN0IGF2YWlsYWJsZQotICAgICAgICAvLyBkZXZpY2Ugb2YgdGhlIGFwcHJvcHJpYXRl
IHR5cGUuCiAgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvICYm
ICFjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IGlmICghY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpIHsKLSAgICAg
ICAgICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZDYXB0dXJlRGV2aWNl
IGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlEXTsKLSAg
ICAgICAgICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2
aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZCwgY29uc3RyYWludHMp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgYmVzdFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0
dXJlRGV2aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSk7CisgICAgICAgICAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY2FwdHVyZVNvdXJjZSA9IEFWQ2FwdHVyZURldmljZU1h
bmFnZXI6OnNvdXJjZVdpdGhVSUQoY2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRCwgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8sIGNvbnN0cmFpbnRzLmdldCgpKTsKKyAgICAgICAgICAg
IGlmICghY2FwdHVyZVNvdXJjZSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAgICAgYmVzdFNvdXJjZXNMaXN0LmFwcGVuZChjYXB0dXJlU291cmNlLmxlYWtSZWYoKSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
byAmJiAhY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAg
ICAgICBpZiAoIWNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKSB7Ci0g
ICAgICAgICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURl
dmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRF07
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAgICAgICAgICAgICAgY2FwdHVy
ZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFp
bnRzKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQo
Y2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3VyY2UpOworICAgICAgICAgICAg
UmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2UgPSBBVkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjpzb3VyY2VXaXRoVUlEKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQs
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvLCBjb25zdHJhaW50cy5nZXQoKSk7CisgICAgICAg
ICAgICBpZiAoIWNhcHR1cmVTb3VyY2UpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCkp
OwogICAgICAgICB9CiAgICAgfQogICAgIHN0ZDo6c29ydChiZXN0U291cmNlc0xpc3QuYmVnaW4o
KSwgYmVzdFNvdXJjZXNMaXN0LmVuZCgpLCBzb3J0QmFzZWRPZmZGaXRuZXNzU2NvcmUpOwpAQCAt
NDE2LDQxICs0MTcsNDEgQEAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IEFWQ2FwdHVyZURl
dgogewogICAgIGlmICghaXNBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgCisK
ICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGRldmljZXMgPSBjYXB0dXJlRGV2aWNlTGlzdCgp
OwotICAgIGZvciAoYXV0byBjYXB0dXJlRGV2aWNlIDogZGV2aWNlcykgewotICAgICAgICBpZiAo
IWNhcHR1cmVEZXZpY2UubV9lbmFibGVkKQorICAgIGZvciAoYXV0byYgY2FwdHVyZURldmljZSA6
IGRldmljZXMpIHsKKyAgICAgICAgaWYgKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQg
IT0gZGV2aWNlVUlEIHx8ICFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogCi0gICAgICAgIGlmIChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlEICE9
IGRldmljZVVJRCkKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW8gJiYgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvICYmIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCisgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtB
VkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJl
RGV2aWNlSURdOworICAgICAgICBBU1NFUlQoZGV2aWNlKTsKKworICAgICAgICBSZWZQdHI8QVZN
ZWRpYUNhcHR1cmVTb3VyY2U+IGNhcHR1cmVTb3VyY2U7CisgICAgICAgIGlmICh0eXBlID09IFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvKQorICAgICAgICAgICAgY2FwdHVyZVNvdXJjZSA9IEFW
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9T
b3VyY2VJZCwgY29uc3RyYWludHMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYXB0dXJl
U291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZp
Y2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7CisKICAgICAgICAgaWYgKGNvbnN0cmFp
bnRzKSB7CiAgICAgICAgICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzOwogICAgICAgICAg
ICAgQVZDYXB0dXJlU2Vzc2lvblR5cGUgKnNlc3Npb24gPSBuaWw7CiAKLSAgICAgICAgICAgIGlm
ICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvICYmIGNhcHR1cmVEZXZpY2UubV92
aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZpY2Uu
bV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7Ci0gICAgICAgICAgICBlbHNl
IGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvICYmIGNhcHR1cmVEZXZpY2Uu
bV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZp
Y2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlLT5zZXNzaW9uKCk7CisgICAgICAgICAgICBp
ZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbykKKyAgICAgICAgICAgICAgICBz
ZXNzaW9uID0gY2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOworICAgICAgICAgICAgZWxzZSBpZiAo
dHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbykKKyAgICAgICAgICAgICAgICBzZXNz
aW9uID0gY2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwogICAgICAgICAgICAgQVZDYXB0dXJlRGV2
aWNlTWFuYWdlcjo6c2luZ2xldG9uKCkudmVyaWZ5Q29uc3RyYWludHNGb3JNZWRpYVR5cGUoc2Vz
c2lvbiwgdHlwZSwgY29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50cyk7CiAKICAgICAgICAg
ICAgIGlmICghaW52YWxpZENvbnN0cmFpbnRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlw
ZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZpY2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURl
dmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0gICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAg
ICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAmJiAhY2FwdHVyZURldmlj
ZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAoIWNhcHR1cmVE
ZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKQotICAgICAgICAgICAgICAgIGNhcHR1
cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLCBjb25zdHJh
aW50cyk7Ci0gICAgICAgICAgICByZXR1cm4gY2FwdHVyZURldmljZS5tX2F1ZGlvQVZNZWRpYUNh
cHR1cmVTb3VyY2U7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW8gJiYgIWNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVy
ZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2Fw
dHVyZVNvdXJjZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJl
RGV2aWNlLm1fdmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOwotICAgICAgICAgICAgcmV0dXJu
IGNhcHR1cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlOwotICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBjYXB0dXJlU291cmNlLmxlYWtSZWYoKTsKICAgICB9CiAgICAgCiAgICAg
cmV0dXJuIG51bGxwdHI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaAkocmV2aXNp
b24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
TWVkaWFDYXB0dXJlU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUyLDQ1ICs1Miw1MiBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1
ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBB
VkNhcHR1cmVDb25uZWN0aW9uKikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTZXNz
aW9uU3RvcHBlZFJ1bm5pbmcoKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2FwdHVyZVNlc3Npb25Jc1J1
bm5pbmdEaWRDaGFuZ2UoYm9vbCk7CiAgICAgCiAgICAgQVZDYXB0dXJlU2Vzc2lvbiAqc2Vzc2lv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsgfQogCisgICAgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBv
dmVycmlkZTsKKyAgICBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1faXNSdW5uaW5nOyB9CisKKyAgICBXZWFrUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBj
cmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
IH0KIAogcHJvdGVjdGVkOgogICAgIEFWTWVkaWFDYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmlj
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIFBhc3NS
ZWZQdHI8TWVkaWFDb25zdHJhaW50cz4pOwogCi0gICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJpZGU7CiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlciogYXVk
aW9Tb3VyY2VQcm92aWRlcigpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldHVwQ2Fw
dHVyZVNlc3Npb24oKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNodXRkb3duQ2FwdHVyZVNlc3Np
b24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVN0YXRlcygpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJikgPSAwOwogCiAgICAgQVZDYXB0dXJlRGV2aWNlICpkZXZpY2UoKSBjb25zdCB7IHJl
dHVybiBtX2RldmljZS5nZXQoKTsgfQorCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyog
Y3VycmVudFN0YXRlcygpIHsgcmV0dXJuICZtX2N1cnJlbnRTdGF0ZXM7IH0KICAgICBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cygpIHsgcmV0dXJuIG1fY29uc3RyYWludHMuZ2V0KCk7IH0K
IAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMoKSBvdmVycmlkZTsKKwogICAgIHZvaWQgc2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShB
VkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQqKTsKICAgICB2b2lkIHNldEF1ZGlvU2FtcGxlQnVmZmVy
RGVsZWdhdGUoQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0Kik7CiAKICAgICB2b2lkIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCAoKT4pOwogCi0gICAgdm9pZCBzdGF0ZXNE
aWRDaGFuZ2VkKCkgeyB9Ci0gICAgCiBwcml2YXRlOgogICAgIHZvaWQgc2V0dXBTZXNzaW9uKCk7
Ci0gICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisgICAgdm9pZCByZXNldCgp
IG92ZXJyaWRlOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IG1f
d2Vha1B0ckZhY3Rvcnk7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJj
ZU9ic2VydmVyPiBtX29iamNPYnNlcnZlcjsKICAgICBSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4g
bV9jb25zdHJhaW50czsKKyAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cz4gbV9jYXBhYmlsaXRpZXM7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyBtX2N1cnJl
bnRTdGF0ZXM7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZVNlc3Npb24+IG1fc2Vzc2lvbjsKICAg
ICBSZXRhaW5QdHI8QVZDYXB0dXJlRGV2aWNlPiBtX2RldmljZTsKLSAgICAKLSAgICBib29sIG1f
aXNSdW5uaW5nOworICAgIGJvb2wgbV9pc1J1bm5pbmcgeyBmYWxzZX07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCShyZXZp
c2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZNZWRpYUNhcHR1cmVTb3VyY2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTk0LDEyICs5NCwxNCBA
QCBAaW50ZXJmYWNlIFdlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9iCiAKIC0oaWQpaW5pdFdp
dGhDYWxsYmFjazooQVZNZWRpYUNhcHR1cmVTb3VyY2UqKWNhbGxiYWNrOwogLSh2b2lkKWRpc2Nv
bm5lY3Q7Ci0tKHZvaWQpY2FwdHVyZVNlc3Npb25TdG9wcGVkUnVubmluZzooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb247CiAtKHZvaWQpY2FwdHVyZU91dHB1dDooQVZDYXB0dXJlT3V0cHV0
VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZl
clJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBl
ICopY29ubmVjdGlvbjsKKy0odm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggb2ZP
YmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2
b2lkKiljb250ZXh0OwogQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBOU0Fy
cmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpOworCiBzdGF0aWMgZGlzcGF0Y2hfcXVldWVfdCBn
bG9iYUF1ZGlvQ2FwdHVyZVNlcmlhbFF1ZXVlKCkKIHsKICAgICBzdGF0aWMgZGlzcGF0Y2hfcXVl
dWVfdCBnbG9iYWxRdWV1ZTsKQEAgLTEyNyw3ICsxMjksNiBAQCBBVk1lZGlhQ2FwdHVyZVNvdXJj
ZTo6QVZNZWRpYUNhcHR1cmVTb3VyCiAgICAgLCBtX29iamNPYnNlcnZlcihhZG9wdE5TKFtbV2Vi
Q29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoQ2FsbGJhY2s6
dGhpc10pKQogICAgICwgbV9jb25zdHJhaW50cyhjb25zdHJhaW50cykKICAgICAsIG1fZGV2aWNl
KGRldmljZSkKLSAgICAsIG1faXNSdW5uaW5nKGZhbHNlKQogewogICAgIHNldE5hbWUoZGV2aWNl
LmxvY2FsaXplZE5hbWUpOwogICAgIHNldFBlcnNpc3RlbnRJRChkZXZpY2UudW5pcXVlSUQpOwpA
QCAtMTM2LDkgKzEzNywxMyBAQCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6QVZNZWRpYUNhcHR1cmVT
b3VyCiAKIEFWTWVkaWFDYXB0dXJlU291cmNlOjp+QVZNZWRpYUNhcHR1cmVTb3VyY2UoKQogewot
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6
bV9vYmpjT2JzZXJ2ZXIuZ2V0KCldOwogICAgIFttX29iamNPYnNlcnZlciBkaXNjb25uZWN0XTsK
LSAgICBbbV9zZXNzaW9uLmdldCgpIHN0b3BSdW5uaW5nXTsKKworICAgIGlmIChtX3Nlc3Npb24p
IHsKKyAgICAgICAgZm9yIChOU1N0cmluZyAqa2V5TmFtZSBpbiBzZXNzaW9uS1ZPUHJvcGVydGll
cygpKQorICAgICAgICAgICAgW21fc2Vzc2lvbi5nZXQoKSByZW1vdmVPYnNlcnZlcjptX29iamNP
YnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWVdOworICAgICAgICBbbV9zZXNzaW9uLmdl
dCgpIHN0b3BSdW5uaW5nXTsKKyAgICB9CiB9CiAKIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6
OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCkBAIC0xNTAsOCArMTU1LDYgQEAgdm9pZCBBVk1lZGlhQ2Fw
dHVyZVNvdXJjZTo6c3RhcnRQcm9kdWNpbgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgW21f
c2Vzc2lvbi5nZXQoKSBzdGFydFJ1bm5pbmddOwotCi0gICAgbV9pc1J1bm5pbmcgPSB0cnVlOwog
fQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCkBAIC0x
NjAsOCArMTYzLDYgQEAgdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZwog
ICAgICAgICByZXR1cm47CiAKICAgICBbbV9zZXNzaW9uLmdldCgpIHN0b3BSdW5uaW5nXTsKLQot
ICAgIG1faXNSdW5uaW5nID0gdHJ1ZTsKIH0KIAogY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0
YXRlcyYgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0YXRlcygpCkBAIC0xNzAsMjEgKzE3MSw0NyBA
QCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBBVk1lZGlhCiAgICAgcmV0dXJuIG1f
Y3VycmVudFN0YXRlczsKIH0KIAorUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXM+IEFWTWVkaWFDYXB0dXJlU291cmNlOjpjYXBhYmlsaXRpZXMoKQoreworICAgIGlmICghbV9j
YXBhYmlsaXRpZXMpIHsKKyAgICAgICAgbV9jYXBhYmlsaXRpZXMgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzOjpjcmVhdGUoKTsKKyAgICAgICAgbV9jYXBhYmlsaXRpZXMtPnNldFNv
dXJjZUlkKG1fY3VycmVudFN0YXRlcy5zb3VyY2VJZCgpKTsKKyAgICAgICAgaW5pdGlhbGl6ZUNh
cGFiaWxpdGllcygqbV9jYXBhYmlsaXRpZXMuZ2V0KCkpOworICAgIH0KKyAgICByZXR1cm4gbV9j
YXBhYmlsaXRpZXM7Cit9CisKIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lv
bigpCiB7CiAgICAgaWYgKG1fc2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zZXNz
aW9uID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVTZXNzaW9uSW5zdGFuY2UoKSBpbml0XSk7Ci0g
ICAgCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZl
cjptX29iamNPYnNlcnZlci5nZXQoKSBzZWxlY3RvcjpAc2VsZWN0b3IoY2FwdHVyZVNlc3Npb25T
dG9wcGVkUnVubmluZzopIG5hbWU6QVZDYXB0dXJlU2Vzc2lvbkRpZFN0b3BSdW5uaW5nTm90aWZp
Y2F0aW9uIG9iamVjdDpuaWxdOwotICAgIAorICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4g
c2Vzc2lvbktWT1Byb3BlcnRpZXMoKSkKKyAgICAgICAgW21fc2Vzc2lvbi5nZXQoKSBhZGRPYnNl
cnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWUgb3B0aW9uczpOU0tl
eVZhbHVlT2JzZXJ2aW5nT3B0aW9uTmV3IGNvbnRleHQ6KHZvaWQgKiluaWxdOworCiAgICAgc2V0
dXBDYXB0dXJlU2Vzc2lvbigpOwogfQotIAotdm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2Fw
dHVyZVNlc3Npb25TdG9wcGVkUnVubmluZygpCisKK3ZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6
OnJlc2V0KCkKK3sKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpyZXNldCgpOworICAgIG1faXNS
dW5uaW5nID0gZmFsc2U7CisgICAgZm9yIChOU1N0cmluZyAqa2V5TmFtZSBpbiBzZXNzaW9uS1ZP
UHJvcGVydGllcygpKQorICAgICAgICBbbV9zZXNzaW9uLmdldCgpIHJlbW92ZU9ic2VydmVyOm1f
b2JqY09ic2VydmVyLmdldCgpIGZvcktleVBhdGg6a2V5TmFtZV07CisgICAgc2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpOworICAgIG1fc2Vzc2lvbiA9IG51bGxwdHI7Cit9CisKK3ZvaWQgQVZNZWRp
YUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKGJvb2wgc3Rh
dGUpCiB7Ci0gICAgc3RvcFByb2R1Y2luZ0RhdGEoKTsKKyAgICBzY2hlZHVsZURlZmVycmVkVGFz
ayhbdGhpcywgc3RhdGVdIHsKKyAgICAgICAgaWYgKHN0YXRlID09IG1faXNSdW5uaW5nKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1faXNSdW5uaW5nID0gc3RhdGU7CisgICAgICAg
IGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSgpOworICAgIH0pOwogfQogCiB2b2lkIEFWTWVkaWFD
YXB0dXJlU291cmNlOjpzZXRWaWRlb1NhbXBsZUJ1ZmZlckRlbGVnYXRlKEFWQ2FwdHVyZVZpZGVv
RGF0YU91dHB1dFR5cGUqIHZpZGVvT3V0cHV0KQpAQCAtMjE2LDYgKzI0MywxMiBAQCBBdWRpb1Nv
dXJjZVByb3ZpZGVyKiBBVk1lZGlhQ2FwdHVyZVNvdXJjCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKK05TQXJyYXkqIHNlc3Npb25LVk9Qcm9wZXJ0aWVzKCkKK3sKKyAgICBzdGF0aWMgTlNBcnJh
eSoga2V5cyA9IFtAW0AicnVubmluZyJdIHJldGFpbl07CisgICAgcmV0dXJuIGtleXM7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogQGltcGxlbWVudGF0aW9uIFdlYkNvcmVBVk1lZGlh
Q2FwdHVyZVNvdXJjZU9ic2VydmVyCkBAIC0yMjUsNiArMjU4LDcgQEAgLSAoaWQpaW5pdFdpdGhD
YWxsYmFjazooQVZNZWRpYUNhcHR1cmVTbwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CiAgICAg
aWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOworCiAgICAgbV9jYWxsYmFjayA9IGNhbGxi
YWNrOwogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMjM1LDI1ICsyNjksMzcgQEAgLSAodm9pZClk
aXNjb25uZWN0CiAgICAgbV9jYWxsYmFjayA9IDA7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZVNlc3Np
b25TdG9wcGVkUnVubmluZzooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KKy0gKHZvaWQp
Y2FwdHVyZU91dHB1dDooQVZDYXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0
cHV0U2FtcGxlQnVmZmVyOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5l
Y3Rpb246KEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgogewotICAgIFVOVVNF
RF9QQVJBTShub3RpZmljYXRpb24pOwotCiAgICAgaWYgKCFtX2NhbGxiYWNrKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
ewotICAgICAgICBpZiAobV9jYWxsYmFjaykKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPmNhcHR1
cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKTsKLSAgICB9KTsKKyAgICBtX2NhbGxiYWNrLT5jYXB0
dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oY2FwdHVyZU91dHB1
dCwgc2FtcGxlQnVmZmVyLCBjb25uZWN0aW9uKTsKIH0KIAotLSAodm9pZCljYXB0dXJlT3V0cHV0
OihBVkNhcHR1cmVPdXRwdXRUeXBlICopY2FwdHVyZU91dHB1dCBkaWRPdXRwdXRTYW1wbGVCdWZm
ZXI6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlciBmcm9tQ29ubmVjdGlvbjooQVZDYXB0
dXJlQ29ubmVjdGlvblR5cGUgKiljb25uZWN0aW9uCistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aDprZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKilj
aGFuZ2UgY29udGV4dDoodm9pZCopY29udGV4dAogeworICAgIFVOVVNFRF9QQVJBTShvYmplY3Qp
OworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKwogICAgIGlmICghbV9jYWxsYmFjaykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91dHB1dERpZE91dHB1dFNh
bXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNhbXBsZUJ1ZmZlciwgY29u
bmVjdGlvbik7CisgICAgaWQgbmV3VmFsdWUgPSBbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFs
dWVDaGFuZ2VOZXdLZXldOworCisjaWYgIUxPR19ESVNBQkxFRAorICAgIGJvb2wgd2lsbENoYW5n
ZSA9IFtbY2hhbmdlIHZhbHVlRm9yS2V5Ok5TS2V5VmFsdWVDaGFuZ2VOb3RpZmljYXRpb25Jc1By
aW9yS2V5XSBib29sVmFsdWVdOworCisgICAgaWYgKHdpbGxDaGFuZ2UpCisgICAgICAgIExPRyhN
ZWRpYSwgIldlYkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyOjpvYnNlcnZlVmFsdWVG
b3JLZXlQYXRoKCVwKSAtIHdpbGwgY2hhbmdlLCBrZXlQYXRoID0gJXMiLCBzZWxmLCBba2V5UGF0
aCBVVEY4U3RyaW5nXSk7CisgICAgZWxzZSB7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4g
dmFsdWVTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoRm9ybWF0OkAi
JUAiLCBuZXdWYWx1ZV0pOworICAgICAgICBMT0coTWVkaWEsICJXZWJDb3JlQVZNZWRpYUNhcHR1
cmVTb3VyY2VPYnNlcnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aCglcCkgLSBkaWQgY2hhbmdl
LCBrZXlQYXRoID0gJXMsIHZhbHVlID0gJXMiLCBzZWxmLCBba2V5UGF0aCBVVEY4U3RyaW5nXSwg
W3ZhbHVlU3RyaW5nLmdldCgpIFVURjhTdHJpbmddKTsKKyAgICB9CisjZW5kaWYKKworICAgIGlm
IChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJydW5uaW5nIl0pCisgICAgICAgIG1fY2FsbGJh
Y2stPmNhcHR1cmVTZXNzaW9uSXNSdW5uaW5nRGlkQ2hhbmdlKFtuZXdWYWx1ZSBib29sVmFsdWVd
KTsKIH0KIAogQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmgJKHJldmlzaW9u
IDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKICNp
bmNsdWRlICJBVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIgogCi1PQkpDX0NMQVNTIEFWQ2FwdHVyZVZp
ZGVvUHJldmlld0xheWVyOworT0JKQ19DTEFTUyBDQUxheWVyOwogCiB0eXBlZGVmIHN0cnVjdCBD
R0ltYWdlICpDR0ltYWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qgb3BhcXVlQ01Gb3JtYXRE
ZXNjcmlwdGlvbiAqQ01Gb3JtYXREZXNjcmlwdGlvblJlZjsKQEAgLTQ4LDM2ICs0OCwzOCBAQCBw
dWJsaWM6CiAgICAgaW50MzJfdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAg
ICBpbnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CiAKLSAgICBBVkNh
cHR1cmVWaWRlb1ByZXZpZXdMYXllciogcHJldmlld0xheWVyKCkgeyByZXR1cm4gbV92aWRlb1By
ZXZpZXdMYXllci5nZXQoKTsgfQotICAgIENNU2FtcGxlQnVmZmVyUmVmIGN1cnJlbnRGcmFtZVNh
bXBsZUJ1ZmZlcigpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyLmdldCgpOyB9Ci0gICAgdm9pZCBw
YWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lSW1hZ2UoKTsKLQog
cHJpdmF0ZToKICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKICAgICB2aXJ0
dWFsIH5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCiAgICAgdm9pZCBzZXR1cENhcHR1cmVTZXNz
aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkgb3ZlcnJp
ZGU7CisKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIGNvbnN0IG92ZXJy
aWRlOworICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJikgb3ZlcnJpZGU7CiAKICAgICBib29sIGFwcGx5Q29uc3RyYWludHMoTWVk
aWFDb25zdHJhaW50cyopOwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3RyYWludChmbG9hdCBt
aW5GcmFtZVJhdGUsIGZsb2F0IG1heEZyYW1lUmF0ZSk7CiAKLSAgICBib29sIGNhbGN1bGF0ZUZy
YW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgYm9vbCB1cGRhdGVGcmFtZXJhdGUoQ01T
YW1wbGVCdWZmZXJSZWYpOwogCiAgICAgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxl
QnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZmZXJSZWYs
IEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2Nlc3NOZXdGcmFt
ZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+KTsKIAotICAgIFJldGFpblB0cjxBVkNhcHR1
cmVDb25uZWN0aW9uPiBtX3ZpZGVvQ29ubmVjdGlvbjsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJl
VmlkZW9QcmV2aWV3TGF5ZXI+IG1fdmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgdm9pZCBwYWludEN1
cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmKSBv
dmVycmlkZTsKKyAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CisKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3VycmVudEZyYW1lQ0dJbWFnZSgpOwor
ICAgIFJlZlB0cjxJbWFnZT4gY3VycmVudEZyYW1lSW1hZ2UoKSBvdmVycmlkZTsKKwogICAgIFJl
dGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gbV9idWZmZXI7CiAgICAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IG1fbGFzdEltYWdlOwogICAgIFZlY3RvcjxGbG9hdDY0PiBtX3ZpZGVvRnJhbWVUaW1l
U3RhbXBzOwotICAgIEZsb2F0NjQgbV9mcmFtZVJhdGU7Ci0gICAgaW50MzJfdCBtX3dpZHRoOwot
ICAgIGludDMyX3QgbV9oZWlnaHQ7CisgICAgbXV0YWJsZSBSZXRhaW5QdHI8UGxhdGZvcm1MYXll
cj4gbV92aWRlb1ByZXZpZXdMYXllcjsKKyAgICBGbG9hdDY0IG1fZnJhbWVSYXRlIHsgMCB9Owor
ICAgIGludDMyX3QgbV93aWR0aCB7IDAgfTsKKyAgICBpbnQzMl90IG1faGVpZ2h0IHsgMCB9Owog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5tbQkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSwxMCArMzEsMTIgQEAKICNpbXBvcnQgIkFWQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbXBv
cnQgIkJsb2NrRXhjZXB0aW9ucy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0Q0cuaCIKKyNp
bXBvcnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJJbnRSZWN0LmgiCiAjaW1wb3J0ICJMb2dn
aW5nLmgiCiAjaW1wb3J0ICJNZWRpYUNvbnN0cmFpbnRzLmgiCiAjaW1wb3J0ICJOb3RJbXBsZW1l
bnRlZC5oIgorI2ltcG9ydCAiUGxhdGZvcm1MYXllci5oIgogI2ltcG9ydCAiUmVhbHRpbWVNZWRp
YVNvdXJjZVN0YXRlcy5oIgogI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWRm91bmRhdGlvbi5oPgog
I2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CkBAIC05OCw5ICsxMDAsNiBAQCBSZWZQdHI8QVZNZWRp
YUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0CiAKIEFWVmlkZW9DYXB0dXJlU291cmNlOjpBVlZp
ZGVvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2VUeXBlKiBkZXZpY2UsIGNvbnN0IEF0b21p
Y1N0cmluZyYgaWQsIFBhc3NSZWZQdHI8TWVkaWFDb25zdHJhaW50cz4gY29uc3RyYWludCkKICAg
ICA6IEFWTWVkaWFDYXB0dXJlU291cmNlKGRldmljZSwgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlZpZGVvLCBjb25zdHJhaW50KQotICAgICwgbV9mcmFtZVJhdGUoMCkKLSAgICAsIG1fd2lkdGgo
MCkKLSAgICAsIG1faGVpZ2h0KDApCiB7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VJ
ZChpZCk7CiAgICAgY3VycmVudFN0YXRlcygpLT5zZXRTb3VyY2VUeXBlKFJlYWx0aW1lTWVkaWFT
b3VyY2VTdGF0ZXM6OkNhbWVyYSk7CkBAIC0xMTAsMTAgKzEwOSwxMSBAQCBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6fkFWVmlkZW9DYXB0dXJlU291CiB7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkg
Y29uc3QKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMo
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKQogewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7CisgICAgLy8gRklYTUU6IGZpbmlzaCB0aGlz
IGltcGxlbWVudGF0aW9uCisgICAgY2FwYWJpbGl0aWVzLnNldFNvdXJjZUlkKGN1cnJlbnRTdGF0
ZXMoKS0+c291cmNlSWQoKSk7CisgICAgY2FwYWJpbGl0aWVzLmFkZFNvdXJjZVR5cGUoUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlczo6Q2FtZXJhKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6dXBkYXRlU3RhdGVzKCkKQEAgLTIxOCw5ICsyMTgsMTMgQEAgYm9vbCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6YXBwbHlDb25zdHJhaQogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0
dXBDYXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUlucHV0
VHlwZT4gdmlkZW9JbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlRGV2aWNlSW5wdXRJbnN0YW5j
ZSgpIGluaXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9yOm5pbF0pOwotICAgIEFTU0VSVChbc2Vz
c2lvbigpIGNhbkFkZElucHV0OnZpZGVvSW4uZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Npb24oKSBj
YW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2
aWRlb0luLmdldCgpXTsKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDp2aWRlb0lu
LmdldCgpXSkgeworICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0
dXBDYXB0dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gaW5wdXQgZGV2aWNlIiwg
dGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2Vzc2lvbigpIGFkZElucHV0
OnZpZGVvSW4uZ2V0KCldOwogCiAgICAgaWYgKGNvbnN0cmFpbnRzKCkpCiAgICAgICAgIGFwcGx5
Q29uc3RyYWludHMoY29uc3RyYWludHMoKSk7CkBAIC0yMzEsMTUgKzIzNSwyNiBAQCB2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1cmVTCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsIG5pbF0pOwogICAgIFt2aWRlb091
dHB1dCBzZXRWaWRlb1NldHRpbmdzOnNldHRpbmdzRGljdGlvbmFyeS5nZXQoKV07CiAgICAgc2V0
VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZSh2aWRlb091dHB1dC5nZXQoKSk7Ci0gICAgQVNTRVJU
KFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSk7Ci0gICAgaWYgKFtz
ZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkKLSAgICAgICAgW3Nlc3Np
b24oKSBhZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCldOwogCi0gICAgbV92aWRlb0Nvbm5lY3Rp
b24gPSBhZG9wdE5TKFt2aWRlb091dHB1dC5nZXQoKSBjb25uZWN0aW9uV2l0aE1lZGlhVHlwZTpB
Vk1lZGlhVHlwZVZpZGVvXSk7Ci0gICAgbV92aWRlb1ByZXZpZXdMYXllciA9IGFkb3B0TlMoW1tB
VkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllciBhbGxvY10gaW5pdFdpdGhTZXNzaW9uOnNlc3Npb24o
KV0pOworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRPdXRwdXQ6dmlkZW9PdXRwdXQuZ2V0KCld
KSB7CisgICAgICAgIExPRyhNZWRpYSwgIkFWVmlkZW9DYXB0dXJlU291cmNlOjpzZXR1cENhcHR1
cmVTZXNzaW9uKCVwKSwgdW5hYmxlIHRvIGFkZCB2aWRlbyBzYW1wbGUgYnVmZmVyIG91dHB1dCBk
ZWxlZ2F0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKK30KKwordm9pZCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpCit7CisgICAgbV92aWRlb1ByZXZpZXdMYXll
ciA9IG51bGxwdHI7CisgICAgbV9idWZmZXIgPSBudWxscHRyOworICAgIG1fbGFzdEltYWdlID0g
bnVsbHB0cjsKKyAgICBtX3ZpZGVvRnJhbWVUaW1lU3RhbXBzLmNsZWFyKCk7CisgICAgbV9mcmFt
ZVJhdGUgPSAwOworICAgIG1fd2lkdGggPSAwOworICAgIG1faGVpZ2h0ID0gMDsKIH0KIAotYm9v
bCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlcikKK2Jvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1l
cmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiB7CiAgICAgQ01UaW1lIHNhbXBs
ZVRpbWUgPSBDTVNhbXBsZUJ1ZmZlckdldFByZXNlbnRhdGlvblRpbWVTdGFtcChzYW1wbGVCdWZm
ZXIpOwogICAgIGlmICghQ01USU1FX0lTX05VTUVSSUMoc2FtcGxlVGltZSkpCkBAIC0yNjEsMTMg
KzI3NiwxOSBAQCBib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjYWxjdWxhdGVGcmFtCiAKIHZv
aWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1w
bGVCdWZmZXJSZWY+IHNhbXBsZUJ1ZmZlcikKIHsKKyAgICAvLyBJZ25vcmUgZnJhbWVzIGRlbGl2
ZXJlZCB3aGVuIHRoZSBzZXNzaW9uIGlzIG5vdCBydW5uaW5nLCB3ZSB3YW50IHRvIGhhbmcgb250
byB0aGUgbGFzdCBpbWFnZQorICAgIC8vIGRlbGl2ZXJlZCBiZWZvcmUgaXQgc3RvcHBlZC4KKyAg
ICBpZiAobV9sYXN0SW1hZ2UgJiYgKCFpc1Byb2R1Y2luZ0RhdGEoKSB8fCAhZW5hYmxlZCgpKSkK
KyAgICAgICAgcmV0dXJuOworCiAgICAgQ01Gb3JtYXREZXNjcmlwdGlvblJlZiBmb3JtYXREZXNj
cmlwdGlvbiA9IENNU2FtcGxlQnVmZmVyR2V0Rm9ybWF0RGVzY3JpcHRpb24oc2FtcGxlQnVmZmVy
LmdldCgpKTsKICAgICBpZiAoIWZvcm1hdERlc2NyaXB0aW9uKQogICAgICAgICByZXR1cm47CiAK
KyAgICB1cGRhdGVGcmFtZXJhdGUoc2FtcGxlQnVmZmVyLmdldCgpKTsKKwogICAgIGJvb2wgc3Rh
dGVzQ2hhbmdlZCA9IGZhbHNlOwogCi0gICAgc3RhdGVzQ2hhbmdlZCA9IGNhbGN1bGF0ZUZyYW1l
cmF0ZShzYW1wbGVCdWZmZXIuZ2V0KCkpOwogICAgIG1fYnVmZmVyID0gc2FtcGxlQnVmZmVyOwog
ICAgIG1fbGFzdEltYWdlID0gbnVsbHB0cjsKIApAQCAtMjkxLDcgKzMxMiwyMyBAQCB2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0CiAgICAgfSk7CiB9CiAKLVJldGFpblB0
cjxDR0ltYWdlUmVmPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQor
UmVmUHRyPEltYWdlPiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQor
eworICAgIGlmICghY3VycmVudEZyYW1lQ0dJbWFnZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIEZsb2F0UmVjdCBpbWFnZVJlY3QoMCwgMCwgbV93aWR0aCwgbV9oZWlnaHQpOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZl
cjo6Y3JlYXRlKGltYWdlUmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworCisgICAgaWYgKCFp
bWFnZUJ1ZmZlcikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBwYWludEN1cnJlbnRG
cmFtZUluQ29udGV4dChpbWFnZUJ1ZmZlci0+Y29udGV4dCgpLCBpbWFnZVJlY3QpOworCisgICAg
cmV0dXJuIGltYWdlQnVmZmVyLT5jb3B5SW1hZ2UoKTsKK30KKworUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjdXJyZW50RnJhbWVDR0ltYWdlKCkKIHsKICAgICBp
ZiAobV9sYXN0SW1hZ2UpCiAgICAgICAgIHJldHVybiBtX2xhc3RJbWFnZTsKQEAgLTMxOCw3ICsz
NTUsNyBAQCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyCiAKIHZvaWQg
QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNz
Q29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIGlmIChjb250
ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSB8fCAhY3VycmVudEZyYW1lSW1hZ2UoKSkKKyAgICBpZiAo
Y29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVy
KGNvbnRleHQpOwpAQCAtMzI5LDYgKzM2NiwxOSBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNl
OjpwYWludEN1cnJlbnRGCiAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZvcm1D
b250ZXh0KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5o
ZWlnaHQoKSksIG1fbGFzdEltYWdlLmdldCgpKTsKIH0KIAorUGxhdGZvcm1MYXllciogQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAgIGlmIChtX3ZpZGVv
UHJldmlld0xheWVyKQorICAgICAgICByZXR1cm4gbV92aWRlb1ByZXZpZXdMYXllci5nZXQoKTsK
KworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZVZpZGVv
UHJldmlld0xheWVySW5zdGFuY2UoKSBpbml0V2l0aFNlc3Npb246c2Vzc2lvbigpXSk7CisjaWZu
ZGVmIE5ERUJVRworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCkubmFtZSA9IEAiQVZWaWRl
b0NhcHR1cmVTb3VyY2UgcHJldmlldyBsYXllciI7CisjZW5kaWYKKworICAgIHJldHVybiBtX3Zp
ZGVvUHJldmlld0xheWVyLmdldCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLmgJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2Jq
Qy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICBzaXpl
X3QgbV9saXN0QnVmZmVyU2l6ZSB7IDAgfTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9CdWZm
ZXJMaXN0PiBtX2xpc3Q7Ci0gICAgUmV0YWluUHRyPEF1ZGlvQ29udmVydGVyUmVmPiBtX2NvbnZl
cnRlcjsKKyAgICBBdWRpb0NvbnZlcnRlclJlZiBtX2NvbnZlcnRlcjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uPiBtX2lucHV0RGVzY3JpcHRpb247CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9vdXRwdXRE
ZXNjcmlwdGlvbjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0FSaW5nQnVmZmVyPiBtX3JpbmdCdWZm
ZXI7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVk
aW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1t
CShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTczLDYgKzczLDExIEBAIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpXZWJBdWRpb1MK
IAogV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVy
QVZGT2JqQygpCiB7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8vIEZJWE1FOiBt
YWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgorICAgICAgICBB
dWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2NvbnZlcnRlciA9
IG51bGxwdHI7CisgICAgfQogICAgIGlmIChtX2Nvbm5lY3RlZCkKICAgICAgICAgbV9jYXB0dXJl
U291cmNlLT5yZW1vdmVPYnNlcnZlcih0aGlzKTsKIH0KQEAgLTEyMyw3ICsxMjgsNyBAQCB2b2lk
IFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm92CiAgICAgbV9yZWFkQ291bnQgKz0g
ZnJhbWVzVG9Qcm9jZXNzOwogCiAgICAgaWYgKG1fY29udmVydGVyKQotICAgICAgICBBdWRpb0Nv
bnZlcnRlckNvbnZlcnRDb21wbGV4QnVmZmVyKG1fY29udmVydGVyLmdldCgpLCBmcmFtZXNUb1By
b2Nlc3MsIG1fbGlzdC5nZXQoKSwgbV9saXN0LmdldCgpKTsKKyAgICAgICAgQXVkaW9Db252ZXJ0
ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlciwgZnJhbWVzVG9Qcm9jZXNzLCBtX2xp
c3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakM6OnNldENsaWVudChBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50KiBjbGllbnQpCkBA
IC0xODAsOSArMTg1LDE5IEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnBy
ZXAKICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5tQnl0ZXNQZXJGcmFtZSA9IHNpemVvZihGbG9h
dDMyKTsKICAgICBtX291dHB1dERlc2NyaXB0aW9uLT5tRm9ybWF0RmxhZ3MgfD0ga0F1ZGlvRm9y
bWF0RmxhZ0lzTm9uSW50ZXJsZWF2ZWQ7CiAKKyAgICBpZiAobV9jb252ZXJ0ZXIpIHsKKyAgICAg
ICAgLy8gRklYTUU6IG1ha2UgYW5kIHVzZSBhIHNtYXJ0IHBvaW50ZXIgZm9yIEF1ZGlvQ29udmVy
dGVyCisgICAgICAgIEF1ZGlvQ29udmVydGVyRGlzcG9zZShtX2NvbnZlcnRlcik7CisgICAgICAg
IG1fY29udmVydGVyID0gbnVsbHB0cjsKKyAgICB9CisKICAgICBpZiAoKm1faW5wdXREZXNjcmlw
dGlvbiAhPSAqbV9vdXRwdXREZXNjcmlwdGlvbikgewogICAgICAgICBBdWRpb0NvbnZlcnRlclJl
ZiBvdXRDb252ZXJ0ZXIgPSBudWxscHRyOwotICAgICAgICBBdWRpb0NvbnZlcnRlck5ldyhtX2lu
cHV0RGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252
ZXJ0ZXIpOworICAgICAgICBPU1N0YXR1cyBlcnIgPSBBdWRpb0NvbnZlcnRlck5ldyhtX2lucHV0
RGVzY3JpcHRpb24uZ2V0KCksIG1fb3V0cHV0RGVzY3JpcHRpb24uZ2V0KCksICZvdXRDb252ZXJ0
ZXIpOworICAgICAgICBpZiAoZXJyKSB7CisgICAgICAgICAgICBMT0coTWVkaWEsICJXZWJBdWRp
b1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSglcCkgLSBBdWRpb0NvbnZlcnRlck5ldyBy
ZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KICAgICAgICAgbV9jb252ZXJ0ZXIgPSBvdXRDb252ZXJ0ZXI7CiAgICAgfQogCkBAIC0y
MjEsNiArMjM2LDExIEBAIHZvaWQgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHIK
ICAgICBtX3JpbmdCdWZmZXIgPSBudWxscHRyOwogICAgIG1fbGlzdCA9IG51bGxwdHI7CiAgICAg
bV9saXN0QnVmZmVyU2l6ZSA9IDA7CisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8v
IEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgor
ICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2Nv
bnZlcnRlciA9IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlk
ZXJBVkZPYmpDOjpwcm9jZXNzKENNRm9ybWF0RGVzY3JpcHRpb25SZWYsIENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZUJ1ZmZlcikKQEAgLTIzNCw3ICsyNTQsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNl
UHJvdmlkZXJBVkZPYmpDOjpwcm9jCiAgICAgT1NTdGF0dXMgZXJyID0gQ01TYW1wbGVCdWZmZXJH
ZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlcihzYW1wbGVCdWZmZXIsIG51
bGxwdHIsIG1fbGlzdC5nZXQoKSwgbV9saXN0QnVmZmVyU2l6ZSwga0NGQWxsb2NhdG9yU3lzdGVt
RGVmYXVsdCwga0NGQWxsb2NhdG9yU3lzdGVtRGVmYXVsdCwga0NNU2FtcGxlQnVmZmVyRmxhZ19B
dWRpb0J1ZmZlckxpc3RfQXNzdXJlMTZCeXRlQWxpZ25tZW50LCAmYnVmZmVyKTsKIAogICAgIGlm
IChlcnIpIHsKLSAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM6OnByb2VzcyglcCkgLSBDTVNhbXBsZUJ1ZmZlckdldEF1ZGlvQnVmZmVyTGlzdFdpdGhSZXRh
aW5lZEJsb2NrQnVmZmVyIHJldHVybmVkIGVycm9yICVpIiwgdGhpcywgZXJyKTsKKyAgICAgICAg
TE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb2Nlc3MoJXApIC0g
Q01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRCbG9ja0J1ZmZlciBy
ZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVh
bHRpbWVNZWRpYVNvdXJjZU93ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZU93ci5oCShyZXZp
c2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAkod29ya2luZyBjb3B5KQpAQCAtNTgsNyAr
NTgsNyBAQCBSZWFsdGltZU1lZGlhU291cmNlT3dyKE93ck1lZGlhU291cmNlKiBtCiAKICAgICB2
aXJ0dWFsIH5SZWFsdGltZU1lZGlhU291cmNlT3dyKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7
IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0
aWVzOyB9CiAgICAgdmlydHVhbCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0
ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0ZXM7IH0KIAogICAgIE93ck1lZGlhU291cmNlKiBt
ZWRpYVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFTb3VyY2U7IH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5Nb2NrU291
cmNlKCkgeyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQor
ICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IGNhcGFi
aWxpdGllcygpIHsgcmV0dXJuIG1fY2FwYWJpbGl0aWVzOyB9CiAgICAgdmlydHVhbCBjb25zdCBS
ZWFsdGltZU1lZGlhU291cmNlU3RhdGVzJiBzdGF0ZXMoKSB7IHJldHVybiBtX2N1cnJlbnRTdGF0
ZXM7IH0KIAogICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBtX2Nh
cGFiaWxpdGllczsK
</data>
<flag name="commit-queue"
          id="289427"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264297</attachid>
            <date>2015-10-28 21:36:24 -0700</date>
            <delta_ts>2015-10-28 22:31:29 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>media_player_patch_17.txt</filename>
            <type>text/plain</type>
            <size>121018</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5MSBAQAorMjAxNS0xMC0yOCAgRXJpYyBD
YXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1d
IFBsYXkgTWVkaWFTdHJlYW0gdGhyb3VnaCBtZWRpYSBlbGVtZW50IGFuZCByZW5kZXJlZCB0byBj
YW52YXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFT
dHJlYW06OmNyZWF0ZSk6IERvbid0IGRpZSBhIHJlY3Vyc2l2ZSBkZWF0aC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbSk6IHNldENsaWVudCAtPiBhZGRPYnNlcnZl
ci4gU2V0IHByaXZhdGUgc3RyZWFtJ3MgcHVibGljIHN0cmVhbSBwb2ludGVyLgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSk6IHNldENsaWVudCAtPiBhZGRPYnNl
cnZlci4gQ2xlYXIgcHJpdmF0ZSBzdHJlYW0ncyBwdWJsaWMgc3RyZWFtIHBvaW50ZXIuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6ZGlkQWRkVHJhY2spOiBTaG9ydCBjaXJjdWl0IGNh
bGxpbmcgaW50ZXJuYWxBZGRUcmFjayB3aGVuIHRoZSB0cmFjayBpcyB1bmtub3duLgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW06OmRpZFJlbW92ZVRyYWNrKTogQVNTRVJUIHRoYXQgdGhl
IHRyYWNrIGlzIGtub3duLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW0uaDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjp0cmFja1Byb2R1Y2luZ0Rh
dGFDaGFuZ2VkKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFjazo6dHJh
Y2tFbmFibGVkQ2hhbmdlZCk6IE5ldy4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtVHJhY2suaDoKKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVl
ckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmRp
ZFJlbW92ZVJlbW90ZVN0cmVhbSk6IFVzZSB0aGUgbmV3IE1lZGlhU3RyZWFtUHJpdmF0ZTo6cHVi
bGljU3RyZWFtKCkgbWV0aG9kLgorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0
cmVhbUF1ZGlvU291cmNlLmNwcDoKK10gICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbUF1ZGlv
U291cmNlOjpjYXBhYmlsaXRpZXMpOiBjYXBhYmlsaXRpZXMgaXNuJ3QgY29uc3QuCisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlLmg6CisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQpOiBSZWZv
cm1hdCB0byBtYWtlIGl0IHVzZSBlYXJseSByZXR1cm4uCisKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlbW92ZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpD
Lm1tL2gsIHRoZXkgYXJlIG5vIGxvbmdlciBuZWNlc3NhcnkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZE1lZGlh
RW5naW5lc1ZlY3Rvcik6IFJlZ2lzdGVyIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQyBlbmdpbmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyk6
IENsZWFudXAsIGFkZCBsb2dnaW5nLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDKTogQWRkCisgICAgICAgICAgbG9nZ2luZywgcmVtb3ZlIHByaXZhdGUgc3RyZWFtIG9ic2Vy
dmVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
YmpDOjpyZWdpc3Rlck1lZGlhRW5naW5lKTogQ2xlYW51cC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aXNBdmFpbGFibGUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
Z2V0U3VwcG9ydGVkVHlwZXMpOiBSZXR1cm4gYW4gZW1wdHkgdmVjdG9yLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKTogVXNlIHRo
ZSBNZWRpYVN0cmVhbVByaXZhdGUgcGFzc2VkIGluc3RlYWQKKyAgICAgICAgICBvZiBjcmVhdGlu
ZyBhIG5ldyBwcml2YXRlIHN0cmVhbS4gCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNhbmNlbExvYWQpOiBQYXVzZSBvdXRwdXQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBh
cmVUb1BsYXkpOiBBZGQgbG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZvcm1MYXllcik6IG1fcHJldmlld0xheWVyIC0+
IG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFBhdXNlZEltYWdlVmlzaWJsZSk6IE5ldywgc2hv
dy9oaWRlIHRoZSBwcmV2aWV3IGxheWVyIGFuZCBjb25maWd1cmUKKyAgICAgICAgICB0aGUgYmFj
a2dyb3VuZCBsYXllciBzbyB3ZSBzaG93IGEgc3RpbGwgaW1hZ2UgZXZlbiB0aG91Z2ggdGhlIGNh
cHR1cmUgZGV2aWNlIGNvbnRpbnVlcyB0byBydW4uIFN0YXJ0L3N0b3AgY2xvY2suCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXkpOiBE
b24ndCBuZWVkIHRvIHN0YXJ0IHRoZSBzb3VyY2UsIHRoYXQgaGFwcGVucyBpbiBpbiBsb2FkLiBK
dXN0CisgICAgICAgICAgc2V0IGZsYWdzIGFuZCBoaWRlIHRoZSBwYXVzZWQgaW1hZ2UuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNl
KTogRG9uJ3Qgc3RvcCB0aGUgc291cmNlLCBpdCBtYXkgYmUgc2hhcmVkIGJ5IG1vcmUgdGhhbiBv
bmUgCisgICAgICAgICAgc3RyZWFtL3RyYWNrLiBKdXN0IHNldCB0aGUgcGxheWluZyBmbGFnIGFu
ZCBzaG93IHRoZSBwYXVzZWQgaW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlZCk6IEZpeC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aW50ZXJuYWxTZXRWb2x1bWUp
OiBOZXcsIGNhbGxlZCBieSBzZXRNdXRlZCBhbmQgc2V0Vm9sdW1lLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZXRWb2x1bWUpOiBOZXcu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OnNldE11dGVkKTogRG9uJ3QgbXV0ZSB0aGUgc291cmNlLCBpdCBkb2Vzbid0IGRvIHdoYXQgeW91
IHRoaW5rLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDOjpoYXNWaWRlbyk6IFBhc3MtdGhyb3VnaCB0byBzdHJlYW0uCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omhhc0F1ZGlvKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OmN1cnJlbnRNZWRpYVRpbWUpOiBSZXR1cm4gY2xvY2sgdGltZS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3VycmVudFJlYWR5U3Rh
dGUpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OmFjdGl2ZVN0YXR1c0NoYW5nZWQpOiBVcGRhdGUgcmVhZHlTdGF0ZS4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6dXBkYXRl
SW50cmluc2ljU2l6ZSk6IFVwZGF0ZSBpbnRyaW5zaWMgc2l6ZSwgY3JlYXRlIGxheWVycyBpZiBu
ZWNlc3NhcnkuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OmNyZWF0ZVByZXZpZXdMYXllcnMpOiBDcmVhdGUgcHJldmlldyBsYXllcnMuCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNo
YXJhY3RlcmlzdGljc0NoYW5nZWQpOiBVcGRhdGUgZm9yIGNoYW5nZWQgY2hhcmFjdGVyaXN0aWNz
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjpzZWVrYWJsZSk6ICdzZWVrYWJsZScgbXVzdCByZXR1cm4gYW4gZW1wdHkgVGltZVJhbmdlcyBv
YmplY3QuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KTogTmV3LgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzY2hlZHVsZURlZmVycmVk
VGFzayk6CisgICAgICAgIChXZWJDb3JlOjptaW1lVHlwZUNhY2hlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxhdGZv
cm1NZWRpYSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlSW50ZXJuYWwp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpzaXplQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1heE1lZGlhVGltZVNlZWthYmxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6bWluTWVkaWFUaW1lU2Vla2FibGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjcmVhdGVJbWFnZUZyb21T
YW1wbGVCdWZmZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6bW92aWVMb2FkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmV4dHJhTWVtb3J5Q29zdCk6IERlbGV0ZWQu
CisKKyAgICAgICAgRGVsZXRlIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0vLmggYXMgdGhl
eSBhcmVuJ3QgbmVjZXNzYXJ5LiAKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmg6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRl
QVZGT2JqQy5tbTogUmVtb3ZlZC4KKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZh
dGU6Ok1lZGlhU3RyZWFtUHJpdmF0ZSk6IEFkZCB0cmFjayBvYnNlcnZlciEKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkT2JzZXJ2ZXIpOiBOZXcuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnJlbW92ZU9ic2VydmVyKTogTmV3LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp1cGRhdGVBY3RpdmVTdGF0ZSk6IFJlbWVt
YmVyIHRoZSBmaXJzdCBhY3RpdmUgdmlkZW8gdHJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVByaXZhdGU6OmFkZFRyYWNrKTogTm90aWZ5IG9ic2VydmVycy4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cmVtb3ZlVHJhY2spOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6c3RhcnRQcm9kdWNpbmdEYXRhKTogUGFzcy10
aHJvdWdoIHRvIHRyYWNrcy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6
c3RvcFByb2R1Y2luZ0RhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFt
UHJpdmF0ZTo6aXNQcm9kdWNpbmdEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVByaXZhdGU6Omhhc1ZpZGVvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVByaXZhdGU6Omhhc0F1ZGlvKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVN0cmVhbVByaXZhdGU6OnBsYXRmb3JtTGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6cGFpbnRDdXJyZW50RnJhbWVJbkNvbnRleHQpOiBFaXRoZXIg
cGFzcy10aHJvdWdoIHRvIGZpcnN0IGFjdGl2ZSB2aWRlbworICAgICAgICAgIHRyYWNrLCBvciBw
YWludCB0aGUgY29udGV4dCBibGFjay4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJp
dmF0ZTo6Y3VycmVudEZyYW1lSW1hZ2UpOiBQYXNzLXRocm91Z2ggdG8gZmlyc3QgYWN0aXZlIHZp
ZGVvIHRyYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjpjaGFyYWN0
ZXJpc3RpY3NDaGFuZ2VkKTogSW5mb3JtIG9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tNdXRlZENoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja1N0YXRlc0NoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjp0cmFja0VuYWJsZWRDaGFuZ2VkKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tQcm9kdWNpbmdEYXRhQ2hhbmdlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6OnNjaGVkdWxlRGVmZXJyZWRUYXNr
KTogTmV3LCBjYWxsIGEgZnVuY3Rpb24gYXN5bmNocm9ub3VzbHkgb24KKyAgICAgICAgICB0aGUg
bWFpbiB0aHJlYWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Q
cml2YXRlLmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRy
YWNrUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZTo6ZW5kVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6
OnNvdXJjZVByb2R1Y2luZ0RhdGFDaGFuZ2VkKTogTmV3LCBpbmZvcm0gb2JzZXJ2ZXJzLgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZUVuYWJsZWRDaGFu
Z2VkKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1U
cmFja1ByaXZhdGUuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6
aXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlKTogTmV3LCBpbmZvcm0gb2JzZXJ2ZXJzLgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c2V0RW5hYmxlZCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RvcCk6IENhbGwgcmVzZXQoKTsK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6IERv
bid0IGRlY2xhcmUgImNhcGFiaWxpdGllcyIgYXMgY29uc3Qgc28gCisgICAgICAgICAgY2FwYWJp
bGl0aWVzIGNhbiBiZSBjcmVhdGVkIGFuZCBpbml0aWFsaXplZCBsYXppbHkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW06Cisg
ICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6aW5pdGlhbGl6ZUNhcGFiaWxp
dGllcyk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjphZGRP
YnNlcnZlcik6IEhvbGQgdGhlIGxvY2sgd2hpbGUgY2FsbGluZyBvYnNlcnZlcnMgc28gdGhlIGxp
c3QKKyAgICAgICAgICBjYW4ndCBiZSBtdXRhdGVkLgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRp
b0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24pOiBMb2cgYW5kIGZhaWwgaWYgdGhl
IHNlc3Npb24gd29uJ3QgYWRkIHRoZQorICAgICAgICAgIGlucHV0IG9yIG91dHB1dC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpzaHV0ZG93bkNhcHR1cmVTZXNzaW9u
KTogQ2xlYW51cC4KKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXB0
dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24pOiBEb24ndCBibG9j
aworICAgICAgICAgIGlmIGl0IGlzbid0IHBvc3NpYmxlIHRvIGFjcXVpcmUgdGhlIGxvY2suIEhv
bGQgdGhlIGxvY2sgd2hpbGUgY2FsbGluZyBvYnNlcnZlcnMuCisgICAgICAgIChXZWJDb3JlOjpB
VkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKTogRGVsZXRlZC4KKworICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6cmVmcmVzaENhcHR1cmVEZXZpY2VMaXN0KTogRG9uJ3QgaW5jbHVkZSBk
ZXZpY2VzIHRoYXQgY2FuJ3QgYmUgdXNlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFWQ2FwdHVyZURl
dmljZU1hbmFnZXI6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFpbnRzKTogIFVzZSBBVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyOjpzb3VyY2VXaXRoVUlECisgICAgICAgICAgc28gY29uc3RyYWlu
dHMgYXJlIGNvbnNpZGVyZWQuCisgICAgICAgIChXZWJDb3JlOjpBVkNhcHR1cmVEZXZpY2VNYW5h
Z2VyOjpzb3VyY2VXaXRoVUlEKTogRG9uJ3QgY29uc2lkZXIgZGlzYWJsZWQgZGV2aWNlcy4gQWx3
YXlzCisgICAgICAgICAgY3JlYXRlIGEgbmV3IGNhcHR1cmUgZGV2aWNlIHNvIGVhY2ggdHJhY2sg
c3RhcnRzIG91dCB3aXRoIGEgdW5pcXVlIHNvdXJjZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZNZWRpYUNhcHR1cmVTb3VyY2UuaDoKKworICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNv
cmU6Omdsb2JhQXVkaW9DYXB0dXJlU2VyaWFsUXVldWUpOgorICAgICAgICAoV2ViQ29yZTo6QVZN
ZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjp+QVZNZWRpYUNhcHR1cmVTb3VyY2UpOiBSZW1vdmUg
S1ZPIG9ic2VydmVycy4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFDYXB0dXJlU291cmNlOjpz
dGFydFByb2R1Y2luZ0RhdGEpOiBtX2lzUnVubmluZyBpcyBjaGFuZ2VkIGluIGNhcHR1cmVTZXNz
aW9uSXNSdW5uaW5nRGlkQ2hhbmdlLgorICAgICAgICAoV2ViQ29yZTo6QVZNZWRpYUNhcHR1cmVT
b3VyY2U6OnN0b3BQcm9kdWNpbmdEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBVk1l
ZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6
QVZNZWRpYUNhcHR1cmVTb3VyY2U6OnNldHVwU2Vzc2lvbik6IEFkZCBLVk9ic2VydmVycyBmb3Ig
dGhlIHByb3BlcnRpZXMgd2UgY2FyZSBhYm91dC4KKyAgICAgICAgKFdlYkNvcmU6OkFWTWVkaWFD
YXB0dXJlU291cmNlOjpyZXNldCk6IE5ldywgY2xlYW51cC4KKyAgICAgICAgKFdlYkNvcmU6OkFW
TWVkaWFDYXB0dXJlU291cmNlOjpjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZSk6IERp
c3BhdGNoIHRvIHRoZSBtYWluIHRocmVhZCAKKyAgICAgICAgICB0byBzZXQgbV9pc1J1bm5pbmcs
IGNhbGwgaXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlIHNvIG9ic2VydmVycyBjYW4gZmluZCBvdXQu
CisgICAgICAgIChXZWJDb3JlOjpzZXNzaW9uS1ZPUHJvcGVydGllcyk6CisgICAgICAgICgtW1dl
YkNvcmVBVk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGRpc2Nvbm5lY3RdKToKKyAgICAgICAg
KC1bV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291cmNlT2JzZXJ2ZXIgY2FwdHVyZU91dHB1dDpkaWRP
dXRwdXRTYW1wbGVCdWZmZXI6ZnJvbUNvbm5lY3Rpb246XSk6CisgICAgICAgICgtW1dlYkNvcmVB
Vk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmpl
Y3Q6Y2hhbmdlOmNvbnRleHQ6XSk6IFJlc3BvbmQKKyAgICAgICAgICB0byBydW5uaW5nIGNoYW5n
ZXMuCisgICAgICAgIChXZWJDb3JlOjpBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZVNlc3Np
b25TdG9wcGVkUnVubmluZyk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYkNvcmVBVk1lZGlhQ2Fw
dHVyZVNvdXJjZU9ic2VydmVyIGNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmc6XSk6IERlbGV0
ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1
cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6aW5p
dGlhbGl6ZUNhcGFiaWxpdGllcyk6IFBhcnRpYWwgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbik6ICBMb2cg
YW5kIGZhaWwgaWYgdGhlIHNlc3Npb24gd29uJ3QgYWRkIHRoZQorICAgICAgICAgIGlucHV0IG9y
IG91dHB1dC4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpzaHV0ZG93
bkNhcHR1cmVTZXNzaW9uKTogQ2xlYW51cC4KKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0
dXJlU291cmNlOjp1cGRhdGVGcmFtZXJhdGUpOiBSZW5hbWVkIGZyb20gY2FsY3VsYXRlRnJhbWVy
YXRlLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFt
ZUltYWdlKTogUmV0dXJuIGFuIEltYWdlLgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnBsYXRmb3JtTGF5ZXIpOiBOZXcuCisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkFWVmlkZW9DYXB0dXJlU291cmNlOjpjYWxjdWxhdGVGcmFtZXJhdGUpOiBEZWxldGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJB
VkZPYmpDLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6On5XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyk6IEF1ZGlvQ29u
dmVydGVyUmVmIGlzCisgICAgICAgICAgbm90IGEgQ0YvT2JqQyBvYmplY3Qgc28gd2UgY2FuJ3Qg
dXNlIGEgUmV0YWluUHRyPD4gZm9yIGl0LgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9jZXNzKTogRml4IHR5cG8gaW4gbG9nZ2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1NvdXJjZTo6Y2FwYWJpbGl0aWVzKTogVXBkYXRlIGZvciBjYXBhYmlsaXRpZXMgY2hhbmdlLgor
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlh
U291cmNlT3dyLmg6IFVwZGF0ZSBmb3IgY2FwYWJpbGl0aWVzIGNoYW5nZS4KKwogMjAxNS0xMC0y
OCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFzc2VydGlvbiBm
YWlsdXJlIGluIFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpzdG9wTG9hZGluZygpIHJ1bm5pbmcgZmFz
dC9ldmVudHMgdGVzdHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNiArNDAsMzYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgVmVjdG9y
PE1lZGlhU3RyZWFtKj4mIG1lZGlhU3RyZWFtcygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxNZWRpYVN0cmVhbSo+PiBzdHJlYW1zOworICAgIHJldHVybiBzdHJlYW1zOwor
fQorCitzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtKiBzdHJlYW0p
Cit7CisgICAgbWVkaWFTdHJlYW1zKCkuYXBwZW5kKHN0cmVhbSk7Cit9CisKK3N0YXRpYyB2b2lk
IHVuUmVnaXN0ZXJNZWRpYVN0cmVhbShNZWRpYVN0cmVhbSogc3RyZWFtKQoreworICAgIFZlY3Rv
cjxNZWRpYVN0cmVhbSo+JiBhbGxTdHJlYW1zID0gbWVkaWFTdHJlYW1zKCk7CisgICAgc2l6ZV90
IHBvcyA9IGFsbFN0cmVhbXMuZmluZChzdHJlYW0pOworICAgIGlmIChwb3MgIT0gbm90Rm91bmQp
CisgICAgICAgIGFsbFN0cmVhbXMucmVtb3ZlKHBvcyk7Cit9CisKK01lZGlhU3RyZWFtKiBNZWRp
YVN0cmVhbTo6bG9va1VwKGNvbnN0IE1lZGlhU3RyZWFtUHJpdmF0ZSYgcHJpdmF0ZVN0cmVhbSkK
K3sKKyAgICBWZWN0b3I8TWVkaWFTdHJlYW0qPiYgYWxsU3RyZWFtcyA9IG1lZGlhU3RyZWFtcygp
OworICAgIGZvciAoYXV0byYgc3RyZWFtIDogYWxsU3RyZWFtcykgeworICAgICAgICBpZiAoc3Ry
ZWFtLT5tX3ByaXZhdGUgPT0gJnByaXZhdGVTdHJlYW0pCisgICAgICAgICAgICByZXR1cm4gc3Ry
ZWFtOworICAgIH0KKworICAgIHJldHVybiBudWxscHRyOworfQorCiBzdGF0aWMgVVJMUmVnaXN0
cnkqIHNfcmVnaXN0cnk7CiAKIHZvaWQgTWVkaWFTdHJlYW06OnNldFJlZ2lzdHJ5KFVSTFJlZ2lz
dHJ5JiByZWdpc3RyeSkKQEAgLTU4LDcgKzg4LDcgQEAgTWVkaWFTdHJlYW0qIE1lZGlhU3RyZWFt
Ojpsb29rVXAoY29uc3QgVQogCiBSZWY8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKIHsKLSAgICByZXR1cm4gTWVkaWFTdHJl
YW06OmNyZWF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4gTWVkaWFTdHJlYW06OmNyZWF0ZShjb250
ZXh0LCBNZWRpYVN0cmVhbVByaXZhdGU6OmNyZWF0ZShWZWN0b3I8UmVmUHRyPE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlPj4oKSkpOwogfQogCiBSZWY8TWVkaWFTdHJlYW0+IE1lZGlhU3RyZWFtOjpj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgTWVkaWFTdHJlYW0qIHN0cmVh
bSkKQEAgLTk1LDcgKzEyNSw4IEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVj
dXRpb24KIAogICAgIG1fcHJpdmF0ZSA9IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3JlYXRlKHRyYWNr
UHJpdmF0ZXMpOwogICAgIG1faXNBY3RpdmUgPSBtX3ByaXZhdGUtPmFjdGl2ZSgpOwotICAgIG1f
cHJpdmF0ZS0+c2V0Q2xpZW50KHRoaXMpOworICAgIG1fcHJpdmF0ZS0+YWRkT2JzZXJ2ZXIoKnRo
aXMpOworICAgIHJlZ2lzdGVyTWVkaWFTdHJlYW0odGhpcyk7CiB9CiAKIE1lZGlhU3RyZWFtOjpN
ZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBSZWZQdHI8TWVkaWFT
dHJlYW1Qcml2YXRlPiYmIHN0cmVhbVByaXZhdGUpCkBAIC0xMDUsNyArMTM2LDggQEAgTWVkaWFT
dHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbgogICAgICwgbV9hY3Rpdml0eUV2ZW50
VGltZXIoKnRoaXMsICZNZWRpYVN0cmVhbTo6YWN0aXZpdHlFdmVudFRpbWVyRmlyZWQpCiB7CiAg
ICAgQVNTRVJUKG1fcHJpdmF0ZSk7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQodGhpcyk7Cisg
ICAgbV9wcml2YXRlLT5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgcmVnaXN0ZXJNZWRpYVN0cmVh
bSh0aGlzKTsKIAogICAgIGZvciAoYXV0byYgdHJhY2tQcml2YXRlIDogbV9wcml2YXRlLT50cmFj
a3MoKSkgewogICAgICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gdHJhY2sgPSBNZWRpYVN0
cmVhbVRyYWNrOjpjcmVhdGUoY29udGV4dCwgKnRyYWNrUHJpdmF0ZSk7CkBAIC0xMTYsNyArMTQ4
LDEwIEBAIE1lZGlhU3RyZWFtOjpNZWRpYVN0cmVhbShTY3JpcHRFeGVjdXRpb24KIAogTWVkaWFT
dHJlYW06On5NZWRpYVN0cmVhbSgpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0
cik7CisgICAgdW5SZWdpc3Rlck1lZGlhU3RyZWFtKHRoaXMpOworICAgIG1fcHJpdmF0ZS0+cmVt
b3ZlT2JzZXJ2ZXIoKnRoaXMpOworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZh
bHVlcygpKQorICAgICAgICB0cmFjay0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiB9CiAKIFJlZlB0
cjxNZWRpYVN0cmVhbT4gTWVkaWFTdHJlYW06OmNsb25lKCkKQEAgLTE5OSwxMiArMjM0LDE0IEBA
IHZvaWQgTWVkaWFTdHJlYW06OmRpZEFkZFRyYWNrKE1lZGlhU3RyZWEKICAgICBpZiAoIWNvbnRl
eHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGludGVybmFsQWRkVHJhY2soTWVkaWFTdHJlYW1U
cmFjazo6Y3JlYXRlKCpjb250ZXh0LCB0cmFja1ByaXZhdGUpLCBTdHJlYW1Nb2RpZmllcjo6UGxh
dGZvcm0pOworICAgIGlmICghZ2V0VHJhY2tCeUlkKHRyYWNrUHJpdmF0ZS5pZCgpKSkKKyAgICAg
ICAgaW50ZXJuYWxBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrOjpjcmVhdGUoKmNvbnRleHQsIHRy
YWNrUHJpdmF0ZSksIFN0cmVhbU1vZGlmaWVyOjpQbGF0Zm9ybSk7CiB9CiAKIHZvaWQgTWVkaWFT
dHJlYW06OmRpZFJlbW92ZVRyYWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJiB0cmFja1ByaXZh
dGUpCiB7CiAgICAgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2s+IHRyYWNrID0gZ2V0VHJhY2tCeUlk
KHRyYWNrUHJpdmF0ZS5pZCgpKTsKKyAgICBBU1NFUlQodHJhY2spOwogICAgIGludGVybmFsUmVt
b3ZlVHJhY2soV1RGOjptb3ZlKHRyYWNrKSwgU3RyZWFtTW9kaWZpZXI6OlBsYXRmb3JtKTsKIH0K
IApAQCAtMjU0LDYgKzI5MSw3IEBAIHZvaWQgTWVkaWFTdHJlYW06OmFjdGl2aXR5RXZlbnRUaW1l
ckZpcmUKICAgICBldmVudHMuc3dhcChtX3NjaGVkdWxlZEFjdGl2aXR5RXZlbnRzKTsKIAogICAg
IGZvciAoYXV0byYgZXZlbnQgOiBldmVudHMpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoaXMgY2Fu
J3QgYmUgcmlnaHQsIHRoZSBldmVudCB0eXBlIGlzIHNldCBmcm9tIG1faXNBY3RpdmUgaW4gc2No
ZWR1bGVBY3RpdmVTdGF0ZUNoYW5nZSEgLSBodHRwczovL3dlYmtpdC5vcmcvYi8xNTA2MzUKICAg
ICAgICAgbV9pc0FjdGl2ZSA9IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmFjdGl2ZUV2
ZW50OwogICAgICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50LnJlbGVhc2UoKSk7CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0u
aAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFTdHJlYW0gZmluYWwgOiBwdWJsaWMgVVJMUmVn
aXN0cmFibGUsIHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1YmxpYyBNZWRpYVN0cmVhbVByaXZh
dGVDbGllbnQsIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIsIHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrOjpPYnNlcnZlciB7
CitjbGFzcyBNZWRpYVN0cmVhbSBmaW5hbCA6IHB1YmxpYyBVUkxSZWdpc3RyYWJsZSwgcHVibGlj
IFNjcmlwdFdyYXBwYWJsZSwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1Ymxp
YyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciwgcHVibGljIE1lZGlhU3RyZWFtVHJhY2s6Ok9i
c2VydmVyLCBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNv
dW50ZWQ8TWVkaWFTdHJlYW0+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CiAgICAg
cHVibGljOgpAQCAtNTUsNiArNTUsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0UmVn
aXN0cnkoVVJMUmVnaXN0cnkmKTsKICAgICBzdGF0aWMgTWVkaWFTdHJlYW0qIGxvb2tVcChjb25z
dCBVUkwmKTsKIAorICAgIHN0YXRpYyBNZWRpYVN0cmVhbSogbG9va1VwKGNvbnN0IE1lZGlhU3Ry
ZWFtUHJpdmF0ZSYpOworCiAgICAgc3RhdGljIFJlZjxNZWRpYVN0cmVhbT4gY3JlYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKTsKICAgICBzdGF0aWMgUmVmPE1lZGlhU3RyZWFtPiBjcmVhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE1lZGlhU3RyZWFtKik7CiAgICAgc3RhdGljIFJlZjxN
ZWRpYVN0cmVhbT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBNZWRpYVN0
cmVhbVRyYWNrVmVjdG9yJik7CkBAIC04MSw4ICs4Myw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gTWVkaWFTdHJlYW1FdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KICAgICB2aXJ0
dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpOyB9CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0
ZUNsaWVudD46OnJlZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZUNs
aWVudD46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW0+OjpyZWY7Cisg
ICAgdXNpbmcgUmVmQ291bnRlZDxNZWRpYVN0cmVhbT46OmRlcmVmOwogCiAgICAgLy8gVVJMUmVn
aXN0cmFibGUKICAgICB2aXJ0dWFsIFVSTFJlZ2lzdHJ5JiByZWdpc3RyeSgpIGNvbnN0IG92ZXJy
aWRlOwpAQCAtMTA3LDcgKzEwOSw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVkaWFTdHJlYW1UcmFj
azo6T2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tEaWRFbmQoKSBvdmVycmlkZSBmaW5h
bDsKIAotICAgIC8vIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudAorICAgIC8vIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6T2JzZXJ2ZXIKICAgICB2aXJ0dWFsIHZvaWQgYWN0aXZlU3RhdHVzQ2hhbmdlZCgp
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVh
bVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1v
dmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlIGZpbmFsOwpJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2suY3BwCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMs
NiArMjEzLDE2IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFjazo6dHJhY2tTdGF0ZXNDaGFuZ2UKICAg
ICBjb25maWd1cmVUcmFja1JlbmRlcmluZygpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2s6
OnRyYWNrUHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQorewor
ICAgIGNvbmZpZ3VyZVRyYWNrUmVuZGVyaW5nKCk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1UcmFj
azo6dHJhY2tFbmFibGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpCit7CisgICAg
Y29uZmlndXJlVHJhY2tSZW5kZXJpbmcoKTsKK30KKwogdm9pZCBNZWRpYVN0cmVhbVRyYWNrOjpj
b25maWd1cmVUcmFja1JlbmRlcmluZygpCiB7CiAgICAgLy8gNC4zLjEKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5o
CShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtVHJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJhY2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja1Byb2R1Y2luZ0RhdGFDaGFuZ2Vk
KE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFja0VuYWJs
ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CiAKICAgICBWZWN0
b3I8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKICAgICBSZWY8TWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU+IG1fcHJpdmF0ZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCShyZXZpc2lvbiAxOTE2OTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjQ5LDE0ICs2NDksMTIgQEAgdm9pZCBSVENQZWVyQ29ubmVj
dGlvbjo6ZGlkQWRkUmVtb3RlU3RyZQogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6ZGlkUmVtb3Zl
UmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtUHJpdmF0ZSogcHJpdmF0ZVN0cmVhbSkKIHsKICAgICBB
U1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7Ci0gICAg
QVNTRVJUKHByaXZhdGVTdHJlYW0tPmNsaWVudCgpKTsKLQotICAgIC8vIEZJWE1FOiB0aGlzIGNs
YXNzIHNob3VsZG4ndCBrbm93IHRoYXQgdGhlIHByaXZhdGUgc3RyZWFtIGNsaWVudCBpcyBhIE1l
ZGlhU3RyZWFtIQotICAgIFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gc3RhdGljX2Nhc3Q8
TWVkaWFTdHJlYW0qPihwcml2YXRlU3RyZWFtLT5jbGllbnQoKSk7CiAKICAgICBpZiAobV9zaWdu
YWxpbmdTdGF0ZSA9PSBTaWduYWxpbmdTdGF0ZUNsb3NlZCkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6bG9va1VwKCpwcml2
YXRlU3RyZWFtKTsKKyAgICBBU1NFUlQoc3RyZWFtKTsKICAgICBzaXplX3QgcG9zID0gbV9yZW1v
dGVTdHJlYW1zLmZpbmQoc3RyZWFtKTsKICAgICBBU1NFUlQocG9zICE9IG5vdEZvdW5kKTsKICAg
ICBtX3JlbW90ZVN0cmVhbXMucmVtb3ZlKHBvcyk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJ
KHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6TWVkaWFTdHJlYW1BdWRpbwogewogfQogCi1SZWZQdHI8
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZTo6
Y2FwYWJpbGl0aWVzKCkgY29uc3QKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzPiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogewogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQgdGhpcy4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTIyNDMwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2UuaAkocmV2aXNpb24gMTkxNjk2
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291
cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgfk1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2UoKSB7IH0KIAotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgb3ZlcnJp
ZGU7CiAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgY29uc3QgU3RyaW5nJiBkZXZpY2VJZCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGV2aWNlSWQ7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCShyZXZpc2lvbiAx
OTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjksMzcgKzY5LDM4IEBAIE1lZGlh
U3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjp+TWVkaWFTdHJlYW0KIHZvaWQgTWVkaWFTdHJlYW1BdWRp
b1NvdXJjZU5vZGU6OnNldEZvcm1hdChzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgZmxvYXQgc291
cmNlU2FtcGxlUmF0ZSkKIHsKICAgICBmbG9hdCBzYW1wbGVSYXRlID0gdGhpcy0+c2FtcGxlUmF0
ZSgpOwotICAgIGlmIChudW1iZXJPZkNoYW5uZWxzICE9IG1fc291cmNlTnVtYmVyT2ZDaGFubmVs
cyB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBsZVJhdGUpIHsKLSAgICAgICAgLy8gVGhlIHNh
bXBsZS1yYXRlIG11c3QgYmUgZXF1YWwgdG8gdGhlIGNvbnRleHQncyBzYW1wbGUtcmF0ZS4KLSAg
ICAgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5lbHMgPiBBdWRpb0Nv
bnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVSYXRlICE9IHNhbXBs
ZVJhdGUpIHsKLSAgICAgICAgICAgIC8vIHByb2Nlc3MoKSB3aWxsIGdlbmVyYXRlIHNpbGVuY2Ug
Zm9yIHRoZXNlIHVuaW5pdGlhbGl6ZWQgdmFsdWVzLgotICAgICAgICAgICAgTE9HKE1lZGlhLCAi
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6OnNldEZvcm1hdCgldSwgJWYpIC0gdW5oYW5kbGVk
IGZvcm1hdCBjaGFuZ2UiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obnVtYmVyT2ZDaGFubmVscyks
IHNvdXJjZVNhbXBsZVJhdGUpOwotICAgICAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIFN5bmNo
cm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9j
ayhtX3Byb2Nlc3NNdXRleCk7Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0g
bnVtYmVyT2ZDaGFubmVsczsKLSAgICAgICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2Ft
cGxlUmF0ZTsKLQotICAgICAgICBpZiAoc291cmNlU2FtcGxlUmF0ZSA9PSBzYW1wbGVSYXRlKQot
ICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBudWxscHRyOwotICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZUZhY3RvciA9IHNvdXJjZVNhbXBsZVJhdGUg
LyBzYW1wbGVSYXRlOwotICAgICAgICAgICAgbV9tdWx0aUNoYW5uZWxSZXNhbXBsZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPE11bHRpQ2hhbm5lbFJlc2FtcGxlcj4oc2NhbGVGYWN0b3IsIG51bWJlck9m
Q2hhbm5lbHMpOwotICAgICAgICB9Ci0KLSAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gbnVtYmVyT2ZDaGFubmVsczsKLQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBUaGUgY29u
dGV4dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNo
YW5uZWxzLgotICAgICAgICAgICAgQXVkaW9Db250ZXh0OjpBdXRvTG9ja2VyIGNvbnRleHRMb2Nr
ZXIoKmNvbnRleHQoKSk7Ci0KLSAgICAgICAgICAgIC8vIERvIGFueSBuZWNlc3NzYXJ5IHJlLWNv
bmZpZ3VyYXRpb24gdG8gdGhlIG91dHB1dCdzIG51bWJlciBvZiBjaGFubmVscy4KLSAgICAgICAg
ICAgIG91dHB1dCgwKS0+c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKLSAg
ICAgICAgfQorICAgIGlmIChudW1iZXJPZkNoYW5uZWxzID09IG1fc291cmNlTnVtYmVyT2ZDaGFu
bmVscyAmJiBzb3VyY2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoZSBzYW1wbGUtcmF0ZSBtdXN0IGJlIGVxdWFsIHRvIHRoZSBjb250ZXh0J3Mg
c2FtcGxlLXJhdGUuCisgICAgaWYgKCFudW1iZXJPZkNoYW5uZWxzIHx8IG51bWJlck9mQ2hhbm5l
bHMgPiBBdWRpb0NvbnRleHQ6Om1heE51bWJlck9mQ2hhbm5lbHMoKSB8fCBzb3VyY2VTYW1wbGVS
YXRlICE9IHNhbXBsZVJhdGUpIHsKKyAgICAgICAgLy8gcHJvY2VzcygpIHdpbGwgZ2VuZXJhdGUg
c2lsZW5jZSBmb3IgdGhlc2UgdW5pbml0aWFsaXplZCB2YWx1ZXMuCisgICAgICAgIExPRyhNZWRp
YSwgIk1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpzZXRGb3JtYXQoJXUsICVmKSAtIHVuaGFu
ZGxlZCBmb3JtYXQgY2hhbmdlIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG51bWJlck9mQ2hhbm5l
bHMpLCBzb3VyY2VTYW1wbGVSYXRlKTsKKyAgICAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxz
ID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFN5bmNocm9uaXplIHdpdGgg
cHJvY2VzcygpLgorICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4
KTsKKworICAgIG1fc291cmNlTnVtYmVyT2ZDaGFubmVscyA9IG51bWJlck9mQ2hhbm5lbHM7Cisg
ICAgbV9zb3VyY2VTYW1wbGVSYXRlID0gc291cmNlU2FtcGxlUmF0ZTsKKworICAgIGlmIChzb3Vy
Y2VTYW1wbGVSYXRlID09IHNhbXBsZVJhdGUpCisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVzYW1w
bGVyID0gbnVsbHB0cjsKKyAgICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHNjYWxlRmFjdG9yID0g
c291cmNlU2FtcGxlUmF0ZSAvIHNhbXBsZVJhdGU7CisgICAgICAgIG1fbXVsdGlDaGFubmVsUmVz
YW1wbGVyID0gc3RkOjptYWtlX3VuaXF1ZTxNdWx0aUNoYW5uZWxSZXNhbXBsZXI+KHNjYWxlRmFj
dG9yLCBudW1iZXJPZkNoYW5uZWxzKTsKKyAgICB9CisKKyAgICBtX3NvdXJjZU51bWJlck9mQ2hh
bm5lbHMgPSBudW1iZXJPZkNoYW5uZWxzOworCisgICAgeworICAgICAgICAvLyBUaGUgY29udGV4
dCBtdXN0IGJlIGxvY2tlZCB3aGVuIGNoYW5naW5nIHRoZSBudW1iZXIgb2Ygb3V0cHV0IGNoYW5u
ZWxzLgorICAgICAgICBBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcigqY29u
dGV4dCgpKTsKKworICAgICAgICAvLyBEbyBhbnkgbmVjZXNzc2FyeSByZS1jb25maWd1cmF0aW9u
IHRvIHRoZSBvdXRwdXQncyBudW1iZXIgb2YgY2hhbm5lbHMuCisgICAgICAgIG91dHB1dCgwKS0+
c2V0TnVtYmVyT2ZDaGFubmVscyhudW1iZXJPZkNoYW5uZWxzKTsKICAgICB9CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjU0LDggKzY1NCw2IEBACiAJCTE0RkZF
MzFFMEFFMTk2MzMwMDEzNkJGNSAvKiBIVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEZGRTMxQzBBRTE5NjMzMDAx
MzZCRjUgLyogSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwICovOyB9OwogCQkxNTA1MjRGNDFCNzEy
RkY2MDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMDFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmggKi87
IH07CiAJCTE1MDUyNEY1MUI3MTJGRjkwMDY5NkFBOSAvKiBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVN0cmVhbUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNTA1MjRGMTFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tICovOyB9OwotCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyog
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaCAqLzsgfTsKLQkJMTUwNTI0RjcxQjcxMkZGRjAwNjk2QUE5IC8qIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxNTA1MjRGMzFCNzEyRkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSAqLzsgfTsKIAkJMTUxNDVCOTAxQjNBMUNFMDAwNjYyQkY3IC8qIE1l
ZGlhRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMTUxNDVCOEYxQjNBMUIzRTAwNjYyQkY3IC8qIE1lZGlhRGV2aWNlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTE1NzM5QkJBMUI0
MjAxMkEwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNTczOUJCODFCNDIwMTIyMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuY3BwICovOyB9OwogCQkxNTczOUJCQjFCNDIwMTJEMDBEMjU4QzEgLyogSlNN
ZWRpYURldmljZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDE1NzM5QkI5MUI0MjAxMjIwMEQyNThDMSAvKiBKU01lZGlhRGV2aWNlcy5oICovOyB9OwpA
QCAtNzkzMSw4ICs3OTI5LDYgQEAKIAkJMTRGRkUzMUMwQUUxOTYzMzAwMTM2QkY1IC8qIEhUTUxG
cmFtZUVsZW1lbnRCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjAxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclBy
aXZhdGVNZWRpYVN0cmVhbUFWRk9iakMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTUwNTI0RjIxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNTA1MjRGMzFCNzEy
RkYwMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjhGMUIzQTFCM0UwMDY2MkJGNyAv
KiBNZWRpYURldmljZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFEZXZpY2VJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1MTQ1QjkxMUIzQTFENEMwMDY2MkJGNyAvKiBN
ZWRpYURldmljZUluZm8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhRGV2aWNlSW5m
by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1NzM5QkI4MUI0MjAxMjIwMEQy
NThDMSAvKiBKU01lZGlhRGV2aWNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU01lZGlhRGV2aWNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMjc1MCw4ICsyMjc0Niw2IEBACiAJCQkJMTUwNTI0RjExQjcxMkZGMDAwNjk2QUE5IC8qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSAqLywKIAkJCQlDREM4QjVBNTE4
MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRlQVZGT2JqQy5oICovLAogCQkJCUNE
QzhCNUE0MTgwNDc0RjcwMDE2RTY4NSAvKiBNZWRpYVNvdXJjZVByaXZhdGVBVkZPYmpDLm1tICov
LAotCQkJCTE1MDUyNEYyMUI3MTJGRjAwMDY5NkFBOSAvKiBNZWRpYVN0cmVhbVByaXZhdGVBVkZP
YmpDLmggKi8sCi0JCQkJMTUwNTI0RjMxQjcxMkZGMDAwNjk2QUE5IC8qIE1lZGlhU3RyZWFtUHJp
dmF0ZUFWRk9iakMubW0gKi8sCiAJCQkJN0EyOUY1NzExOEM2OTUxNDAwNEQwRjgxIC8qIE91dE9m
QmFuZFRleHRUcmFja1ByaXZhdGVBVkYuaCAqLywKIAkJCQlDREM4QjVBOTE4MDQ3RkYxMDAxNkU2
ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMuaCAqLywKIAkJCQlDREM4QjVBODE4MDQ3
RkYxMDAxNkU2ODUgLyogU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gKi8sCkBAIC0yNjYx
Nyw3ICsyNjYxMSw2IEBACiAJCQkJMDc4RTA5MzkxN0QxNkIyQzAwNDIwQUExIC8qIE1lZGlhU3Ry
ZWFtQ3JlYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE2MTdEMTREMUMw
MDQyMEFBMSAvKiBNZWRpYVN0cmVhbUV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkz
NzE3RDE2QjJDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1Qcml2YXRlLmggaW4gSGVhZGVycyAqLywK
LQkJCQkxNTA1MjRGNjFCNzEyRkZDMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc4RTA5MTcxN0QxNEQxQzAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3OEUwOTE4MTdEMTREMUMwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzhFMDkxOTE3
RDE0RDFDMDA0MjBBQTEgLyogTWVkaWFTdHJlYW1UcmFja0V2ZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTMwMjk4LDcgKzMwMjkxLDYgQEAKIAkJCQkwNzA1ODUxNTE3RkIwRUVBMDA1RjJCQ0IgLyog
TWVkaWFTdHJlYW1DYXBhYmlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5MDAx
N0QxNENFRTAwNDIwQUExIC8qIE1lZGlhU3RyZWFtRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMDcxMTU4OTExN0RGNkY2NjAwRURGRTJCIC8qIE1lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQkxNTA1MjRGNzFCNzEyRkZGMDA2OTZBQTkgLyogTWVkaWFTdHJlYW1Q
cml2YXRlQVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQy
MEFBMSAvKiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUw
OTAyMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTA3OEUwOTAzMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTcyLDYgKzcyLDEwIEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZP
VU5EQVRJT04pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
LmgiCisjZW5kaWYKKwogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKSAmJiAhVVNFKEdTVFJFQU1FUikKQEAgLTE5MCw2ICsx
OTQsMTAgQEAgc3RhdGljIHZvaWQgYnVpbGRNZWRpYUVuZ2luZXNWZWN0b3IoKQogICAgICAgICBN
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFFbmdpbmUo
YWRkTWVkaWFFbmdpbmUpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorICAg
ICAgICBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnJlZ2lzdGVyTWVkaWFF
bmdpbmUoYWRkTWVkaWFFbmdpbmUpOworI2VuZGlmCisKICNpZiBQTEFURk9STShXSU4pCiAgICAg
ICAgIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyZWdpc3Rlck1lZGlhRW5naW5l
KGFkZE1lZGlhRW5naW5lKTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1B
VkZPYmpDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLmgJ
KHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwyNCArMjksMjIgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQogCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlLmgi
Ci0jaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oIgotI2luY2x1ZGUgIlNvdXJj
ZUJ1ZmZlclByaXZhdGVDbGllbnQuaCIKKyNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIK
ICNpbmNsdWRlIDx3dGYvTWVkaWFUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLU9CSkNfQ0xBU1MgQVZBc3NldDsKLU9CSkNfQ0xBU1Mg
QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI7CiBPQkpDX0NMQVNTIEFWU2FtcGxlQnVmZmVyQXVk
aW9SZW5kZXJlcjsKLU9CSkNfQ0xBU1MgQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci1PQkpD
X0NMQVNTIEFWU2FtcGxlQnVmZmVyUmVuZGVyU3luY2hyb25pemVyOwogT0JKQ19DTEFTUyBBVlN0
cmVhbVNlc3Npb247Ci0KLXR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNVGltZWJhc2UqIENNVGltZWJh
c2VSZWY7Cit0eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDIDogcHVibGljIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZSB7
CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZTsKK2NsYXNzIENsb2NrOworY2xhc3MgTWVkaWFT
b3VyY2VQcml2YXRlQ2xpZW50OworCitjbGFzcyBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakMgOiBwdWJsaWMgTWVkaWFQbGF5ZXJQcml2YXRlSW50ZXJmYWNlLCBwdWJsaWMgTWVk
aWFTdHJlYW1Qcml2YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKik7CiAgICAgdmlydHVh
bCB+TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDKCk7CkBAIC01OCwxMTYgKzU2
LDEwOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZ2V0U3VwcG9ydGVkVHlwZXMoSGFzaFNl
dDxTdHJpbmc+JiB0eXBlcyk7CiAgICAgc3RhdGljIE1lZGlhUGxheWVyOjpTdXBwb3J0c1R5cGUg
c3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmKTsKIAotICAg
IHZvaWQgYWRkRGlzcGxheUxheWVyKEFWU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyKik7Ci0gICAg
dm9pZCByZW1vdmVEaXNwbGF5TGF5ZXIoQVZTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIqKTsKLQot
ICAgIHZvaWQgYWRkQXVkaW9SZW5kZXJlcihBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIqKTsK
LSAgICB2b2lkIHJlbW92ZUF1ZGlvUmVuZGVyZXIoQVZTYW1wbGVCdWZmZXJBdWRpb1JlbmRlcmVy
Kik7Ci0KICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIHZvaWQgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpOZXR3b3Jr
U3RhdGUpOwogICAgIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCBv
dmVycmlkZTsKICAgICB2b2lkIHNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUp
OwogCi0gICAgdm9pZCBzaXplQ2hhbmdlZCgpOwotICAgIHZvaWQgY2hhcmFjdGVyaXN0aWNzQ2hh
bmdlZCgpOwotCiAgICAgV2Vha1B0cjxNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCiBwcml2YXRlOgotICAgICAgICAvLyBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZh
Y2UKLSAgICAgICAgLy8gRklYTUUoMTQ2ODUzKTogSW1wbGVtZW50IG5lY2Vzc2FyeSBjb25mb3Jt
YXRpb25zIHRvIHN0YW5kYXJkIGluIEhUTUxNZWRpYUVsZW1lbnQgZm9yIE1lZGlhU3RyZWFtIAot
ICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZSB7IH07CisgICAgLy8gTWVkaWFQ
bGF5ZXJQcml2YXRlSW50ZXJmYWNlCisKKyAgICAvLyBGSVhNRSgxNDY4NTMpOiBJbXBsZW1lbnQg
bmVjZXNzYXJ5IGNvbmZvcm1hdGlvbnMgdG8gc3RhbmRhcmQgaW4gSFRNTE1lZGlhRWxlbWVudCBm
b3IgTWVkaWFTdHJlYW0KKworICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
ICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIHZvaWQgbG9hZChjb25zdCBTdHJpbmcmLCBN
ZWRpYVNvdXJjZVByaXZhdGVDbGllbnQqKSBvdmVycmlkZSB7IH07CisgICAgdm9pZCBsb2FkKGNv
bnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNsaWVudCopIG92ZXJyaWRlOwogI2VuZGlm
Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICAgICB2b2lkIGxvYWQoTWVkaWFTdHJlYW1Qcml2
YXRlJikgb3ZlcnJpZGU7Ci0jZW5kaWYKICAgICB2b2lkIGNhbmNlbExvYWQoKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgcHJlcGFyZVRvUGxheSgpIG92ZXJyaWRlOwotICAgIFBsYXRmb3JtTWVkaWEg
cGxhdGZvcm1NZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRm
b3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBwbGF5KCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBwbGF5SW50ZXJuYWwoKTsKLQogICAgIHZvaWQgcGF1c2UoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHBhdXNlSW50ZXJuYWwoKTsKLQogICAgIGJvb2wgcGF1c2VkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCkgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBzdXBwb3J0c011dGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICB2b2lkIGludGVybmFsU2V0Vm9sdW1lKGZsb2F0LCBib29sKTsKICAgICB2b2lkIHNldE11dGVk
KGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgc3VwcG9ydHNNdXRpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBv
dmVycmlkZTsKKyAgICBib29sIHN1cHBvcnRzU2Nhbm5pbmcoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBmYWxzZTsgfQogCi0gICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9pbnRyaW5zaWNTaXplOyB9CiAKICAgICBib29sIGhhc1ZpZGVvKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgdm9pZCBzZXRWaXNp
YmxlKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKSBvdmVycmlkZSB7
IC8qIE5vLW9wICovIH0KIAogICAgIE1lZGlhVGltZSBkdXJhdGlvbk1lZGlhVGltZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIE1lZGlhVGltZSBjdXJyZW50TWVkaWFUaW1lKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlIHsgfTsKLSAgICBib29sIHNl
ZWtpbmcoKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICBib29sIHNlZWtpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gc2Vla2FibGUo
KSBjb25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSBj
b25zdCBvdmVycmlkZTsKLSAgICBNZWRpYVRpbWUgbWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBidWZm
ZXJlZCgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgYm9vbCBkaWRMb2FkaW5nUHJvZ3Jlc3MoKSBj
b25zdCBvdmVycmlkZTsKKyAgICBib29sIGRpZExvYWRpbmdQcm9ncmVzcygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fcGxheWluZzsgfQogCi0gICAgdm9pZCBzZXRTaXplKGNvbnN0IEludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNpemUoY29uc3QgSW50U2l6ZSYpIG92ZXJyaWRl
IHsgLyogTm8tb3AgKi8gfQogCiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50Q3VycmVudEZyYW1lSW5Db250
ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIGJv
b2wgbWV0YURhdGFBdmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RyZWFtUHJpdmF0
ZSAmJiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVNZXRhZGF0YTsgfQogCi0gICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
Ym9vbCBzdXBwb3J0c0FjY2VsZXJhdGVkUmVuZGVyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdHJ1ZTsgfQogCi0gICAgTWVkaWFQbGF5ZXI6Ok1vdmllTG9hZFR5cGUgbW92aWVMb2FkVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaGFzU2luZ2xlU2VjdXJpdHlPcmlnaW4oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHByZXBhcmVGb3JSZW5k
ZXJpbmcoKSBvdmVycmlkZTsKKyAgICBNZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBtb3ZpZUxv
YWRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW07
IH0KIAogICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogCi0g
ICAgU3RyaW5nIGxhbmd1YWdlT2ZQcmltYXJ5QXVkaW9UcmFjaygpIGNvbnN0IG92ZXJyaWRlOwot
Ci0gICAgc2l6ZV90IGV4dHJhTWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlOworICAgIHNpemVf
dCBleHRyYU1lbW9yeUNvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKICAgICBi
b29sIHNob3VsZEJlUGxheWluZygpIGNvbnN0OwogCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IGNyZWF0ZUltYWdlRnJvbVNhbXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZik7CisgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgY3VycmVudFJlYWR5U3RhdGUoKTsKKworICAgIGVudW0gUmVu
ZGVyaW5nTW9kZVN0YXR1cyB7CisgICAgICAgIFJlbmRlcmluZ01vZGVVbmNoYW5nZWQsCisgICAg
ICAgIFJlbmRlcmluZ01vZGVDaGFuZ2VkLAorICAgIH07CisgICAgUmVuZGVyaW5nTW9kZVN0YXR1
cyB1cGRhdGVJbnRyaW5zaWNTaXplKGNvbnN0IEZsb2F0U2l6ZSYpOworCisgICAgdm9pZCBjcmVh
dGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAgICB2b2lkIHNldFBhdXNlZEltYWdlVmlzaWJsZShib29s
KTsKKworICAgIHZvaWQgc2NoZWR1bGVEZWZlcnJlZFRhc2soc3RkOjpmdW5jdGlvbjx2b2lkKCk+
KTsKIAotICAgIGZyaWVuZCBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOworICAgIC8v
IE1lZGlhU3RyZWFtUHJpdmF0ZTo6T2JzZXJ2ZXIKKyAgICB2b2lkIGFjdGl2ZVN0YXR1c0NoYW5n
ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSBvdmVycmlk
ZTsKIAotICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKKyAgICBNZWRpYVBsYXllciogbV9wbGF5
ZXIgeyBudWxscHRyIH07CiAgICAgV2Vha1B0ckZhY3Rvcnk8TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDPiBtX3dlYWtQdHJGYWN0b3J5OwotICAgIFJlZlB0cjxNZWRpYVN0cmVh
bVByaXZhdGVBVkZPYmpDPiBtX01lZGlhU3RyZWFtUHJpdmF0ZTsKLSAgICBSZXRhaW5QdHI8QVZB
c3NldD4gbV9hc3NldDsKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXI+
IG1fcHJldmlld0xheWVyOwotICAgIFJldGFpblB0cjxBVlNhbXBsZUJ1ZmZlckRpc3BsYXlMYXll
cj4gbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXI7Ci0gICAgVmVjdG9yPFJldGFpblB0cjxBVlNh
bXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXI+PiBtX3NhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXJzOwot
ICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX2xhc3RJbWFnZTsKLSAgICBSZXRhaW5QdHI8aWQ+
IG1fdGltZUp1bXBlZE9ic2VydmVyOwotICAgIFJldGFpblB0cjxpZD4gbV9kdXJhdGlvbk9ic2Vy
dmVyOwotICAgIFJldGFpblB0cjxBVlN0cmVhbVNlc3Npb24+IG1fc3RyZWFtU2Vzc2lvbjsKLSAg
ICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwotICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAgICBNZWRpYVRpbWUgbV9sYXN0U2Vla1Rp
bWU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKLSAgICBib29sIG1fcGxheWluZzsKLSAgICBib29sIG1f
c2Vla2luZzsKLSAgICBib29sIG1fc2Vla0NvbXBsZXRlZDsKLSAgICBtdXRhYmxlIGJvb2wgbV9s
b2FkaW5nUHJvZ3Jlc3NlZDsKKyAgICBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBtX21lZGlh
U3RyZWFtUHJpdmF0ZTsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxDQUxheWVyPiBtX3ByZXZpZXdM
YXllcjsKKyAgICBtdXRhYmxlIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvQmFja2dy
b3VuZExheWVyOworICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBtX3BhdXNlZEltYWdlOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDbG9jaz4gbV9jbG9jazsKKyAgICBNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG1fbmV0d29ya1N0YXRlIHsgTWVkaWFQbGF5ZXI6OkVtcHR5IH07CisgICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgbV9yZWFkeVN0YXRlIHsgTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5n
IH07CisgICAgRmxvYXRTaXplIG1faW50cmluc2ljU2l6ZTsKKyAgICBmbG9hdCBtX3ZvbHVtZSB7
IDEgfTsKKyAgICBib29sIG1fcGxheWluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX211dGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fd2FpdGluZ0Zvck5ld0ZyYW1lIHtmYWxzZSB9OworICAgIGJv
b2wgbV9oYXZlRXZlclBsYXllZCB7IGZhbHNlIH07CiB9OwogICAgIAogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQy5tbQkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxOCArMjgsMTQgQEAKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKKyNpbXBvcnQg
IkFWQXVkaW9DYXB0dXJlU291cmNlLmgiCiAjaW1wb3J0ICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5o
IgotI2ltcG9ydCAiRmlsZVN5c3RlbS5oIgorI2ltcG9ydCAiQ2xvY2suaCIKKyNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTWVkaWFTdHJl
YW1Qcml2YXRlLmgiCi0jaW1wb3J0ICJNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0jaW1w
b3J0ICJNZWRpYVRpbWVBVkZvdW5kYXRpb24uaCIKLSNpbXBvcnQgIlBsYXRmb3JtQ2xvY2tDTS5o
IgotI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgotI2ltcG9ydCA8QVZGb3VuZGF0
aW9uL0FWQXNzZXQuaD4KLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllci5oPgotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWVGltZS5oPgogI2ltcG9ydCA8UXVh
cnR6Q29yZS9DQUxheWVyLmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL0NBVHJhbnNhY3Rpb24uaD4K
ICNpbXBvcnQgPG9iamNfcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KICNp
bXBvcnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtNTAsMTggKzQ2LDYgQEAKIAogU09GVF9M
SU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAKLVNPRlRfTElOS19DTEFTU19P
UFRJT05BTChBVkZvdW5kYXRpb24sIEFWQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwo
QVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVWaWRlb1ByZXZpZXdMYXllcikKLVNPRlRfTElOS19DTEFT
U19PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXQpCi1TT0ZUX0xJTktfQ0xBU1NfT1BU
SU9OQUwoQVZGb3VuZGF0aW9uLCBBVlN0cmVhbVNlc3Npb24pOwotCi0jcHJhZ21hIG1hcmsgLQot
I3ByYWdtYSBtYXJrIEFWU3RyZWFtU2Vzc2lvbgotCi1AaW50ZXJmYWNlIEFWU3RyZWFtU2Vzc2lv
biA6IE5TT2JqZWN0Ci0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTdG9yYWdlRGlyZWN0b3J5QXRV
Ukw6KE5TVVJMICopc3RvcmFnZURpcmVjdG9yeTsKLUBlbmQKLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjcHJhZ21hIG1hcmsgLQpAQCAtNzAsMTkgKzU0LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6TWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTdHJlYW1BVkZPYmpDKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAgICAgOiBtX3BsYXll
cihwbGF5ZXIpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBtX25ldHdvcmtT
dGF0ZShNZWRpYVBsYXllcjo6SWRsZSkKLSAgICAsIG1fcmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6
SGF2ZU5vdGhpbmcpCi0gICAgLCBtX3JhdGUoMSkKLSAgICAsIG1fcGxheWluZygwKQotICAgICwg
bV9zZWVraW5nKGZhbHNlKQotICAgICwgbV9zZWVrQ29tcGxldGVkKHRydWUpCi0gICAgLCBtX2xv
YWRpbmdQcm9ncmVzc2VkKGZhbHNlKQorICAgICwgbV9jbG9jayhDbG9jazo6Y3JlYXRlKCkpCiB7
Ci0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyglcCkiLCB0aGlzKTsKIH0KIAog
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjp+TWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDKCkKIHsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6On5NZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akMoJXApIiwgdGhpcyk7CisgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRlKQorICAgICAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOwogfQogCiAjcHJhZ21h
IG1hcmsgLQpAQCAtOTcsMjkgKzc4LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
dHJlYW1BVkZPYmoKIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6
OmlzQXZhaWxhYmxlKCkKIHsKLSAgICByZXR1cm4gQVZGb3VuZGF0aW9uTGlicmFyeSgpCi0gICAg
ICAgICYmIGlzQ29yZU1lZGlhRnJhbWV3b3JrQXZhaWxhYmxlKCk7Ci19Ci0KLXN0YXRpYyBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIG1pbWVUeXBlQ2FjaGUoKQotewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxIYXNoU2V0PFN0cmluZz4+IGNhY2hlOwotICAgIHN0YXRpYyBib29sIHR5cGVMaXN0
SW5pdGlhbGl6ZWQgPSBmYWxzZTsKLQotICAgIGlmICh0eXBlTGlzdEluaXRpYWxpemVkKQotICAg
ICAgICByZXR1cm4gY2FjaGU7Ci0gICAgdHlwZUxpc3RJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAg
ICBOU0FycmF5ICp0eXBlcyA9IFtnZXRBVlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVU
eXBlc107Ci0gICAgZm9yIChOU1N0cmluZyAqbWltZVR5cGUgaW4gdHlwZXMpCi0gICAgICAgIGNh
Y2hlLmdldCgpLmFkZChtaW1lVHlwZSk7Ci0KLSAgICByZXR1cm4gY2FjaGU7CisgICAgcmV0dXJu
IEFWRm91bmRhdGlvbkxpYnJhcnkoKSAmJiBpc0NvcmVNZWRpYUZyYW1ld29ya0F2YWlsYWJsZSgp
OwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Z2V0U3Vw
cG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmc+JiB0eXBlcykKIHsKLSAgICB0eXBlcyA9IG1pbWVU
eXBlQ2FjaGUoKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBj
YWNoZTsKKyAgICB0eXBlcyA9IGNhY2hlOwogfQogCiBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNUeXBlKGNvbnN0
IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0xMzMsMTQ2ICs5
OCwxNzQgQEAgTWVkaWFQbGF5ZXI6OlN1cHBvcnRzVHlwZSBNZWRpYVBsYXllclByaQogI3ByYWdt
YSBtYXJrIC0KICNwcmFnbWEgbWFyayBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2UgT3ZlcnJp
ZGVzCiAKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNv
bnN0IFN0cmluZyYpCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBN
ZWRpYVN0cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAg
ICAgIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOwor
fQorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpsb2FkKGNvbnN0IFN0cmluZyYsIE1lZGlhU291cmNlUHJpdmF0ZUNs
aWVudCopCit7CisgICAgLy8gVGhpcyBtZWRpYSBlbmdpbmUgb25seSBzdXBwb3J0cyBNZWRpYVN0
cmVhbSBVUkxzLgorICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIHNl
dE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOworICAgIH0pOworfQorI2Vu
ZGlmCisKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpsb2FkKE1l
ZGlhU3RyZWFtUHJpdmF0ZSYgc3RyZWFtKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bG9hZCglcCkiLCB0aGlzKTsKIAotICAgIG1fTWVk
aWFTdHJlYW1Qcml2YXRlID0gTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6Y3JlYXRlKCp0aGlz
LCBzdHJlYW0pOwotICAgIGZvciAoYXV0byB0cmFjayA6IHN0cmVhbS50cmFja3MoKSkgewotICAg
ICAgICBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+YWRkVHJhY2soV1RGOjptb3ZlKHRyYWNrKSk7Ci0g
ICAgICAgIGlmICghdHJhY2stPmVuZGVkKCkpIHsKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7Ci0gICAgICAgICAgICB0cmFjay0+c2V0RW5hYmxlZCh0
cnVlKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBtX21lZGlhU3RyZWFtUHJpdmF0ZSA9ICZzdHJl
YW07CisgICAgbV9tZWRpYVN0cmVhbVByaXZhdGUtPmFkZE9ic2VydmVyKCp0aGlzKTsKKyAgICBt
X21lZGlhU3RyZWFtUHJpdmF0ZS0+c3RhcnRQcm9kdWNpbmdEYXRhKCk7CisKICAgICBtX3ByZXZp
ZXdMYXllciA9IG51bGxwdHI7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Q
cml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKLSAgICAgICAgICAgIG1fcHJldmlld0xheWVyID0g
c3RhdGljX2Nhc3Q8QVZWaWRlb0NhcHR1cmVTb3VyY2UqPih0cmFjay0+c291cmNlKCkpLT5wcmV2
aWV3TGF5ZXIoKTsKLSAgICB9Ci0gICAgbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVu
ZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5ZXIpOworCisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2so
W3RoaXNdIHsKKyAgICAgICAgc2V0TmV0d29ya1N0YXRlKE1lZGlhUGxheWVyOjpJZGxlKTsKKyAg
ICAgICAgaWYgKG1fcmVhZHlTdGF0ZSA8IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlOjpIYXZlTWV0
YWRhdGEpCisgICAgICAgICAgICB0aGlzLT5zZXRSZWFkeVN0YXRlKE1lZGlhUGxheWVyOjpSZWFk
eVN0YXRlOjpIYXZlTWV0YWRhdGEpOworICAgIH0pOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y2FuY2VsTG9hZCgpCiB7CisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpjYW5jZWxMb2FkKCVwKSIsIHRo
aXMpOworICAgIHBhdXNlKCk7CiB9CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJl
YW1BVkZPYmpDOjpwcmVwYXJlVG9QbGF5KCkKIHsKLX0KLQotUGxhdGZvcm1NZWRpYSBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAotewot
ICAgIFBsYXRmb3JtTWVkaWEgcG07Ci0gICAgcG0udHlwZSA9IFBsYXRmb3JtTWVkaWE6OkFWRm91
bmRhdGlvbkFzc2V0VHlwZTsKLSAgICBwbS5tZWRpYS5hdmZBc3NldCA9IG1fYXNzZXQuZ2V0KCk7
Ci0gICAgcmV0dXJuIHBtOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQzo6cHJlcGFyZVRvUGxheSglcCkiLCB0aGlzKTsKIH0KIAogUGxhdGZvcm1M
YXllciogTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpwbGF0Zm9ybUxheWVy
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJldmlld0xheWVyKQorICAgIGlmICghbV92aWRlb0Jh
Y2tncm91bmRMYXllcikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFBsYXRmb3JtTGF5ZXIqPihtX3ByZXZpZXdMYXllcik7CisKKyAgICByZXR1cm4gbV92
aWRlb0JhY2tncm91bmRMYXllci5nZXQoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnBsYXkoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakM6OnNldFBhdXNlZEltYWdlVmlzaWJsZShib29sIHZpc2libGUpCiB7Ci0gICAg
YXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAgICBjYWxsT25NYWluVGhyZWFkKFt3
ZWFrVGhpc10gewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB3ZWFrVGhpcy5nZXQoKS0+cGxheUludGVybmFsKCk7Ci0gICAgfSk7CisgICAgaWYg
KCFtZXRhRGF0YUF2YWlsYWJsZSgpIHx8ICFtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAodmlzaWJsZSA9PSBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRk
ZW4pCisgICAgICAgIHJldHVybjsKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjowXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAgZG8geworICAgICAgICBpZiAodmlzaWJs
ZSkgeworICAgICAgICAgICAgbV9jbG9jay0+c3RvcCgpOworCisgICAgICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gbV9tZWRpYVN0cmVhbVByaXZhdGUtPmN1cnJlbnRGcmFtZUltYWdlKCk7
CisgICAgICAgICAgICBpZiAoIWltYWdlKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICBtX3BhdXNlZEltYWdlID0gaW1hZ2UtPmdldENHSW1hZ2VSZWYoKTsKKyAgICAgICAg
ICAgIGlmICghbV9wYXVzZWRJbWFnZSkKKyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5jb250ZW50cyA9IChpZCltX3BhdXNl
ZEltYWdlLmdldCgpOworICAgICAgICAgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuaGlkZGVuID0g
dHJ1ZTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFsc2U7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIW1fbWVkaWFTdHJlYW1Qcml2YXRlLT5pc1Byb2R1
Y2luZ0RhdGEoKSkgeworICAgICAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
bV9jbG9jay0+c3RhcnQoKTsKKyAgICAgICAgICAgIG1fd2FpdGluZ0Zvck5ld0ZyYW1lID0gZmFs
c2U7CisgICAgICAgICAgICBtX3ByZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSBmYWxzZTsKKyAg
ICAgICAgICAgIG1fdmlkZW9CYWNrZ3JvdW5kTGF5ZXIuZ2V0KCkuY29udGVudHMgPSBuaWw7Cisg
ICAgICAgICAgICBtX3BhdXNlZEltYWdlID0gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0gd2hp
bGUgKDApOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAotdm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBsYXlJbnRlcm5hbCgpCit2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGxheSgpCiB7Ci0gICAgbV9wbGF5aW5n
ID0gdHJ1ZTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFW
Rk9iakM6OnBsYXkoJXApIiwgdGhpcyk7CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9NZWRp
YVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0YXJ0
UHJvZHVjaW5nRGF0YSgpOworICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV9wbGF5aW5nID0gdHJ1ZTsKKyAgICBtX2hhdmVFdmVyUGxheWVkID0g
dHJ1ZTsKKyAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFsc2UpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2UoKQogewotICAgIGF1dG8gd2Vh
a1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgY2FsbE9uTWFpblRocmVhZChbd2Vha1RoaXNd
IHsKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
d2Vha1RoaXMuZ2V0KCktPnBhdXNlSW50ZXJuYWwoKTsKLSAgICB9KTsKLX0KKyAgICBMT0coTWVk
aWEsICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhdXNlKCVwKSIsIHRo
aXMpOwogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGF1c2VJ
bnRlcm5hbCgpCi17Ci0gICAgbV9wbGF5aW5nID0gZmFsc2U7CisgICAgaWYgKCFtZXRhRGF0YUF2
YWlsYWJsZSgpKQorICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV9N
ZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKQotICAgICAgICB0cmFjay0+c291cmNlKCktPnN0
b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2V0UGF1c2VkSW1hZ2VWaXNpYmxlKHRydWUpOworICAg
IG1fcGxheWluZyA9IGZhbHNlOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3Ry
ZWFtQVZGT2JqQzo6cGF1c2VkKCkgY29uc3QKIHsKLSAgICAvLyBTaG91bGRuJ3QgYmUgYWJsZSB0
byBwYXVzZSBzdHJlYW1zCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAhbV9wbGF5aW5n
OwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9s
dW1lKGZsb2F0KQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Omlu
dGVybmFsU2V0Vm9sdW1lKGZsb2F0IHZvbHVtZSwgYm9vbCBpbnRlcm5hbCkKIHsKKyAgICBpZiAo
IWludGVybmFsKQorICAgICAgICBtX3ZvbHVtZSA9IHZvbHVtZTsKKworICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IFNldCB2b2x1
bWUgb25jZSB3ZSBhY3R1YWxseSBwbGF5IGF1ZGlvLgogfQogCi1ib29sIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c3VwcG9ydHNTY2FubmluZygpIGNvbnN0Cit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2V0Vm9sdW1lKGZsb2F0IHZvbHVt
ZSkKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBpbnRlcm5hbFNldFZvbHVtZSh2b2x1bWUsIGZh
bHNlKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNl
dE11dGVkKGJvb2wgbXV0ZWQpCiB7Ci0gICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJl
YW1Qcml2YXRlLT50cmFja3MoKSkgewotICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHRyYWNrLT5zb3VyY2Uo
KS0+c2V0TXV0ZWQobXV0ZWQpOwotICAgIH0KLX0KKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE11dGVkKCVwKSIsIHRoaXMpOwogCi1GbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpuYXR1cmFsU2l6ZSgp
IGNvbnN0Ci17Ci0gICAgRmxvYXRTaXplIGZsb2F0U2l6ZSgwLCAwKTsKLSAgICBmb3IgKGF1dG8m
IHRyYWNrIDogbV9NZWRpYVN0cmVhbVByaXZhdGUtPnRyYWNrcygpKSB7Ci0gICAgICAgIGlmICh0
cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7Ci0gICAg
ICAgICAgICBBVlZpZGVvQ2FwdHVyZVNvdXJjZSogc291cmNlID0gKEFWVmlkZW9DYXB0dXJlU291
cmNlKil0cmFjay0+c291cmNlKCk7Ci0gICAgICAgICAgICBpZiAoIXNvdXJjZS0+c3RvcHBlZCgp
ICYmIHRyYWNrLT5lbmFibGVkKCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoc291cmNlLT53aWR0
aCgpID4gZmxvYXRTaXplLndpZHRoKCkpCi0gICAgICAgICAgICAgICAgICAgIGZsb2F0U2l6ZS5z
ZXRXaWR0aChzb3VyY2UtPndpZHRoKCkpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UtPmhl
aWdodCgpID4gZmxvYXRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgICAgICBmbG9hdFNp
emUuc2V0SGVpZ2h0KHNvdXJjZS0+aGVpZ2h0KCkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
Ci0gICAgfQotICAgIHJldHVybiBmbG9hdFNpemU7CisgICAgaWYgKG11dGVkID09IG1fbXV0ZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fbXV0ZWQgPSBtdXRlZDsKKyAgICAKKyAgICBpbnRl
cm5hbFNldFZvbHVtZShtdXRlZCA/IDAgOiBtX3ZvbHVtZSwgdHJ1ZSk7CiB9CiAKIGJvb2wgTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpoYXNWaWRlbygpIGNvbnN0CiB7Ci0g
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fTWVkaWFTdHJlYW1Qcml2YXRlLT50cmFja3MoKSkgewot
ICAgICAgICBpZiAodHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpW
aWRlbykKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgCisgICAgcmV0dXJuIG1fbWVkaWFTdHJlYW1Qcml2YXRlLT5oYXNWaWRlbygpOwogfQogCiBi
b29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6aGFzQXVkaW8oKSBjb25z
dAogewotICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX01lZGlhU3RyZWFtUHJpdmF0ZS0+dHJhY2tz
KCkpIHsKLSAgICAgICAgaWYgKHRyYWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6QXVkaW8pCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOwotfQotCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6
c2V0VmlzaWJsZShib29sKQotewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURhdGFBdmFp
bGFibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX21lZGlh
U3RyZWFtUHJpdmF0ZS0+aGFzQXVkaW8oKTsKIH0KIAogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZHVyYXRpb25NZWRpYVRpbWUoKSBjb25zdApAQCAtMjgy
LDE5ICsyNzUsNyBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BCiAK
IE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRN
ZWRpYVRpbWUoKSBjb25zdAogewotICAgIC8vIEZJWE1FKDE0NzEyNSk6IE11c3QgaW1wbGVtZW50
IHRoaXMgbGF0ZXIKLSAgICByZXR1cm4gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwotfQotCi1ib29s
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2luZygpIGNvbnN0Ci17
Ci0gICAgLy8gTWVkaWFTdHJlYW0gaXMgdW5zZWVrYWJsZQotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldFJhdGVEb3Vi
bGUoZG91YmxlKQotewotICAgIC8vIE1lZGlhU3RyZWFtIGlzIHVuc2Vla2FibGU7IHRoZXJlZm9y
ZSwgY2Fubm90IHNldCByYXRlCisgICAgcmV0dXJuIE1lZGlhVGltZTo6Y3JlYXRlV2l0aERvdWJs
ZShtX2Nsb2NrLT5jdXJyZW50VGltZSgpKTsKIH0KIAogTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om5ldHdvcmtTdGF0ZSgpIGNv
bnN0CkBAIC0zMDcsODUgKzI4OCwxMjkgQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQ
bGF5ZXJQcml2YQogICAgIHJldHVybiBtX3JlYWR5U3RhdGU7CiB9CiAKLXZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzaXplQ2hhbmdlZCgpCitNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmN1cnJlbnRS
ZWFkeVN0YXRlKCkKIHsKLSAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKLX0KKyAgICBpZiAo
bV9tZWRpYVN0cmVhbVByaXZhdGUpIHsKKyAgICAgICAgaWYgKG1fbWVkaWFTdHJlYW1Qcml2YXRl
LT5hY3RpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6
SGF2ZUVub3VnaERhdGE7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2Vla2FibGUoKSBjb25zdAotewot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4obWluTWVkaWFU
aW1lU2Vla2FibGUoKSwgbWF4TWVkaWFUaW1lU2Vla2FibGUoKSk7Ci19CisgICAgICAgIHJldHVy
biBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZUN1cnJlbnREYXRhOworICAgIH0KIAotTWVk
aWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6bWF4TWVkaWFUaW1l
U2Vla2FibGUoKSBjb25zdAotewotICAgIHJldHVybiBkdXJhdGlvbk1lZGlhVGltZSgpOworICAg
IHJldHVybiBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZTo6SGF2ZU5vdGhpbmc7CiB9CiAKLU1lZGlh
VGltZSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6Om1pbk1lZGlhVGltZVNl
ZWthYmxlKCkgY29uc3QKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpD
OjphY3RpdmVTdGF0dXNDaGFuZ2VkKCkKIHsKLSAgICByZXR1cm4gc3RhcnRUaW1lKCk7Ci19Cisg
ICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJlbnRSZWFkeVN0
YXRlKCk7CiAKLXN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+IE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6YnVmZmVyZWQoKSBjb25zdAotewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKKyAgICBzY2hlZHVsZURl
ZmVycmVkVGFzayhbdGhpcywgbmV3UmVhZHlTdGF0ZV0geworICAgICAgICBpZiAobmV3UmVhZHlT
dGF0ZSAhPSBtX3JlYWR5U3RhdGUpCisgICAgICAgICAgICBzZXRSZWFkeVN0YXRlKG5ld1JlYWR5
U3RhdGUpOworICAgIH0pOwogfQogCi1ib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFt
QVZGT2JqQzo6ZGlkTG9hZGluZ1Byb2dyZXNzKCkgY29uc3QKK01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6UmVuZGVyaW5nTW9kZVN0YXR1cyBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnVwZGF0ZUludHJpbnNpY1NpemUoY29uc3QgRmxvYXRTaXplJiBz
aXplKQogewotICAgIGJvb2wgbG9hZGluZ1Byb2dyZXNzZWQgPSBtX2xvYWRpbmdQcm9ncmVzc2Vk
OwotICAgIG1fbG9hZGluZ1Byb2dyZXNzZWQgPSBmYWxzZTsKLSAgICByZXR1cm4gbG9hZGluZ1By
b2dyZXNzZWQ7Ci19CisgICAgaWYgKHNpemUgPT0gbV9pbnRyaW5zaWNTaXplKQorICAgICAgICBy
ZXR1cm4gUmVuZGVyaW5nTW9kZVVuY2hhbmdlZDsKIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVN
ZWRpYVN0cmVhbUFWRk9iakM6OnNldFNpemUoY29uc3QgSW50U2l6ZSYpCi17Ci0gICAgLy8gTm8t
b3AuCisgICAgbV9pbnRyaW5zaWNTaXplID0gc2l6ZTsKKworICAgIGlmIChtX3ZpZGVvQmFja2dy
b3VuZExheWVyIHx8ICFtX3BsYXllciB8fCAhbV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVy
UmVuZGVyaW5nQ2FuQmVBY2NlbGVyYXRlZChtX3BsYXllcikpCisgICAgICAgIHJldHVybiBSZW5k
ZXJpbmdNb2RlVW5jaGFuZ2VkOworCisgICAgaWYgKCFtX21lZGlhU3RyZWFtUHJpdmF0ZSB8fCAh
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBsYXRmb3JtTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuIFJl
bmRlcmluZ01vZGVVbmNoYW5nZWQ7CisKKyAgICBjcmVhdGVQcmV2aWV3TGF5ZXJzKCk7CisKKyAg
ICByZXR1cm4gUmVuZGVyaW5nTW9kZUNoYW5nZWQ7CiB9CiAKLVJldGFpblB0cjxDR0ltYWdlUmVm
PiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OmNyZWF0ZUltYWdlRnJvbVNh
bXBsZUJ1ZmZlcihDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6Y3JlYXRlUHJldmlld0xheWVycygpCiB7Ci0g
ICAgQ1ZQaXhlbEJ1ZmZlclJlZiBpbWFnZUJ1ZmZlciA9IHN0YXRpY19jYXN0PENWUGl4ZWxCdWZm
ZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIoc2FtcGxlQnVmZmVyKSk7Ci0gICAg
Q1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAg
dm9pZCAqYmFzZUFkZHJlc3MgPSBDVlBpeGVsQnVmZmVyR2V0QmFzZUFkZHJlc3MoaW1hZ2VCdWZm
ZXIpOwotICAgIHNpemVfdCBieXRlc1BlclJvdyA9IENWUGl4ZWxCdWZmZXJHZXRCeXRlc1BlclJv
dyhpbWFnZUJ1ZmZlcik7Ci0gICAgc2l6ZV90IHdpZHRoID0gQ1ZQaXhlbEJ1ZmZlckdldFdpZHRo
KGltYWdlQnVmZmVyKTsKLSAgICBzaXplX3QgaGVpZ2h0ID0gQ1ZQaXhlbEJ1ZmZlckdldEhlaWdo
dChpbWFnZUJ1ZmZlcik7Ci0gICAgCi0gICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gY29s
b3JTcGFjZSA9IGFkb3B0Q0YoQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCkpOwotICAgIFJl
dGFpblB0cjxDR0RhdGFQcm92aWRlclJlZj4gcHJvdmlkZXIgPSBhZG9wdENGKENHRGF0YVByb3Zp
ZGVyQ3JlYXRlV2l0aERhdGEoTlVMTCwgYmFzZUFkZHJlc3MsIGJ5dGVzUGVyUm93ICogaGVpZ2h0
LCBOVUxMKSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHF1YXJ0ekltYWdlID0gYWRvcHRD
RihDR0ltYWdlQ3JlYXRlKHdpZHRoLCBoZWlnaHQsIDgsIDMyLCBieXRlc1BlclJvdywgY29sb3JT
cGFjZS5nZXQoKSwga0NHQml0bWFwQnl0ZU9yZGVyMzJMaXR0bGUgfCBrQ0dJbWFnZUFscGhhUHJl
bXVsdGlwbGllZEZpcnN0LCBwcm92aWRlci5nZXQoKSwgTlVMTCwgdHJ1ZSwga0NHUmVuZGVyaW5n
SW50ZW50RGVmYXVsdCkpOwotICAgIAotICAgIENWUGl4ZWxCdWZmZXJVbmxvY2tCYXNlQWRkcmVz
cyhpbWFnZUJ1ZmZlciwgMCk7Ci0gICAgCi0gICAgcmV0dXJuIHF1YXJ0ekltYWdlOworICAgIGlm
IChtX3ZpZGVvQmFja2dyb3VuZExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3ZpZGVv
QmFja2dyb3VuZExheWVyID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyNpZm5k
ZWYgTkRFQlVHCisgICAgbV92aWRlb0JhY2tncm91bmRMYXllci5nZXQoKS5uYW1lID0gQCJNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMgcHJldmlldyBiYWNrZ3JvdW5kIGxheWVy
IjsKKyNlbmRpZgorCisgICAgbV9wcmV2aWV3TGF5ZXIgPSBtX21lZGlhU3RyZWFtUHJpdmF0ZS0+
cGxhdGZvcm1MYXllcigpOworICAgIG1fcHJldmlld0xheWVyLmdldCgpLmNvbnRlbnRzR3Jhdml0
eSA9IGtDQUdyYXZpdHlSZXNpemU7CisgICAgbV9wcmV2aWV3TGF5ZXIuZ2V0KCkuYW5jaG9yUG9p
bnQgPSBDR1BvaW50WmVybzsKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIG1fcHJldmlld0xheWVy
LmdldCgpLmF1dG9yZXNpemluZ01hc2sgPSBrQ0FMYXllcldpZHRoU2l6YWJsZSB8IGtDQUxheWVy
SGVpZ2h0U2l6YWJsZTsKKyNlbmRpZgorICAgIGlmICghbV9wbGF5aW5nKQorICAgICAgICBtX3By
ZXZpZXdMYXllci5nZXQoKS5oaWRkZW4gPSB0cnVlOworCisgICAgW21fdmlkZW9CYWNrZ3JvdW5k
TGF5ZXIgYWRkU3VibGF5ZXI6bV9wcmV2aWV3TGF5ZXIuZ2V0KCldOwogfQogCi12b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU3RyZWFtQVZGT2JqQzo6Y2hhcmFjdGVyaXN0aWNzQ2hhbmdlZCgpCiB7Ci0gICAgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoY29udGV4dCwgcmVjdCk7CisgICAgUmVuZGVyaW5nTW9kZVN0
YXR1cyBzdGF0dXMgPSBSZW5kZXJpbmdNb2RlVW5jaGFuZ2VkOworICAgIGJvb2wgc2l6ZUNoYW5n
ZWQgPSBmYWxzZTsKKworICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0gbV9tZWRpYVN0cmVh
bVByaXZhdGUtPmludHJpbnNpY1NpemUoKTsKKyAgICBpZiAoaW50cmluc2ljU2l6ZS5oZWlnaHQo
KSAhPSBtX2ludHJpbnNpY1NpemUuaGVpZ2h0KCkgfHwgaW50cmluc2ljU2l6ZS53aWR0aCgpICE9
IG1faW50cmluc2ljU2l6ZS53aWR0aCgpKSB7CisgICAgICAgIHN0YXR1cyA9IHVwZGF0ZUludHJp
bnNpY1NpemUoaW50cmluc2ljU2l6ZSk7CisgICAgICAgIHNpemVDaGFuZ2VkID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICBpZiAobV93YWl0aW5nRm9yTmV3RnJhbWUgJiYgbV9tZWRpYVN0cmVhbVByaXZh
dGUtPmlzUHJvZHVjaW5nRGF0YSgpKQorICAgICAgICBzZXRQYXVzZWRJbWFnZVZpc2libGUoZmFs
c2UpOworCisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgbmV3UmVhZHlTdGF0ZSA9IGN1cnJl
bnRSZWFkeVN0YXRlKCk7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3RoaXMsIHNpemVDaGFu
Z2VkLCBuZXdSZWFkeVN0YXRlLCBzdGF0dXNdIHsKKyAgICAgICAgaWYgKG5ld1JlYWR5U3RhdGUg
IT0gbV9yZWFkeVN0YXRlKQorICAgICAgICAgICAgc2V0UmVhZHlTdGF0ZShuZXdSZWFkeVN0YXRl
KTsKKworICAgICAgICBpZiAoIW1fcGxheWVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIG1fcGxheWVyLT5jaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKTsKKyAgICAgICAgaWYgKHNpemVD
aGFuZ2VkKSB7CisgICAgICAgICAgICBtX3BsYXllci0+c2l6ZUNoYW5nZWQoKTsKKyAgICAgICAg
ICAgIGlmIChzdGF0dXMgPT0gUmVuZGVyaW5nTW9kZUNoYW5nZWQpCisgICAgICAgICAgICAgICAg
bV9wbGF5ZXItPmNsaWVudCgpLm1lZGlhUGxheWVyUmVuZGVyaW5nTW9kZUNoYW5nZWQobV9wbGF5
ZXIpOworICAgICAgICB9CisgICAgfSk7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTdHJlYW1BVkZPYmpDOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBGbG9hdFJlY3QmKQorc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdl
cz4gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpzZWVrYWJsZSgpIGNvbnN0
CiB7Ci0gICAgLy8gRklYTUUoMTI1MTU3KTogSW1wbGVtZW50IHBhaW50aW5nLgorICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtVGltZVJhbmdlcz4oKTsKIH0KIAotYm9vbCBNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5k
ZXJpbmcoKSBjb25zdAorc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpidWZmZXJlZCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1UaW1lUmFu
Z2VzPigpOwogfQogCi1NZWRpYVBsYXllcjo6TW92aWVMb2FkVHlwZSBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6Om1vdmllTG9hZFR5cGUoKSBjb25zdAordm9pZCBNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBNZWRpYVBsYXllcjo6
TGl2ZVN0cmVhbTsKKyAgICBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChjb250ZXh0LCByZWN0
KTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakM6OnByZXBh
cmVGb3JSZW5kZXJpbmcoKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9i
akM6OnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIC8vIE5vLW9wLgorICAgIGlmICghbWV0YURh
dGFBdmFpbGFibGUoKSB8fCBjb250ZXh0LnBhaW50aW5nRGlzYWJsZWQoKSB8fCAhbV9oYXZlRXZl
clBsYXllZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1fcGxheWluZykKKyAgICAgICAg
bV9tZWRpYVN0cmVhbVByaXZhdGUtPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQs
IHJlY3QpOworICAgIGVsc2UgaWYgKG1fcGF1c2VkSW1hZ2UpIHsKKyAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAgICBjb250ZXh0LnRy
YW5zbGF0ZShyZWN0LngoKSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKKyAgICAgICAgY29u
dGV4dC5zY2FsZShGbG9hdFNpemUoMSwgLTEpKTsKKyAgICAgICAgY29udGV4dC5zZXRJbWFnZUlu
dGVycG9sYXRpb25RdWFsaXR5KEludGVycG9sYXRpb25Mb3cpOworICAgICAgICBJbnRSZWN0IHBh
aW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0
KCkpKTsKKyAgICAgICAgQ0dDb250ZXh0RHJhd0ltYWdlKGNvbnRleHQucGxhdGZvcm1Db250ZXh0
KCksIENHUmVjdE1ha2UoMCwgMCwgcGFpbnRSZWN0LndpZHRoKCksIHBhaW50UmVjdC5oZWlnaHQo
KSksIG1fcGF1c2VkSW1hZ2UuZ2V0KCkpOworICAgIH0KIH0KIAogU3RyaW5nIE1lZGlhUGxheWVy
UHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6ZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdApAQCAt
Mzk0LDE3ICs0MTksNiBAQCBTdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZP
CiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQogCi1TdHJpbmcgTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTdHJlYW1BVkZPYmpDOjpsYW5ndWFnZU9mUHJpbWFyeUF1ZGlvVHJhY2soKSBjb25zdAot
ewotICAgIC8vIEZJWE1FKDEyNTE1OCk6IGltcGxlbWVudCBsYW5ndWFnZU9mUHJpbWFyeUF1ZGlv
VHJhY2soKQotICAgIHJldHVybiBlbXB0eVN0cmluZygpOwotfQotCi1zaXplX3QgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjpleHRyYU1lbW9yeUNvc3QoKSBjb25zdAotewot
ICAgIHJldHVybiAwOwotfQotCiBib29sIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZG
T2JqQzo6c2hvdWxkQmVQbGF5aW5nKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wbGF5aW5nICYm
IG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6SGF2ZUZ1dHVyZURhdGE7CkBAIC00MjAsNiAr
NDM0LDI3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmoKICAgICBt
X3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKIH0KIAordm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakM6OnNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29y
a1N0YXRlIG5ldHdvcmtTdGF0ZSkKK3sKKyAgICBpZiAobV9uZXR3b3JrU3RhdGUgPT0gbmV0d29y
a1N0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX25ldHdvcmtTdGF0ZSA9IG5ldHdvcmtT
dGF0ZTsKKyAgICBtX3BsYXllci0+bmV0d29ya1N0YXRlQ2hhbmdlZCgpOworfQorCit2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzo6c2NoZWR1bGVEZWZlcnJlZFRhc2so
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uKQoreworICAgIEFTU0VSVChmdW5jdGlvbik7
CisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBjYWxsT25NYWluVGhy
ZWFkKFt3ZWFrVGhpcywgZnVuY3Rpb25dIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBmdW5jdGlvbigpOworICAgIH0pOworfQorCiB9CiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFt
UHJpdmF0ZUFWRk9iakMuaAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2Jq
Qy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDg3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akNfaAotI2RlZmluZSBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDX2gKLQotI2lmIEVOQUJMRShN
RURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCi0KLSNpbmNsdWRlICJNZWRpYVBsYXll
ci5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL01lZGlhVGltZS5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1PQkpDX0NMQVNTIEFWQXNzZXQ7Ci1PQkpDX0NMQVNT
IEFWU3RyZWFtRGF0YVBhcnNlcjsKLU9CSkNfQ0xBU1MgTlNFcnJvcjsKLU9CSkNfQ0xBU1MgTlNP
YmplY3Q7Ci10eXBlZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZm
ZXJSZWY7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ0RNU2Vzc2lvbjsKLWNsYXNz
IE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQzsKLWNsYXNzIE1lZGlhU3RyZWFt
UHJpdmF0ZTsKLWNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudDsKLWNsYXNzIFBsYXRmb3Jt
VGltZVJhbmdlczsKLWNsYXNzIFRpbWVSYW5nZXM7Ci0KLWNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0
ZUFWRk9iakMgZmluYWwgOiBwdWJsaWMgTWVkaWFTdHJlYW1Qcml2YXRlIHsKLXB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM+IGNyZWF0ZShNZWRpYVBs
YXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMmLCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKLSAg
ICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKCk7Ci0KLSAgICBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMqIHBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGxh
eWVyOyB9Ci0KLSAgICB2aXJ0dWFsIE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCogY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQuZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xp
ZW50KE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50
OyB9Ci0KLSAgICBNZWRpYVRpbWUgZHVyYXRpb24oKTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxh
dGZvcm1UaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwotCi0gICAgYm9vbCBoYXNBdWRpbygpIGNvbnN0
OwotICAgIGJvb2wgaGFzVmlkZW8oKSBjb25zdDsKLQotICAgIHZvaWQgc2V0UmVhZHlTdGF0ZShN
ZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSk7Ci0gICAgRmxvYXRTaXplIG5hdHVyYWxTaXplKCkgY29u
c3Q7Ci0KLSAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7Ci0K
LXByaXZhdGU6Ci0gICAgTWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQyhNZWRpYVBsYXllclByaXZh
dGVNZWRpYVN0cmVhbUFWRk9iakMmLCBNZWRpYVN0cmVhbVByaXZhdGUmKTsKLQotICAgIE1lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyogbV9wbGF5ZXI7Ci0gICAgUmVmUHRyPE1l
ZGlhU3RyZWFtUHJpdmF0ZUNsaWVudD4gbV9jbGllbnQ7Ci19OwotICAgIAotfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKLQotI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFW
Rk9iakMubW0JKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEsOTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJNZWRpYVN0
cmVhbVByaXZhdGVBVkZPYmpDLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKSAmJiBVU0Uo
QVZGT1VOREFUSU9OKQotCi0jaW1wb3J0ICJDb250ZW50VHlwZS5oIgotI2ltcG9ydCAiRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmgiCi0jaW1wb3J0ICJNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0
cmVhbUFWRk9iakMuaCIKLSNpbXBvcnQgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgotI2ltcG9ydCAi
U29mdExpbmtpbmcuaCIKLSNpbXBvcnQgIlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLmgiCi0j
aW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgotI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLSNwcmFnbWEgbWFyayAtCi0jcHJhZ21hIG1hcmsgTWVkaWFTdHJlYW1Qcml2YXRlQVZG
T2JqQwotCi1SZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQz4gTWVkaWFTdHJlYW1Qcml2
YXRlQVZGT2JqQzo6Y3JlYXRlKE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQyYg
cGFyZW50LCBNZWRpYVN0cmVhbVByaXZhdGUmIHN0cmVhbSkKLXsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakMocGFyZW50LCBzdHJlYW0pKTsKLX0KLQot
TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQzo6TWVkaWFTdHJlYW1Qcml2YXRlQVZGT2JqQyhNZWRp
YVBsYXllclByaXZhdGVNZWRpYVN0cmVhbUFWRk9iakMmIHBhcmVudCwgTWVkaWFTdHJlYW1Qcml2
YXRlJiBzdHJlYW0pCi0gICAgOiBNZWRpYVN0cmVhbVByaXZhdGUoKnN0cmVhbS5jbGllbnQoKSkK
LSAgICAsIG1fcGxheWVyKCZwYXJlbnQpCi17Ci19Ci0KLU1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9i
akM6On5NZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDKCkKLXsKLX0KLQotTWVkaWFUaW1lIE1lZGlh
U3RyZWFtUHJpdmF0ZUFWRk9iakM6OmR1cmF0aW9uKCkKLXsKLSAgICByZXR1cm4gTWVkaWFUaW1l
Ojpwb3NpdGl2ZUluZmluaXRlVGltZSgpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1U
aW1lUmFuZ2VzPiBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpidWZmZXJlZCgpCi17Ci0gICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVSYW5nZXM+KCk7Ci19Ci0KLU1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6OnJlYWR5U3RhdGUo
KSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXllci0+cmVhZHlTdGF0ZSgpOwotfQotCi12b2lk
IE1lZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgcmVhZHlTdGF0ZSkKLXsKLSAgICBtX3BsYXllci0+c2V0UmVhZHlTdGF0ZShyZWFk
eVN0YXRlKTsKLX0KLQotYm9vbCBNZWRpYVN0cmVhbVByaXZhdGVBVkZPYmpDOjpoYXNBdWRpbygp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5oYXNBdWRpbygpOwotfQotCi1ib29sIE1l
ZGlhU3RyZWFtUHJpdmF0ZUFWRk9iakM6Omhhc1ZpZGVvKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9wbGF5ZXItPmhhc1ZpZGVvKCk7Ci19Ci0KLUZsb2F0U2l6ZSBNZWRpYVN0cmVhbVByaXZhdGVB
VkZPYmpDOjpuYXR1cmFsU2l6ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5uYXR1
cmFsU2l6ZSgpOwotfQotICAgIAotfQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkg
JiYgVVNFKEFWRk9VTkRBVElPTikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAkocmV2aXNpb24g
MTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxNSBFcmljc3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zMSwxMiArMzIsMTQg
QEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTWVkaWFTdHJlYW1Qcml2
YXRlLmgiCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSAiTWVkaWFTdHJl
YW1Qcml2YXRlLmgiCi0KKyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlICJJ
bnRSZWN0LmgiCiAjaW5jbHVkZSAiVVVJRC5oIgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAK
QEAgLTYyLDI1ICs2NSwzNSBAQCBSZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBNZWRpYVN0cmVh
bVByCiB9CiAKIE1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJlYW1Qcml2YXRlKGNvbnN0IFN0
cmluZyYgaWQsIGNvbnN0IE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlVmVjdG9yJiB0cmFja3MpCi0g
ICAgOiBtX2lkKGlkKQorICAgIDogbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQorICAgICwgbV9pZChp
ZCkKIHsKICAgICBBU1NFUlQoIW1faWQuaXNFbXB0eSgpKTsKIAotICAgIGZvciAoYXV0byYgdHJh
Y2sgOiB0cmFja3MpCisgICAgZm9yIChhdXRvJiB0cmFjayA6IHRyYWNrcykgeworICAgICAgICB0
cmFjay0+YWRkT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+
aWQoKSwgdHJhY2spOworICAgIH0KIAogICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVu
dE9wdGlvbjo6RG9udE5vdGlmeSk7CiB9CiAKLU1lZGlhU3RyZWFtUHJpdmF0ZTo6TWVkaWFTdHJl
YW1Qcml2YXRlKE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCYgY2xpZW50KQotICAgIDogbV9jbGll
bnQoJmNsaWVudCkKK01lZGlhU3RyZWFtUHJpdmF0ZTo6fk1lZGlhU3RyZWFtUHJpdmF0ZSgpCit7
CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHRy
YWNrLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRl
OjphZGRPYnNlcnZlcihNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsK
KyAgICBtX29ic2VydmVycy5hcHBlbmQoJm9ic2VydmVyKTsKIH0KIAotTWVkaWFTdHJlYW1Qcml2
YXRlOjp+TWVkaWFTdHJlYW1Qcml2YXRlKCkKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1v
dmVPYnNlcnZlcihNZWRpYVN0cmVhbVByaXZhdGU6Ok9ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAg
ICBtX2NsaWVudCA9IG51bGxwdHI7Ci0gICAgbV9pc0FjdGl2ZSA9IGZhbHNlOworICAgIHNpemVf
dCBwb3MgPSBtX29ic2VydmVycy5maW5kKCZvYnNlcnZlcik7CisgICAgaWYgKHBvcyAhPSBub3RG
b3VuZCkKKyAgICAgICAgbV9vYnNlcnZlcnMucmVtb3ZlKHBvcyk7CiB9CiAKIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlVmVjdG9yIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dHJhY2tzKCkgY29uc3QKQEAg
LTk0LDIxICsxMDcsMjkgQEAgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3IgTWVkaWFTdHJl
YQogCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6dXBkYXRlQWN0aXZlU3RhdGUoTm90aWZ5Q2xp
ZW50T3B0aW9uIG5vdGlmeUNsaWVudE9wdGlvbikKIHsKLSAgICAvLyBBIHN0cmVhbSBpcyBhY3Rp
dmUgaWYgaXQgaGFzIGF0IGxlYXN0IG9uZSB1bi1lbmRlZCB0cmFjay4KICAgICBib29sIG5ld0Fj
dGl2ZVN0YXRlID0gZmFsc2U7CisgICAgbV9hY3RpdmVWaWRlb1RyYWNrID0gbnVsbHB0cjsKICAg
ICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMoKSkgeworCiAgICAgICAgIGlm
ICghdHJhY2stPmVuZGVkKCkpIHsKICAgICAgICAgICAgIG5ld0FjdGl2ZVN0YXRlID0gdHJ1ZTsK
LSAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKHRyYWNrLT5zb3VyY2UoKS0+dHlw
ZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKSB7CisgICAgICAgICAgICAg
ICAgbV9hY3RpdmVWaWRlb1RyYWNrID0gdHJhY2suZ2V0KCk7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBBIHN0cmVhbSBp
cyBhY3RpdmUgaWYgaXQgaGFzIGF0IGxlYXN0IG9uZSB1bi1lbmRlZCB0cmFjay4KICAgICBpZiAo
bmV3QWN0aXZlU3RhdGUgPT0gbV9pc0FjdGl2ZSkKICAgICAgICAgcmV0dXJuOworCiAgICAgbV9p
c0FjdGl2ZSA9IG5ld0FjdGl2ZVN0YXRlOwogCi0gICAgaWYgKG1fY2xpZW50ICYmIG5vdGlmeUNs
aWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSkKLSAgICAgICAgbV9jbGll
bnQtPmFjdGl2ZVN0YXR1c0NoYW5nZWQoKTsKKyAgICBpZiAobm90aWZ5Q2xpZW50T3B0aW9uID09
IE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KSB7CisgICAgICAgIGZvciAoYXV0byYgb2JzZXJ2
ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgICAgIG9ic2VydmVyLT5hY3RpdmVTdGF0dXNDaGFu
Z2VkKCk7CisgICAgfQogfQogCiB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6YWRkVHJhY2soUmVm
UHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPiYmIHRyYWNrLCBOb3RpZnlDbGllbnRPcHRpb24g
bm90aWZ5Q2xpZW50T3B0aW9uKQpAQCAtMTE5LDggKzE0MCwxMCBAQCB2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6YWRkVHJhY2soUmVmUHRyCiAgICAgdHJhY2stPmFkZE9ic2VydmVyKCp0aGlzKTsK
ICAgICBtX3RyYWNrU2V0LmFkZCh0cmFjay0+aWQoKSwgdHJhY2spOwogCi0gICAgaWYgKG1fY2xp
ZW50ICYmIG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSkK
LSAgICAgICAgbV9jbGllbnQtPmRpZEFkZFRyYWNrKCp0cmFjay5nZXQoKSk7CisgICAgaWYgKG5v
dGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGllbnRPcHRpb246Ok5vdGlmeSkgeworICAgICAg
ICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgICAgICBvYnNlcnZl
ci0+ZGlkQWRkVHJhY2soKnRyYWNrLmdldCgpKTsKKyAgICB9CiAKICAgICB1cGRhdGVBY3RpdmVT
dGF0ZShub3RpZnlDbGllbnRPcHRpb24pOwogfQpAQCAtMTMyLDEyICsxNTUsMTQyIEBAIHZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjpyZW1vdmVUcmFjayhNZWQKIAogICAgIHRyYWNrLnJlbW92ZU9i
c2VydmVyKCp0aGlzKTsKIAotICAgIGlmIChtX2NsaWVudCAmJiBub3RpZnlDbGllbnRPcHRpb24g
PT0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZW1v
dmVUcmFjayh0cmFjayk7CisgICAgaWYgKG5vdGlmeUNsaWVudE9wdGlvbiA9PSBOb3RpZnlDbGll
bnRPcHRpb246Ok5vdGlmeSkgeworICAgICAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNl
cnZlcnMpCisgICAgICAgICAgICBvYnNlcnZlci0+ZGlkUmVtb3ZlVHJhY2sodHJhY2spOworICAg
IH0KIAogICAgIHVwZGF0ZUFjdGl2ZVN0YXRlKE5vdGlmeUNsaWVudE9wdGlvbjo6Tm90aWZ5KTsK
IH0KIAordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCit7Cisg
ICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQudmFsdWVzKCkpCisgICAgICAgIHRyYWNr
LT5zdGFydFByb2R1Y2luZ0RhdGEoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnN0
b3BQcm9kdWNpbmdEYXRhKCkKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52
YWx1ZXMoKSkKKyAgICAgICAgdHJhY2stPnN0b3BQcm9kdWNpbmdEYXRhKCk7Cit9CisKK2Jvb2wg
TWVkaWFTdHJlYW1Qcml2YXRlOjppc1Byb2R1Y2luZ0RhdGEoKSBjb25zdAoreworICAgIGZvciAo
YXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisgICAgICAgIGlmICh0cmFjay0+
aXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzVmlkZW8oKQor
eworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisgICAgICAg
IGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvICYm
IHRyYWNrLT5lbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIE1lZGlhU3RyZWFtUHJpdmF0ZTo6aGFzQXVkaW8oKQor
eworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisgICAgICAg
IGlmICh0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYm
IHRyYWNrLT5lbmFibGVkKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitGbG9hdFNpemUgTWVkaWFTdHJlYW1Qcml2YXRlOjppbnRyaW5z
aWNTaXplKCkgY29uc3QKK3sKKyAgICBGbG9hdFNpemUgc2l6ZTsKKworICAgIGlmIChtX2FjdGl2
ZVZpZGVvVHJhY2spIHsKKyAgICAgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYg
c3RhdGVzID0gbV9hY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS0+c3RhdGVzKCk7CisgICAgICAg
IHNpemUuc2V0V2lkdGgoc3RhdGVzLndpZHRoKCkpOworICAgICAgICBzaXplLnNldEhlaWdodChz
dGF0ZXMuaGVpZ2h0KCkpOworICAgIH0KKworICAgIHJldHVybiBzaXplOworfQorCitQbGF0Zm9y
bUxheWVyKiBNZWRpYVN0cmVhbVByaXZhdGU6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAoreworICAg
IGlmICghbV9hY3RpdmVWaWRlb1RyYWNrKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IHJldHVybiBtX2FjdGl2ZVZpZGVvVHJhY2stPnNvdXJjZSgpLT5wbGF0Zm9ybUxheWVyKCk7Cit9
CisKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBp
ZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChhY3RpdmUoKSAmJiBtX2FjdGl2ZVZpZGVvVHJhY2spCisgICAgICAgIG1fYWN0aXZlVmlkZW9U
cmFjay0+c291cmNlKCktPnBhaW50Q3VycmVudEZyYW1lSW5Db250ZXh0KGNvbnRleHQsIHJlY3Qp
OworICAgIGVsc2UgeworICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2
ZXIoY29udGV4dCk7CisgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHJlY3QueCgpLCByZWN0Lnko
KSArIHJlY3QuaGVpZ2h0KCkpOworICAgICAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgxLCAt
MSkpOworICAgICAgICBJbnRSZWN0IHBhaW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6ZShy
ZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsKKyAgICAgICAgY29udGV4dC5maWxsUmVjdChw
YWludFJlY3QsIENvbG9yOjpibGFjaywgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgfQorfQor
CitSZWZQdHI8SW1hZ2U+IE1lZGlhU3RyZWFtUHJpdmF0ZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQor
eworICAgIGlmICghYWN0aXZlKCkgJiYgIW1fYWN0aXZlVmlkZW9UcmFjaykKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gbV9hY3RpdmVWaWRlb1RyYWNrLT5zb3VyY2UoKS0+
Y3VycmVudEZyYW1lSW1hZ2UoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OmNoYXJh
Y3RlcmlzdGljc0NoYW5nZWQoKQoreworICAgIGZvciAoYXV0byYgb2JzZXJ2ZXIgOiBtX29ic2Vy
dmVycykKKyAgICAgICAgb2JzZXJ2ZXItPmNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKK30KKwor
dm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlJikKK3sKKyAgICBzY2hlZHVsZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAg
ICBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CisgICAgfSk7Cit9CisKK3ZvaWQgTWVkaWFTdHJl
YW1Qcml2YXRlOjp0cmFja1N0YXRlc0NoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQor
eworICAgIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVBy
aXZhdGU6OnRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQorewor
ICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGNoYXJhY3RlcmlzdGlj
c0NoYW5nZWQoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnRyYWNr
UHJvZHVjaW5nRGF0YUNoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKQoreworICAgIHNj
aGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgIGNoYXJhY3RlcmlzdGljc0NoYW5n
ZWQoKTsKKyAgICB9KTsKK30KKwordm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnNjaGVkdWxlRGVm
ZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQo
ZnVuY3Rpb24pOworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgY2Fs
bE9uTWFpblRocmVhZChbd2Vha1RoaXMsIGZ1bmN0aW9uXSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgZnVuY3Rpb24oKTsKKyAgICB9KTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NU
UkVBTSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAxMSwgMjAxNSBFcmlj
c3NvbiBBQi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAo
QykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDI4ICszNiwzMiBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NU
UkVBTSkKIAorI2luY2x1ZGUgIkZsb2F0U2l6ZS5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtVHJh
Y2suaCIKICNpbmNsdWRlICJNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01lZGlhVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOwotCi1jbGFzcyBNZWRpYVN0cmVhbVByaXZh
dGVDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQ+IHsK
LXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5NZWRpYVN0cmVhbVByaXZhdGVDbGllbnQoKSB7IH0KLQot
ICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVTdGF0dXNDaGFuZ2VkKCkgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGRUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVtb3ZlVHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmKSA9IDA7Ci19
OworY2xhc3MgTWVkaWFTdHJlYW07CiAKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZSA6IHB1Ymxp
YyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPE1l
ZGlhU3RyZWFtUHJpdmF0ZT4gewogcHVibGljOgorICAgIGNsYXNzIE9ic2VydmVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgeyB9CisKKyAgICAgICAgdmlydHVh
bCB2b2lkIGNoYXJhY3RlcmlzdGljc0NoYW5nZWQoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lk
IGFjdGl2ZVN0YXR1c0NoYW5nZWQoKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEFkZFRy
YWNrKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgeyB9CisgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRSZW1vdmVUcmFjayhNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIHsgfQorICAgIH07CisKICAg
ICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiBhdWRpb1NvdXJjZXMsIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+JiB2aWRlb1NvdXJjZXMpOwogICAgIHN0YXRpYyBS
ZWZQdHI8TWVkaWFTdHJlYW1Qcml2YXRlPiBjcmVhdGUoY29uc3QgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGVWZWN0b3ImKTsKIApAQCAtNjQsOCArNjksOCBAQCBwdWJsaWM6CiAKICAgICBlbnVtIGNs
YXNzIE5vdGlmeUNsaWVudE9wdGlvbiB7IE5vdGlmeSwgRG9udE5vdGlmeSB9OwogCi0gICAgTWVk
aWFTdHJlYW1Qcml2YXRlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsg
fQotICAgIHZvaWQgc2V0Q2xpZW50KE1lZGlhU3RyZWFtUHJpdmF0ZUNsaWVudCogY2xpZW50KSB7
IG1fY2xpZW50ID0gY2xpZW50OyB9CisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwor
ICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIAogICAgIFN0cmluZyBpZCgpIGNv
bnN0IHsgcmV0dXJuIG1faWQ7IH0KIApAQCAtNzcsMjEgKzgyLDQwIEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZFRyYWNrKFJlZlB0cjxNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZT4mJiwgTm90aWZ5Q2xp
ZW50T3B0aW9uID0gTm90aWZ5Q2xpZW50T3B0aW9uOjpOb3RpZnkpOwogICAgIHZvaWQgcmVtb3Zl
VHJhY2soTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUmLCBOb3RpZnlDbGllbnRPcHRpb24gPSBOb3Rp
ZnlDbGllbnRPcHRpb246Ok5vdGlmeSk7CiAKLXByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBNZWRp
YVN0cmVhbVByaXZhdGUoTWVkaWFTdHJlYW1Qcml2YXRlQ2xpZW50Jik7CisgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEoKTsKKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgYm9v
bCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdDsKKworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3Jt
TGF5ZXIoKSBjb25zdDsKKyAgICBSZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCk7Cisg
ICAgdm9pZCBwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmKTsKKworICAgIGJvb2wgaGFzVmlkZW8oKTsKKyAgICBib29sIGhhc0F1ZGlv
KCk7CisKKyAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSgpIGNvbnN0OworCisgICAgV2Vha1B0
cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgogICAgIE1lZGlhU3RyZWFtUHJp
dmF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYp
OwogCiAgICAgdm9pZCB0cmFja0VuZGVkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJp
ZGUgeyB9Ci0gICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0
ZSYpIG92ZXJyaWRlIHsgfQotICAgIHZvaWQgdHJhY2tTdGF0ZXNDaGFuZ2VkKE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlJikgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCB0cmFja011dGVkQ2hhbmdlZChN
ZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpIG92ZXJyaWRlOworICAgIHZvaWQgdHJhY2tTdGF0ZXND
aGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7CisgICAgdm9pZCB0cmFj
a1Byb2R1Y2luZ0RhdGFDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgb3ZlcnJpZGU7
CisgICAgdm9pZCB0cmFja0VuYWJsZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlJikg
b3ZlcnJpZGU7CiAKLSAgICBNZWRpYVN0cmVhbVByaXZhdGVDbGllbnQqIG1fY2xpZW50IHsgbnVs
bHB0ciB9OwotICAgIFN0cmluZyBtX2lkOwotICAgIGJvb2wgbV9pc0FjdGl2ZSB7IGZhbHNlIH07
CisgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkKCk7CiAKKyAgICB2b2lkIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPik7CisKKyAgICBXZWFrUHRyRmFjdG9y
eTxNZWRpYVN0cmVhbVByaXZhdGU+IG1fd2Vha1B0ckZhY3Rvcnk7CisgICAgVmVjdG9yPE9ic2Vy
dmVyKj4gbV9vYnNlcnZlcnM7CisgICAgU3RyaW5nIG1faWQ7CisgICAgTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUqIG1fYWN0aXZlVmlkZW9UcmFjayB7IG51bGxwdHIgfTsKICAgICBIYXNoTWFwPFN0
cmluZywgUmVmUHRyPE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlPj4gbV90cmFja1NldDsKKyAgICBi
b29sIG1faXNBY3RpdmUgeyBmYWxzZSB9OwogfTsKIAogdHlwZWRlZiBWZWN0b3I8UmVmUHRyPE1l
ZGlhU3RyZWFtUHJpdmF0ZT4+IE1lZGlhU3RyZWFtUHJpdmF0ZVZlY3RvcjsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRp
YVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAJKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTc4LDYgKzE3OCwxOCBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpzb3VyY2VTdGF0CiAgICAgICAgIG9ic2VydmVyLT50cmFja1N0YXRlc0NoYW5nZWQoKnRo
aXMpOwogfQogCit2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpzb3VyY2VQcm9kdWNpbmdE
YXRhQ2hhbmdlZCgpCit7CisgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQor
ICAgICAgICBvYnNlcnZlci0+dHJhY2tQcm9kdWNpbmdEYXRhQ2hhbmdlZCgqdGhpcyk7Cit9CisK
K3ZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6OnNvdXJjZUVuYWJsZWRDaGFuZ2VkKCkKK3sK
KyAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVy
LT50cmFja0VuYWJsZWRDaGFuZ2VkKCp0aGlzKTsKK30KKwogYm9vbCBNZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZTo6cHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpCiB7CiAgICAgcmV0dXJuICFtX2lz
RW5kZWQ7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVRyYWNrUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmgJKHJldmlzaW9uIDE5MTY5NikK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDggQEAgcHVibGljOgogICAgICAg
ICB2aXJ0dWFsIHZvaWQgdHJhY2tFbmRlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHRyYWNrTXV0ZWRDaGFuZ2VkKE1lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tTdGF0ZXNDaGFuZ2VkKE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgdHJhY2tQ
cm9kdWNpbmdEYXRhQ2hhbmdlZChNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZSYpID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHRyYWNrRW5hYmxlZENoYW5nZWQoTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGUmKSA9IDA7CiAgICAgfTsKICAgICAKICAgICBzdGF0aWMgUmVmUHRyPE1lZGlhU3RyZWFtVHJh
Y2tQcml2YXRlPiBjcmVhdGUoUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOwpAQCAtNjIs
NiArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIHsgbV9z
b3VyY2UtPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpIHsgbV9zb3VyY2UtPnN0b3BQcm9kdWNpbmdEYXRhKCk7IH0KKyAgICBib29sIGlzUHJvZHVj
aW5nRGF0YSgpIHsgcmV0dXJuIG1fc291cmNlLT5pc1Byb2R1Y2luZ0RhdGEoKTsgfQogCiAgICAg
Ym9vbCBtdXRlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TXV0ZWQoYm9vbCBtdXRlZCkgY29uc3Qg
eyBtX3NvdXJjZS0+c2V0TXV0ZWQobXV0ZWQpOyB9CkBAIC05OCw3ICsxMDEsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc291cmNlU3RvcHBlZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZvaWQgc291
cmNlTXV0ZWRDaGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdm9pZCBzb3VyY2VTdGF0ZXND
aGFuZ2VkKCkgb3ZlcnJpZGUgZmluYWw7CisgICAgdm9pZCBzb3VyY2VQcm9kdWNpbmdEYXRhQ2hh
bmdlZCgpIG92ZXJyaWRlIGZpbmFsOwogICAgIGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGlu
ZygpIG92ZXJyaWRlIGZpbmFsOworICAgIHZvaWQgc291cmNlRW5hYmxlZENoYW5nZWQoKSBvdmVy
cmlkZSBmaW5hbDsKIAogICAgIFZlY3RvcjxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOwogICAgIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBtX3NvdXJjZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuY3BwCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYg
KzEwMSwyMiBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0YXRlc0RpZENoYW5nCiAgICAg
ICAgIG9ic2VydmVyLT5zb3VyY2VTdGF0ZXNDaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6aXNQcm9kdWNpbmdEYXRhRGlkQ2hhbmdlKCkKK3sKKyAgICBmb3IgKGF1dG8m
IG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT5zb3VyY2VQcm9kdWNp
bmdEYXRhQ2hhbmdlZCgpOworfQorCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnNldEVuYWJs
ZWQoYm9vbCBlbmFibGVkKQoreworICAgIGlmIChtX2VuYWJsZWQgPT0gZW5hYmxlZCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9lbmFibGVkID0gZW5hYmxlZDsKKyAgICBmb3IgKGF1dG8mIG9i
c2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLT5zb3VyY2VFbmFibGVkQ2hh
bmdlZCgpOworfQorCiBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlYWRvbmx5KCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9yZWFkb25seTsKQEAgLTExOSw2ICsxMzUsNyBAQCB2b2lkIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OnN0b3AoT2JzZXJ2ZXIqCiAgICAgfQogCiAgICAgc3RvcFByb2R1Y2lu
Z0RhdGEoKTsKKyAgICByZXNldCgpOwogfQogCiB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJl
cXVlc3RTdG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZS5oCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDkg
QEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiQXVkaW9Tb3VyY2VQcm92
aWRlci5oIgorI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTWVkaWFDb25zdHJhaW50cy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CkBAIC00NSw2ICs0Nyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgRmxvYXRSZWN0OworY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTWVkaWFD
b25zdHJhaW50czsKIGNsYXNzIE1lZGlhU3RyZWFtUHJpdmF0ZTsKIGNsYXNzIFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM7CkBAIC01OSw2ICs2Myw4IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVh
bCB2b2lkIHNvdXJjZVN0b3BwZWQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VN
dXRlZENoYW5nZWQoKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VTdGF0ZXNDaGFu
Z2VkKCkgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc291cmNlUHJvZHVjaW5nRGF0YUNoYW5n
ZWQoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VFbmFibGVkQ2hhbmdlZCgpID0g
MDsKIAogICAgICAgICAvLyBPYnNlcnZlciBzdGF0ZSBxdWVyaWVzLgogICAgICAgICB2aXJ0dWFs
IGJvb2wgcHJldmVudFNvdXJjZUZyb21TdG9wcGluZygpID0gMDsKQEAgLTY2LDggKzcyLDYgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpIHsgfQogCi0gICAg
Ym9vbCBpc0F1ZGlvU3RyZWFtU291cmNlKCkgY29uc3QgeyByZXR1cm4gdHlwZSgpID09IEF1ZGlv
OyB9Ci0KICAgICBjb25zdCBTdHJpbmcmIGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogCiAg
ICAgY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQoKSBjb25zdCB7IHJldHVybiBtX3BlcnNpc3Rl
bnRJRDsgfQpAQCAtODIsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBm
aXRuZXNzU2NvcmUoKSBjb25zdCB7IHJldHVybiBtX2ZpdG5lc3NTY29yZTsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRGaXRuZXNzU2NvcmUoY29uc3QgdW5zaWduZWQgZml0bmVzc1Njb3JlKSB7IG1f
Zml0bmVzc1Njb3JlID0gZml0bmVzc1Njb3JlOyB9CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCA9IDA7Cisg
ICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJp
bGl0aWVzKCkgPSAwOwogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRl
cyYgc3RhdGVzKCkgPSAwOwogICAgIHZvaWQgc3RhdGVzRGlkQ2hhbmdlZCgpOwogICAgIApAQCAt
OTcsMTkgKzEwMSwyOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHJlbW90ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVtb3RlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbW90ZShib29sIHJl
bW90ZSkgeyBtX3JlbW90ZSA9IHJlbW90ZTsgfQogCisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJs
ZWQoYm9vbCk7CisgICAgdmlydHVhbCBib29sIGVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2Vu
YWJsZWQ7IH0KKwogICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXIqKTsKICAgICB2b2lkIHJl
bW92ZU9ic2VydmVyKE9ic2VydmVyKik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQcm9kdWNp
bmdEYXRhKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgeyB9Cisg
ICAgdmlydHVhbCBib29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCB2b2lkIGlzUHJvZHVjaW5nRGF0YURpZENoYW5nZSgpOwogCiAgICAgdm9p
ZCBzdG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIgPSBudWxscHRyKTsKICAgICB2b2lkIHJl
cXVlc3RTdG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIgPSBudWxscHRyKTsKIAotICAgIHZv
aWQgcmVzZXQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKTsKIAogICAgIHZpcnR1YWwgQXVk
aW9Tb3VyY2VQcm92aWRlciogYXVkaW9Tb3VyY2VQcm92aWRlcigpIHsgcmV0dXJuIG51bGxwdHI7
IH0KLSAgICAKKworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNv
bnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZT4gY3VycmVu
dEZyYW1lSW1hZ2UoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCB2b2lkIHBhaW50
Q3VycmVudEZyYW1lSW5Db250ZXh0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYp
IHsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZShjb25zdCBTdHJpbmcm
IGlkLCBUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCkBAIC0xMjQsNiArMTM3LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fbXV0ZWQ7CiAgICAgYm9vbCBtX3JlYWRvbmx5OwogICAgIGJvb2wg
bV9yZW1vdGU7CisgICAgYm9vbCBtX2VuYWJsZWQgeyB0cnVlIH07CiAgICAgCiAgICAgdW5zaWdu
ZWQgbV9maXRuZXNzU2NvcmU7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgJ
KHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwxMCArNTgs
MTIgQEAgcHJpdmF0ZToKICAgICBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+KTsKICAg
ICB2aXJ0dWFsIH5BVkF1ZGlvQ2FwdHVyZVNvdXJjZSgpOwogICAgIAotICAgIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBjYXB0dXJlT3V0cHV0RGlkT3V0cHV0
U2FtcGxlQnVmZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0KiwgQ01TYW1wbGVCdWZm
ZXJSZWYsIEFWQ2FwdHVyZUNvbm5lY3Rpb24qKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lkIHNl
dHVwQ2FwdHVyZVNlc3Npb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIHNodXRkb3duQ2FwdHVyZVNl
c3Npb24oKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVN0YXRlcygpIG92ZXJyaWRlOwogICAg
IEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291cmNlUHJvdmlkZXIoKSBvdmVycmlkZTsKIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0
dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNpb24gMTkxNjk2KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291
cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxNCArNDAsMTYgQEAKIAogI2ltcG9ydCAiQ29y
ZU1lZGlhU29mdExpbmsuaCIKIAordHlwZWRlZiBBVkNhcHR1cmVBdWRpb0NoYW5uZWwgQVZDYXB0
dXJlQXVkaW9DaGFubmVsVHlwZTsKK3R5cGVkZWYgQVZDYXB0dXJlQXVkaW9EYXRhT3V0cHV0IEFW
Q2FwdHVyZUF1ZGlvRGF0YU91dHB1dFR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZUNvbm5lY3Rpb24g
QVZDYXB0dXJlQ29ubmVjdGlvblR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZURldmljZSBBVkNhcHR1
cmVEZXZpY2VUeXBlOwogdHlwZWRlZiBBVkNhcHR1cmVEZXZpY2VJbnB1dCBBVkNhcHR1cmVEZXZp
Y2VJbnB1dFR5cGU7CiB0eXBlZGVmIEFWQ2FwdHVyZU91dHB1dCBBVkNhcHR1cmVPdXRwdXRUeXBl
OwotdHlwZWRlZiBBVkNhcHR1cmVBdWRpb0RhdGFPdXRwdXQgQVZDYXB0dXJlQXVkaW9EYXRhT3V0
cHV0VHlwZTsKIAogU09GVF9MSU5LX0ZSQU1FV09SS19PUFRJT05BTChBVkZvdW5kYXRpb24pCiAK
K1NPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUF1ZGlvQ2hhbm5lbCkKIFNP
RlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCkKIFNP
RlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZUNvbm5lY3Rpb24pCiBTT0ZUX0xJ
TktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVEZXZpY2UpCkBAIC03NywxMCArNzksMTAg
QEAgQVZBdWRpb0NhcHR1cmVTb3VyY2U6On5BVkF1ZGlvQ2FwdHVyZVNvdQogewogfQogCi1SZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gQVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmNhcGFiaWxpdGllcygpIGNvbnN0Cit2b2lkIEFWQXVkaW9DYXB0dXJlU291cmNlOjppbml0aWFs
aXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmY2FwYWJpbGl0
aWVzKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAg
Ly8gRklYTUU6IGZpbmlzaCB0aGlzIGltcGxlbWVudGF0aW9uIC0gaHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTIyNDMwCisgICAgY2FwYWJpbGl0aWVzLmFkZFNvdXJjZVR5cGUoUmVhbHRpbWVNZWRpYVNv
dXJjZVN0YXRlczo6TWljcm9waG9uZSk7CiB9CiAKIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6
OnVwZGF0ZVN0YXRlcygpCkBAIC05MCwxMSArOTIsOCBAQCB2b2lkIEFWQXVkaW9DYXB0dXJlU291
cmNlOjp1cGRhdGVTdGF0ZXMoCiAKIHZvaWQgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmFkZE9ic2Vy
dmVyKEFWQXVkaW9DYXB0dXJlU291cmNlOjpPYnNlcnZlciogb2JzZXJ2ZXIpCiB7Ci0gICAgewot
ICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKLSAgICAgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKG9ic2VydmVyKTsKLSAgICB9Ci0KKyAgICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKyAg
ICBtX29ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOwogICAgIGlmIChtX2lucHV0RGVzY3JpcHRp
b24tPm1TYW1wbGVSYXRlKQogICAgICAgICBvYnNlcnZlci0+cHJlcGFyZShtX2lucHV0RGVzY3Jp
cHRpb24uZ2V0KCkpOwogfQpAQCAtMTEwLDE2ICsxMDksNDAgQEAgdm9pZCBBVkF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6cmVtb3ZlT2JzZXJ2ZQogdm9pZCBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6c2V0dXBD
YXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgUmV0YWluUHRyPEFWQ2FwdHVyZURldmljZUlucHV0VHlw
ZT4gYXVkaW9JbiA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlRGV2aWNlSW5wdXRJbnN0YW5jZSgp
IGluaXRXaXRoRGV2aWNlOmRldmljZSgpIGVycm9yOm5pbF0pOwotICAgIEFTU0VSVChbc2Vzc2lv
bigpIGNhbkFkZElucHV0OmF1ZGlvSW4uZ2V0KCldKTsKLSAgICBpZiAoW3Nlc3Npb24oKSBjYW5B
ZGRJbnB1dDphdWRpb0luLmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDphdWRp
b0luLmdldCgpXTsKLSAgICAKKworICAgIGlmICghW3Nlc3Npb24oKSBjYW5BZGRJbnB1dDphdWRp
b0luLmdldCgpXSkgeworICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0dXBDYXB0dXJlU2Vzc2lvbiglcCksIHVuYWJsZSB0byBhZGQgYXVkaW8gaW5wdXQgZGV2aWNl
IiwgdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgW3Nlc3Npb24oKSBhZGRJbnB1
dDphdWRpb0luLmdldCgpXTsKKwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVBdWRpb0RhdGFPdXRw
dXRUeXBlPiBhdWRpb091dHB1dCA9IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlQXVkaW9EYXRhT3V0
cHV0SW5zdGFuY2UoKSBpbml0XSk7CiAgICAgc2V0QXVkaW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShh
dWRpb091dHB1dC5nZXQoKSk7Ci0gICAgQVNTRVJUKFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OmF1
ZGlvT3V0cHV0LmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OmF1ZGlv
T3V0cHV0LmdldCgpXSkKLSAgICAgICAgW3Nlc3Npb24oKSBhZGRPdXRwdXQ6YXVkaW9PdXRwdXQu
Z2V0KCldOwotICAgIG1fYXVkaW9Db25uZWN0aW9uID0gYWRvcHROUyhbYXVkaW9PdXRwdXQuZ2V0
KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6QVZNZWRpYVR5cGVBdWRpb10pOworCisgICAgaWYg
KCFbc2Vzc2lvbigpIGNhbkFkZE91dHB1dDphdWRpb091dHB1dC5nZXQoKV0pIHsKKyAgICAgICAg
TE9HKE1lZGlhLCAiQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2FwdHVyZVNlc3Npb24oJXAp
LCB1bmFibGUgdG8gYWRkIGF1ZGlvIHNhbXBsZSBidWZmZXIgb3V0cHV0IGRlbGVnYXRlIiwgdGhp
cyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgW3Nlc3Npb24oKSBhZGRPdXRwdXQ6YXVk
aW9PdXRwdXQuZ2V0KCldOworICAgIG1fYXVkaW9Db25uZWN0aW9uID0gW2F1ZGlvT3V0cHV0Lmdl
dCgpIGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOkFWTWVkaWFUeXBlQXVkaW9dOworfQorCit2b2lk
IEFWQXVkaW9DYXB0dXJlU291cmNlOjpzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkKK3sKKyAgICB7
CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2xvY2spOworCisgICAgICAgIG1fYXVkaW9Db25u
ZWN0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gc3RkOjptYWtl
X3VuaXF1ZTxBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24+KCk7CisKKyAgICAgICAgZm9yIChh
dXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2ZXItPnVucHJl
cGFyZSgpOworICAgICAgICBtX29ic2VydmVycy5zaHJpbmsoMCk7CisgICAgfQorCisgICAgLy8g
RG9uJ3QgaG9sZCB0aGUgbG9jayB3aGVuIGRlc3Ryb3lpbmcgdGhlIGF1ZGlvIHByb3ZpZGVyLCBp
dCB3aWxsIGNhbGwgYmFjayBpbnRvIHRoaXMgb2JqZWN0CisgICAgLy8gdG8gcmVtb3ZlIGl0c2Vs
ZiBhcyBhbiBvYnNlcnZlci4KKyAgICBtX2F1ZGlvU291cmNlUHJvdmlkZXIgPSBudWxscHRyOwog
fQogCiBzdGF0aWMgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbiYgYSwgY29uc3QgQXVkaW9TdHJlYW1CYXNpY0Rlc2NyaXB0aW9uJiBiKQpAQCAtMTQxLDI3
ICsxNjQsMzAgQEAgc3RhdGljIGJvb2wgb3BlcmF0b3IhPShjb25zdCBBdWRpb1N0cmVhbQogCiB2
b2lkIEFWQXVkaW9DYXB0dXJlU291cmNlOjpjYXB0dXJlT3V0cHV0RGlkT3V0cHV0U2FtcGxlQnVm
ZmVyRnJvbUNvbm5lY3Rpb24oQVZDYXB0dXJlT3V0cHV0VHlwZSosIENNU2FtcGxlQnVmZmVyUmVm
IHNhbXBsZUJ1ZmZlciwgQVZDYXB0dXJlQ29ubmVjdGlvblR5cGUqKQogewotICAgIFZlY3RvcjxP
YnNlcnZlcio+IG9ic2VydmVyczsKLSAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayhtX2xv
Y2spOwotICAgICAgICBpZiAobV9vYnNlcnZlcnMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGNvcHlUb1ZlY3RvcihtX29ic2VydmVycywgb2JzZXJ2ZXJzKTsKLSAg
ICB9CisgICAgaWYgKCFlbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKIAogICAgIENNRm9ybWF0
RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRpb24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1h
dERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlcik7CiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikK
ICAgICAgICAgcmV0dXJuOwogCisgICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fbG9j
aywgc3RkOjp0cnlfdG9fbG9jayk7CisgICAgaWYgKCFsb2NrLm93bnNfbG9jaygpKSB7CisgICAg
ICAgIC8vIEZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLCBqdXN0IHJldHVybiBpbnN0ZWFkIG9m
IGJsb2NraW5nLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fb2JzZXJ2ZXJz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgY29uc3QgQXVkaW9TdHJlYW1CYXNp
Y0Rlc2NyaXB0aW9uKiBzdHJlYW1EZXNjcmlwdGlvbiA9IENNQXVkaW9Gb3JtYXREZXNjcmlwdGlv
bkdldFN0cmVhbUJhc2ljRGVzY3JpcHRpb24oZm9ybWF0RGVzY3JpcHRpb24pOwogICAgIGlmICgq
bV9pbnB1dERlc2NyaXB0aW9uICE9ICpzdHJlYW1EZXNjcmlwdGlvbikgewogICAgICAgICBtX2lu
cHV0RGVzY3JpcHRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlw
dGlvbj4oKnN0cmVhbURlc2NyaXB0aW9uKTsKLSAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6
IG9ic2VydmVycykKKyAgICAgICAgZm9yIChhdXRvJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQog
ICAgICAgICAgICAgb2JzZXJ2ZXItPnByZXBhcmUobV9pbnB1dERlc2NyaXB0aW9uLmdldCgpKTsK
ICAgICB9CiAKLSAgICBmb3IgKGF1dG8mIG9ic2VydmVyIDogb2JzZXJ2ZXJzKQorICAgIGZvciAo
YXV0byYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKICAgICAgICAgb2JzZXJ2ZXItPnByb2Nlc3Mo
Zm9ybWF0RGVzY3JpcHRpb24sIHNhbXBsZUJ1ZmZlcik7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkNh
cHR1cmVEZXZpY2VNYW5hZ2VyLm1tCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZDYXB0dXJlRGV2aWNlTWFuYWdlci5tbQkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0xMDMsMTAgKzEwMyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbV9ncm91cElE
OwogCiAgICAgU3RyaW5nIG1fYXVkaW9Tb3VyY2VJZDsKLSAgICBSZWZQdHI8QVZNZWRpYUNhcHR1
cmVTb3VyY2U+IG1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKLQogICAgIFN0cmluZyBtX3Zp
ZGVvU291cmNlSWQ7Ci0gICAgUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX3ZpZGVvQVZN
ZWRpYUNhcHR1cmVTb3VyY2U7CiAKICAgICBib29sIG1fZW5hYmxlZDsKIH07CkBAIC0xNDYsNyAr
MTQzLDE1IEBAIHN0YXRpYyB2b2lkIHJlZnJlc2hDYXB0dXJlRGV2aWNlTGlzdCgpCiAgICAgCiAg
ICAgZm9yIChBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgaW4gW0FWQ2FwdHVyZURldmljZSBk
ZXZpY2VzXSkgewogICAgICAgICBDYXB0dXJlRGV2aWNlIHNvdXJjZTsKLSAgICAgICAgCisKKyAg
ICAgICAgaWYgKCFbZGV2aWNlIGlzQ29ubmVjdGVkXSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisjaWYgIVBMQVRGT1JNKElPUykKKyAgICAgICAgaWYgKFtkZXZpY2UgaXNTdXNwZW5kZWRdIHx8
IFtkZXZpY2UgaXNJblVzZUJ5QW5vdGhlckFwcGxpY2F0aW9uXSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworI2VuZGlmCisKICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlRnJvbURldmljZUlEKGRl
dmljZS51bmlxdWVJRCwgc291cmNlKSkgewogICAgICAgICAgICAgLy8gQW4gQVZDYXB0dXJlRGV2
aWNlIGhhcyBhIHVuaXF1ZSBJRCwgYnV0IHdlIGNhbid0IHVzZSBpdCBmb3IgdGhlIHNvdXJjZSBJ
RCBiZWNhdXNlOgogICAgICAgICAgICAgLy8gMS4gaWYgaXQgcHJvdmlkZXMgYm90aCBhdWRpbyBh
bmQgdmlkZW8gd2Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSB0d28gc291cmNlcyBmb3IgaXQKQEAgLTM4
OCwyNCArMzkzLDIwIEBAIFZlY3RvcjxSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4+IEFWQ2EK
ICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNlLm1fZW5hYmxlZCkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIC8vIEZJWE1FOiBjb25zaWRlciB0aGUgY29uc3RyYWludHMgd2hlbiBj
aG9vc2luZyBhbW9uZyBtdWx0aXBsZSBkZXZpY2VzLiBGb3Igbm93IGp1c3Qgc2VsZWN0IHRoZSBm
aXJzdCBhdmFpbGFibGUKLSAgICAgICAgLy8gZGV2aWNlIG9mIHRoZSBhcHByb3ByaWF0ZSB0eXBl
LgogICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAmJiAhY2Fw
dHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBpZiAo
IWNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJlU291cmNlKSB7Ci0gICAgICAgICAg
ICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZSAqZGV2aWNlID0gW0FWQ2FwdHVyZURldmljZSBkZXZp
Y2VXaXRoVW5pcXVlSUQ6Y2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRF07Ci0gICAgICAg
ICAgICAgICAgQVNTRVJUKGRldmljZSk7Ci0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5t
X2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZURl
dmljZS5tX2F1ZGlvQVZNZWRpYUNhcHR1cmVTb3VyY2UpOworICAgICAgICAgICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2UgPSBBVkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
Ojpzb3VyY2VXaXRoVUlEKGNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSUQsIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkF1ZGlvLCBjb25zdHJhaW50cy5nZXQoKSk7CisgICAgICAgICAgICBpZiAo
IWNhcHR1cmVTb3VyY2UpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAg
IGJlc3RTb3VyY2VzTGlzdC5hcHBlbmQoY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCkpOwogICAgICAg
ICB9CiAKICAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8gJiYg
IWNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAg
aWYgKCFjYXB0dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkgewotICAgICAg
ICAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRldmljZSA9IFtBVkNhcHR1cmVEZXZpY2Ug
ZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2UubV9jYXB0dXJlRGV2aWNlSURdOwotICAg
ICAgICAgICAgICAgIEFTU0VSVChkZXZpY2UpOwotICAgICAgICAgICAgICAgIGNhcHR1cmVEZXZp
Y2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlID0gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShkZXZpY2UsIGNhcHR1cmVEZXZpY2UubV92aWRlb1NvdXJjZUlkLCBjb25zdHJhaW50cyk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1
cmVEZXZpY2UubV92aWRlb0FWTWVkaWFDYXB0dXJlU291cmNlKTsKKyAgICAgICAgICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlID0gQVZDYXB0dXJlRGV2aWNlTWFu
YWdlcjo6c291cmNlV2l0aFVJRChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlELCBSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlbywgY29uc3RyYWludHMuZ2V0KCkpOworICAgICAgICAgICAg
aWYgKCFjYXB0dXJlU291cmNlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
ICAgICBiZXN0U291cmNlc0xpc3QuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigpKTsKICAg
ICAgICAgfQogICAgIH0KICAgICBzdGQ6OnNvcnQoYmVzdFNvdXJjZXNMaXN0LmJlZ2luKCksIGJl
c3RTb3VyY2VzTGlzdC5lbmQoKSwgc29ydEJhc2VkT2ZmRml0bmVzc1Njb3JlKTsKQEAgLTQxNiw0
MSArNDE3LDQxIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBBVkNhcHR1cmVEZXYKIHsK
ICAgICBpZiAoIWlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwotICAgIAorCiAgICAg
VmVjdG9yPENhcHR1cmVEZXZpY2U+JiBkZXZpY2VzID0gY2FwdHVyZURldmljZUxpc3QoKTsKLSAg
ICBmb3IgKGF1dG8gY2FwdHVyZURldmljZSA6IGRldmljZXMpIHsKLSAgICAgICAgaWYgKCFjYXB0
dXJlRGV2aWNlLm1fZW5hYmxlZCkKKyAgICBmb3IgKGF1dG8mIGNhcHR1cmVEZXZpY2UgOiBkZXZp
Y2VzKSB7CisgICAgICAgIGlmIChjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmljZUlEICE9IGRl
dmljZVVJRCB8fCAhY2FwdHVyZURldmljZS5tX2VuYWJsZWQpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBpZiAoY2FwdHVyZURldmljZS5tX2NhcHR1cmVEZXZpY2VJRCAhPSBkZXZp
Y2VVSUQpCisgICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvICYm
IGNhcHR1cmVEZXZpY2UubV9hdWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyAm
JiBjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAorICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlICpkZXZpY2UgPSBbQVZDYXB0
dXJlRGV2aWNlIGRldmljZVdpdGhVbmlxdWVJRDpjYXB0dXJlRGV2aWNlLm1fY2FwdHVyZURldmlj
ZUlEXTsKKyAgICAgICAgQVNTRVJUKGRldmljZSk7CisKKyAgICAgICAgUmVmUHRyPEFWTWVkaWFD
YXB0dXJlU291cmNlPiBjYXB0dXJlU291cmNlOworICAgICAgICBpZiAodHlwZSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpbykKKyAgICAgICAgICAgIGNhcHR1cmVTb3VyY2UgPSBBVkF1ZGlv
Q2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmljZS5tX2F1ZGlvU291cmNl
SWQsIGNvbnN0cmFpbnRzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FwdHVyZVNvdXJj
ZSA9IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1f
dmlkZW9Tb3VyY2VJZCwgY29uc3RyYWludHMpOworCiAgICAgICAgIGlmIChjb25zdHJhaW50cykg
ewogICAgICAgICAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50czsKICAgICAgICAgICAgIEFW
Q2FwdHVyZVNlc3Npb25UeXBlICpzZXNzaW9uID0gbmlsOwogCi0gICAgICAgICAgICBpZiAodHlw
ZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlbyAmJiBjYXB0dXJlRGV2aWNlLm1fdmlkZW9B
Vk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNlLm1fdmlk
ZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOwotICAgICAgICAgICAgZWxzZSBpZiAo
dHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpbyAmJiBjYXB0dXJlRGV2aWNlLm1fYXVk
aW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2aWNlLm1f
YXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZS0+c2Vzc2lvbigpOworICAgICAgICAgICAgaWYgKHR5
cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW8pCisgICAgICAgICAgICAgICAgc2Vzc2lv
biA9IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUg
PT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8pCisgICAgICAgICAgICAgICAgc2Vzc2lvbiA9
IGNhcHR1cmVTb3VyY2UtPnNlc3Npb24oKTsKICAgICAgICAgICAgIEFWQ2FwdHVyZURldmljZU1h
bmFnZXI6OnNpbmdsZXRvbigpLnZlcmlmeUNvbnN0cmFpbnRzRm9yTWVkaWFUeXBlKHNlc3Npb24s
IHR5cGUsIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludHMpOwogCiAgICAgICAgICAgICBp
ZiAoIWludmFsaWRDb25zdHJhaW50cy5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGUgKmRl
dmljZSA9IFtBVkNhcHR1cmVEZXZpY2UgZGV2aWNlV2l0aFVuaXF1ZUlEOmNhcHR1cmVEZXZpY2Uu
bV9jYXB0dXJlRGV2aWNlSURdOwotICAgICAgICBBU1NFUlQoZGV2aWNlKTsKLSAgICAgICAgaWYg
KHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW8gJiYgIWNhcHR1cmVEZXZpY2UubV9h
dWRpb1NvdXJjZUlkLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgaWYgKCFjYXB0dXJlRGV2aWNl
Lm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSkKLSAgICAgICAgICAgICAgICBjYXB0dXJlRGV2
aWNlLm1fYXVkaW9BVk1lZGlhQ2FwdHVyZVNvdXJjZSA9IEFWQXVkaW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjYXB0dXJlRGV2aWNlLm1fYXVkaW9Tb3VyY2VJZCwgY29uc3RyYWludHMp
OwotICAgICAgICAgICAgcmV0dXJuIGNhcHR1cmVEZXZpY2UubV9hdWRpb0FWTWVkaWFDYXB0dXJl
U291cmNlOwotICAgICAgICB9Ci0gICAgICAgIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvICYmICFjYXB0dXJlRGV2aWNlLm1fdmlkZW9Tb3VyY2VJZC5pc0VtcHR5KCkpIHsK
LSAgICAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVTb3Vy
Y2UpCi0gICAgICAgICAgICAgICAgY2FwdHVyZURldmljZS5tX3ZpZGVvQVZNZWRpYUNhcHR1cmVT
b3VyY2UgPSBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY2FwdHVyZURldmlj
ZS5tX3ZpZGVvU291cmNlSWQsIGNvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIHJldHVybiBjYXB0
dXJlRGV2aWNlLm1fdmlkZW9BVk1lZGlhQ2FwdHVyZVNvdXJjZTsKLSAgICAgICAgfQorICAgICAg
ICByZXR1cm4gY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCk7CiAgICAgfQogICAgIAogICAgIHJldHVy
biBudWxscHRyOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWTWVkaWFDYXB0dXJlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVkaWFDYXB0dXJlU291cmNlLmgJKHJldmlzaW9uIDE5
MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlh
Q2FwdHVyZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Miw0NSArNTIsNTIgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVCdWZmZXJG
cm9tQ29ubmVjdGlvbihBVkNhcHR1cmVPdXRwdXQqLCBDTVNhbXBsZUJ1ZmZlclJlZiwgQVZDYXB0
dXJlQ29ubmVjdGlvbiopID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBjYXB0dXJlU2Vzc2lvblN0
b3BwZWRSdW5uaW5nKCk7CisgICAgdmlydHVhbCB2b2lkIGNhcHR1cmVTZXNzaW9uSXNSdW5uaW5n
RGlkQ2hhbmdlKGJvb2wpOwogICAgIAogICAgIEFWQ2FwdHVyZVNlc3Npb24gKnNlc3Npb24oKSBj
b25zdCB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7IH0KIAorICAgIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXMmIHN0YXRlcygpIG92ZXJyaWRlOworCiAgICAgdm9pZCBzdGFydFByb2R1
Y2luZ0RhdGEoKSBvdmVycmlkZTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgb3ZlcnJp
ZGU7CisgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2lzUnVubmluZzsgfQorCisgICAgV2Vha1B0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAK
IHByb3RlY3RlZDoKICAgICBBVk1lZGlhQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBj
b25zdCBBdG9taWNTdHJpbmcmLCBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBQYXNzUmVmUHRy
PE1lZGlhQ29uc3RyYWludHM+KTsKIAotICAgIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0
ZXMmIHN0YXRlcygpIG92ZXJyaWRlOwogICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIGF1ZGlvU291
cmNlUHJvdmlkZXIoKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXR1cENhcHR1cmVT
ZXNzaW9uKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaHV0ZG93bkNhcHR1cmVTZXNzaW9uKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVTdGF0ZXMoKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYpID0gMDsKIAogICAgIEFWQ2FwdHVyZURldmljZSAqZGV2aWNlKCkgY29uc3QgeyByZXR1cm4g
bV9kZXZpY2UuZ2V0KCk7IH0KKwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMqIGN1cnJl
bnRTdGF0ZXMoKSB7IHJldHVybiAmbV9jdXJyZW50U3RhdGVzOyB9CiAgICAgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMoKSB7IHJldHVybiBtX2NvbnN0cmFpbnRzLmdldCgpOyB9CiAKKyAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkg
b3ZlcnJpZGU7CisKICAgICB2b2lkIHNldFZpZGVvU2FtcGxlQnVmZmVyRGVsZWdhdGUoQVZDYXB0
dXJlVmlkZW9EYXRhT3V0cHV0Kik7CiAgICAgdm9pZCBzZXRBdWRpb1NhbXBsZUJ1ZmZlckRlbGVn
YXRlKEFWQ2FwdHVyZUF1ZGlvRGF0YU91dHB1dCopOwogCiAgICAgdm9pZCBzY2hlZHVsZURlZmVy
cmVkVGFzayhzdGQ6OmZ1bmN0aW9uPHZvaWQgKCk+KTsKIAotICAgIHZvaWQgc3RhdGVzRGlkQ2hh
bmdlZCgpIHsgfQotICAgIAogcHJpdmF0ZToKICAgICB2b2lkIHNldHVwU2Vzc2lvbigpOwotICAg
IFdlYWtQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorICAgIHZvaWQgcmVzZXQoKSBvdmVy
cmlkZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PEFWTWVkaWFDYXB0dXJlU291cmNlPiBtX3dlYWtQ
dHJGYWN0b3J5OwogICAgIFJldGFpblB0cjxXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNl
cnZlcj4gbV9vYmpjT2JzZXJ2ZXI7CiAgICAgUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IG1fY29u
c3RyYWludHM7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1f
Y2FwYWJpbGl0aWVzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMgbV9jdXJyZW50U3Rh
dGVzOwogICAgIFJldGFpblB0cjxBVkNhcHR1cmVTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgUmV0
YWluUHRyPEFWQ2FwdHVyZURldmljZT4gbV9kZXZpY2U7Ci0gICAgCi0gICAgYm9vbCBtX2lzUnVu
bmluZzsKKyAgICBib29sIG1faXNSdW5uaW5nIHsgZmFsc2V9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWTWVkaWFDYXB0dXJlU291cmNlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVk1lZGlhQ2FwdHVyZVNvdXJjZS5tbQkocmV2aXNpb24g
MTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWTWVk
aWFDYXB0dXJlU291cmNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05NCwxMiArOTQsMTQgQEAgQGlu
dGVyZmFjZSBXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYgogCiAtKGlkKWluaXRXaXRoQ2Fs
bGJhY2s6KEFWTWVkaWFDYXB0dXJlU291cmNlKiljYWxsYmFjazsKIC0odm9pZClkaXNjb25uZWN0
OwotLSh2b2lkKWNhcHR1cmVTZXNzaW9uU3RvcHBlZFJ1bm5pbmc6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uOwogLSh2b2lkKWNhcHR1cmVPdXRwdXQ6KEFWQ2FwdHVyZU91dHB1dFR5cGUg
KiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNhbXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZmZXJSZWYp
c2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9uOihBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSAqKWNv
bm5lY3Rpb247CistKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9mT2JqZWN0
OihpZClvYmplY3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCop
Y29udGV4dDsKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgTlNBcnJheSog
c2Vzc2lvbktWT1Byb3BlcnRpZXMoKTsKKwogc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3QgZ2xvYmFB
dWRpb0NhcHR1cmVTZXJpYWxRdWV1ZSgpCiB7CiAgICAgc3RhdGljIGRpc3BhdGNoX3F1ZXVlX3Qg
Z2xvYmFsUXVldWU7CkBAIC0xMjcsNyArMTI5LDYgQEAgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFW
TWVkaWFDYXB0dXJlU291cgogICAgICwgbV9vYmpjT2JzZXJ2ZXIoYWRvcHROUyhbW1dlYkNvcmVB
Vk1lZGlhQ2FwdHVyZVNvdXJjZU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aENhbGxiYWNrOnRoaXNd
KSkKICAgICAsIG1fY29uc3RyYWludHMoY29uc3RyYWludHMpCiAgICAgLCBtX2RldmljZShkZXZp
Y2UpCi0gICAgLCBtX2lzUnVubmluZyhmYWxzZSkKIHsKICAgICBzZXROYW1lKGRldmljZS5sb2Nh
bGl6ZWROYW1lKTsKICAgICBzZXRQZXJzaXN0ZW50SUQoZGV2aWNlLnVuaXF1ZUlEKTsKQEAgLTEz
Niw5ICsxMzcsMTMgQEAgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OkFWTWVkaWFDYXB0dXJlU291cgog
CiBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6fkFWTWVkaWFDYXB0dXJlU291cmNlKCkKIHsKLSAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fb2Jq
Y09ic2VydmVyLmdldCgpXTsKICAgICBbbV9vYmpjT2JzZXJ2ZXIgZGlzY29ubmVjdF07Ci0gICAg
W21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107CisKKyAgICBpZiAobV9zZXNzaW9uKSB7Cisg
ICAgICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3BlcnRpZXMoKSkK
KyAgICAgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgcmVtb3ZlT2JzZXJ2ZXI6bV9vYmpjT2JzZXJ2
ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lXTsKKyAgICAgICAgW21fc2Vzc2lvbi5nZXQoKSBz
dG9wUnVubmluZ107CisgICAgfQogfQogCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdGFy
dFByb2R1Y2luZ0RhdGEoKQpAQCAtMTUwLDggKzE1NSw2IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVT
b3VyY2U6OnN0YXJ0UHJvZHVjaW4KICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFttX3Nlc3Np
b24uZ2V0KCkgc3RhcnRSdW5uaW5nXTsKLQotICAgIG1faXNSdW5uaW5nID0gdHJ1ZTsKIH0KIAog
dm9pZCBBVk1lZGlhQ2FwdHVyZVNvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEoKQpAQCAtMTYwLDgg
KzE2Myw2IEBAIHZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OnN0b3BQcm9kdWNpbmcKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgW21fc2Vzc2lvbi5nZXQoKSBzdG9wUnVubmluZ107Ci0KLSAgICBt
X2lzUnVubmluZyA9IHRydWU7CiB9CiAKIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdGF0ZXMm
IEFWTWVkaWFDYXB0dXJlU291cmNlOjpzdGF0ZXMoKQpAQCAtMTcwLDIxICsxNzEsNDcgQEAgY29u
c3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgQVZNZWRpYQogICAgIHJldHVybiBtX2N1cnJl
bnRTdGF0ZXM7CiB9CiAKK1JlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKK3sKKyAgICBpZiAoIW1fY2FwYWJp
bGl0aWVzKSB7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllczo6Y3JlYXRlKCk7CisgICAgICAgIG1fY2FwYWJpbGl0aWVzLT5zZXRTb3VyY2VJ
ZChtX2N1cnJlbnRTdGF0ZXMuc291cmNlSWQoKSk7CisgICAgICAgIGluaXRpYWxpemVDYXBhYmls
aXRpZXMoKm1fY2FwYWJpbGl0aWVzLmdldCgpKTsKKyAgICB9CisgICAgcmV0dXJuIG1fY2FwYWJp
bGl0aWVzOworfQorCiB2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpzZXR1cFNlc3Npb24oKQog
ewogICAgIGlmIChtX3Nlc3Npb24pCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2Vzc2lvbiA9
IGFkb3B0TlMoW2FsbG9jQVZDYXB0dXJlU2Vzc2lvbkluc3RhbmNlKCkgaW5pdF0pOwotICAgIAot
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6bV9v
YmpjT2JzZXJ2ZXIuZ2V0KCkgc2VsZWN0b3I6QHNlbGVjdG9yKGNhcHR1cmVTZXNzaW9uU3RvcHBl
ZFJ1bm5pbmc6KSBuYW1lOkFWQ2FwdHVyZVNlc3Npb25EaWRTdG9wUnVubmluZ05vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKLSAgICAKKyAgICBmb3IgKE5TU3RyaW5nICprZXlOYW1lIGluIHNlc3Np
b25LVk9Qcm9wZXJ0aWVzKCkpCisgICAgICAgIFttX3Nlc3Npb24uZ2V0KCkgYWRkT2JzZXJ2ZXI6
bV9vYmpjT2JzZXJ2ZXIuZ2V0KCkgZm9yS2V5UGF0aDprZXlOYW1lIG9wdGlvbnM6TlNLZXlWYWx1
ZU9ic2VydmluZ09wdGlvbk5ldyBjb250ZXh0Oih2b2lkICopbmlsXTsKKwogICAgIHNldHVwQ2Fw
dHVyZVNlc3Npb24oKTsKIH0KLSAKLXZvaWQgQVZNZWRpYUNhcHR1cmVTb3VyY2U6OmNhcHR1cmVT
ZXNzaW9uU3RvcHBlZFJ1bm5pbmcoKQorCit2b2lkIEFWTWVkaWFDYXB0dXJlU291cmNlOjpyZXNl
dCgpCit7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVzZXQoKTsKKyAgICBtX2lzUnVubmlu
ZyA9IGZhbHNlOworICAgIGZvciAoTlNTdHJpbmcgKmtleU5hbWUgaW4gc2Vzc2lvbktWT1Byb3Bl
cnRpZXMoKSkKKyAgICAgICAgW21fc2Vzc2lvbi5nZXQoKSByZW1vdmVPYnNlcnZlcjptX29iamNP
YnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOmtleU5hbWVdOworICAgIHNodXRkb3duQ2FwdHVyZVNl
c3Npb24oKTsKKyAgICBtX3Nlc3Npb24gPSBudWxscHRyOworfQorCit2b2lkIEFWTWVkaWFDYXB0
dXJlU291cmNlOjpjYXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShib29sIHN0YXRlKQog
ewotICAgIHN0b3BQcm9kdWNpbmdEYXRhKCk7CisgICAgc2NoZWR1bGVEZWZlcnJlZFRhc2soW3Ro
aXMsIHN0YXRlXSB7CisgICAgICAgIGlmIChzdGF0ZSA9PSBtX2lzUnVubmluZykKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBtX2lzUnVubmluZyA9IHN0YXRlOworICAgICAgICBpc1By
b2R1Y2luZ0RhdGFEaWRDaGFuZ2UoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZTo6c2V0VmlkZW9TYW1wbGVCdWZmZXJEZWxlZ2F0ZShBVkNhcHR1cmVWaWRlb0RhdGFP
dXRwdXRUeXBlKiB2aWRlb091dHB1dCkKQEAgLTIxNiw2ICsyNDMsMTIgQEAgQXVkaW9Tb3VyY2VQ
cm92aWRlciogQVZNZWRpYUNhcHR1cmVTb3VyYwogICAgIHJldHVybiBudWxscHRyOwogfQogCitO
U0FycmF5KiBzZXNzaW9uS1ZPUHJvcGVydGllcygpCit7CisgICAgc3RhdGljIE5TQXJyYXkqIGtl
eXMgPSBbQFtAInJ1bm5pbmciXSByZXRhaW5dOworICAgIHJldHVybiBrZXlzOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlQVZNZWRpYUNhcHR1
cmVTb3VyY2VPYnNlcnZlcgpAQCAtMjI1LDYgKzI1OCw3IEBAIC0gKGlkKWluaXRXaXRoQ2FsbGJh
Y2s6KEFWTWVkaWFDYXB0dXJlU28KICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogICAgIGlmICgh
c2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKKwogICAgIG1fY2FsbGJhY2sgPSBjYWxsYmFjazsK
ICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTIzNSwyNSArMjY5LDM3IEBAIC0gKHZvaWQpZGlzY29u
bmVjdAogICAgIG1fY2FsbGJhY2sgPSAwOwogfQogCi0tICh2b2lkKWNhcHR1cmVTZXNzaW9uU3Rv
cHBlZFJ1bm5pbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCistICh2b2lkKWNhcHR1
cmVPdXRwdXQ6KEFWQ2FwdHVyZU91dHB1dFR5cGUgKiljYXB0dXJlT3V0cHV0IGRpZE91dHB1dFNh
bXBsZUJ1ZmZlcjooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyIGZyb21Db25uZWN0aW9u
OihBVkNhcHR1cmVDb25uZWN0aW9uVHlwZSAqKWNvbm5lY3Rpb24KIHsKLSAgICBVTlVTRURfUEFS
QU0obm90aWZpY2F0aW9uKTsKLQogICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAg
ICAgICAgaWYgKG1fY2FsbGJhY2spCi0gICAgICAgICAgICBtX2NhbGxiYWNrLT5jYXB0dXJlU2Vz
c2lvblN0b3BwZWRSdW5uaW5nKCk7Ci0gICAgfSk7CisgICAgbV9jYWxsYmFjay0+Y2FwdHVyZU91
dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKGNhcHR1cmVPdXRwdXQsIHNh
bXBsZUJ1ZmZlciwgY29ubmVjdGlvbik7CiB9CiAKLS0gKHZvaWQpY2FwdHVyZU91dHB1dDooQVZD
YXB0dXJlT3V0cHV0VHlwZSAqKWNhcHR1cmVPdXRwdXQgZGlkT3V0cHV0U2FtcGxlQnVmZmVyOihD
TVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIgZnJvbUNvbm5lY3Rpb246KEFWQ2FwdHVyZUNv
bm5lY3Rpb25UeXBlICopY29ubmVjdGlvbgorLSh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6
a2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdl
IGNvbnRleHQ6KHZvaWQqKWNvbnRleHQKIHsKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisKICAgICBpZiAoIW1fY2FsbGJhY2spCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fY2FsbGJhY2stPmNhcHR1cmVPdXRwdXREaWRPdXRwdXRTYW1wbGVC
dWZmZXJGcm9tQ29ubmVjdGlvbihjYXB0dXJlT3V0cHV0LCBzYW1wbGVCdWZmZXIsIGNvbm5lY3Rp
b24pOworICAgIGlkIG5ld1ZhbHVlID0gW2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hh
bmdlTmV3S2V5XTsKKworI2lmICFMT0dfRElTQUJMRUQKKyAgICBib29sIHdpbGxDaGFuZ2UgPSBb
W2NoYW5nZSB2YWx1ZUZvcktleTpOU0tleVZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uSXNQcmlvcktl
eV0gYm9vbFZhbHVlXTsKKworICAgIGlmICh3aWxsQ2hhbmdlKQorICAgICAgICBMT0coTWVkaWEs
ICJXZWJDb3JlQVZNZWRpYUNhcHR1cmVTb3VyY2VPYnNlcnZlcjo6b2JzZXJ2ZVZhbHVlRm9yS2V5
UGF0aCglcCkgLSB3aWxsIGNoYW5nZSwga2V5UGF0aCA9ICVzIiwgc2VsZiwgW2tleVBhdGggVVRG
OFN0cmluZ10pOworICAgIGVsc2UgeworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHZhbHVl
U3RyaW5nID0gYWRvcHROUyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aEZvcm1hdDpAIiVAIiwg
bmV3VmFsdWVdKTsKKyAgICAgICAgTE9HKE1lZGlhLCAiV2ViQ29yZUFWTWVkaWFDYXB0dXJlU291
cmNlT2JzZXJ2ZXI6Om9ic2VydmVWYWx1ZUZvcktleVBhdGgoJXApIC0gZGlkIGNoYW5nZSwga2V5
UGF0aCA9ICVzLCB2YWx1ZSA9ICVzIiwgc2VsZiwgW2tleVBhdGggVVRGOFN0cmluZ10sIFt2YWx1
ZVN0cmluZy5nZXQoKSBVVEY4U3RyaW5nXSk7CisgICAgfQorI2VuZGlmCisKKyAgICBpZiAoW2tl
eVBhdGggaXNFcXVhbFRvU3RyaW5nOkAicnVubmluZyJdKQorICAgICAgICBtX2NhbGxiYWNrLT5j
YXB0dXJlU2Vzc2lvbklzUnVubmluZ0RpZENoYW5nZShbbmV3VmFsdWUgYm9vbFZhbHVlXSk7CiB9
CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCShyZXZpc2lvbiAxOTE2
OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiAjaW5jbHVk
ZSAiQVZNZWRpYUNhcHR1cmVTb3VyY2UuaCIKIAotT0JKQ19DTEFTUyBBVkNhcHR1cmVWaWRlb1By
ZXZpZXdMYXllcjsKK09CSkNfQ0xBU1MgQ0FMYXllcjsKIAogdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFn
ZSAqQ0dJbWFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IG9wYXF1ZUNNRm9ybWF0RGVzY3Jp
cHRpb24gKkNNRm9ybWF0RGVzY3JpcHRpb25SZWY7CkBAIC00OCwzNiArNDgsMzggQEAgcHVibGlj
OgogICAgIGludDMyX3Qgd2lkdGgoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoOyB9CiAgICAgaW50
MzJfdCBoZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2hlaWdodDsgfQogCi0gICAgQVZDYXB0dXJl
VmlkZW9QcmV2aWV3TGF5ZXIqIHByZXZpZXdMYXllcigpIHsgcmV0dXJuIG1fdmlkZW9QcmV2aWV3
TGF5ZXIuZ2V0KCk7IH0KLSAgICBDTVNhbXBsZUJ1ZmZlclJlZiBjdXJyZW50RnJhbWVTYW1wbGVC
dWZmZXIoKSBjb25zdCB7IHJldHVybiBtX2J1ZmZlci5nZXQoKTsgfQotICAgIHZvaWQgcGFpbnRD
dXJyZW50RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7
Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGN1cnJlbnRGcmFtZUltYWdlKCk7Ci0KIHByaXZh
dGU6CiAgICAgQVZWaWRlb0NhcHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRv
bWljU3RyaW5nJiwgUGFzc1JlZlB0cjxNZWRpYUNvbnN0cmFpbnRzPik7CiAgICAgdmlydHVhbCB+
QVZWaWRlb0NhcHR1cmVTb3VyY2UoKTsKIAogICAgIHZvaWQgc2V0dXBDYXB0dXJlU2Vzc2lvbigp
IG92ZXJyaWRlOworICAgIHZvaWQgc2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpIG92ZXJyaWRlOwor
CiAgICAgdm9pZCB1cGRhdGVTdGF0ZXMoKSBvdmVycmlkZTsKIAotICAgIFJlZlB0cjxSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBhcHBseUNvbnN0cmFpbnRzKE1lZGlhQ29u
c3RyYWludHMqKTsKICAgICBib29sIHNldEZyYW1lUmF0ZUNvbnN0cmFpbnQoZmxvYXQgbWluRnJh
bWVSYXRlLCBmbG9hdCBtYXhGcmFtZVJhdGUpOwogCi0gICAgYm9vbCBjYWxjdWxhdGVGcmFtZXJh
dGUoQ01TYW1wbGVCdWZmZXJSZWYpOworICAgIGJvb2wgdXBkYXRlRnJhbWVyYXRlKENNU2FtcGxl
QnVmZmVyUmVmKTsKIAogICAgIHZvaWQgY2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZl
ckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dCosIENNU2FtcGxlQnVmZmVyUmVmLCBBVkNh
cHR1cmVDb25uZWN0aW9uKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9jZXNzTmV3RnJhbWUoUmV0
YWluUHRyPENNU2FtcGxlQnVmZmVyUmVmPik7CiAKLSAgICBSZXRhaW5QdHI8QVZDYXB0dXJlQ29u
bmVjdGlvbj4gbV92aWRlb0Nvbm5lY3Rpb247Ci0gICAgUmV0YWluUHRyPEFWQ2FwdHVyZVZpZGVv
UHJldmlld0xheWVyPiBtX3ZpZGVvUHJldmlld0xheWVyOworICAgIHZvaWQgcGFpbnRDdXJyZW50
RnJhbWVJbkNvbnRleHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0IG92ZXJyaWRlOwor
CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGN1cnJlbnRGcmFtZUNHSW1hZ2UoKTsKKyAgICBS
ZWZQdHI8SW1hZ2U+IGN1cnJlbnRGcmFtZUltYWdlKCkgb3ZlcnJpZGU7CisKICAgICBSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1fYnVmZmVyOwogICAgIFJldGFpblB0cjxDR0ltYWdlUmVm
PiBtX2xhc3RJbWFnZTsKICAgICBWZWN0b3I8RmxvYXQ2ND4gbV92aWRlb0ZyYW1lVGltZVN0YW1w
czsKLSAgICBGbG9hdDY0IG1fZnJhbWVSYXRlOwotICAgIGludDMyX3QgbV93aWR0aDsKLSAgICBp
bnQzMl90IG1faGVpZ2h0OworICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1f
dmlkZW9QcmV2aWV3TGF5ZXI7CisgICAgRmxvYXQ2NCBtX2ZyYW1lUmF0ZSB7IDAgfTsKKyAgICBp
bnQzMl90IG1fd2lkdGggeyAwIH07CisgICAgaW50MzJfdCBtX2hlaWdodCB7IDAgfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
bW0JKHJldmlzaW9uIDE5MTY5NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAg
KzMxLDEyIEBACiAjaW1wb3J0ICJBVkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW1wb3J0ICJC
bG9ja0V4Y2VwdGlvbnMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dENHLmgiCisjaW1wb3J0
ICJJbWFnZUJ1ZmZlci5oIgogI2ltcG9ydCAiSW50UmVjdC5oIgogI2ltcG9ydCAiTG9nZ2luZy5o
IgogI2ltcG9ydCAiTWVkaWFDb25zdHJhaW50cy5oIgogI2ltcG9ydCAiTm90SW1wbGVtZW50ZWQu
aCIKKyNpbXBvcnQgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbXBvcnQgIlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTdGF0ZXMuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkZvdW5kYXRpb24uaD4KICNpbXBv
cnQgPG9iamMvcnVudGltZS5oPgpAQCAtOTgsOSArMTAwLDYgQEAgUmVmUHRyPEFWTWVkaWFDYXB0
dXJlU291cmNlPiBBVlZpZGVvQ2FwdAogCiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6QVZWaWRlb0Nh
cHR1cmVTb3VyY2UoQVZDYXB0dXJlRGV2aWNlVHlwZSogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJp
bmcmIGlkLCBQYXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHM+IGNvbnN0cmFpbnQpCiAgICAgOiBB
Vk1lZGlhQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkLCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRl
bywgY29uc3RyYWludCkKLSAgICAsIG1fZnJhbWVSYXRlKDApCi0gICAgLCBtX3dpZHRoKDApCi0g
ICAgLCBtX2hlaWdodCgwKQogewogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlSWQoaWQp
OwogICAgIGN1cnJlbnRTdGF0ZXMoKS0+c2V0U291cmNlVHlwZShSZWFsdGltZU1lZGlhU291cmNl
U3RhdGVzOjpDYW1lcmEpOwpAQCAtMTEwLDEwICsxMDksMTEgQEAgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6On5BVlZpZGVvQ2FwdHVyZVNvdQogewogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZUNhcGFiaWxpdGllcz4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNhcGFiaWxpdGllcygpIGNvbnN0
Cit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjppbml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAwOworICAgIC8vIEZJWE1FOiBmaW5pc2ggdGhpcyBpbXBs
ZW1lbnRhdGlvbgorICAgIGNhcGFiaWxpdGllcy5zZXRTb3VyY2VJZChjdXJyZW50U3RhdGVzKCkt
PnNvdXJjZUlkKCkpOworICAgIGNhcGFiaWxpdGllcy5hZGRTb3VyY2VUeXBlKFJlYWx0aW1lTWVk
aWFTb3VyY2VTdGF0ZXM6OkNhbWVyYSk7CiB9CiAKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnVwZGF0ZVN0YXRlcygpCkBAIC0yMTgsOSArMjE4LDEzIEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6OmFwcGx5Q29uc3RyYWkKIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2Fw
dHVyZVNlc3Npb24oKQogewogICAgIFJldGFpblB0cjxBVkNhcHR1cmVEZXZpY2VJbnB1dFR5cGU+
IHZpZGVvSW4gPSBhZG9wdE5TKFthbGxvY0FWQ2FwdHVyZURldmljZUlucHV0SW5zdGFuY2UoKSBp
bml0V2l0aERldmljZTpkZXZpY2UoKSBlcnJvcjpuaWxdKTsKLSAgICBBU1NFUlQoW3Nlc3Npb24o
KSBjYW5BZGRJbnB1dDp2aWRlb0luLmdldCgpXSk7Ci0gICAgaWYgKFtzZXNzaW9uKCkgY2FuQWRk
SW5wdXQ6dmlkZW9Jbi5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkgYWRkSW5wdXQ6dmlkZW9J
bi5nZXQoKV07CisKKyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkSW5wdXQ6dmlkZW9Jbi5nZXQo
KV0pIHsKKyAgICAgICAgTE9HKE1lZGlhLCAiQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnNldHVwQ2Fw
dHVyZVNlc3Npb24oJXApLCB1bmFibGUgdG8gYWRkIHZpZGVvIGlucHV0IGRldmljZSIsIHRoaXMp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3Nlc3Npb24oKSBhZGRJbnB1dDp2aWRl
b0luLmdldCgpXTsKIAogICAgIGlmIChjb25zdHJhaW50cygpKQogICAgICAgICBhcHBseUNvbnN0
cmFpbnRzKGNvbnN0cmFpbnRzKCkpOwpAQCAtMjMxLDE1ICsyMzUsMjYgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlUwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBuaWxdKTsKICAgICBbdmlkZW9PdXRwdXQg
c2V0VmlkZW9TZXR0aW5nczpzZXR0aW5nc0RpY3Rpb25hcnkuZ2V0KCldOwogICAgIHNldFZpZGVv
U2FtcGxlQnVmZmVyRGVsZWdhdGUodmlkZW9PdXRwdXQuZ2V0KCkpOwotICAgIEFTU0VSVChbc2Vz
c2lvbigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV0pOwotICAgIGlmIChbc2Vzc2lv
bigpIGNhbkFkZE91dHB1dDp2aWRlb091dHB1dC5nZXQoKV0pCi0gICAgICAgIFtzZXNzaW9uKCkg
YWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXTsKIAotICAgIG1fdmlkZW9Db25uZWN0aW9uID0g
YWRvcHROUyhbdmlkZW9PdXRwdXQuZ2V0KCkgY29ubmVjdGlvbldpdGhNZWRpYVR5cGU6QVZNZWRp
YVR5cGVWaWRlb10pOwotICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBhZG9wdE5TKFtbQVZDYXB0
dXJlVmlkZW9QcmV2aWV3TGF5ZXIgYWxsb2NdIGluaXRXaXRoU2Vzc2lvbjpzZXNzaW9uKCldKTsK
KyAgICBpZiAoIVtzZXNzaW9uKCkgY2FuQWRkT3V0cHV0OnZpZGVvT3V0cHV0LmdldCgpXSkgewor
ICAgICAgICBMT0coTWVkaWEsICJBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vz
c2lvbiglcCksIHVuYWJsZSB0byBhZGQgdmlkZW8gc2FtcGxlIGJ1ZmZlciBvdXRwdXQgZGVsZWdh
dGUiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBbc2Vzc2lvbigpIGFkZE91
dHB1dDp2aWRlb091dHB1dC5nZXQoKV07Cit9CisKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnNodXRkb3duQ2FwdHVyZVNlc3Npb24oKQoreworICAgIG1fdmlkZW9QcmV2aWV3TGF5ZXIgPSBu
dWxscHRyOworICAgIG1fYnVmZmVyID0gbnVsbHB0cjsKKyAgICBtX2xhc3RJbWFnZSA9IG51bGxw
dHI7CisgICAgbV92aWRlb0ZyYW1lVGltZVN0YW1wcy5jbGVhcigpOworICAgIG1fZnJhbWVSYXRl
ID0gMDsKKyAgICBtX3dpZHRoID0gMDsKKyAgICBtX2hlaWdodCA9IDA7CiB9CiAKLWJvb2wgQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmNhbGN1bGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIpCitib29sIEFWVmlkZW9DYXB0dXJlU291cmNlOjp1cGRhdGVGcmFtZXJhdGUo
Q01TYW1wbGVCdWZmZXJSZWYgc2FtcGxlQnVmZmVyKQogewogICAgIENNVGltZSBzYW1wbGVUaW1l
ID0gQ01TYW1wbGVCdWZmZXJHZXRQcmVzZW50YXRpb25UaW1lU3RhbXAoc2FtcGxlQnVmZmVyKTsK
ICAgICBpZiAoIUNNVElNRV9JU19OVU1FUklDKHNhbXBsZVRpbWUpKQpAQCAtMjYxLDEzICsyNzYs
MTkgQEAgYm9vbCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FsY3VsYXRlRnJhbQogCiB2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmV0YWluUHRyPENNU2FtcGxlQnVm
ZmVyUmVmPiBzYW1wbGVCdWZmZXIpCiB7CisgICAgLy8gSWdub3JlIGZyYW1lcyBkZWxpdmVyZWQg
d2hlbiB0aGUgc2Vzc2lvbiBpcyBub3QgcnVubmluZywgd2Ugd2FudCB0byBoYW5nIG9udG8gdGhl
IGxhc3QgaW1hZ2UKKyAgICAvLyBkZWxpdmVyZWQgYmVmb3JlIGl0IHN0b3BwZWQuCisgICAgaWYg
KG1fbGFzdEltYWdlICYmICghaXNQcm9kdWNpbmdEYXRhKCkgfHwgIWVuYWJsZWQoKSkpCisgICAg
ICAgIHJldHVybjsKKwogICAgIENNRm9ybWF0RGVzY3JpcHRpb25SZWYgZm9ybWF0RGVzY3JpcHRp
b24gPSBDTVNhbXBsZUJ1ZmZlckdldEZvcm1hdERlc2NyaXB0aW9uKHNhbXBsZUJ1ZmZlci5nZXQo
KSk7CiAgICAgaWYgKCFmb3JtYXREZXNjcmlwdGlvbikKICAgICAgICAgcmV0dXJuOwogCisgICAg
dXBkYXRlRnJhbWVyYXRlKHNhbXBsZUJ1ZmZlci5nZXQoKSk7CisKICAgICBib29sIHN0YXRlc0No
YW5nZWQgPSBmYWxzZTsKIAotICAgIHN0YXRlc0NoYW5nZWQgPSBjYWxjdWxhdGVGcmFtZXJhdGUo
c2FtcGxlQnVmZmVyLmdldCgpKTsKICAgICBtX2J1ZmZlciA9IHNhbXBsZUJ1ZmZlcjsKICAgICBt
X2xhc3RJbWFnZSA9IG51bGxwdHI7CiAKQEAgLTI5MSw3ICszMTIsMjMgQEAgdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dAogICAgIH0pOwogfQogCi1SZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUltYWdlKCkKK1JlZlB0
cjxJbWFnZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmN1cnJlbnRGcmFtZUltYWdlKCkKK3sKKyAg
ICBpZiAoIWN1cnJlbnRGcmFtZUNHSW1hZ2UoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisK
KyAgICBGbG9hdFJlY3QgaW1hZ2VSZWN0KDAsIDAsIG1fd2lkdGgsIG1faGVpZ2h0KTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNy
ZWF0ZShpbWFnZVJlY3Quc2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKworICAgIGlmICghaW1hZ2VC
dWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcGFpbnRDdXJyZW50RnJhbWVJ
bkNvbnRleHQoaW1hZ2VCdWZmZXItPmNvbnRleHQoKSwgaW1hZ2VSZWN0KTsKKworICAgIHJldHVy
biBpbWFnZUJ1ZmZlci0+Y29weUltYWdlKCk7Cit9CisKK1JldGFpblB0cjxDR0ltYWdlUmVmPiBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3VycmVudEZyYW1lQ0dJbWFnZSgpCiB7CiAgICAgaWYgKG1f
bGFzdEltYWdlKQogICAgICAgICByZXR1cm4gbV9sYXN0SW1hZ2U7CkBAIC0zMTgsNyArMzU1LDcg
QEAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IEFWVmlkZW9DYXB0dXJlU291cgogCiB2b2lkIEFWVmlk
ZW9DYXB0dXJlU291cmNlOjpwYWludEN1cnJlbnRGcmFtZUluQ29udGV4dChHcmFwaGljc0NvbnRl
eHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoY29udGV4dC5w
YWludGluZ0Rpc2FibGVkKCkgfHwgIWN1cnJlbnRGcmFtZUltYWdlKCkpCisgICAgaWYgKGNvbnRl
eHQucGFpbnRpbmdEaXNhYmxlZCgpIHx8ICFjdXJyZW50RnJhbWVDR0ltYWdlKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKQEAgLTMyOSw2ICszNjYsMTkgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cGFp
bnRDdXJyZW50RgogICAgIENHQ29udGV4dERyYXdJbWFnZShjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpLCBDR1JlY3RNYWtlKDAsIDAsIHBhaW50UmVjdC53aWR0aCgpLCBwYWludFJlY3QuaGVpZ2h0
KCkpLCBtX2xhc3RJbWFnZS5nZXQoKSk7CiB9CiAKK1BsYXRmb3JtTGF5ZXIqIEFWVmlkZW9DYXB0
dXJlU291cmNlOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKK3sKKyAgICBpZiAobV92aWRlb1ByZXZp
ZXdMYXllcikKKyAgICAgICAgcmV0dXJuIG1fdmlkZW9QcmV2aWV3TGF5ZXIuZ2V0KCk7CisKKyAg
ICBtX3ZpZGVvUHJldmlld0xheWVyID0gYWRvcHROUyhbYWxsb2NBVkNhcHR1cmVWaWRlb1ByZXZp
ZXdMYXllckluc3RhbmNlKCkgaW5pdFdpdGhTZXNzaW9uOnNlc3Npb24oKV0pOworI2lmbmRlZiBO
REVCVUcKKyAgICBtX3ZpZGVvUHJldmlld0xheWVyLmdldCgpLm5hbWUgPSBAIkFWVmlkZW9DYXB0
dXJlU291cmNlIHByZXZpZXcgbGF5ZXIiOworI2VuZGlmCisKKyAgICByZXR1cm4gbV92aWRlb1By
ZXZpZXdMYXllci5nZXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQy5oCShyZXZpc2lvbiAxOTE2OTYpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaAko
d29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogCiAgICAgc2l6ZV90IG1f
bGlzdEJ1ZmZlclNpemUgeyAwIH07CiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1ZGlvQnVmZmVyTGlz
dD4gbV9saXN0OwotICAgIFJldGFpblB0cjxBdWRpb0NvbnZlcnRlclJlZj4gbV9jb252ZXJ0ZXI7
CisgICAgQXVkaW9Db252ZXJ0ZXJSZWYgbV9jb252ZXJ0ZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbj4gbV9pbnB1dERlc2NyaXB0aW9uOwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBdWRpb1N0cmVhbUJhc2ljRGVzY3JpcHRpb24+IG1fb3V0cHV0RGVzY3Jp
cHRpb247CiAgICAgc3RkOjp1bmlxdWVfcHRyPENBUmluZ0J1ZmZlcj4gbV9yaW5nQnVmZmVyOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQkocmV2
aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2
ICs3MywxMSBAQCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6V2ViQXVkaW9TCiAKIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akMoKQogeworICAgIGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICAvLyBGSVhNRTogbWFrZSBh
bmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9Db252ZXJ0ZXIKKyAgICAgICAgQXVkaW9D
b252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0ZXIgPSBudWxs
cHRyOworICAgIH0KICAgICBpZiAobV9jb25uZWN0ZWQpCiAgICAgICAgIG1fY2FwdHVyZVNvdXJj
ZS0+cmVtb3ZlT2JzZXJ2ZXIodGhpcyk7CiB9CkBAIC0xMjMsNyArMTI4LDcgQEAgdm9pZCBXZWJB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdgogICAgIG1fcmVhZENvdW50ICs9IGZyYW1l
c1RvUHJvY2VzczsKIAogICAgIGlmIChtX2NvbnZlcnRlcikKLSAgICAgICAgQXVkaW9Db252ZXJ0
ZXJDb252ZXJ0Q29tcGxleEJ1ZmZlcihtX2NvbnZlcnRlci5nZXQoKSwgZnJhbWVzVG9Qcm9jZXNz
LCBtX2xpc3QuZ2V0KCksIG1fbGlzdC5nZXQoKSk7CisgICAgICAgIEF1ZGlvQ29udmVydGVyQ29u
dmVydENvbXBsZXhCdWZmZXIobV9jb252ZXJ0ZXIsIGZyYW1lc1RvUHJvY2VzcywgbV9saXN0Lmdl
dCgpLCBtX2xpc3QuZ2V0KCkpOwogfQogCiB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZP
YmpDOjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQpAQCAtMTgw
LDkgKzE4NSwxOSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwCiAg
ICAgbV9vdXRwdXREZXNjcmlwdGlvbi0+bUJ5dGVzUGVyRnJhbWUgPSBzaXplb2YoRmxvYXQzMik7
CiAgICAgbV9vdXRwdXREZXNjcmlwdGlvbi0+bUZvcm1hdEZsYWdzIHw9IGtBdWRpb0Zvcm1hdEZs
YWdJc05vbkludGVybGVhdmVkOwogCisgICAgaWYgKG1fY29udmVydGVyKSB7CisgICAgICAgIC8v
IEZJWE1FOiBtYWtlIGFuZCB1c2UgYSBzbWFydCBwb2ludGVyIGZvciBBdWRpb0NvbnZlcnRlcgor
ICAgICAgICBBdWRpb0NvbnZlcnRlckRpc3Bvc2UobV9jb252ZXJ0ZXIpOworICAgICAgICBtX2Nv
bnZlcnRlciA9IG51bGxwdHI7CisgICAgfQorCiAgICAgaWYgKCptX2lucHV0RGVzY3JpcHRpb24g
IT0gKm1fb3V0cHV0RGVzY3JpcHRpb24pIHsKICAgICAgICAgQXVkaW9Db252ZXJ0ZXJSZWYgb3V0
Q29udmVydGVyID0gbnVsbHB0cjsKLSAgICAgICAgQXVkaW9Db252ZXJ0ZXJOZXcobV9pbnB1dERl
c2NyaXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVy
KTsKKyAgICAgICAgT1NTdGF0dXMgZXJyID0gQXVkaW9Db252ZXJ0ZXJOZXcobV9pbnB1dERlc2Ny
aXB0aW9uLmdldCgpLCBtX291dHB1dERlc2NyaXB0aW9uLmdldCgpLCAmb3V0Q29udmVydGVyKTsK
KyAgICAgICAgaWYgKGVycikgeworICAgICAgICAgICAgTE9HKE1lZGlhLCAiV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoJXApIC0gQXVkaW9Db252ZXJ0ZXJOZXcgcmV0dXJu
ZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CiAgICAgICAgIG1fY29udmVydGVyID0gb3V0Q29udmVydGVyOwogICAgIH0KIApAQCAtMjIxLDYg
KzIzNiwxMSBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByCiAgICAg
bV9yaW5nQnVmZmVyID0gbnVsbHB0cjsKICAgICBtX2xpc3QgPSBudWxscHRyOwogICAgIG1fbGlz
dEJ1ZmZlclNpemUgPSAwOworICAgIGlmIChtX2NvbnZlcnRlcikgeworICAgICAgICAvLyBGSVhN
RTogbWFrZSBhbmQgdXNlIGEgc21hcnQgcG9pbnRlciBmb3IgQXVkaW9Db252ZXJ0ZXIKKyAgICAg
ICAgQXVkaW9Db252ZXJ0ZXJEaXNwb3NlKG1fY29udmVydGVyKTsKKyAgICAgICAgbV9jb252ZXJ0
ZXIgPSBudWxscHRyOworICAgIH0KIH0KIAogdm9pZCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZG
T2JqQzo6cHJvY2VzcyhDTUZvcm1hdERlc2NyaXB0aW9uUmVmLCBDTVNhbXBsZUJ1ZmZlclJlZiBz
YW1wbGVCdWZmZXIpCkBAIC0yMzQsNyArMjU0LDcgQEAgdm9pZCBXZWJBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJvYwogICAgIE9TU3RhdHVzIGVyciA9IENNU2FtcGxlQnVmZmVyR2V0QXVk
aW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIoc2FtcGxlQnVmZmVyLCBudWxscHRy
LCBtX2xpc3QuZ2V0KCksIG1fbGlzdEJ1ZmZlclNpemUsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1
bHQsIGtDRkFsbG9jYXRvclN5c3RlbURlZmF1bHQsIGtDTVNhbXBsZUJ1ZmZlckZsYWdfQXVkaW9C
dWZmZXJMaXN0X0Fzc3VyZTE2Qnl0ZUFsaWdubWVudCwgJmJ1ZmZlcik7CiAKICAgICBpZiAoZXJy
KSB7Ci0gICAgICAgIExPRyhNZWRpYSwgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpw
cm9lc3MoJXApIC0gQ01TYW1wbGVCdWZmZXJHZXRBdWRpb0J1ZmZlckxpc3RXaXRoUmV0YWluZWRC
bG9ja0J1ZmZlciByZXR1cm5lZCBlcnJvciAlaSIsIHRoaXMsIGVycik7CisgICAgICAgIExPRyhN
ZWRpYSwgIldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzKCVwKSAtIENNU2Ft
cGxlQnVmZmVyR2V0QXVkaW9CdWZmZXJMaXN0V2l0aFJldGFpbmVkQmxvY2tCdWZmZXIgcmV0dXJu
ZWQgZXJyb3IgJWkiLCB0aGlzLCBlcnIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1l
TWVkaWFTb3VyY2VPd3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VPd3IuaAkocmV2aXNpb24g
MTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlT3dyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcg
QEAgUmVhbHRpbWVNZWRpYVNvdXJjZU93cihPd3JNZWRpYVNvdXJjZSogbQogCiAgICAgdmlydHVh
bCB+UmVhbHRpbWVNZWRpYVNvdXJjZU93cigpIHsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1
cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsg
fQogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkg
eyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9CiAKICAgICBPd3JNZWRpYVNvdXJjZSogbWVkaWFT
b3VyY2UoKSBjb25zdCB7IHJldHVybiBtX21lZGlhU291cmNlOyB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmNwcAkocmV2aXNpb24gMTkxNjk2KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TW9ja1NvdXJjZSgp
IHsgfQogCi0gICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cz4gY2FwYWJpbGl0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2
aXJ0dWFsIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRp
ZXMoKSB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRp
bWVNZWRpYVNvdXJjZVN0YXRlcyYgc3RhdGVzKCkgeyByZXR1cm4gbV9jdXJyZW50U3RhdGVzOyB9
CiAKICAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmls
aXRpZXM7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>