<?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>106605</bug_id>
          
          <creation_ts>2013-01-10 14:39:03 -0800</creation_ts>
          <short_desc>IndexedDB: Remove IDBObjectStore/IndexBackendImpl and support functions</short_desc>
          <delta_ts>2013-01-14 14:41:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>804740</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-10 14:39:03 -0800</bug_when>
    <thetext>IndexedDB: Remove IDBObjectStore/IndexBackendImpl and support functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804752</commentid>
    <comment_count>1</comment_count>
      <attachid>182213</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-10 14:47:34 -0800</bug_when>
    <thetext>Created attachment 182213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804753</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-10 14:47:58 -0800</bug_when>
    <thetext>Note that this won&apos;t compile against chromium until https://codereview.chromium.org/11828054 lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804762</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 14:58:26 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804778</commentid>
    <comment_count>4</comment_count>
      <attachid>182213</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-10 15:22:44 -0800</bug_when>
    <thetext>Comment on attachment 182213
Patch

Attachment 182213 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15810065</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>804807</commentid>
    <comment_count>5</comment_count>
      <attachid>182213</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-10 16:11:41 -0800</bug_when>
    <thetext>Comment on attachment 182213
Patch

Attachment 182213 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15803139</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805439</commentid>
    <comment_count>6</comment_count>
      <attachid>182376</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-11 11:13:09 -0800</bug_when>
    <thetext>Created attachment 182376
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805452</commentid>
    <comment_count>7</comment_count>
      <attachid>182376</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 11:29:04 -0800</bug_when>
    <thetext>Comment on attachment 182376
Patch for landing

Rejecting attachment 182376 from commit-queue.

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, u&apos;--status-host=queues.webkit.org&apos;, ...&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
pts/build-webkit&apos;, &apos;--release&apos;, &apos;--chromium&apos;, &apos;--update-chromium&apos;]&quot; exit_code: 2
urityOrigin&amp;, WebKit::WebFrame*, const WebKit::WebString&amp;)
cc1plus: warnings being treated as errors
At global scope:
cc1plus: error: unrecognized command line option &quot;-Wno-narrowing&quot;
cc1plus: error: unrecognized command line option &quot;-Wno-narrowing&quot;
make: *** [out/Release/obj.target/webkit_support/Source/WebKit/chromium/webkit/support/test_webkit_platform_support.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/15801552</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805480</commentid>
    <comment_count>8</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-11 11:49:21 -0800</bug_when>
    <thetext>sigh. I think that issue was because that build hadn&apos;t picked up the latest chromium, which fixes that. Gonna wait a bit and try again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805512</commentid>
    <comment_count>9</comment_count>
      <attachid>182376</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-11 12:17:48 -0800</bug_when>
    <thetext>Comment on attachment 182376
Patch for landing

Attachment 182376 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15806474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>805535</commentid>
    <comment_count>10</comment_count>
      <attachid>182376</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-01-11 12:43:02 -0800</bug_when>
    <thetext>Comment on attachment 182376
Patch for landing

Attachment 182376 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/15804476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806075</commentid>
    <comment_count>11</comment_count>
      <attachid>182376</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-13 22:00:21 -0800</bug_when>
    <thetext>Comment on attachment 182376
Patch for landing

ok, chromium stuff that I missed before has now finally landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806088</commentid>
    <comment_count>12</comment_count>
      <attachid>182376</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-13 22:31:18 -0800</bug_when>
    <thetext>Comment on attachment 182376
Patch for landing

Rejecting attachment 182376 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
eue/Source/WebKit/chromium/third_party/libjingle/source --revision 257 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
41&gt;At revision 257.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/15853392</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806475</commentid>
    <comment_count>13</comment_count>
      <attachid>182602</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-14 11:05:34 -0800</bug_when>
    <thetext>Created attachment 182602
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806488</commentid>
    <comment_count>14</comment_count>
      <attachid>182602</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-14 11:36:13 -0800</bug_when>
    <thetext>Comment on attachment 182602
Patch for landing

Rejecting attachment 182602 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
queue/Source/WebKit/chromium/third_party/skia/include --revision 7126 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
47&gt;At revision 7126.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/15867570</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806516</commentid>
    <comment_count>15</comment_count>
      <attachid>182602</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-14 12:19:30 -0800</bug_when>
    <thetext>Comment on attachment 182602
Patch for landing

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests (OOPS!).

The following ChangeLog files contain OOPS:

        trunk/Source/WebCore/ChangeLog

    Please don&apos;t ever say &quot;OOPS&quot; in a ChangeLog file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806557</commentid>
    <comment_count>16</comment_count>
      <attachid>182617</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-14 13:28:15 -0800</bug_when>
    <thetext>Created attachment 182617
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806640</commentid>
    <comment_count>17</comment_count>
      <attachid>182617</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-14 14:41:52 -0800</bug_when>
    <thetext>Comment on attachment 182617
Patch for landing

Clearing flags on attachment: 182617

Committed r139666: &lt;http://trac.webkit.org/changeset/139666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806641</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-14 14:41:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182213</attachid>
            <date>2013-01-10 14:47:34 -0800</date>
            <delta_ts>2013-01-11 11:13:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106605-20130110144437.patch</filename>
            <type>text/plain</type>
            <size>119512</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGM5NjFhOTE3YzdiZDU0
NzY3ZDcyOGFiNmE5NTAwY2Y1ZDU5NzAyOC4uYWYxMTQwMTVjYWIyOWJiZWU1MjhjZmIxZTExMmMy
NmEwNjAwNTFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAxLTEwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJl
bW92ZSBJREJPYmplY3RTdG9yZS9JbmRleEJhY2tlbmRJbXBsIGFuZCBzdXBwb3J0IGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NjA1
CisKKyAgICAgICAgUmVtb3ZlIGFsbCB1c2VzIG9mIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZSBhbmQgSURCSW5kZXhCYWNrZW5kKiwKKyAgICAgICAgYXMgdGhleSBhcmUgbm8gbG9uZ2Vy
IHVzZWQgYWZ0ZXIgcmVjZW50IHJlZmFjdG9yaW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAg
ICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJD
YWxsYmFja3MuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OnVwZGF0ZSk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5QmFja2VuZEltcGwuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW1w
bCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaDoKKyAgICAgICAgKElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6cHV0KToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oOgorICAgICAgICAo
SURCT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6bWFrZUluZGV4V3JpdGVycyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbDo6SW5kZXhXcml0ZXI6OkluZGV4V3JpdGVyKToKKyAgICAgICAgKElu
ZGV4V3JpdGVyKToKKyAgICAgICAgKElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oOiBS
ZW1vdmVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmg6
CisgICAgICAgIChJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxMy0wMS0wOCAgQWxlYyBGbGV0
dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBBbGxvdyBj
cmVhdGVJbmRleC9jcmVhdGVPYmplY3RTdG9yZSB0byBiZSBhc3luY2hyb25vdXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKaW5kZXggNzUzNjM1NWUwNGZjYTliZmE1ODg5YmQ4MjNjM2I4MTk0MDIx
NzQ1NC4uMzM2ZDg0NjQ3MWM0Zjc1OWFkZDQ4N2I2MjhlZWRhMWZjZDVlMmRmNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMy0wMS0xMCAgQWxlYyBGbGV0
dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1vdmUg
SURCT2JqZWN0U3RvcmUvSW5kZXhCYWNrZW5kSW1wbCBhbmQgc3VwcG9ydCBmdW5jdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjYwNQorCisg
ICAgICAgIFJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBJREJPYmplY3RTdG9yZUJhY2tlbmQqIGFu
ZCBJREJJbmRleEJhY2tlbmQqCisgICAgICAgIGFzIHRoZXkgbm8gbG9uZ2VyIGV4aXN0IGluIFdl
YkNvcmUuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6bWV0YWRhdGEpOgor
ICAgICAgICAqIHB1YmxpYy9XZWJJREJGYWN0b3J5Lmg6CisgICAgICAgIChXZWJJREJGYWN0b3J5
KToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCSW5kZXguaDogUmVtb3ZlZC4KKyAgICAgICAgKiBw
dWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMvV2Vi
SURCVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwOgor
ICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgICogc3Jj
L0lEQkRhdGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRQ
cm94eSk6CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwOgorICAgICAg
ICAqIHNyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJGYWN0b3J5QmFj
a2VuZFByb3h5KToKKyAgICAgICAgKiBzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIHNyYy9JREJJbmRleEJhY2tlbmRQcm94eS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIHNyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAg
ICogc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpwdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUltcGw6OnNldEluZGV4S2V5cyk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1w
bCk6CisgICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCRmFjdG9yeUltcGw6OmdldERhdGFiYXNlTmFtZXMpOgorICAgICAgICAqIHNyYy9X
ZWJJREJGYWN0b3J5SW1wbC5oOgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAg
ICAqIHNyYy9XZWJJREJJbmRleEltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJ
REJJbmRleEltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJ
bXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmg6
IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHA6CisgICAg
ICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAqIHRlc3RzL0lEQkFi
b3J0T25Db3JydXB0VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAg
KiB0ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMy0wMS0wOCAgQWxlYyBG
bGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBBbGxv
dyBjcmVhdGVJbmRleC9jcmVhdGVPYmplY3RTdG9yZSB0byBiZSBhc3luY2hyb25vdXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGRjMWE0OWNmYzNkYmRjMDM0NmVhYTYwN2FiZDAz
ODNlMjM4NDIzOWUuLmM2Yzg1ZWFkMmFiYzA3NzIzODlkMTBhZmZhMDZlNjMwNWE4ZWI1OGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTg3MCw3ICsxODcwLDYgQEAgd2ViY29y
ZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5LmggXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4QmFja2VuZEludGVyZmFjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJJbmRleC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAg
XApAQCAtMTg4NCw3ICsxODgzLDYgQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk1ldGFkYXRhLmggXAogCVNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsLmggXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9w
ZW5EQlJlcXVlc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ2FsbGJhY2tzLmgKaW5kZXggMWNmNGI3YmQwZGM1NGUxZGExOTI2MjQxZTJlM2NmMzdmMDZm
YTA0Yy4uZjhkM2NlNDhjZDgzNzRmZjFlZDZiOTgyODhlNjQ4ZmRhYjZlNWFhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmgKQEAgLTQyLDcg
KzQyLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTVN0cmluZ0xpc3Q7CiBjbGFz
cyBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlOwotY2xhc3MgSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlOwogCiBjbGFzcyBJREJDYWxsYmFja3MgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJD
YWxsYmFja3M+IHsKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuY3BwCmluZGV4IGQ0MTFkYTkzNzVlZmFiOTEwY2JkNjVlN2Q5YjFlNDRjOTMw
ODNkYzEuLmM3ZGM0N2RkOWM0MGViNDc2NDNiMGE2ZjQ4NDdjMjcxM2U5YzA3ZGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcApAQCAtMTUyLDcg
KzE1Miw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCQ3Vyc29yOjp1cGRhdGUoU2NyaXB0
U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICByZXR1cm4gb2JqZWN0U3RvcmUtPnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6
OkN1cnNvclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1ZSwgbV9jdXJy
ZW50UHJpbWFyeUtleSwgZWMpOworICAgIHJldHVybiBvYmplY3RTdG9yZS0+cHV0KElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwg
c3RhdGUsIHZhbHVlLCBtX2N1cnJlbnRQcmltYXJ5S2V5LCBlYyk7CiB9CiAKIHZvaWQgSURCQ3Vy
c29yOjphZHZhbmNlKGxvbmcgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggNzQ2
NDZkMDA4MTc1ZGJhNGUxNWM5NDdkMTUyNjk5OTkyN2RhZmZkOC4uODgzYTY1YzZlYjRlZWU2ZDQ0
NWU3ZjFlNzYwZjk2ZjdlYjhhMzliZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMTg2LDcgKzE4Niw3IEBAIFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmU+IElEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvCiAgICAgaW50NjRfdCBvYmplY3RTdG9yZUlkID0gbV9tZXRhZGF0YS5tYXhP
YmplY3RTdG9yZUlkICsgMTsKICAgICBtX2JhY2tlbmQtPmNyZWF0ZU9iamVjdFN0b3JlKG1fdmVy
c2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5pZCgpLCBvYmplY3RTdG9yZUlkLCBuYW1lLCBrZXlQYXRo
LCBhdXRvSW5jcmVtZW50KTsKIAotICAgIElEQk9iamVjdFN0b3JlTWV0YWRhdGEgbWV0YWRhdGEo
bmFtZSwgb2JqZWN0U3RvcmVJZCwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwgSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW50ZXJmYWNlOjpNaW5pbXVtSW5kZXhJZCk7CisgICAgSURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSBtZXRhZGF0YShuYW1lLCBvYmplY3RTdG9yZUlkLCBrZXlQYXRoLCBhdXRvSW5jcmVt
ZW50LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok1pbmltdW1JbmRleElkKTsKICAgICBS
ZWZQdHI8SURCT2JqZWN0U3RvcmU+IG9iamVjdFN0b3JlID0gSURCT2JqZWN0U3RvcmU6OmNyZWF0
ZShtZXRhZGF0YSwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24uZ2V0KCkpOwogICAgIG1fbWV0
YWRhdGEub2JqZWN0U3RvcmVzLnNldChtZXRhZGF0YS5pZCwgbWV0YWRhdGEpOwogICAgICsrbV9t
ZXRhZGF0YS5tYXhPYmplY3RTdG9yZUlkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCA5MmM5
MThjOWEwNjE0MGIyMDdjMzc3ZGM3ZDBlYzUxOTg2Zjk2OTZhLi5jNmFkMTI1YTM3Yzg3MDlmNDlk
NWMxZmIzZGQ3NWU3MWYzNGYwN2U2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtNTYxLDcg
KzU2MSw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUo
aW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iCiAgICAgQVNTRVJUKG1fdHJhbnNhY3Rp
b25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWQpKTsKICAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsKiB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkKTsKIAot
ICAgIElEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0U3RvcmVNZXRhZGF0YShuYW1lLCBvYmpl
Y3RTdG9yZUlkLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2U6Ok1pbmltdW1JbmRleElkKTsKKyAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG9i
amVjdFN0b3JlTWV0YWRhdGEobmFtZSwgb2JqZWN0U3RvcmVJZCwga2V5UGF0aCwgYXV0b0luY3Jl
bWVudCwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpNaW5pbXVtSW5kZXhJZCk7CiAKICAg
ICB0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKENyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpj
cmVhdGUobV9iYWNraW5nU3RvcmUsIG9iamVjdFN0b3JlTWV0YWRhdGEpLCBDcmVhdGVPYmplY3RT
dG9yZUFib3J0T3BlcmF0aW9uOjpjcmVhdGUodGhpcywgb2JqZWN0U3RvcmVJZCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmgKaW5kZXggMzQ3ZjIzZWQxYmFjNTE3OWM4ZjY2NzE2M2IwMjgzNTdhNjNmZjI4
ZS4uZDM0NjdmNGJkOTI0OWM1NmNlODZiMDIzMjZmNmE2NWNjN2IwNWEzMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuaApAQCAtNjMsNyArNjMsNiBAQCBwdWJsaWM6CiAKICAgICAvLyBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2UKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEo
KSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlPiBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSAgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
cmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCk7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSosIEV4Y2VwdGlvbkNvZGUmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNGJiZmJiODZh
Y2NlMTNiMDgwNzE0MmYxMmFkYzM2MWY4OGFjZWU0MC4uYzIxOTY2YzVmMDgxYWIxYTIwY2ViY2Q1
MzkyOWIxNDFlYjQwMTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQwLDcg
KzQwLDYgQEAgY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBJREJLZXk7CiBjbGFz
cyBJREJLZXlQYXRoOwogY2xhc3MgSURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBz
dHJ1Y3QgSURCRGF0YWJhc2VNZXRhZGF0YTsKIApAQCAtNTUsMTEgKzU0LDggQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgPSAwOwog
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4g
Y3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJL
ZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RT
dG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKSA9IDA7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwg
UGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0
aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RT
dG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFi
YXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5z
aWduZWQgc2hvcnQgbW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPikgPSAwOwpAQCAtODIsNiArNzgsOCBAQCBwdWJsaWM6CiAg
ICAgICAgIEN1cnNvclVwZGF0ZQogICAgIH07CiAKKyAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBN
aW5pbXVtSW5kZXhJZCA9IDMwOworCiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPElEQktleT4g
PiBJbmRleEtleXM7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+LCBib29sIGtleU9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJh
Y2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5
QmFja2VuZEltcGwuaAppbmRleCAzYzExY2QzNWEyOTgxNDBlMDdkNmQ4ZjkxYmY2NTUyOTM2NWI0
YTExLi4yNGY3M2FlZjg4OTdhMDIwYzY0NDI1MjdmMjk5YWNhMzU5ZTZmYTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEltcGwuaApAQCAtNTgsMTEgKzU4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1v
dmVJREJCYWNraW5nU3RvcmUoY29uc3QgU3RyaW5nJiBmaWxlSWRlbnRpZmllcik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVh
bCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0
eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBk
YXRhRGlyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG9wZW4obmFtZSwgdmVyc2lvbiwgMCwgY2Fs
bGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIGRhdGFE
aXIpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGlu
dDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURp
cik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZS5oCmluZGV4IGE5ZmQzYTZmMTMzNGEzMTg2NTk5MzI4ZjFhNzI1ZDRlMDZl
YzQzZjguLjIzYjdjMjE0ZGQ3NWQ1MDlhNzZlYmZmNTUwZGEwOGJmZGE0N2U3NjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBn
ZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpID0gMDsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCB2b2lkIG9w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2
NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1l
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCmluZGV4IGE4
YzE5NjA2MDNhNjBlMmZiOGJjOTZlNDYyMDMwYWI4ZWM5OTEzZDEuLjY4MGI3YTdmMzE0Nzc1OWY1
MGI0YTAxYTQ2NGVmOGQwN2YxNzI0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJJbmRleC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIklEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5o
IgotI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQktl
eS5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0
ZGM1YjcyNTJlYTU2MGZjZDJiOTFhZTdhZjc3MDRhM2JkNDc1ZjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2VfaAotI2RlZmlu
ZSBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2VfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
LSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSURCQ2FsbGJhY2tzOwotY2xhc3Mg
SURCS2V5OwotY2xhc3MgSURCS2V5UGF0aDsKLWNsYXNzIElEQktleVJhbmdlOwotY2xhc3MgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwotCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2Rl
OwotCi1jbGFzcyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJ
REJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JREJJbmRl
eEJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0
aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3BlbktleUN1
cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSos
IEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElE
QktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRL
ZXkoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJJbmRleEJh
Y2tlbmRJbnRlcmZhY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGY1MGZlMWViYjgwODJlMjE3NmY4ZDRmZWQzMGQ5
YWFiMDMyNTVmOGEuLmYxMGQwODZlZTQ5NmZkZTFiNTgxODA4ZTk5YzlhZTdlYTk0NWMzNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHAKQEAgLTEyMywxNiArMTIzLDE2IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlSW5kZXhLZXlz
Rm9yVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0IElEQkluCiBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0U3RhdGUqIHN0YXRl
LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmFkZCIpOwotICAgIHJl
dHVybiBwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpBZGRPbmx5LCBJREJBbnk6
OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBrZXksIGVjKTsKKyAgICByZXR1cm4gcHV0KElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6QWRkT25seSwgSURCQW55OjpjcmVhdGUodGhpcyks
IHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmU6OnB1dChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwg
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJPYmplY3RTdG9yZTo6cHV0Iik7Ci0gICAgcmV0dXJuIHB1dChJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2U6OkFkZE9yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3Rh
dGUsIHZhbHVlLCBrZXksIGVjKTsKKyAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6QWRkT3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUs
IGtleSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpw
dXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NS
ZWZQdHI8SURCQW55PiBzb3VyY2UsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZh
bHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2Ny
aXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBw
cnBLZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3Rv
cmU6OnB1dCIpOwogICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IHBycEtleTsKQEAgLTE2OCw3ICsx
NjgsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNbwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbVNjcmlwdFN0YXRlKHN0YXRl
KTsKICAgICBET01SZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRlKGNvbnRleHQpOwogCi0gICAgaWYg
KHB1dE1vZGUgIT0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUg
JiYgdXNlc0luTGluZUtleXMgJiYga2V5KSB7CisgICAgaWYgKHB1dE1vZGUgIT0gSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUgJiYgdXNlc0luTGluZUtleXMgJiYga2V5
KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlLmgKaW5kZXggNmRmZDk3ODhhNTA4YzZiOTg1MjBkZTBmNDFkMzFk
ZDEzZmRhMjdhZi4uNTkyYmJjMTZjOTQ5YWMwOTVkYzZjY2U4YTNkYTI2ZDEzMDMzMzRiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5o
CkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCS2V5
UmFuZ2UuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtOTUs
NyArOTQsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6UHV0
TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1
ZSYsIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gcHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSwgUGFz
c1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIFBhc3NS
ZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgbWFya0RlbGV0ZWQoKSB7
IG1fZGVsZXRlZCA9IHRydWU7IH0KICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWQoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCBkMjRiNjdmZDliY2EwOTEyMDcxZDViOTA5
MTgwNmQ5N2E2YWIxZTY0Li40ZmM4YjE3ZjM0MmZjYzA4YmQxZTZiNDAzOTM1ZjZhODg5ZTMzYzgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtODYsMTIgKzg2LDEyIEBAIGJvb2wg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6SW5kZXhXcml0ZXI6OmFkZGluZ0tleUFsbG93ZWQo
SURCQmFja2luZ1N0b3JlJiBiCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9y
ZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmpl
Y3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJh
dGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiBpbmRleEtleXMsIFZlY3RvcjxP
d25QdHI8SW5kZXhXcml0ZXI+ID4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2Us
IGJvb2wmIGNvbXBsZXRlZCkKK2Jvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUlu
ZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0
aW9uLCBJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBj
b25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJL
ZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRf
dD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJ
bmRleEtleXM+JiBpbmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+ID4qIGluZGV4
V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkKIHsKICAgICBB
U1NFUlQoaW5kZXhJZHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkpOwogICAgIGNvbXBsZXRl
ZCA9IGZhbHNlOwogCi0gICAgSGFzaE1hcDxpbnQ2NF90LCBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlNYXA7CisgICAgSGFzaE1hcDxpbnQ2NF90LCBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlNYXA7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmRleElkcy5zaXplKCk7ICsraSkKICAgICAgICAgaW5k
ZXhLZXlNYXAuYWRkKGluZGV4SWRzW2ldLCBpbmRleEtleXNbaV0pOwogCkBAIC05OSw3ICs5OSw3
IEBAIGJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUluZGV4V3JpdGVycyhQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuCiAKICAgICAgICAgY29uc3QgSURCSW5kZXhNZXRh
ZGF0YSYgaW5kZXggPSBpdC0+dmFsdWU7CiAKLSAgICAgICAgSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlOjpJbmRleEtleXMga2V5cyA9IGluZGV4S2V5TWFwLmdldChpdC0+a2V5KTsKKyAg
ICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMga2V5cyA9IGluZGV4
S2V5TWFwLmdldChpdC0+a2V5KTsKICAgICAgICAgLy8gSWYgdGhlIG9iamVjdFN0b3JlIGlzIHVz
aW5nIGF1dG9JbmNyZW1lbnQsIHRoZW4gYW55IGluZGV4ZXMgd2l0aCBhbiBpZGVudGljYWwga2V5
UGF0aCBuZWVkIHRvIGFsc28gdXNlIHRoZSBwcmltYXJ5IChnZW5lcmF0ZWQpIGtleSBhcyBhIGtl
eS4KICAgICAgICAgaWYgKGtleVdhc0dlbmVyYXRlZCAmJiAoaW5kZXgua2V5UGF0aCA9PSBvYmpl
Y3RTdG9yZS5rZXlQYXRoKSkKICAgICAgICAgICAgIGtleXMuYXBwZW5kKHByaW1hcnlLZXkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbC5oCmluZGV4IDk3MGZjNDlhMmU2OTkxNTgxMDAyNWU0MGUwOTNm
YzljMGRiOTE5ZjUuLjNkMmU0ZDM0NWRiNmMyZDBkNDJmOTg5MjdjZWIwZjc4MGIwNTE5YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJJREJE
YXRhYmFzZUJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCS2V5UGF0aC5oIgogI2luY2x1ZGUg
IklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+CiAKQEAgLTUyLDcgKzUxLDcgQEAgbmFtZXNwYWNlIElEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwgewogICAgICAgICAgICAgOiBtX2luZGV4TWV0YWRhdGEoaW5kZXhNZXRhZGF0YSkKICAg
ICAgICAgeyB9CiAKLSAgICAgICAgSW5kZXhXcml0ZXIoY29uc3QgSURCSW5kZXhNZXRhZGF0YSYg
aW5kZXhNZXRhZGF0YSwgY29uc3QgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRl
eEtleXMmIGluZGV4S2V5cykKKyAgICAgICAgSW5kZXhXcml0ZXIoY29uc3QgSURCSW5kZXhNZXRh
ZGF0YSYgaW5kZXhNZXRhZGF0YSwgY29uc3QgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJ
bmRleEtleXMmIGluZGV4S2V5cykKICAgICAgICAgICAgIDogbV9pbmRleE1ldGFkYXRhKGluZGV4
TWV0YWRhdGEpCiAgICAgICAgICAgICAsIG1faW5kZXhLZXlzKGluZGV4S2V5cykKICAgICAgICAg
eyB9CkBAIC02NSwxMCArNjQsMTAgQEAgbmFtZXNwYWNlIElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwgewogICAgICAgICBib29sIGFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlJiwgSURC
QmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXksIGNv
bnN0IElEQktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QgV0FSTl9VTlVTRURf
UkVUVVJOOwogCiAgICAgICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFkYXRh
OwotICAgICAgICBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cyBtX2lu
ZGV4S2V5czsKKyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMg
bV9pbmRleEtleXM7CiAgICAgfTsKIAotICAgIGJvb2wgbWFrZUluZGV4V3JpdGVycyhQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+LCBJREJCYWNraW5nU3RvcmUqLCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBQYXNzUmVmUHRyPElE
QktleT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2
NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2U6OkluZGV4S2V5cz4mLCBWZWN0b3I8T3duUHRyPEluZGV4V3JpdGVyPiA+KiBpbmRleFdyaXRl
cnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5fVU5VU0VEX1JF
VFVSTjsKKyAgICBib29sIG1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsPiwgSURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25z
dCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXks
IGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBj
b25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVj
dG9yPE93blB0cjxJbmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVz
c2FnZSwgYm9vbCYgY29tcGxldGVkKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKICAgICBQYXNzUmVm
UHRyPElEQktleT4gZ2VuZXJhdGVLZXkoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+LCBQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGlu
dDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAgICAgYm9vbCB1cGRhdGVLZXlHZW5lcmF0b3IoUGFzc1Jl
ZlB0cjxJREJCYWNraW5nU3RvcmU+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURC
S2V5KiwgYm9vbCBjaGVja0N1cnJlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Uu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM5YTBkNzU2OWYwNzVkZTk3N2U4OTcx
NjIyYzI0NTE1Yjk3MTdiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aWZuZGVmIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZV9oCi0jZGVmaW5lIElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZV9oCi0KLSNpbmNsdWRlICJJREJDdXJzb3IuaCIKLSNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJDYWxsYmFja3M7Ci1jbGFzcyBJREJJbmRleEJhY2tl
bmRJbnRlcmZhY2U7Ci1jbGFzcyBJREJLZXk7Ci1jbGFzcyBJREJLZXlQYXRoOwotY2xhc3MgSURC
S2V5UmFuZ2U7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7Ci1jbGFzcyBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLWNs
YXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gewotcHVibGljOgotICAgIHZpcnR1YWwgfklE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGdl
dChQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotCi0gICAg
ZW51bSBQdXRNb2RlIHsKLSAgICAgICAgQWRkT3JVcGRhdGUsCi0gICAgICAgIEFkZE9ubHksCi0g
ICAgICAgIEN1cnNvclVwZGF0ZQotICAgIH07Ci0KLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBN
aW5pbXVtSW5kZXhJZCA9IDMwOwotCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPElEQktleT4g
PiBJbmRleEtleXM7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIGNvbnN0IFZlY3Rv
cjxpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25D
b2RlJikgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKLQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGNy
ZWF0ZUluZGV4KGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYs
IGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5
cyhQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiwgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShjb25zdCBWZWN0b3I8
aW50NjRfdD4mLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7Ci0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoaW50NjRfdCkg
PSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGludDY0X3QsIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgSURCQ3Vyc29yOjpEaXJl
Y3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlOjpUYXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0
aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Vf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNh
Y3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwCmluZGV4IDI2ZWZkMGZiM2IxMTk2ZmQxNzgyZTFlZDcyZTQzNWY0Yzc4ODA5OWEuLmQ5
NTJmYTI5YTRlMDRkYTY2YmVjNWQyNWI0ZDg2MTJjNjZhMzYzNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTM1LDcg
KzM1LDYgQEAKICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJJREJJ
bmRleC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgog
I2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKICNpbmNsdWRlICJJREJU
cmFjaW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKaW5kZXggMGI1YjY0MGFkZWNlNGRmODEx
Yjg0MjdmM2M3MDcyZTVmNmNmMzQ2ZC4uOGYyZjVjNjBmOGYxM2RhNTI0YzBiMmUzNzgxZjIyMWEy
OTc1MDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaApAQCAtNTIsNyArNTIsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCgpOwogCiAgICAgLy8g
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUoaW50NjRfdCwgRXhjZXB0
aW9uQ29kZSYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCB2b2lkIGFib3J0KCk7CiAgICAgdm9pZCBjb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q2FsbGJhY2tzKElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpIHsgbV9jYWxsYmFj
a3MgPSBjYWxsYmFja3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXgg
YWM1MzU1MzQwZjI3ZWYwOWYyNThhMDdjNzY2YjRiZDU3ZGM5NjYyNy4uNzg1ZWNmZDc2NzY0OGJk
M2Y2MDk4NDlmNWRlOGFmNDA3ODYwMjgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlLmgKQEAgLTM2LDcgKzM2LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURC
Q3Vyc29yQmFja2VuZEltcGw7Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U7
CiBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKQEAgLTUzLDcgKzUyLDYgQEAgcHVibGljOgogICAgICAgICBQcmVlbXB0aXZlVGFzawog
ICAgIH07CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlPiBvYmplY3RTdG9yZShpbnQ2NF90LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBjb21taXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI0ZWE4MDI5MWY5MGMzMWE3NTkz
NGMwMjFhZjBiOTNmMWNmODc2YjguLjBiYjVhY2E5NWEwOGM1YzUxNmEzNjUxMzI1NDViOGU0Njk3
ZDUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAj
aW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGExNzYxODlmNjdiMDc0MjYyNWQ4YmYyYWEyNjYw
ODg2MDQxMTYwNGQuLjE0ZTllYTY3NmZhYWNmMzg5OTUyYWEwYTlmZDhlNWVhNWE2MGM4ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaQpAQCAtMzYxLDcgKzM2MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9EZXZp
Y2VNb3Rpb25EYXRhLmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBcCiAgICAg
ZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAgXAotICAgIGRvbS9EZXZpY2VPcmll
bnRhdGlvbkRhdGEuY3BwIFwgICAgCisgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAg
XAogICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50
LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXApAQCAtMzA0MSwxMiArMzA0
MSwxMCBAQCBlbmFibGU/KElOREVYRURfREFUQUJBU0UpIHsKICAgICAgICAgTW9kdWxlcy9pbmRl
eGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVk
ZGIvSURCSW5kZXguaCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2Vu
ZEludGVyZmFjZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmggXAogICAg
ICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oIFwKICAgICAgICAgTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjEwYmU1OGI5OGRjNjMyY2JlYzFmMzRkZDFj
ZDRhYTRmZGIzNzYwMi4uMWNhMWRmODRjMmFkMWE4MTdhNjBmNWI0NGYyNTIxODkyYzI3ODU3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzM2LDcgKzczNiw2IEBACiAgICAgICAgICAgICAnTW9kdWxl
cy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAn
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJJbmRleC5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwJywKQEAgLTc1MSw3
ICs3NTAsNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPcGVuREJSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCT3BlbkRCUmVxdWVzdC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJQ
ZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDIwZjZlMTc3OWEzYTdiYmIwNDFkYmY4ZTljNWE4
YTY4ZTE4ZTYxYWIuLjQzYTA5YTY5YzlmNTY0ZjgzN2Q1NjlkMWQzN2IzYzBjM2JlNjc5MWMgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDk4
NSwxMCArMjQ5ODUsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJl
bGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xpbmRleGVkZGJcSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNl
LmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxNb2R1bGVzXGluZGV4ZWRkYlxJREJLZXkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAt
MjUwMjEsMTAgKzI1MDE3LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcaW5kZXhlZGRiXElEQk9iamVjdFN0b3JlQmFja2Vu
ZEludGVyZmFjZS5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0
aXZlUGF0aD0iLi5cTW9kdWxlc1xpbmRleGVkZGJcSURCUmVxdWVzdC5jcHAiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggODM2N2JjYmJjYTVjMzhiNDkwYWMzMjMzY2MxOTNiN2FkM2FmZTQ1OS4u
MGNjMWZjOGU1YTZjZGNiZjVlNmRjZjEzZWNkOTM1M2I4M2UxZGM1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ5NSw3ICsz
NDk1LDYgQEAKIAkJOTcxMkE1RDQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzEyQTU3QjE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uu
aCAqLzsgfTsKIAkJOTcxMkE1RDUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTdDMTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJJbmRleC5jcHAgKi87IH07CiAJCTk3MTJBNUQ2MTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTcxMkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmggKi87IH07Ci0J
CTk3MTJBNURBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTgxMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTcx
MkE1REIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4MjE1MDA0RURBMDA0OEFGMTAgLyogSURC
S2V5LmNwcCAqLzsgfTsKIAkJOTcxMkE1REMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1ODMxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQktleS5oICovOyB9OwogCQk5NzEyQTVERTE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5UGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzEyQTU4NTE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UGF0aC5jcHAgKi87
IH07CkBAIC0zNTA5LDcgKzM1MDgsNiBAQAogCQk5NzEyQTVFQTE1MDA0RURBMDA0OEFGMTAgLyog
SURCT2JqZWN0U3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3MTJBNTkxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5oICovOyB9
OwogCQk5NzEyQTVFQzE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEy
QTU5MzE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgKi87
IH07CiAJCTk3MTJBNUVEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEy
QTU5NDE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oICovOyB9
OwotCQk5NzEyQTVFRTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzEyQTU5NTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
LmggKi87IH07CiAJCTk3MTJBNUVGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNh
Y3Rpb25Nb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25N
b25pdG9yLmNwcCAqLzsgfTsKIAkJOTcxMkE1RjAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRp
bmdUcmFuc2FjdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3MTJBNTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNh
Y3Rpb25Nb25pdG9yLmggKi87IH07CiAJCTk3MTJBNUYxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJS
ZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3MTJBNTk4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJSZXF1ZXN0LmNwcCAqLzsgfTsKQEAgLTEw
ODE2LDcgKzEwODE0LDYgQEAKIAkJOTcxMkE1N0MxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkluZGV4LmNwcDsg
cGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTcxMkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQkluZGV4Lmg7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJJbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU3
RTE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9
IElEQkluZGV4LmlkbDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTcxMkE1ODExNTAwNEVEQTAwNDhBRjEwIC8qIElE
QkluZGV4QmFja2VuZEludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4QmFja2VuZEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzEyQTU4MjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IElEQktleS5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4MzE1MDA0RURB
MDA0OEFGMTAgLyogSURCS2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElE
QktleS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk3MTJBNTg0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQktleS5pZGw7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4MzMsNyArMTA4
MzAsNiBAQAogCQk5NzEyQTU5MjE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQk9iamVjdFN0b3JlLmlkbDsgcGF0aCA9IE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcxMkE1OTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTQx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOyBwYXRo
ID0gTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU5NTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oOyBwYXRoID0gTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNh
Y3Rpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElE
QlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIv
SURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MTJBNTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25N
b25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTgx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQlJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gSURCUmVxdWVzdC5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9J
REJSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTUwLDcgKzE4
MTQ2LDYgQEAKIAkJCQk5NzEyQTU3QzE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguY3BwICov
LAogCQkJCTk3MTJBNTdEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5oICovLAogCQkJCTk3
MTJBNTdFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5pZGwgKi8sCi0JCQkJOTcxMkE1ODEx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oICovLAogCQkJCTk3
MTJBNTgyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuY3BwICovLAogCQkJCTk3MTJBNTgzMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaCAqLywKIAkJCQk5NzEyQTU4NDE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5LmlkbCAqLywKQEAgLTE4MTY3LDcgKzE4MTYyLDYgQEAKIAkJCQk5NzEyQTU5
MjE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaWRsICovLAogCQkJCTk3MTJBNTkz
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCAqLywKIAkJ
CQk5NzEyQTU5NDE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5o
ICovLAotCQkJCTk3MTJBNTk1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tl
bmRJbnRlcmZhY2UuaCAqLywKIAkJCQk5NzEyQTU5NjE1MDA0RURBMDA0OEFGMTAgLyogSURCUGVu
ZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAgKi8sCiAJCQkJOTcxMkE1OTcxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCAqLywKIAkJCQk5NzEyQTU5ODE1
MDA0RURBMDA0OEFGMTAgLyogSURCUmVxdWVzdC5jcHAgKi8sCkBAIC0yNDE2OSwxNCArMjQxNjMs
MTIgQEAKIAkJCQk5NzEyQTVEMjE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJ
bXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVENDE1MDA0RURBMDA0OEFGMTAgLyogSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUQ2MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTcxMkE1REEx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTcxMkE1REMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTcxMkE1REYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk3MTJBNUUzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlSYW5nZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJD
b2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUVBMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJPYmplY3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RUQxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3
MTJBNUVFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUYwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGMjE1MDA0
RURBMDA0OEFGMTAgLyogSURCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RjQx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYWNpbmcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwCmluZGV4IDVkODMzMDg3YjFhOWZlZGM3ZjZmMGQyZDA2NzdiMmQ5MDRi
MDVlZGIuLjMyN2E4NTYyZWM4YTU0YzZjZjc0NzA5NjdlZjRmZDNmNTc1MDc3MDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4MywxMiArMTgzLDEwIEBACiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJJREJEYXRhYmFzZUVycm9yLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCRGF0YWJhc2VFeGNlcHRpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJJREJGYWN0b3J5LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCSW5kZXguaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXkuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJREJLZXlQYXRoLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURC
S2V5UmFuZ2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJNZXRhZGF0YS5oJywK
LSAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oJywKQEAgLTQxNCwxMCArNDEyLDYgQEAKICAg
ICAgICAgICAgICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAgICAgICdz
cmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0lEQklu
ZGV4QmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAgICAgICdzcmMvSURCT2JqZWN0U3RvcmVC
YWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0lEQk9iamVjdFN0b3JlQmFj
a2VuZFByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5k
UHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94
eS5jcHAnLApAQCAtNTU2LDE0ICs1NTAsMTAgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkZhY3RvcnlJbXBs
LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oJywKLSAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdz
cmMvV2ViSURCSW5kZXhJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCS2V5LmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJLZXlQYXRoLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJJREJLZXlSYW5nZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SURCTWV0YWRhdGEuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk9iamVjdFN0b3Jl
SW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggMDk4NjFmMTMz
MDBmNmIxNWYzYzBiYWNiYTJjMTI5ZmI3ZDBiNzdlZC4uNTQ5MWI5NmE4ODJjZGNkZWU3NDhiNDEz
ZGRkNzZmZWUwOWI0YzU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCQ2FsbGJhY2tzLmgKQEAgLTM4LDcgKzM4LDYgQEAgY2xhc3MgV2ViSURCRGF0YWJhc2VF
cnJvcjsKIGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJ
REJJbmRleDsKLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURCVHJhbnNhY3Rp
b247CiBjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDUxNmEyMWRkOTQyY2VjZTdm
YmM0MGUwMTBhNWM5YzZiNGRjY2EzZmEuLmE5OGVlYTRhODY5NTQxOGMyOTM0MTBkZTAzM2E3YTY1
ZDdlYjc0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0
YWJhc2UuaApAQCAtNDAsNyArNDAsNiBAQCBjbGFzcyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrczsK
IGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJLZXlS
YW5nZTsKLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247
CiAKIC8vIFNlZSBjb21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVy
dmlldyBvZiB0aGVzZSBjbGFzc2VzLgpAQCAtNTMsMTMgKzUyLDcgQEAgcHVibGljOgogICAgICAg
ICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBXZWJJREJNZXRh
ZGF0YSgpOwogICAgIH0KLSAgICB2aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmpl
Y3RTdG9yZShsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYklEQktleVBhdGgm
LCBib29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKQotICAg
IHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4g
MDsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0
cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9y
ZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5z
YWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFdlYklE
QlRyYW5zYWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZl
Y3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJGYWN0b3J5LmgKaW5kZXggNmE1OGU2YWU3OGQ1ZTJiZGIwMjI2OTAyZDhlYTY0Yjk3
ZGJkZDM4Zi4uNjc4YmVhMDRjNDk1Nzc5ZmVkMjE0NDUwYWZiMjY1NzI2NDk2YjcwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaApAQCAtNTYsOCAr
NTYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURC
Q2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdl
YkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBv
cGVuIGlnbm9yZXMgdGhlIFdlYkZyYW1lKiBwYXJhbWV0ZXIuCi0gICAgLy8gRklYTUU6IFJlbW92
ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzOTIzLgotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9u
ZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFz
ZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRh
dGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFt
ZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJT
dHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwg
V2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJJbmRleC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXgu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAyNThlY2M3MTQ2NDk0Mzg5MDBiNjEw
NzE5YTVjZmYxNGJmYTg2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCisrKyAv
ZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURCSW5kZXhfaAot
I2RlZmluZSBXZWJJREJJbmRleF9oCi0KLSNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCi0j
aW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgi
Ci0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci1jbGFzcyBXZWJJREJDYWxsYmFja3M7Ci1jbGFzcyBXZWJJREJLZXk7Ci1jbGFzcyBXZWJJREJL
ZXlSYW5nZTsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxl
dmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNsYXNzZXMuCi1jbGFzcyBXZWJJREJJbmRleCB7Ci1wdWJs
aWM6Ci0gICAgdmlydHVhbCB+V2ViSURCSW5kZXgoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBv
cGVuT2JqZWN0Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4
Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1
YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hv
cnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYs
IFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAg
IHZpcnR1YWwgdm9pZCBjb3VudChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNr
cyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldE9iamVjdChjb25z
dCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
Ci0gICAgdmlydHVhbCB2b2lkIGdldEtleShjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNh
bGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLXByb3RlY3RlZDoKLSAgICBXZWJJREJJ
bmRleCgpIHt9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYklE
QkluZGV4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
Qk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmpl
Y3RTdG9yZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTU0MTcxNjA0OTg5N2Zj
YjBhMmE0NWFkZWIzZGI3YTY4Yzk1NjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVj
dFN0b3JlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
ZWJJREJPYmplY3RTdG9yZV9oCi0jZGVmaW5lIFdlYklEQk9iamVjdFN0b3JlX2gKLQotI2luY2x1
ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCi0j
aW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCi0j
aW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgi
Ci0jaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2Vi
U3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJLZXlSYW5nZTsK
LWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwotCi0vLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0
b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklE
Qk9iamVjdFN0b3JlIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJJREJPYmplY3RTdG9yZSgp
IHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGdldChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklE
QkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICBlbnVtIFB1dE1vZGUgewot
ICAgICAgICBBZGRPclVwZGF0ZSwKLSAgICAgICAgQWRkT25seSwKLSAgICAgICAgQ3Vyc29yVXBk
YXRlCi0gICAgfTsKLQotICAgIHR5cGVkZWYgV2ViVmVjdG9yPFdlYklEQktleT4gV2ViSW5kZXhL
ZXlzOwotCi0gICAgdmlydHVhbCB2b2lkIHB1dChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUmLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcywg
Y29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGdW5jdGlvbihjb25zdCBXZWJJREJLZXlS
YW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhj
ZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGNsZWFyKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwg
V2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAg
dmlydHVhbCBXZWJJREJJbmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiwgY29uc3Qg
V2ViSURCS2V5UGF0aCYsIGJvb2wsIGJvb2wsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2Vi
RXhjZXB0aW9uQ29kZSYpCi0gICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICB2aXJ0dWFsIFdlYklEQkluZGV4KiBj
cmVhdGVJbmRleChsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYklEQktleVBh
dGgmLCBib29sLCBib29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNv
ZGUmKQotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhjb25zdCBX
ZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIGNvbnN0IFdlYlZlY3RvcjxX
ZWJJbmRleEtleXM+JiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoY29uc3Qg
V2ViVmVjdG9yPGxvbmcgbG9uZz4mLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9OwotICAgIC8vIFRyYW5zZmVycyBvd25lcnNoaXAgb2Yg
dGhlIFdlYklEQkluZGV4IHRvIHRoZSBjYWxsZXIuCi0gICAgdmlydHVhbCBXZWJJREJJbmRleCog
aW5kZXgobG9uZyBsb25nKQotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUlu
ZGV4KGxvbmcgbG9uZyBpbmRleElkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2Vw
dGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwg
dm9pZCBvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ3Vyc29yOjpEaXJl
Y3Rpb24gZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJUcmFuc2FjdGlvbjo6VGFz
a1R5cGUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50KGNvbnN0
IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
LQotcHJvdGVjdGVkOgotICAgIFdlYklEQk9iamVjdFN0b3JlKCkge30KLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSURCT2JqZWN0U3RvcmVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmgKaW5kZXggMjIx
YmY2MDU2NWJhYWVjNjFmNGNmNTFhOThmY2FjZjFmYzliNDdjOS4uNjU2MmI5NDY3YTYzM2U1ZmFk
ZGFlYmE0NmZkYTE1NTQ3ODcwYjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsgY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOyB9CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJJREJPYmplY3RTdG9yZTsKIGNsYXNzIFdlYklEQlRy
YW5zYWN0aW9uQ2FsbGJhY2tzOwogCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZv
ciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgb2YgdGhlc2UgY2xhc3Nlcy4KQEAgLTQ2LDExICs0NSw2
IEBAIHB1YmxpYzoKICAgICAgICAgUHJlZW1wdGl2ZVRhc2sKICAgICB9OwogCi0gICAgdmlydHVh
bCBXZWJJREJPYmplY3RTdG9yZSogb2JqZWN0U3RvcmUobG9uZyBsb25nLCBXZWJFeGNlcHRpb25D
b2RlJikKLSAgICB7Ci0gICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgfQogICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKSB7IFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlVGFz
a0V2ZW50cygpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggZjY5ZThiMDc4
MjA1ZmUzMTljN2JiNTkxOTliMzgwYmIxN2JhODkzMy4uMDkyYmZiN2ExNDlhNDI4YWEwYmE3ZWVi
Zjc2MjkxZmIwNDE0MDYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFi
YXNlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5o
IgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJD
dXJzb3JJbXBsLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggNzRiYWUzMDU4MTcxNGI3YTZhZjU1NjJjYTgw
MzRlZjQwNTVhZDk0MC4uZTdiZWI3OGU3MWQ3ZDVhZWQyYmQ0NDJmMjY3MThmMjRiNjQ3NTMyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5LmNwcApAQCAtMzMsMTYgKzMzLDE1IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VD
YWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk1ldGFk
YXRhLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xp
c3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFj
a3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0
YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCIKICNpbmNs
dWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIK
LSNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0
aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjgsMzEgKzY3LDEyIEBAIElE
QkRhdGFiYXNlTWV0YWRhdGEgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6Om1ldGFkYXRhKCkgY29u
c3QKICAgICByZXR1cm4gbV93ZWJJREJEYXRhYmFzZS0+bWV0YWRhdGEoKTsKIH0KIAotUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFBy
b3h5OjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50
ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1w
bGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8
SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgT3duUHRyPFdl
YklEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2Ut
PmNyZWF0ZU9iamVjdFN0b3JlKGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCAqdHJh
bnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpKTsKLSAgICBpZiAoIW9i
amVjdFN0b3JlKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gSURCT2JqZWN0U3RvcmVC
YWNrZW5kUHJveHk6OmNyZWF0ZShvYmplY3RTdG9yZS5yZWxlYXNlKCkpOwotfQotCiB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJ
REJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgaWYgKG1fd2Vi
SURCRGF0YWJhc2UpCiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZU9iamVjdFN0b3Jl
KHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1l
bnQpOwogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpkZWxldGVPYmplY3RTdG9y
ZShpbnQ2NF90IG9iamVjdFN0b3JlSWQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlv
biBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0
IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIg
aW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCRGF0YWJhc2UtPmRlbGV0ZU9iamVj
dFN0b3JlKG9iamVjdFN0b3JlSWQsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2Fj
dGlvbigpLCBlYyk7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmRlbGV0ZU9i
amVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQog
ewogICAgIGlmIChtX3dlYklEQkRhdGFiYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggYmVmMjg5YmZiZTU2Zjk5
YzczZTg2YjQ5NWI0NTkxOGYxZWFkZWM1My4uOTc4Y2NmZmNhMjUzZWVmZGEyMzc5NTI2ZGYxYWQy
ODVlZGQ5MzZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZUJhY2tlbmRQcm94eS5oCkBAIC00NCw5ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgV2ViQ29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0OwogCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJDb3JlOjpJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6
OklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxl
dGVPYmplY3RTdG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
KTsKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24o
aW50NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246
Ok1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9y
eUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5LmNwcAppbmRleCBjNjBhM2NiYTk0ZTEzOGJlODBhZjMxMmJiZDgwMTZkYWY3
ZDU5ZmViLi5kNDY4MTEwOGJhMzBjMDAzY2RhMTZlM2U0YTI0MjJmMWI0MWJiMzhmIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5
LmNwcApAQCAtMjE0LDIwICsyMTQsNiBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Omdl
dERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogICAgIG1f
d2ViSURCRmFjdG9yeS0+Z2V0RGF0YWJhc2VOYW1lcyhuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChj
YWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKIH0KIAotCi0vLyBGSVhNRTog
UmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDM5MjMuCi12b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBD
YWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERhdGFiYXNlQ2Fs
bGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQotewotICAg
IFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3MpOwotICAgIFJlZlB0
cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MocHJwRGF0YWJhc2VDYWxs
YmFja3MpOwotICAgIFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1cml0eU9yaWdpbik7Ci0g
ICAgaWYgKCFhbGxvd0luZGV4ZWREQihjb250ZXh0LCBuYW1lLCBvcmlnaW4sIGNhbGxiYWNrcykp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBnZXRXZWJG
cmFtZShjb250ZXh0KTsKLSAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgdmVyc2lvbiwg
bmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgbmV3IFdlYklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbChkYXRhYmFzZUNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIp
OwotfQotCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
cz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpCiB7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxi
YWNrcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5
QmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmgKaW5kZXggYzg5OWU4MGI3MDIyMmZlN2EzMjhmNjQzMGQyNTE0OWY0ZWZjZWQy
NS4uMTc1YzczOWRmMDlhODgzY2QyZjdhNDJlMWQ3ZThhMzM3NDJkMGYzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApAQCAt
NDksOCArNDksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRQcm94
eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7
Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0
IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUs
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBT
dHJpbmcmIGRhdGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJJbmRleEJhY2tlbmRQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYw
MTg4ZmQ0ODdhOWZmMjk1NWQ4NWUyMGI1ZWQ2ZjkzZWQ3MGFmMWYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kUHJv
eHkuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCQ2Fs
bGJhY2tzLmgiCi0jaW5jbHVkZSAiSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIklEQktleVJhbmdl
LmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLSNpbmNsdWRlICJX
ZWJJREJDYWxsYmFja3NJbXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgot
I2luY2x1ZGUgIldlYklEQkluZGV4LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVk
ZSAiV2ViSURCS2V5UmFuZ2UuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURC
SW5kZXhCYWNrZW5kUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkluZGV4PiBpbmRleCkK
LXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkluZGV4QmFja2VuZFByb3h5KGluZGV4KSk7
Ci19Ci0KLUlEQkluZGV4QmFja2VuZFByb3h5OjpJREJJbmRleEJhY2tlbmRQcm94eShQYXNzT3du
UHRyPFdlYklEQkluZGV4PiBpbmRleCkKLSAgICA6IG1fd2ViSURCSW5kZXgoaW5kZXgpCi17Ci19
Ci0KLUlEQkluZGV4QmFja2VuZFByb3h5Ojp+SURCSW5kZXhCYWNrZW5kUHJveHkoKQotewotfQot
Ci12b2lkIElEQkluZGV4QmFja2VuZFByb3h5OjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJh
bnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBw
b2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFz
LCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50
ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9wZW5PYmplY3RDdXJzb3Io
a2V5UmFuZ2UsIGRpcmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwg
KnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9p
ZCBJREJJbmRleEJhY2tlbmRQcm94eTo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVy
IHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxl
bWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5k
ZXgtPmNvdW50KGtleVJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAq
dHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lk
IElEQkluZGV4QmFja2VuZFByb3h5OjpvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNh
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2lu
dGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBp
biB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJm
YWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSog
dHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9wZW5LZXlDdXJzb3Ioa2V5UmFu
Z2UsIGRpcmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5z
YWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJREJJ
bmRleEJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBUaGUg
dHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHBy
b3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlv
bnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQkluZGV4LT5nZXRP
YmplY3Qoa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFu
c2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLXZvaWQgSURC
SW5kZXhCYWNrZW5kUHJveHk6OmdldEtleShQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5n
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8g
VGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8g
YSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50
YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5z
YWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJh
bnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJJbmRleC0+
Z2V0S2V5KGtleVJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJh
bnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMWMzMzY5Mjg5MGUwOGQyMjljMDZmZmNhYjlm
NzgwYjlhMTU2YjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaAorKysg
L2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJB
UyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICog
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQkluZGV4QmFja2Vu
ZFByb3h5X2gKLSNkZWZpbmUgSURCSW5kZXhCYWNrZW5kUHJveHlfaAotCi0jaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCIK
LSNpbmNsdWRlICJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJ
REJJbmRleDsKLQotY2xhc3MgSURCSW5kZXhCYWNrZW5kUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6
SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkluZGV4
Pik7Ci0gICAgdmlydHVhbCB+SURCSW5kZXhCYWNrZW5kUHJveHkoKTsKLQotICAgIHZpcnR1YWwg
dm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJD
YWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7
Ci0KLXByaXZhdGU6Ci0gICAgSURCSW5kZXhCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJJREJJ
bmRleD4pOwotCi0gICAgT3duUHRyPFdlYklEQkluZGV4PiBtX3dlYklEQkluZGV4OwotfTsKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8gSURCSW5kZXhCYWNr
ZW5kUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
T2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCA4ZTg5ZGViMDMzZjNkZWM5ODhhYTY3YWMzY2RlNGE1ZDk2OTVmYmZkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1
NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklEQk9iamVj
dFN0b3JlQmFja2VuZFByb3h5LmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQot
I2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKLSNp
bmNsdWRlICJJREJJbmRleEJhY2tlbmRQcm94eS5oIgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgi
Ci0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLSNpbmNsdWRlICJXZWJJ
REJDYWxsYmFja3NJbXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRl
ICJXZWJJREJJbmRleC5oIgotI2luY2x1ZGUgIldlYklEQktleS5oIgotI2luY2x1ZGUgIldlYklE
Qk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25JbXBsLmgiCi0jaW5j
bHVkZSAicGxhdGZvcm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0KLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpjcmVh
dGUoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eShvYmplY3RTdG9yZSkp
OwotfQotCi1JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6SURCT2JqZWN0U3RvcmVCYWNrZW5k
UHJveHkoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUpCi0gICAgOiBt
X3dlYklEQk9iamVjdFN0b3JlKG9iamVjdFN0b3JlKQotewotfQotCi1JREJPYmplY3RTdG9yZUJh
Y2tlbmRQcm94eTo6fklEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5KCkKLXsKLX0KLQotdm9pZCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtl
eVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRl
ciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBs
ZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9i
amVjdFN0b3JlLT5nZXQoa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNr
cyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0K
LXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnB1dChQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFB1dE1vZGUgcHV0
TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKLXsKLSAgICAvLyBUaGUg
dHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHBy
b3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlv
bnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3Jl
LT5wdXQodmFsdWUsIGtleSwgc3RhdGljX2Nhc3Q8V2ViSURCT2JqZWN0U3RvcmU6OlB1dE1vZGU+
KHB1dE1vZGUpLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rp
b25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7Ci19
Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnNldEluZGV4S2V5cyhQYXNzUmVm
UHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElk
cywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cywgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKLXsKLSAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9p
bnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywg
aW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVy
ZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkq
IHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5zZXRJbmRleEtleXMo
cHJwUHJpbWFyeUtleSwgV2ViVmVjdG9yPGxvbmcgbG9uZz4oaW5kZXhJZHMpLCBpbmRleEtleXMs
ICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpKTsKLX0KLQotdm9pZCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8g
YmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAg
Ly8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0
cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0
YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAg
IG1fd2ViSURCT2JqZWN0U3RvcmUtPmRlbGV0ZUZ1bmN0aW9uKGtleVJhbmdlLCBuZXcgV2ViSURC
Q2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJh
bnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5Ojpj
bGVhcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAv
LyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0
byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1l
bnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJh
bnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVj
dFN0b3JlLT5jbGVhcihuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNh
Y3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi1QYXNzUmVmUHRy
PElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmNy
ZWF0ZUluZGV4KGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0
aCYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
Ly8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIg
dG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVt
ZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRy
YW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgT3duUHRyPFdlYklE
QkluZGV4PiBpbmRleCA9IGFkb3B0UHRyKG1fd2ViSURCT2JqZWN0U3RvcmUtPmNyZWF0ZUluZGV4
KGlkLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksICp0cmFuc2FjdGlvblByb3h5
LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYykpOwotICAgIGlmICghaW5kZXgpCi0gICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiBJREJJbmRleEJhY2tlbmRQcm94eTo6Y3JlYXRlKGluZGV4
LnJlbGVhc2UoKSk7Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnNldElu
ZGV4ZXNSZWFkeShjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlv
biBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0
IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIg
aW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPnNldEluZGV4
ZXNSZWFkeShXZWJWZWN0b3I8bG9uZyBsb25nPihpbmRleElkcyksICp0cmFuc2FjdGlvblByb3h5
LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpKTsKLX0KLQotUGFzc1JlZlB0cjxJREJJbmRleEJhY2tl
bmRJbnRlcmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjppbmRleChpbnQ2NF90IGlu
ZGV4SWQpCi17Ci0gICAgT3duUHRyPFdlYklEQkluZGV4PiBpbmRleCA9IGFkb3B0UHRyKG1fd2Vi
SURCT2JqZWN0U3RvcmUtPmluZGV4KGluZGV4SWQpKTsKLSAgICBpZiAoIWluZGV4KQotICAgICAg
ICByZXR1cm4gMDsKLSAgICByZXR1cm4gSURCSW5kZXhCYWNrZW5kUHJveHk6OmNyZWF0ZShpbmRl
eC5yZWxlYXNlKCkpOwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpkZWxl
dGVJbmRleChjb25zdCBpbnQ2NF90IGluZGV4SWQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFu
c2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkg
b2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBv
ZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPmRl
bGV0ZUluZGV4KGluZGV4SWQsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlv
bigpLCBlYyk7Ci19Ci12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpvcGVuQ3Vyc29y
KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJl
Y3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRo
ZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEg
cHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0
aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5z
YWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3Rv
cmUtPm9wZW5DdXJzb3IocmFuZ2UsIHN0YXRpY19jYXN0PFdlYklEQkN1cnNvcjo6RGlyZWN0aW9u
PihkaXJlY3Rpb24pLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBzdGF0aWNf
Y2FzdDxXZWJJREJUcmFuc2FjdGlvbjo6VGFza1R5cGU+KHRhc2tUeXBlKSwgKnRyYW5zYWN0aW9u
UHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJREJPYmplY3RT
dG9yZUJhY2tlbmRQcm94eTo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0
cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJv
eHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9u
cyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUt
PmNvdW50KHJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNh
Y3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFBy
b3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOGY2YmJkZDgyZDFmMmIwODk0
M2U3ODMyZWU1OGFlYmUyMjU5ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5X2gKLSNkZWZpbmUgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kUHJveHlfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJ
REJLZXlQYXRoLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgi
Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYklEQk9iamVjdFN0b3JlOwotCi1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eSA6
IHB1YmxpYyBXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UgewotcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCT2JqZWN0U3RvcmU+KTsKLSAgICB2aXJ0
dWFsIH5JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGdl
dChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChQYXNzUmVmUHRy
PFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
S2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3Jl
OjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBXVEY6OlZlY3RvcjxpbnQ2
NF90PiYsIGNvbnN0IFdURjo6VmVjdG9yPEluZGV4S2V5cz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4sIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBj
bGVhcihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKLQotICAg
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJbmRl
eChpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6OklEQktleVBh
dGgmLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVh
bCB2b2lkIHNldEluZGV4S2V5cyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJwUHJpbWFy
eUtleSwgY29uc3QgV1RGOjpWZWN0b3I8aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlz
PiYsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7Ci0KLSAgICBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoaW50NjRfdCk7Ci0gICAgdm9pZCBk
ZWxldGVJbmRleChpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1
cnNvcihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgV2ViQ29yZTo6SURCQ3Vyc29y
OjpEaXJlY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAg
IHZpcnR1YWwgdm9pZCBjb3VudChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6Ci0g
ICAgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9y
ZT4pOwotCi0gICAgT3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBtX3dlYklEQk9iamVjdFN0b3Jl
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8gSURC
T2JqZWN0U3RvcmVCYWNrZW5kUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCmluZGV4IDZlMDEzNGMy
YTlmYWQyNjgzMDY1OWE4ZGI0MDk3MzZjYTAwMTE1ZjUuLjAyYTA1OGNmN2MwOGJkMmM0Zjk3ZWQ2
Nzk4NDBjZDg5N2IyM2Q2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAKQEAgLTI4LDEwICsyOCw4IEBA
CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQk9iamVjdFN0
b3JlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIK
ICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2ViSURCT2JqZWN0
U3RvcmUuaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIldlYklE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oIgogCkBAIC01NCwxNCArNTIsNiBAQCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eTo6fklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KCkKIHsKIH0K
IAotUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpvYmplY3RTdG9yZShpbnQ2NF90IGluZGV4SWQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIE93blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0
U3RvcmUgPSBhZG9wdFB0cihtX3dlYklEQlRyYW5zYWN0aW9uLT5vYmplY3RTdG9yZShpbmRleElk
LCBlYykpOwotICAgIGlmICghb2JqZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJl
dHVybiBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6Y3JlYXRlKG9iamVjdFN0b3JlLnJlbGVh
c2UoKSk7Ci19Ci0KIHZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNvbW1pdCgpCiB7
CiAgICAgbV93ZWJJREJUcmFuc2FjdGlvbi0+Y29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaAppbmRleCA4
ZWFkMzE2NGMyY2NkODA3ZjAxYTViOGE4ZWQ2MmY5YTJlYjZiMjFlLi5jNmMzZDg0MTIwNzdlNDY5
MDQ1MDZiMDgyZWVmNzJkM2NiNGU0MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgKQEAgLTQxLDcgKzQxLDYg
QEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+KTsKICAgICB2aXJ0
dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUo
aW50NjRfdCwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjb21t
aXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2Fs
bGJhY2tzKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCAzODU1YmU1
OTI1YzdiZWYwYTE2NGVmNjYyOGY4MzdlNjM0ZmUwZmQxLi44ODdkMTVkMTJjYzAwMDk2MDU5NmQ2
MDk3YmZhYzExMzE1YWY1ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTMwLDE3ICszMCwxNyBAQAogCiAjaW5jbHVkZSAi
RE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCisjaW5jbHVk
ZSAiSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgi
CiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1ZGUgIklEQktl
eVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJPYmplY3RT
dG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJ
REJEYXRhYmFzZUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUg
IldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRl
ICJXZWJJREJPYmplY3RTdG9yZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbklt
cGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02MiwyNiArNjIsMTEgQEAgV2Vi
SURCTWV0YWRhdGEgV2ViSURCRGF0YWJhc2VJbXBsOjptZXRhZGF0YSgpIGNvbnN0CiAgICAgcmV0
dXJuIG1fZGF0YWJhc2VCYWNrZW5kLT5tZXRhZGF0YSgpOwogfQogCi1XZWJJREJPYmplY3RTdG9y
ZSogV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcgaWQsIGNv
bnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBh
dXRvSW5jcmVtZW50LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2U+IG9iamVjdFN0b3JlID0gbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZU9iamVjdFN0b3Jl
KGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCB0cmFuc2FjdGlvbi5nZXRJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotICAgIGlmICghb2JqZWN0U3RvcmUpIHsK
LSAgICAgICAgQVNTRVJUKGVjKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHJldHVy
biBuZXcgV2ViSURCT2JqZWN0U3RvcmVJbXBsKG9iamVjdFN0b3JlKTsKLX0KLQogdm9pZCBXZWJJ
REJEYXRhYmFzZUltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBX
ZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgbV9kYXRh
YmFzZUJhY2tlbmQtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3Jl
SWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpOwogfQogCi12b2lkIFdlYklEQkRhdGFi
YXNlSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgbV9kYXRhYmFzZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWQs
IHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19
Ci0KIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcg
dHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQpCiB7CiAgICAgbV9kYXRhYmFz
ZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQp
OwpAQCAtMTY1LDcgKzE1MCw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpwdXQobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBXCiAKICAgICBBU1NF
UlQod2ViSW5kZXhJZHMuc2l6ZSgpID09IHdlYkluZGV4S2V5cy5zaXplKCkpOwogICAgIFZlY3Rv
cjxpbnQ2NF90PiBpbmRleElkcyh3ZWJJbmRleElkcy5zaXplKCkpOwotICAgIFZlY3RvcjxJREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4
S2V5cy5zaXplKCkpOworICAgIFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Oklu
ZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOwogCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB3ZWJJbmRleElkcy5zaXplKCk7ICsraSkgewogICAgICAgICBpbmRleElk
c1tpXSA9IHdlYkluZGV4SWRzW2ldOwpAQCAtMTg3LDcgKzE3Miw3IEBAIHZvaWQgV2ViSURCRGF0
YWJhc2VJbXBsOjpzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9u
ZyBvYmplY3RTCiAKICAgICBBU1NFUlQod2ViSW5kZXhJZHMuc2l6ZSgpID09IHdlYkluZGV4S2V5
cy5zaXplKCkpOwogICAgIFZlY3RvcjxpbnQ2NF90PiBpbmRleElkcyh3ZWJJbmRleElkcy5zaXpl
KCkpOwotICAgIFZlY3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5
cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOworICAgIFZlY3RvcjxJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXpl
KCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3ZWJJbmRleElkcy5zaXplKCk7ICsr
aSkgewogICAgICAgICBpbmRleElkc1tpXSA9IHdlYkluZGV4SWRzW2ldOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCBhY2U1MjBhZGIw
MmJjOTczYmE2NjZjOWM2MTRiZjUwOGVhNjc2ZTk0Li45MTg0NjIyZWFiYzgyNGIxYTA3NzNhZDBm
Mzk4ODUzMzBlNGY4YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJEYXRhYmFzZUltcGwuaApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgV2ViSURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBXZWJJREJEYXRhYmFzZU1ldGFk
YXRhOwotY2xhc3MgV2ViSURCT2JqZWN0U3RvcmU7CiBjbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsK
IAogLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2
aWV3IHRoZXNlIGNsYXNzZXMuCkBAIC01Myw5ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgV2ViSURCTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgV2ViSURC
T2JqZWN0U3RvcmUqIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZywgY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBi
b29sIGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShs
b25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9u
ZyBvYmplY3RTdG9yZUlkLCBsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAgICAgLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5z
YWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25l
ZCBzaG9ydCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkZhY3RvcnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZh
Y3RvcnlJbXBsLmNwcAppbmRleCBkMTBlYjkyMTYyY2M5NzEzYzM0OGFhNGY3ZjhkOGYwMTViODg4
MzFiLi4zNTg5ZTE1NWQzNGQ1MDY4ZjBlYzIxMDUzYjdiOTQ4Yjk0MDJhMjRmIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCkBAIC02NSwx
NSArNjUsNiBAQCB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRhYmFzZU5hbWVzKFdlYklE
QkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1faWRiRmFjdG9yeUJhY2tl
bmQtPmdldERhdGFiYXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihj
YWxsYmFja3MpKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAotLy8gRklYTUU6IFJlbW92ZSB0
aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTIzLgotdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0
YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKLXsKLSAgICBS
ZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tzUHJv
eHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKLSAgICBSZWZQdHI8SURCRGF0YWJhc2VD
YWxsYmFja3NQcm94eT4gZGF0YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFiYXNlQ2FsbGJh
Y2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZUNhbGxiYWNrcykpOwotICAgIGNhbGxi
YWNrc1Byb3h5LT5zZXREYXRhYmFzZUNhbGxiYWNrcyhkYXRhYmFzZUNhbGxiYWNrc1Byb3h5KTsK
LSAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIGNhbGxiYWNrc1By
b3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFE
aXIpOwotfQotCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJD
YWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2Fs
bGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0
IFdlYlN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNh
bGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFj
a3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3Rv
cnlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5o
CmluZGV4IDdjMGRlZTc5MTE5MzJhNmQ0ZjJkMzkxOTkzM2EyNjIwYTk2NDZkOTMuLjE2NjlmOWQw
ZjgwZGQxYmYwMTFkYTFiYmQzZWZlY2M5Mzc3NDM3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaApAQCAtNDUsOCArNDUsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeUltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBn
ZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2lu
JiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwotICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJEYXRhYmFzZUNhbGxi
YWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJp
bmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxs
YmFja3MqLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2lu
JiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRh
dGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJ
bmRleEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBs
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA4Zjg1NGYzNWY1ODcyMmRiZjUw
ODgyZDM0NjQ1YWY5MjFlZDQ4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJXZWJJREJJbmRleEltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQotCi0jaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKLSNpbmNsdWRlICJJREJJ
bmRleC5oIgotI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgotI2luY2x1ZGUg
IklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAi
V2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJJbmRleEltcGw6Oldl
YklEQkluZGV4SW1wbChQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gYmFja2Vu
ZCkKLSAgICA6IG1fYmFja2VuZChiYWNrZW5kKQotewotfQotCi1XZWJJREJJbmRleEltcGw6On5X
ZWJJREJJbmRleEltcGwoKQotewotfQotCi12b2lkIFdlYklEQkluZGV4SW1wbDo6b3Blbk9iamVj
dEN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRp
cmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9iYWNrZW5k
LT5vcGVuQ3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVh
dGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCSW5kZXhJbXBsOjpvcGVuS2V5
Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX2JhY2tlbmQt
Pm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJbmRleEltcGw6OmNvdW50
KGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgIFdlYklEQkNhbGxiYWNrcyogY2FsbGJh
Y2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+Y291bnQoa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1By
b3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCSW5kZXhJbXBs
OjpnZXRPYmplY3QoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCBXZWJJREJDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJF
eGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX2JhY2tlbmQtPmdldChrZXlSYW5nZSwgSURCQ2Fs
bGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJ
bmRleEltcGw6OmdldEtleShjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNh
bGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24s
IFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+Z2V0S2V5KGtleVJhbmdl
LCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2Fj
dGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTc4YTA5NzliYTVmNzRlMDJiZGQ0ZTdhYTU2ZmY3NzkxNjMw
MGYzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysgL2Rldi9udWxsCkBA
IC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQkluZGV4SW1wbF9oCi0jZGVmaW5l
IFdlYklEQkluZGV4SW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2lu
Y2x1ZGUgIldlYklEQkluZGV4LmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1vbi5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkluZGV4QmFja2VuZEludGVyZmFjZTsgfQotCi1uYW1l
c3BhY2UgV2ViS2l0IHsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNlIGZv
ciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQkluZGV4
SW1wbCA6IHB1YmxpYyBXZWJJREJJbmRleCB7Ci1wdWJsaWM6Ci0gICAgV2ViSURCSW5kZXhJbXBs
KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+KTsKLSAg
ICB2aXJ0dWFsIH5XZWJJREJJbmRleEltcGwoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuT2Jq
ZWN0Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlv
bkNvZGUmKTsgCi0gICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoY29uc3QgV2ViSURCS2V5
UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9p
ZCBjb3VudChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdl
YklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBn
ZXRPYmplY3QoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0S2V5KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2Vi
SURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6Ci0gICAgV1RG
OjpSZWZQdHI8V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBtX2JhY2tlbmQ7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQotCi0jZW5kaWYgLy8gV2ViSURCSW5kZXhJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAxMDI4MDRiYzgxZGY2NDhhZWJmYjA5MmUwYzE0YTg5MzIyYjlk
NTk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwxNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJXZWJJREJPYmplY3RTdG9yZUltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQotCi0jaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIklEQkNhbGxiYWNr
c1Byb3h5LmgiCi0jaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVk
ZSAiSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiV2ViSURCSW5kZXhJbXBs
LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIK
LSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFt
ZXNwYWNlIFdlYktpdCB7Ci0KLVdlYklEQk9iamVjdFN0b3JlSW1wbDo6V2ViSURCT2JqZWN0U3Rv
cmVJbXBsKFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBvYmplY3RT
dG9yZSkKLSAgICA6IG1fb2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCi17Ci19Ci0KLVdlYklEQk9i
amVjdFN0b3JlSW1wbDo6fldlYklEQk9iamVjdFN0b3JlSW1wbCgpCi17Ci19Ci0KLXZvaWQgV2Vi
SURCT2JqZWN0U3RvcmVJbXBsOjpnZXQoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCBX
ZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX29iamVjdFN0b3JlLT5nZXQo
a2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSks
IHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19
Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpwdXQoY29uc3QgV2ViU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiBrZXksIFB1dE1vZGUgcHV0TW9kZSwg
V2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFu
c2FjdGlvbiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBX
ZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQotewotICAgIEFTU0VSVCh3ZWJJ
bmRleElkcy5zaXplKCkgPT0gd2ViSW5kZXhLZXlzLnNpemUoKSk7Ci0gICAgVmVjdG9yPGludDY0
X3Q+IGluZGV4SWRzKHdlYkluZGV4SWRzLnNpemUoKSk7Ci0gICAgVmVjdG9yPElEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRleEtleXMod2ViSW5kZXhLZXlzLnNp
emUoKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYkluZGV4SWRzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIGluZGV4SWRzW2ldID0gd2ViSW5kZXhJZHNbaV07Ci0gICAgICAgIFZl
Y3RvcjxSZWZQdHI8SURCS2V5PiA+IGluZGV4S2V5TGlzdCh3ZWJJbmRleEtleXNbaV0uc2l6ZSgp
KTsKLSAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB3ZWJJbmRleEtleXNbaV0uc2l6ZSgp
OyArK2opCi0gICAgICAgICAgICBpbmRleEtleUxpc3Rbal0gPSB3ZWJJbmRleEtleXNbaV1bal07
Ci0gICAgICAgIGluZGV4S2V5c1tpXSA9IGluZGV4S2V5TGlzdDsKLSAgICB9Ci0KLSAgICBtX29i
amVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgc3RhdGljX2Nhc3Q8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRNb2RlKSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0
ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKCksIGluZGV4SWRzLCBpbmRleEtleXMpOwotfQotCi12b2lkIFdlYklEQk9i
amVjdFN0b3JlSW1wbDo6c2V0SW5kZXhLZXlzKGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwg
Y29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8
V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24pCi17Ci0gICAgQVNTRVJUKHdlYkluZGV4SWRzLnNpemUoKSA9PSB3ZWJJbmRleEtl
eXMuc2l6ZSgpKTsKLSAgICBWZWN0b3I8aW50NjRfdD4gaW5kZXhJZHMod2ViSW5kZXhJZHMuc2l6
ZSgpKTsKLSAgICBWZWN0b3I8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtl
eXM+IGluZGV4S2V5cyh3ZWJJbmRleEtleXMuc2l6ZSgpKTsKLQotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgd2ViSW5kZXhJZHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaW5kZXhJZHNbaV0g
PSB3ZWJJbmRleElkc1tpXTsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4gaW5kZXhL
ZXlMaXN0KHdlYkluZGV4S2V5c1tpXS5zaXplKCkpOwotICAgICAgICBmb3IgKHNpemVfdCBqID0g
MDsgaiA8IHdlYkluZGV4S2V5c1tpXS5zaXplKCk7ICsraikKLSAgICAgICAgICAgIGluZGV4S2V5
TGlzdFtqXSA9IHdlYkluZGV4S2V5c1tpXVtqXTsKLSAgICAgICAgaW5kZXhLZXlzW2ldID0gaW5k
ZXhLZXlMaXN0OwotICAgIH0KLSAgICBtX29iamVjdFN0b3JlLT5zZXRJbmRleEtleXMocHJpbWFy
eUtleSwgaW5kZXhJZHMsIGluZGV4S2V5cywgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKCkpOwotfQotCi12b2lkIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6c2V0
SW5kZXhlc1JlYWR5KGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJbmRleE5hbWVzLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCi17Ci0gICAgVmVjdG9yPGludDY0
X3Q+IGluZGV4SWRzKHdlYkluZGV4TmFtZXMuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHdlYkluZGV4TmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGluZGV4SWRzW2ldID0g
d2ViSW5kZXhOYW1lc1tpXTsKLSAgICBtX29iamVjdFN0b3JlLT5zZXRJbmRleGVzUmVhZHkoaW5k
ZXhJZHMsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpKTsK
LX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdl
YklEQktleVJhbmdlJiBrZXlSYW5nZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgbV9vYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rpb24oa2V5UmFuZ2UsIElEQkNhbGxiYWNr
c1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0
U3RvcmVJbXBsOjpjbGVhcihXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBt
X29iamVjdFN0b3JlLT5jbGVhcihJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNh
bGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uo
KSwgZWMpOwotfQotCi1XZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjcmVhdGVJ
bmRleChsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5
UGF0aCYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBS
ZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0U3RvcmUtPmNy
ZWF0ZUluZGV4KGlkLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksIHRyYW5zYWN0
aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci0gICAgaWYgKCFp
bmRleCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBXZWJJREJJbmRleEltcGwo
aW5kZXgpOwotfQotCi1XZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBsOjppbmRleChs
b25nIGxvbmcgb2JqZWN0U3RvcmVJZCkKLXsKLSAgICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50
ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0U3RvcmUtPmluZGV4KG9iamVjdFN0b3JlSWQpOwotICAg
IGlmICghaW5kZXgpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBuZXcgV2ViSURCSW5k
ZXhJbXBsKGluZGV4KTsKLX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmRlbGV0ZUlu
ZGV4KGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0U3RvcmUtPmRl
bGV0ZUluZGV4KG9iamVjdFN0b3JlSWQsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpv
cGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgV2ViSURCQ3Vyc29yOjpE
aXJlY3Rpb24gZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCVHJh
bnNhY3Rpb246OlRhc2tUeXBlIHRhc2tUeXBlLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0U3RvcmUtPm9w
ZW5DdXJzb3Ioa2V5UmFuZ2UsIHN0YXRpY19jYXN0PElEQkN1cnNvcjo6RGlyZWN0aW9uPihkaXJl
Y3Rpb24pLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBz
dGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlPih0YXNr
VHlwZSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBl
Yyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjb3VudChjb25zdCBXZWJJREJL
ZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJ
REJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IG1fb2JqZWN0U3RvcmUtPmNvdW50KGtleVJhbmdlLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRl
KGFkb3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UoKSwgZWMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzM2OTY0YzUxMmJmZmU1ZDM0ZWZmODdjNDQ3NDJiYTdmOTk4YWYzNS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDcwICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCi0jZGVmaW5lIFdl
YklEQk9iamVjdFN0b3JlSW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQot
I2luY2x1ZGUgIldlYklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1v
bi5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZTsgfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCSW5kZXg7Ci0KLS8v
IFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWRPYmplY3RTdG9yZSBmb3IgYSBoaWdoIGxldmVsIG92
ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCi1jbGFzcyBXZWJJREJPYmplY3RTdG9yZUltcGwgOiBwdWJs
aWMgV2ViSURCT2JqZWN0U3RvcmUgewotcHVibGljOgotICAgIFdlYklEQk9iamVjdFN0b3JlSW1w
bChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
Pik7Ci0gICAgfldlYklEQk9iamVjdFN0b3JlSW1wbCgpOwotCi0gICAgdm9pZCBnZXQoY29uc3Qg
V2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHB1dChjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+Jiwg
Y29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKTsKLSAgICB2b2lkIHNldEluZGV4S2V5cyhj
b25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhOYW1lcywg
Y29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYp
OwotICAgIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+Jiwg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKTsKLSAgICB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0
IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBjbGVhcihXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIFdl
YklEQkluZGV4KiBjcmVhdGVJbmRleChsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
Y29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIFdlYklEQkluZGV4
KiBpbmRleChsb25nIGxvbmcpOwotICAgIHZvaWQgZGVsZXRlSW5kZXgobG9uZyBsb25nLCBjb25z
dCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgb3Bl
bkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkN1cnNvcjo6RGlyZWN0aW9uLCBX
ZWJJREJDYWxsYmFja3MqLCBXZWJJREJUcmFuc2FjdGlvbjo6VGFza1R5cGUsIGNvbnN0IFdlYklE
QlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgY291bnQoY29uc3Qg
V2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotIHByaXZhdGU6Ci0gICAgV1RGOjpSZWZQdHI8V2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBtX29iamVjdFN0b3JlOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQotI2VuZGlmIC8vIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcAppbmRleCA0
MWY0YzlkMjAzOWZhNDE0NzdlMTdlM2U3ZWFkODk0OTRjZTFhYTg2Li45ZGZkNjdiZGQ4YjJlNTU3
NGM4NGY4MmQxYmYxOWQ1YjU5Nzg5MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHAKQEAgLTI4LDEwICsyOCw5IEBACiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCisjaW5jbHVk
ZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NQcm94eS5oIgotI2luY2x1ZGUgIldlYklEQk9iamVjdFN0b3JlSW1wbC5o
IgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwpAQCAtNDcsMTQgKzQ2LDYgQEAgV2ViSURCVHJhbnNhY3Rpb25JbXBsOjp+
V2ViSURCVHJhbnNhY3Rpb25JbXBsKCkKIHsKIH0KIAotV2ViSURCT2JqZWN0U3RvcmUqIFdlYklE
QlRyYW5zYWN0aW9uSW1wbDo6b2JqZWN0U3RvcmUobG9uZyBsb25nIGluZGV4SWQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IG9iamVjdFN0b3JlID0gbV9iYWNrZW5kLT5vYmplY3RTdG9yZShpbmRleElkLCBlYyk7Ci0gICAg
aWYgKCFvYmplY3RTdG9yZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBXZWJJ
REJPYmplY3RTdG9yZUltcGwob2JqZWN0U3RvcmUpOwotfQotCiB2b2lkIFdlYklEQlRyYW5zYWN0
aW9uSW1wbDo6Y29tbWl0KCkKIHsKICAgICBtX2JhY2tlbmQtPmNvbW1pdCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaAppbmRleCA0
MjcyY2JlMTBiMjcxMDExYjA3OTBmZDg5MDYxNmZlNDM3YWE5ODJiLi4xNmYwNmE2ZWVmNDVkMTk4
YWY1M2Q2NzI0ODlkYzk1MjIzNTYyN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6
CiAgICAgV2ViSURCVHJhbnNhY3Rpb25JbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIH5XZWJJREJUcmFuc2Fj
dGlvbkltcGwoKTsKIAotICAgIHZpcnR1YWwgV2ViSURCT2JqZWN0U3RvcmUqIG9iamVjdFN0b3Jl
KGxvbmcgbG9uZyBpbmRleElkLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lk
IGNvbW1pdCgpOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDYWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRl
eCA0NzNhMjA3ODZhMmI1YTExYjdiYzg4ZGQ3MjczNGYwZDRhODFiOTQzLi5kYTdjNmZhMTg2ZDMz
ZDAyYmViYmNiOGQ2NzdkYzA0MzMyMDE2ZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC0xMjYsNyArMTI2
LDcgQEAgVEVTVChJREJBYm9ydFRlc3QsIFRoZVRlc3QpCiAgICAgUmVmUHRyPEZha2VJREJEYXRh
YmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MgPSBGYWtlSURCRGF0YWJhc2VDYWxsYmFj
a3M6OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZSgiaHR0cCIsICJsb2NhbGhvc3QiLCA4MSk7CiAgICAgY29uc3QgaW50
NjRfdCBEdW1teVZlcnNpb24gPSAyOwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwgRHVtbXlWZXJz
aW9uLCBjYWxsYmFja3MuZ2V0KCksIGRhdGFiYXNlQ2FsbGJhY2tzLCBvcmlnaW4sIDAgLypGcmFt
ZSovLCBTdHJpbmcoKSAvKnBhdGgqLyk7CisgICAgZmFjdG9yeS0+b3BlbihuYW1lLCBEdW1teVZl
cnNpb24sIDEsIGNhbGxiYWNrcy5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3MsIG9yaWdpbiwgMCAv
KkZyYW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRl
c3QuY3BwCmluZGV4IDdjZDY0NGE0MTIwY2I4Zjc3ZGM5NmY1YzJlMGZiMzk3MzdiNDgyODguLjM1
YTVkNTBhZjNlOWUyM2UyYmE0NTM3MjJiYmViOGE4ZWVlZTE4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApA
QCAtMTM3LDEwICsxMzcsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBJREJEYXRh
YmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gSURCRGF0YWJhc2VNZXRhZGF0
YSgpOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogICAgIHZp
cnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwg
Ym9vbCBhdXRvSW5jcmVtZW50KSBPVkVSUklERSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRf
dCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJS
SURFIHsgfQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2
NF90LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJREJUcmFuc2FjdGlvbjo6TW9kZSkgT1ZFUlJJ
REUgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2
NF90LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgT1ZFUlJJREUgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182376</attachid>
            <date>2013-01-11 11:13:09 -0800</date>
            <delta_ts>2013-01-14 11:05:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106605-20130111111012.patch</filename>
            <type>text/plain</type>
            <size>126174</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5Mzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNhNjY5ZWY0NGYxNDcw
ZTNmZGZhNjU0MjY5NzYzMzBhMDdkMzM3Ni4uYjEwYWJiOGM4ZjViYmM3NzM1NjQ5ZjMwMjU4ODFi
ODI2MDY5MDc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxMy0wMS0xMCAgQWxl
YyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBS
ZW1vdmUgSURCT2JqZWN0U3RvcmUvSW5kZXhCYWNrZW5kSW1wbCBhbmQgc3VwcG9ydCBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjYw
NQorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlcyBvZiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2UgYW5kIElEQkluZGV4QmFja2VuZCosCisgICAgICAgIGFzIHRoZXkgYXJlIG5vIGxvbmdl
ciB1c2VkIGFmdGVyIHJlY2VudCByZWZhY3RvcmluZy4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNh
bGxiYWNrcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6dXBkYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRJbXBs
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFj
ZS5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChJ
REJPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpJbmRleFdyaXRlcjo6SW5kZXhXcml0ZXIpOgorICAgICAgICAoSW5k
ZXhXcml0ZXIpOgorICAgICAgICAoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoK
KyAgICAgICAgKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5jcHA6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisyMDEzLTAxLTA4ICBBbGVjIEZsZXR0
ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFsbG93IGNy
ZWF0ZUluZGV4L2NyZWF0ZU9iamVjdFN0b3JlIHRvIGJlIGFzeW5jaHJvbm91cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Mzc3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBNaWdyYXRlIGltcGxlbWVudGF0aW9u
cyBvZiBjcmVhdGVJbmRleC9kZWxldGVJbmRleCwKKyAgICAgICAgY3JlYXRlT2JqZWN0U3RvcmUv
ZGVsZXRlT2JqZWN0U3RvcmUgb3ZlciB0byBJREJEYXRhYmFzZUJhY2tlbmRJbXBsLAorICAgICAg
ICBzbyB0aGF0IHRoZXkgY2FuIGJlIGFzeW5jaHJvbm91cyBpbiBtdWx0aS1wcm9jZXNzIHBvcnRz
LgorCisgICAgICAgIEhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgcmVtb3ZpbmcgdGhlIGxhc3QgY29u
c3VtZXJzIG9mCisgICAgICAgIElEQkluZGV4QmFja2VuZEltcGwgYW5kIElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuIFRoZSBmb3JtZXIKKyAgICAgICAgaXMgcmVtb3ZlZCBjb21wbGV0ZSBhbmQg
dGhlIGxhdHRlciBiZWNvbWVzIGEgdGVtcG9yYXJ5IG5hbWVzcGFjZQorICAgICAgICBwZW5kaW5n
IGEgZnVydGhlciBtb3JlIG1lY2hhbmljYWwgY29kZSBzaHVmZmxlLgorCisgICAgICAgIEEga2V5
IHJlZmFjdG9yaW5nIGVmZmVjdCBpcyB0aGF0IHRoZSBJREJEYXRhYmFzZUJhY2tlbmRJbXBsCisg
ICAgICAgIG5vdyBjb250YWlucyB0aGUgYXV0aG9yaXRhdGl2ZSBJREJEYXRhYmFzZU1ldGFkYXRh
IGhpZXJhcmNoeSwKKyAgICAgICAgYW5kIHVwZGF0ZXMgdG8gaXQgYXJlIGNvbnNvbGlkYXRlZCBp
biBvbmUgcGxhY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgc2NhdHRlcmVkIGFjcm9zcyBhIHBhcmFs
bGVsIG9iamVjdCB0cmVlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIGlzIGp1c3Qg
cmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3Rv
cmUuY3BwOiBTaW1wbGlmeSBvYmplY3RzdG9yZS9pbmRleCBsb2FkaW5nIGFuZCBwcm9wYWdhdGUg
ZXJyb3JzLgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpnZXRPYmplY3RTdG9y
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpnZXRJbmRleGVzKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKElE
QkJhY2tpbmdTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFj
a2VuZEltcGwuY3BwOiBEZXBlbmRlbmN5IGNsZWFudXAuCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaDogRGVwZW5kZW5jeSBjbGVhbnVwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
OiBGcm9udGVuZCBJREJPYmplY3RTdG9yZXMgbm8gbG9uZ2VyIGhvbGQgb250byBiYWNrZW5kIG9i
amVjdHMuCisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDogQWRk
IGFsbCBjcmVhdGUvZGVsZXRlSW5kZXggb3BlcmF0aW9ucyBmcm9tIElEQkluZGV4QmFja2VuZElt
cGwuCisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpDcmVhdGVP
YmplY3RTdG9yZU9wZXJhdGlvbik6CisgICAgICAgIChDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbik6CisgICAgICAgIChEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlv
bjo6Q3JlYXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbik6CisgICAgICAgIChDcmVhdGVPYmpl
Y3RTdG9yZUFib3J0T3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZU9iamVjdFN0
b3JlQWJvcnRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmpl
Y3RTdG9yZUFib3J0T3BlcmF0aW9uOjpEZWxldGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uKToK
KyAgICAgICAgKERlbGV0ZU9iamVjdFN0b3JlQWJvcnRPcGVyYXRpb24pOgorICAgICAgICAoQ3Jl
YXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlSW5kZXhPcGVyYXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVJbmRleE9wZXJhdGlvbjo6Q3Jl
YXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZWxldGVJ
bmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUluZGV4T3BlcmF0aW9uOjpEZWxldGVJ
bmRleE9wZXJhdGlvbik6CisgICAgICAgIChDcmVhdGVJbmRleEFib3J0T3BlcmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4QWJvcnRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDcmVhdGVJbmRleEFib3J0T3BlcmF0aW9uOjpDcmVhdGVJbmRleEFib3J0
T3BlcmF0aW9uKToKKyAgICAgICAgKERlbGV0ZUluZGV4QWJvcnRPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhBYm9ydE9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUluZGV4QWJvcnRPcGVyYXRpb246OkRlbGV0ZUluZGV4QWJvcnRPcGVy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2V0T3BlcmF0aW9uOjpHZXRPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6YWRkT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6YWRkSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkludGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6Om1ldGFkYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpw
ZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmRlbGV0
ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4T3BlcmF0aW9uOjpw
ZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4QWJvcnRPcGVyYXRpb246OnBl
cmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRl
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhPcGVyYXRpb246OnBlcmZvcm0p
OgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhBYm9ydE9wZXJhdGlvbjo6cGVyZm9ybSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpnZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEluZGV4S2V5cyk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWxldGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpkZWxldGVEYXRhYmFzZUZpbmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmxvYWRPYmplY3RTdG9yZXMpOiBMb2FkIGRpcmVjdGx5
IGludG8gbWV0YWRhdGEgZnJvbSBiYWNraW5nIHN0b3JlLgorICAgICAgICAoV2ViQ29yZTo6Q3Jl
YXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWxldGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlZlcnNpb25DaGFuZ2VBYm9ydE9wZXJhdGlv
bjo6cGVyZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tl
bmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0
ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eEJhY2tlbmRJbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleEJhY2tlbmRJbXBsLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6
OklEQk9iamVjdFN0b3JlKTogRnJvbnRlbmQgSURCSW5kZXggb2JqZWN0cyBubyBsb25nZXIgaG9s
ZCBvbnRvIGJhY2tlbmQuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3JlYXRl
SW5kZXgpOiAKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpkZWxldGVJbmRleCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpjcmVhdGUpOgorICAgICAgICAoSURCT2JqZWN0U3Rv
cmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Om9iamVjdFN0b3JlKToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTAx
LTEwICBEYW4gQmVhbSAgPGRiZWFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQg
QXV0b2NvbXBsZXRlRXJyb3JFdmVudCNyZWFzb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggNTllMDExYzUwZDJlY2EyNGQ4ZmIyOTZkNjhhNWEyYTFkMTYxODA1Yi4uNDRkM2E2NjUwNzlj
ODFkMWE0YzU2YmY0YmY1NzgwZWZhZWUyM2JmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw3MCBAQAorMjAxMy0wMS0xMCAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1vdmUgSURCT2JqZWN0U3RvcmUvSW5k
ZXhCYWNrZW5kSW1wbCBhbmQgc3VwcG9ydCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjYwNQorCisgICAgICAgIFJlbW92ZSBhbGwg
cmVmZXJlbmNlcyB0byBJREJPYmplY3RTdG9yZUJhY2tlbmQqIGFuZCBJREJJbmRleEJhY2tlbmQq
CisgICAgICAgIGFzIHRoZXkgbm8gbG9uZ2VyIGV4aXN0IGluIFdlYkNvcmUuCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAg
ICAgKiBwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCRGF0YWJhc2U6Om1ldGFkYXRhKToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
SURCRmFjdG9yeS5oOgorICAgICAgICAoV2ViSURCRmFjdG9yeSk6CisgICAgICAgICogcHVibGlj
L1dlYklEQkluZGV4Lmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYklEQk9iamVjdFN0
b3JlLmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmg6Cisg
ICAgICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCRGF0
YWJhc2VCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQ
cm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNy
Yy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCRmFjdG9yeUJh
Y2tlbmRQcm94eS5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRQcm94eSk6CisgICAgICAg
ICogc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMv
SURCSW5kZXhCYWNrZW5kUHJveHkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvSURCT2JqZWN0
U3RvcmVCYWNrZW5kUHJveHkuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9JREJPYmplY3RT
dG9yZUJhY2tlbmRQcm94eS5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9JREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgICogc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5Lmg6CisgICAgICAgIChJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSk6CisgICAgICAgICog
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFi
YXNlSW1wbDo6cHV0KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCRGF0YWJhc2VJbXBsOjpzZXRJ
bmRleEtleXMpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJJREJEYXRhYmFzZUltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJJREJGYWN0b3J5SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkZhY3RvcnlJbXBs
OjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFjdG9yeUltcGwuaDoK
KyAgICAgICAgKFdlYklEQkZhY3RvcnlJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJ
bXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmg6IFJlbW92
ZWQuCisgICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5oOiBSZW1vdmVkLgorICAgICAgICAq
IHNyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJJREJUcmFu
c2FjdGlvbkltcGwuaDoKKyAgICAgICAgKiB0ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VEVTVCk6CisgICAgICAgICogdGVzdHMvSURCRGF0YWJhc2VC
YWNrZW5kVGVzdC5jcHA6CisKKzIwMTMtMDEtMDggIEFsZWMgRmxldHQgIDxhbGVjZmxldHRAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogQWxsb3cgY3JlYXRlSW5kZXgvY3JlYXRl
T2JqZWN0U3RvcmUgdG8gYmUgYXN5bmNocm9ub3VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYzNzcKKworICAgICAgICBSZXZpZXdlZCBieSBUb255
IENoYW5nLgorCisgICAgICAgIFJlbW92ZSB0aGlzIHRlc3QgYXMgaXQgbWFrZXMgbm8gc2Vuc2Ug
b25jZSB0aGUgb2JqZWN0c3RvcmUvaW5kZXgKKyAgICAgICAgaGllcmFyY2h5IGlzIGdvbmUuCisK
KyAgICAgICAgKiB0ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKwogMjAxMy0wMS0x
MCAgRGFuIEJlYW0gIDxkYmVhbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IEF1
dG9jb21wbGV0ZUVycm9yRXZlbnQjcmVhc29uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA2ZDRhMDI2ZDFmNTQ2OTdjMzI4ZDVkZmJhNWE4MWZkYmJhYzRhNGRiLi42MzM2Y2ZhYjAz
Y2E5NTkyYmYwYmE5M2E1MDhjMjM2Zjg2YTVhOGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTE4NzMsNyArMTg3Myw2IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwK
IAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIFwKLQlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwIFwKQEAgLTE4ODcsNyArMTg4Niw2IEBA
IHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJNZXRhZGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIFwKLQlTb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCBcCiAJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCmluZGV4IDFj
ZjRiN2JkMGRjNTRlMWRhMTkyNjI0MWUyZTNjZjM3ZjA2ZmEwNGMuLmY4ZDNjZTQ4Y2Q4Mzc0ZmYx
ZWQ2Yjk4Mjg4ZTY0OGZkYWI2ZTVhYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkNhbGxiYWNrcy5oCkBAIC00Miw3ICs0Miw2IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBET01TdHJpbmdMaXN0OwogY2xhc3MgSURCQ3Vyc29yQmFja2VuZEludGVy
ZmFjZTsKLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTsKIAogY2xhc3MgSURC
Q2FsbGJhY2tzIDogcHVibGljIFJlZkNvdW50ZWQ8SURCQ2FsbGJhY2tzPiB7CiBwdWJsaWM6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAppbmRleCBk
NDExZGE5Mzc1ZWZhYjkxMGNiZDY1ZTdkOWIxZTQ0YzkzMDgzZGMxLi5jN2RjNDdkZDljNDBlYjQ3
NjQzYjBhNmY0ODQ3YzI3MTNlOWMwN2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKQEAgLTE1Miw3ICsxNTIsNyBAQCBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQkN1cnNvcjo6dXBkYXRlKFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFs
dWUmIHZhbHVlLAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIG9iamVjdFN0b3JlLT5w
dXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUsIElEQkFueTo6
Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIG1fY3VycmVudFByaW1hcnlLZXksIGVjKTsKKyAg
ICByZXR1cm4gb2JqZWN0U3RvcmUtPnB1dChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkN1
cnNvclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1ZSwgbV9jdXJyZW50
UHJpbWFyeUtleSwgZWMpOwogfQogCiB2b2lkIElEQkN1cnNvcjo6YWR2YW5jZShsb25nIGxvbmcg
Y291bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCmluZGV4IDc0NjQ2ZDAwODE3NWRiYTRlMTVjOTQ3ZDE1
MjY5OTk5MjdkYWZmZDguLjg4M2E2NWM2ZWI0ZWVlNmQ0NDVlN2YxZTc2MGY5NmY3ZWI4YTM5YmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5j
cHAKQEAgLTE4Niw3ICsxODYsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJEYXRh
YmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjbwogICAgIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCA9IG1fbWV0YWRhdGEubWF4T2JqZWN0U3RvcmVJZCArIDE7CiAgICAg
bV9iYWNrZW5kLT5jcmVhdGVPYmplY3RTdG9yZShtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi0+
aWQoKSwgb2JqZWN0U3RvcmVJZCwgbmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCk7CiAKLSAg
ICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG1ldGFkYXRhKG5hbWUsIG9iamVjdFN0b3JlSWQsIGtl
eVBhdGgsIGF1dG9JbmNyZW1lbnQsIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6TWlu
aW11bUluZGV4SWQpOworICAgIElEQk9iamVjdFN0b3JlTWV0YWRhdGEgbWV0YWRhdGEobmFtZSwg
b2JqZWN0U3RvcmVJZCwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwgSURCRGF0YWJhc2VCYWNrZW5k
SW50ZXJmYWNlOjpNaW5pbXVtSW5kZXhJZCk7CiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBv
YmplY3RTdG9yZSA9IElEQk9iamVjdFN0b3JlOjpjcmVhdGUobWV0YWRhdGEsIG1fdmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uLmdldCgpKTsKICAgICBtX21ldGFkYXRhLm9iamVjdFN0b3Jlcy5zZXQo
bWV0YWRhdGEuaWQsIG1ldGFkYXRhKTsKICAgICArK21fbWV0YWRhdGEubWF4T2JqZWN0U3RvcmVJ
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggOTJjOTE4YzlhMDYxNDBiMjA3YzM3N2RjN2Qw
ZWM1MTk4NmY5Njk2YS4uYzZhZDEyNWEzN2M4NzA5ZjQ5ZDVjMWZiM2RkNzVlNzFmMzRmMDdlNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTU2MSw3ICs1NjEsNyBAQCB2b2lkIElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYgogICAgIEFTU0VSVChtX3RyYW5zYWN0aW9ucy5jb250YWlucyh0cmFuc2FjdGlv
bklkKSk7CiAgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24gPSBtX3Ry
YW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CiAKLSAgICBJREJPYmplY3RTdG9yZU1ldGFk
YXRhIG9iamVjdFN0b3JlTWV0YWRhdGEobmFtZSwgb2JqZWN0U3RvcmVJZCwga2V5UGF0aCwgYXV0
b0luY3JlbWVudCwgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpNaW5pbXVtSW5kZXhJ
ZCk7CisgICAgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBvYmplY3RTdG9yZU1ldGFkYXRhKG5hbWUs
IG9iamVjdFN0b3JlSWQsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZTo6TWluaW11bUluZGV4SWQpOwogCiAgICAgdHJhbnNhY3Rpb24tPnNjaGVkdWxl
VGFzayhDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLCBv
YmplY3RTdG9yZU1ldGFkYXRhKSwgQ3JlYXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbjo6Y3Jl
YXRlKHRoaXMsIG9iamVjdFN0b3JlSWQpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IDM0N2Yy
M2VkMWJhYzUxNzljOGY2NjcxNjNiMDI4MzU3YTYzZmYyOGUuLjY2YzFlZTJhYzQ5NzYzM2RiMDMw
ODJmOTA0MjlhYzU2N2M4YWIyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTYzLDkgKzYzLDcg
QEAgcHVibGljOgogCiAgICAgLy8gSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlCiAgICAgdmly
dHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9v
bCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRp
b25Db2RlJikgIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29s
IGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2
NF90LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgeyBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9y
ZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURCVHJhbnNhY3Rpb246
Ok1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCA0YmJmYmI4NmFjY2UxM2Iw
ODA3MTQyZjEyYWRjMzYxZjg4YWNlZTQwLi5jMjE5NjZjNWYwODFhYjFhMjBjZWJjZDUzOTI5YjE0
MWViNDAxM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNDAsNyArNDAsNiBA
QCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktl
eVBhdGg7CiBjbGFzcyBJREJLZXlSYW5nZTsKLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZTsKIGNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKIHN0cnVjdCBJ
REJEYXRhYmFzZU1ldGFkYXRhOwogCkBAIC01NSwxMSArNTQsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIElEQkRhdGFiYXNlTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdCA9IDA7CiAKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVP
YmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgm
LCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4
Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVs
ZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQpID0gMDsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRz
LCBJREJUcmFuc2FjdGlvbjo6TW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFu
c2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIG9iamVjdFN0b3JlSWRzLCB1bnNpZ25lZCBz
aG9ydCBtb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VDYWxsYmFja3M+KSA9IDA7CkBAIC04Miw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICAgICAg
Q3Vyc29yVXBkYXRlCiAgICAgfTsKIAorICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IE1pbmltdW1J
bmRleElkID0gMzA7CisKICAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+IEluZGV4
S2V5czsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZElt
cGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5k
SW1wbC5oCmluZGV4IDNjMTFjZDM1YTI5ODE0MGUwN2Q2ZDhmOTFiZjY1NTI5MzY1YjRhMTEuLjI0
ZjczYWVmODg5N2EwMjBjNjQ0MjUyN2YyOTlhY2EzNTllNmZhMDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5o
CkBAIC01OCwxMSArNTgsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkJh
Y2tpbmdTdG9yZShjb25zdCBTdHJpbmcmIGZpbGVJZGVudGlmaWVyKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpOwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIHZvaWQg
b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0
YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2lu
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIp
Ci0gICAgewotICAgICAgICByZXR1cm4gb3BlbihuYW1lLCB2ZXJzaW9uLCAwLCBjYWxsYmFja3Ms
IGRhdGFiYXNlQ2FsbGJhY2tzLCBzZWN1cml0eU9yaWdpbiwgY29udGV4dCwgZGF0YURpcik7Ci0g
ICAgfQogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2
ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwg
UGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlLmgKaW5kZXggYTlmZDNhNmYxMzM0YTMxODY1OTkzMjhmMWE3MjVkNGUwNmVjNDNmOC4u
MjNiN2MyMTRkZDc1ZDUwOWE3NmViZmY1NTBkYTA4YmZkYTQ3ZTc2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZS5oCkBAIC01NCw4ICs1NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFi
YXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAw
OwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25z
dCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9y
aWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVy
c2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKaW5kZXggYThjMTk2MDYw
M2E2MGUyZmI4YmM5NmU0NjIwMzBhYjhlYzk5MTNkMS4uNjgwYjdhN2YzMTQ3NzU5ZjUwYjRhMDFh
NDY0ZWY4ZDA3ZjE3MjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4LmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiSURCQ3Vyc29yQmFj
a2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCi0jaW5j
bHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCiAj
aW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJh
Y2tlbmRJbnRlcmZhY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRkYzViNzI1
MmVhNTYwZmNkMmI5MWFlN2FmNzcwNGEzYmQ0NzVmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIElEQkluZGV4QmFja2VuZEludGVyZmFjZV9oCi0jZGVmaW5lIElEQklu
ZGV4QmFja2VuZEludGVyZmFjZV9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJDYWxsYmFja3M7Ci1jbGFzcyBJREJLZXk7
Ci1jbGFzcyBJREJLZXlQYXRoOwotY2xhc3MgSURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2U7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLWNs
YXNzIElEQkluZGV4QmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkluZGV4
QmFja2VuZEludGVyZmFjZT4gewotcHVibGljOgotICAgIHZpcnR1YWwgfklEQkluZGV4QmFja2Vu
ZEludGVyZmFjZSgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IoUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2Rl
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0
aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0KFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNz
UmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKLQotI2VuZGlmIC8vIElEQkluZGV4QmFja2VuZElu
dGVyZmFjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZS5jcHAKaW5kZXggZjUwZmUxZWJiODA4MmUyMTc2ZjhkNGZlZDMwZDlhYWIwMzI1
NWY4YS4uZjEwZDA4NmVlNDk2ZmRlMWI1ODE4MDhlOTljOWFlN2VhOTQ1YzM0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApA
QCAtMTIzLDE2ICsxMjMsMTYgQEAgc3RhdGljIHZvaWQgZ2VuZXJhdGVJbmRleEtleXNGb3JWYWx1
ZShET01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgY29uc3QgSURCSW4KIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmFkZChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlw
dFZhbHVlJiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6YWRkIik7Ci0gICAgcmV0dXJuIHB1
dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkFkZE9ubHksIElEQkFueTo6Y3JlYXRl
KHRoaXMpLCBzdGF0ZSwgdmFsdWUsIGtleSwgZWMpOworICAgIHJldHVybiBwdXQoSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpBZGRPbmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUs
IHZhbHVlLCBrZXksIGVjKTsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6cHV0KFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklE
Qk9iamVjdFN0b3JlOjpwdXQiKTsKLSAgICByZXR1cm4gcHV0KElEQk9iamVjdFN0b3JlQmFja2Vu
ZEludGVyZmFjZTo6QWRkT3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFs
dWUsIGtleSwgZWMpOworICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
OjpBZGRPclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1ZSwga2V5LCBl
Yyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBh
c3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6UHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBTY3JpcHRTdGF0
ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6cHV0
Iik7CiAgICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwpAQCAtMTY4LDcgKzE2OCw3IEBA
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vCiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tU2NyaXB0U3RhdGUoc3RhdGUpOwogICAg
IERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CiAKLSAgICBpZiAocHV0TW9k
ZSAhPSBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkN1cnNvclVwZGF0ZSAmJiB1c2Vz
SW5MaW5lS2V5cyAmJiBrZXkpIHsKKyAgICBpZiAocHV0TW9kZSAhPSBJREJEYXRhYmFzZUJhY2tl
bmRJbnRlcmZhY2U6OkN1cnNvclVwZGF0ZSAmJiB1c2VzSW5MaW5lS2V5cyAmJiBrZXkpIHsKICAg
ICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAgICAgICByZXR1
cm4gMDsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaAppbmRleCA2ZGZkOTc4OGE1MDhjNmI5ODUyMGRlMGY0MWQzMWRkMTNmZGEy
N2FmLi41OTJiYmMxNmM5NDlhYzA5NWRjNmNjZThhM2RhMjZkMTMwMzMzNGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKQEAgLTMy
LDcgKzMyLDYgQEAKICNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5o
IgogI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQlRy
YW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0V3JhcHBhYmxlLmgiCkBAIC05NSw3ICs5NCw3
IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlLCBQ
YXNzUmVmUHRyPElEQkFueT4gc291cmNlLCBTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVlJiwgUGFz
c1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlLCBQYXNzUmVmUHRy
PElEQkFueT4gc291cmNlLCBTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVlJiwgUGFzc1JlZlB0cjxJ
REJLZXk+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBtYXJrRGVsZXRlZCgpIHsgbV9kZWxl
dGVkID0gdHJ1ZTsgfQogICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hlZCgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwuY3BwCmluZGV4IGQyNGI2N2ZkOWJjYTA5MTIwNzFkNWI5MDkxODA2ZDk3
YTZhYjFlNjQuLjRmYzhiMTdmMzQyZmNjMDhiZDFlNmI0MDM5MzVmNmE4ODllMzNjODMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFj
a2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC04NiwxMiArODYsMTIgQEAgYm9vbCBJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsOjpJbmRleFdyaXRlcjo6YWRkaW5nS2V5QWxsb3dlZChJREJCYWNr
aW5nU3RvcmUmIGIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbD4gdHJhbnNhY3Rpb24sIElEQkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3Jl
LCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cywgVmVjdG9yPE93blB0cjxJ
bmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYg
Y29tcGxldGVkKQorYm9vbCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjptYWtlSW5kZXhXcml0
ZXJzKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gdHJhbnNhY3Rpb24sIElE
QkJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElE
Qk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleT4gcHJp
bWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5k
ZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5
cz4mIGluZGV4S2V5cywgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJz
LCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKQogewogICAgIEFTU0VSVChp
bmRleElkcy5zaXplKCkgPT0gaW5kZXhLZXlzLnNpemUoKSk7CiAgICAgY29tcGxldGVkID0gZmFs
c2U7CiAKLSAgICBIYXNoTWFwPGludDY0X3QsIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFj
ZTo6SW5kZXhLZXlzPiBpbmRleEtleU1hcDsKKyAgICBIYXNoTWFwPGludDY0X3QsIElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRleEtleU1hcDsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGluZGV4SWRzLnNpemUoKTsgKytpKQogICAgICAgICBpbmRleEtleU1h
cC5hZGQoaW5kZXhJZHNbaV0sIGluZGV4S2V5c1tpXSk7CiAKQEAgLTk5LDcgKzk5LDcgQEAgYm9v
bCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjptYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW4KIAogICAgICAgICBjb25zdCBJREJJbmRleE1ldGFkYXRhJiBp
bmRleCA9IGl0LT52YWx1ZTsKIAotICAgICAgICBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2U6OkluZGV4S2V5cyBrZXlzID0gaW5kZXhLZXlNYXAuZ2V0KGl0LT5rZXkpOworICAgICAgICBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cyBrZXlzID0gaW5kZXhLZXlNYXAu
Z2V0KGl0LT5rZXkpOwogICAgICAgICAvLyBJZiB0aGUgb2JqZWN0U3RvcmUgaXMgdXNpbmcgYXV0
b0luY3JlbWVudCwgdGhlbiBhbnkgaW5kZXhlcyB3aXRoIGFuIGlkZW50aWNhbCBrZXlQYXRoIG5l
ZWQgdG8gYWxzbyB1c2UgdGhlIHByaW1hcnkgKGdlbmVyYXRlZCkga2V5IGFzIGEga2V5LgogICAg
ICAgICBpZiAoa2V5V2FzR2VuZXJhdGVkICYmIChpbmRleC5rZXlQYXRoID09IG9iamVjdFN0b3Jl
LmtleVBhdGgpKQogICAgICAgICAgICAga2V5cy5hcHBlbmQocHJpbWFyeUtleSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmgKaW5kZXggOTcwZmM0OWEyZTY5OTE1ODEwMDI1ZTQwZTA5M2ZjOWMwZGI5
MTlmNS4uM2QyZTRkMzQ1ZGI2YzJkMGQ0MmY5ODkyN2NlYjBmNzgwYjA1MTlhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNl
QmFja2VuZEltcGwuaCIKICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCTWV0
YWRhdGEuaCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
IApAQCAtNTIsNyArNTEsNyBAQCBuYW1lc3BhY2UgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCB7
CiAgICAgICAgICAgICA6IG1faW5kZXhNZXRhZGF0YShpbmRleE1ldGFkYXRhKQogICAgICAgICB7
IH0KIAotICAgICAgICBJbmRleFdyaXRlcihjb25zdCBJREJJbmRleE1ldGFkYXRhJiBpbmRleE1l
dGFkYXRhLCBjb25zdCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cyYg
aW5kZXhLZXlzKQorICAgICAgICBJbmRleFdyaXRlcihjb25zdCBJREJJbmRleE1ldGFkYXRhJiBp
bmRleE1ldGFkYXRhLCBjb25zdCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5
cyYgaW5kZXhLZXlzKQogICAgICAgICAgICAgOiBtX2luZGV4TWV0YWRhdGEoaW5kZXhNZXRhZGF0
YSkKICAgICAgICAgICAgICwgbV9pbmRleEtleXMoaW5kZXhLZXlzKQogICAgICAgICB7IH0KQEAg
LTY1LDEwICs2NCwxMCBAQCBuYW1lc3BhY2UgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCB7CiAg
ICAgICAgIGJvb2wgYWRkaW5nS2V5QWxsb3dlZChJREJCYWNraW5nU3RvcmUmLCBJREJCYWNraW5n
U3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgY29uc3QgSURCS2V5KiBpbmRleEtleSwgY29uc3QgSURC
S2V5KiBwcmltYXJ5S2V5LCBib29sJiBhbGxvd2VkKSBjb25zdCBXQVJOX1VOVVNFRF9SRVRVUk47
CiAKICAgICAgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSBtX2luZGV4TWV0YWRhdGE7Ci0gICAg
ICAgIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzIG1faW5kZXhLZXlz
OworICAgICAgICBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cyBtX2luZGV4
S2V5czsKICAgICB9OwogCi0gICAgYm9vbCBtYWtlSW5kZXhXcml0ZXJzKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4sIElEQkJhY2tpbmdTdG9yZSosIGludDY0X3QgZGF0YWJh
c2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIFBhc3NSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5LCBib29sIGtleVdhc0dlbmVyYXRlZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6SW5k
ZXhLZXlzPiYsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+ID4qIGluZGV4V3JpdGVycywgU3Ry
aW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkgV0FSTl9VTlVTRURfUkVUVVJOOwor
ICAgIGJvb2wgbWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw+LCBJREJCYWNraW5nU3RvcmUqLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9i
amVjdFN0b3JlTWV0YWRhdGEmLCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBr
ZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZl
Y3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mLCBWZWN0b3I8T3du
UHRyPEluZGV4V3JpdGVyPiA+KiBpbmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBi
b29sJiBjb21wbGV0ZWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKIAogICAgIFBhc3NSZWZQdHI8SURC
S2V5PiBnZW5lcmF0ZUtleShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4sIFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkKTsKICAgICBib29sIHVwZGF0ZUtleUdlbmVyYXRvcihQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZT4sIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4sIGlu
dDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkqLCBi
b29sIGNoZWNrQ3VycmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MzlhMGQ3NTY5ZjA3NWRlOTc3ZTg5NzE2MjJjMjQ1
MTViOTcxN2IzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZS5oCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlX2gKLSNkZWZpbmUgSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlX2gKLQotI2luY2x1ZGUgIklEQkN1cnNvci5oIgotI2luY2x1ZGUgIklE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIElEQkNhbGxiYWNrczsKLWNsYXNzIElEQkluZGV4QmFja2VuZEludGVy
ZmFjZTsKLWNsYXNzIElEQktleTsKLWNsYXNzIElEQktleVBhdGg7Ci1jbGFzcyBJREJLZXlSYW5n
ZTsKLWNsYXNzIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTsKLWNsYXNzIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTsKLQotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotY2xhc3MgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0KFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0KLSAgICBlbnVtIFB1
dE1vZGUgewotICAgICAgICBBZGRPclVwZGF0ZSwKLSAgICAgICAgQWRkT25seSwKLSAgICAgICAg
Q3Vyc29yVXBkYXRlCi0gICAgfTsKLQotICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IE1pbmltdW1J
bmRleElkID0gMzA7Ci0KLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+IEluZGV4
S2V5czsKLQotICAgIHZpcnR1YWwgdm9pZCBwdXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+LCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiwgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9
IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotCi0g
ICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSW5k
ZXgoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCB1
bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwg
RXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKFBhc3NS
ZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBjb25z
dCBWZWN0b3I8SW5kZXhLZXlzPiYsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopID0gMDsKLSAgICB2aXJ0dWFsIFBh
c3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleChpbnQ2NF90KSA9IDA7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBv
cGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBJREJDdXJzb3I6OkRpcmVjdGlvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U6
OlRhc2tUeXBlLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2Rl
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJikgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYKLQotI2VuZGlmIC8vIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAK
aW5kZXggMjZlZmQwZmIzYjExOTZmZDE3ODJlMWVkNzJlNDM1ZjRjNzg4MDk5YS4uZDk1MmZhMjlh
NGUwNGRhNjZiZWM1ZDI1YjRkODYxMmM2NmEzNjM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcApAQCAtMzUsNyArMzUsNiBA
QAogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklEQkluZGV4Lmgi
CiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oIgogI2luY2x1ZGUgIklEQlRyYWNpbmcu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaAppbmRleCAwYjViNjQwYWRlY2U0ZGY4MTFiODQyN2Yz
YzcwNzJlNWY2Y2YzNDZkLi44ZjJmNWM2MGY4ZjEzZGE1MjRjMGIyZTM3ODFmMjIxYTI5NzUwNThl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCkBAIC01Miw3ICs1Miw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKCk7CiAKICAgICAvLyBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBvYmplY3RTdG9yZShpbnQ2NF90LCBFeGNlcHRpb25Db2Rl
JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIHZvaWQg
YWJvcnQoKTsKICAgICB2b2lkIGNvbW1pdCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFj
a3MoSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqIGNhbGxiYWNrcykgeyBtX2NhbGxiYWNrcyA9IGNh
bGxiYWNrczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAppbmRleCBhYzUzNTUz
NDBmMjdlZjA5ZjI1OGEwN2M3NjZiNGJkNTdkYzk2NjI3Li43ODVlY2ZkNzY3NjQ4YmQzZjYwOTg0
OWY1ZGU4YWY0MDc4NjAyODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaApA
QCAtMzYsNyArMzYsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJDdXJzb3JC
YWNrZW5kSW1wbDsKLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTsKIGNsYXNz
IElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpA
QCAtNTMsNyArNTIsNiBAQCBwdWJsaWM6CiAgICAgICAgIFByZWVtcHRpdmVUYXNrCiAgICAgfTsK
IAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IG9iamVjdFN0b3JlKGludDY0X3QsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbW1pdCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldENhbGxiYWNrcyhJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyopID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25Db29yZGluYXRvci5jcHAKaW5kZXggMjRlYTgwMjkxZjkwYzMxYTc1OTM0YzAyMWFm
MGI5M2YxY2Y4NzZiOC4uMGJiNWFjYTk1YTA4YzVjNTE2YTM2NTEzMjU0NWI4ZTQ2OTdkNTBlZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b25Db29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAKQEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZEltcGwu
aCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwu
aCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkKaW5kZXggZWJlNDAzZTE4MGQyMjc1NGQ1Yjg3ZDE0YWY1ZjExZjk5OWNj
MTM5MC4uY2ZlYmY3MzIzN2JjYWE0NDJmMjM1NDJmMDBjMWUxYjdkYzg5NTNlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCkBAIC0zNjIsNyArMzYyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL0RldmljZU1vdGlv
bkRhdGEuY3BwIFwKICAgICBkb20vRGV2aWNlTW90aW9uRXZlbnQuY3BwIFwKICAgICBkb20vRGV2
aWNlT3JpZW50YXRpb25Db250cm9sbGVyLmNwcCBcCi0gICAgZG9tL0RldmljZU9yaWVudGF0aW9u
RGF0YS5jcHAgXCAgICAKKyAgICBkb20vRGV2aWNlT3JpZW50YXRpb25EYXRhLmNwcCBcCiAgICAg
ZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIFwKICAgICBkb20vRG9jdW1lbnQuY3BwIFwK
ICAgICBkb20vRG9jdW1lbnRFdmVudFF1ZXVlLmNwcCBcCkBAIC0zMDQ1LDEyICszMDQ1LDEwIEBA
IGVuYWJsZT8oSU5ERVhFRF9EQVRBQkFTRSkgewogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbXBsLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5oIFwKLSAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJm
YWNlLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaCBcCiAgICAgICAgIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbC5oIFwKLSAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oIFwK
ICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmZDBhN2U1ODdmOWFhNmNiNWFiNTkzZmQ5ZjNiYTU4ZmFk
YmViYmNlLi43MTFmNDY3NzVmODllMmQ3NGQ3YjUwMzNlZDc2MTAzYTc3MmE4ZjEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC03MzgsNyArNzM4LDYgQEAKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4LmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFj
a2VuZEludGVyZmFjZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXku
Y3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaCcsCiAgICAgICAg
ICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5jcHAnLApAQCAtNzUzLDcgKzc1Miw2
IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCcsCiAg
ICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5j
cHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuaCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9w
ZW5EQlJlcXVlc3QuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVu
REJSZXF1ZXN0LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdU
cmFuc2FjdGlvbk1vbml0b3IuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggMjBmNmUxNzc5YTNhN2JiYjA0MWRiZjhlOWM1YThhNjhlMThl
NjFhYi4uNDNhMDlhNjljOWY1NjRmODM3ZDU2OWQxZDM3YjNjMGMzYmU2NzkxYyAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI0OTg1LDEwICsy
NDk4NSw2IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKLQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxNb2R1bGVzXGluZGV4ZWRkYlxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCIKLQkJ
CQkJPgotCQkJCTwvRmlsZT4KLQkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVs
ZXNcaW5kZXhlZGRiXElEQktleS5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBAIC0yNTAyMSwx
MCArMjUwMTcsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0
aXZlUGF0aD0iLi5cTW9kdWxlc1xpbmRleGVkZGJcSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJm
YWNlLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxNb2R1bGVzXGluZGV4ZWRkYlxJREJSZXF1ZXN0LmNwcCIKIAkJCQkJPgogCQkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA0ODEwODVjN2NhMWM4MDQwMWNmMDg2ZTE1OTQ1OWJkMTFhODA1NDFhLi4wNjUzYzIz
YzkzMWMyNWRhNWQ5NGU5YzZlYWQxOWJmODU4ODU5YTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNDk5LDcgKzM0OTksNiBA
QAogCQk5NzEyQTVENDE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NTdCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oICovOyB9
OwogCQk5NzEyQTVENTE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1N0MxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQkluZGV4LmNwcCAqLzsgfTsKIAkJOTcxMkE1RDYxNTAwNEVEQTAwNDhBRjEwIC8q
IElEQkluZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NzEyQTU3RDE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguaCAqLzsgfTsKLQkJOTcxMkE1
REExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1ODExNTAwNEVEQTAw
NDhBRjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oICovOyB9OwogCQk5NzEyQTVEQjE1
MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTgyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuY3Bw
ICovOyB9OwogCQk5NzEyQTVEQzE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4MzE1MDA0RURBMDA0
OEFGMTAgLyogSURCS2V5LmggKi87IH07CiAJCTk3MTJBNURFMTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJLZXlQYXRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MTJBNTg1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmNwcCAqLzsgfTsKQEAg
LTM1MTMsNyArMzUxMiw2IEBACiAJCTk3MTJBNUVBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmpl
Y3RTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcxMkE1OTExNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlLmggKi87IH07CiAJCTk3
MTJBNUVDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTkzMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCAqLzsgfTsKIAkJ
OTcxMkE1RUQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTk0MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggKi87IH07Ci0JCTk3
MTJBNUVFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTk1
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCAqLzsg
fTsKIAkJOTcxMkE1RUYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1v
bml0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcxMkE1OTYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3Iu
Y3BwICovOyB9OwogCQk5NzEyQTVGMDE1MDA0RURBMDA0OEFGMTAgLyogSURCUGVuZGluZ1RyYW5z
YWN0aW9uTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1OTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1v
bml0b3IuaCAqLzsgfTsKIAkJOTcxMkE1RjExNTAwNEVEQTAwNDhBRjEwIC8qIElEQlJlcXVlc3Qu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1
OTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlJlcXVlc3QuY3BwICovOyB9OwpAQCAtMTA4MjcsNyAr
MTA4MjUsNiBAQAogCQk5NzEyQTU3QzE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCSW5kZXguY3BwOyBwYXRoID0g
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NzEyQTU3RDE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gSURCSW5kZXguaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTdFMTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJJbmRleC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gSURCSW5k
ZXguaWRsOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU4MTE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXhC
YWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQklu
ZGV4QmFja2VuZEludGVyZmFjZS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhC
YWNrZW5kSW50ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTgy
MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gSURCS2V5LmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTgzMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCS2V5Lmg7
IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTcxMkE1ODQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gSURCS2V5LmlkbDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDg0NCw3ICsxMDg0MSw2IEBA
CiAJCTk3MTJBNTkyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gSURCT2JqZWN0U3RvcmUuaWRsOyBwYXRoID0gTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzEyQTU5MzE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU5NDE1MDA0RURB
MDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg7IHBhdGggPSBNb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTk3MTJBNTk1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTcxMkE1OTYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1v
bml0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCUGVuZGlu
Z1RyYW5zYWN0aW9uTW9uaXRvci5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1OTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCUGVuZGluZ1RyYW5zYWN0aW9u
TW9uaXRvci5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9u
TW9uaXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU5ODE1MDA0RURB
MDA0OEFGMTAgLyogSURCUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBJREJSZXF1ZXN0LmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgxNjYsNyArMTgxNjIsNiBA
QAogCQkJCTk3MTJBNTdDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5jcHAgKi8sCiAJCQkJ
OTcxMkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmggKi8sCiAJCQkJOTcxMkE1N0Ux
NTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmlkbCAqLywKLQkJCQk5NzEyQTU4MTE1MDA0RURB
MDA0OEFGMTAgLyogSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmggKi8sCiAJCQkJOTcxMkE1ODIx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5jcHAgKi8sCiAJCQkJOTcxMkE1ODMxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQktleS5oICovLAogCQkJCTk3MTJBNTg0MTUwMDRFREEwMDQ4QUYxMCAvKiBJ
REJLZXkuaWRsICovLApAQCAtMTgxODMsNyArMTgxNzgsNiBAQAogCQkJCTk3MTJBNTkyMTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5pZGwgKi8sCiAJCQkJOTcxMkE1OTMxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwICovLAogCQkJCTk3MTJB
NTk0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggKi8sCi0J
CQkJOTcxMkE1OTUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZS5oICovLAogCQkJCTk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmNwcCAqLywKIAkJCQk5NzEyQTU5NzE1MDA0RURBMDA0OEFGMTAgLyog
SURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5oICovLAogCQkJCTk3MTJBNTk4MTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJSZXF1ZXN0LmNwcCAqLywKQEAgLTI0MTkxLDE0ICsyNDE4NSwxMiBAQAog
CQkJCTk3MTJBNUQyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJGYWN0b3J5QmFja2VuZEltcGwuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3MTJBNUQ0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RDYxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQkluZGV4LmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzEyQTVEQTE1MDA0RURB
MDA0OEFGMTAgLyogSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzEyQTVEQzE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzEyQTVERjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UGF0aC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTcxMkE1RTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzEyQTVFODE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RUExNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVj
dFN0b3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVFRDE1MDA0RURBMDA0OEFGMTAgLyog
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTcxMkE1RUUx
NTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTcxMkE1RjAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUYyMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGNDE1MDA0RURB
MDA0OEFGMTAgLyogSURCVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKaW5kZXggNWQ4MzMwODdiMWE5ZmVkYzdmNmYwZDJkMDY3N2IyZDkwNGIwNWVkYi4u
MzI3YTg1NjJlYzhhNTRjNmNmNzQ3MDk2N2VmNGZkM2Y1NzUwNzcwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cApAQCAtMTgzLDEyICsxODMsMTAgQEAKICAgICAgICAgICAgICAgICAncHVi
bGljL1dlYklEQkRhdGFiYXNlRXJyb3IuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkZh
Y3RvcnkuaCcsCi0gICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJJbmRleC5oJywKICAgICAg
ICAgICAgICAgICAncHVibGljL1dlYklEQktleS5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYklEQktleVBhdGguaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXlSYW5n
ZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQk1ldGFkYXRhLmgnLAotICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
SWNvbkxvYWRpbmdDb21wbGV0aW9uLmgnLApAQCAtNDE0LDEwICs0MTIsNiBAQAogICAgICAgICAg
ICAgICAgICdzcmMvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9JREJJ
bmRleEJhY2tlbmRQcm94eS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvSURCSW5kZXhCYWNr
ZW5kUHJveHkuaCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQ
cm94eS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJv
eHkuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9JREJUcmFuc2FjdGlvbkNhbGxiYWNrc1Byb3h5LmNwcCcs
CkBAIC01NTYsMTQgKzU1MCwxMCBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgnLAotICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmNwcCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJJbmRleEltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJLZXkuY3BwJywKICAg
ICAgICAgICAgICAgICAnc3JjL1dlYklEQktleVBhdGguY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYklEQktleVJhbmdlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJNZXRh
ZGF0YS5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNw
cCcsCi0gICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwJywKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaAppbmRleCAwOTg2MWYxMzMwMGY2YjE1
ZjNjMGJhY2JhMmMxMjlmYjdkMGI3N2VkLi41NDkxYjk2YTg4MmNkY2RlZTc0OGI0MTNkZGQ3NmZl
ZTA5YjRjNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJD
YWxsYmFja3MuaApAQCAtMzgsNyArMzgsNiBAQCBjbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwog
Y2xhc3MgV2ViSURCS2V5OwogY2xhc3MgV2ViSURCS2V5UGF0aDsKIGNsYXNzIFdlYklEQkluZGV4
OwotY2xhc3MgV2ViSURCT2JqZWN0U3RvcmU7CiBjbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsKIGNs
YXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKaW5kZXggNTE2YTIxZGQ5NDJjZWNlN2ZiYzQwZTAx
MGE1YzljNmI0ZGNjYTNmYS4uYTk4ZWVhNGE4Njk1NDE4YzI5MzQxMGRlMDMzYTdhNjVkN2ViNzQ4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5o
CkBAIC00MCw3ICs0MCw2IEBAIGNsYXNzIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzOwogY2xhc3Mg
V2ViSURCS2V5OwogY2xhc3MgV2ViSURCS2V5UGF0aDsKIGNsYXNzIFdlYklEQktleVJhbmdlOwot
Y2xhc3MgV2ViSURCT2JqZWN0U3RvcmU7CiBjbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsKIAogLy8g
U2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9m
IHRoZXNlIGNsYXNzZXMuCkBAIC01MywxMyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuIFdlYklEQk1ldGFkYXRhKCk7
CiAgICAgfQotICAgIHZpcnR1YWwgV2ViSURCT2JqZWN0U3RvcmUqIGNyZWF0ZU9iamVjdFN0b3Jl
KGxvbmcgbG9uZywgY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2ws
IGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpCi0gICAgewotICAg
ICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAg
IH0KICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0
aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNv
bnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcg
bG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24s
IFdlYkV4Y2VwdGlvbkNvZGUmIGVjKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgdHJhbnNhY3Rpb25J
ZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNh
Y3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxv
bmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2RlKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkZhY3RvcnkuaAppbmRleCA2YTU4ZTZhZTc4ZDVlMmJkYjAyMjY5MDJkOGVhNjRiOTdkYmRkMzhm
Li42NzhiZWEwNGM0OTU3NzlmZWQyMTQ0NTBhZmIyNjU3MjY0OTZiNzBlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCkBAIC01Niw4ICs1Niw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhXZWJJREJDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgV2ViRnJhbWUq
IGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CiAKICAgICAvLyBUaGUgV2ViS2l0IGltcGxlbWVudGF0aW9uIG9mIG9wZW4gaWdu
b3JlcyB0aGUgV2ViRnJhbWUqIHBhcmFtZXRlci4KLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMu
Ci0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25nIGxvbmcg
dmVyc2lvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIFdlYklEQkRhdGFiYXNlQ2FsbGJh
Y2tzKiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwg
V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBsb25nIGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIFdlYklE
QkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VD
YWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFt
ZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQklu
ZGV4LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDI1OGVjYzcxNDY0OTQzODkwMGI2MTA3MTlhNWNm
ZjE0YmZhODY1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKKysrIC9kZXYvbnVs
bApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJJREJJbmRleF9oCi0jZGVmaW5l
IFdlYklEQkluZGV4X2gKLQotI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRl
ICJXZWJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYklEQkNhbGxiYWNrczsKLWNsYXNzIFdlYklEQktleTsKLWNsYXNzIFdlYklEQktleVJhbmdl
OwotCi0vLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3Zl
cnZpZXcgb2YgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQkluZGV4IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIH5XZWJJREJJbmRleCgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIG9wZW5PYmpl
Y3RDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9u
Q29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lk
IG9wZW5LZXlDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhj
ZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGNvdW50KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0T2JqZWN0KGNvbnN0IFdlYklE
QktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBX
ZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0S2V5KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tz
KiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotcHJvdGVjdGVkOgotICAgIFdlYklEQkluZGV4KCkg
e30KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSURCSW5kZXhf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0
U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3Jl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1NTQxNzE2MDQ5ODk3ZmNiMGEyYTQ1
YWRlYjNkYjdhNjhjOTU2MDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCT2JqZWN0U3RvcmUu
aAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQk9i
amVjdFN0b3JlX2gKLSNkZWZpbmUgV2ViSURCT2JqZWN0U3RvcmVfaAotCi0jaW5jbHVkZSAiV2Vi
RE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIldlYkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRl
ICJXZWJJREJDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKLSNpbmNsdWRl
ICJXZWJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIKLSNpbmNs
dWRlICJwbGF0Zm9ybS9XZWJDb21tb24uaCIKLSNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcu
aCIKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQktleVJhbmdlOwotY2xhc3Mg
V2ViSURCVHJhbnNhY3Rpb247Ci0KLS8vIFNlZSBjb21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9y
IGEgaGlnaCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgotY2xhc3MgV2ViSURCT2JqZWN0
U3RvcmUgewotcHVibGljOgotICAgIHZpcnR1YWwgfldlYklEQk9iamVjdFN0b3JlKCkgeyB9Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgZ2V0KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJh
Y2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJL
SVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotICAgIGVudW0gUHV0TW9kZSB7Ci0gICAgICAg
IEFkZE9yVXBkYXRlLAotICAgICAgICBBZGRPbmx5LAotICAgICAgICBDdXJzb3JVcGRhdGUKLSAg
ICB9OwotCi0gICAgdHlwZWRlZiBXZWJWZWN0b3I8V2ViSURCS2V5PiBXZWJJbmRleEtleXM7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgcHV0KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNv
bnN0IFdlYklEQktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzLCBjb25zdCBX
ZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleVJhbmdlJiwg
V2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25D
b2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXIoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFs
IFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChjb25zdCBXZWJTdHJpbmcmLCBjb25zdCBXZWJJREJL
ZXlQYXRoJiwgYm9vbCwgYm9vbCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRp
b25Db2RlJikKLSAgICB7Ci0gICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHZpcnR1YWwgV2ViSURCSW5kZXgqIGNyZWF0ZUlu
ZGV4KGxvbmcgbG9uZywgY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJv
b2wsIGJvb2wsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpCi0g
ICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biAwOwotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGNvbnN0IFdlYklEQktl
eSYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4
S2V5cz4mLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShjb25zdCBXZWJWZWN0
b3I8bG9uZyBsb25nPiYsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJikgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH07Ci0gICAgLy8gVHJhbnNmZXJzIG93bmVyc2hpcCBvZiB0aGUgV2Vi
SURCSW5kZXggdG8gdGhlIGNhbGxlci4KLSAgICB2aXJ0dWFsIFdlYklEQkluZGV4KiBpbmRleChs
b25nIGxvbmcpCi0gICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSW5kZXgobG9u
ZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29k
ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIG9w
ZW5DdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDdXJzb3I6OkRpcmVjdGlvbiBk
aXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIFdlYklEQlRyYW5zYWN0aW9uOjpUYXNrVHlwZSwg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoY29uc3QgV2ViSURC
S2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdl
YkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotCi1wcm90
ZWN0ZWQ6Ci0gICAgV2ViSURCT2JqZWN0U3RvcmUoKSB7fQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJJREJPYmplY3RTdG9yZV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaAppbmRleCAyMjFiZjYwNTY1
YmFhZWM2MWY0Y2Y1MWE5OGZjYWNmMWZjOWI0N2M5Li42NTYyYjk0NjdhNjMzZTVmYWRkYWViYTQ2
ZmRhMTU1NDc4NzBiMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQlRyYW5zYWN0aW9uLmgKQEAgLTMzLDcgKzMzLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
eyBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7IH0KIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURCVHJhbnNhY3Rp
b25DYWxsYmFja3M7CiAKIC8vIFNlZSBjb21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGln
aCBsZXZlbCBvdmVydmlldyBvZiB0aGVzZSBjbGFzc2VzLgpAQCAtNDYsMTEgKzQ1LDYgQEAgcHVi
bGljOgogICAgICAgICBQcmVlbXB0aXZlVGFzawogICAgIH07CiAKLSAgICB2aXJ0dWFsIFdlYklE
Qk9iamVjdFN0b3JlKiBvYmplY3RTdG9yZShsb25nIGxvbmcsIFdlYkV4Y2VwdGlvbkNvZGUmKQot
ICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1
cm4gMDsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVUYXNrRXZlbnRz
KCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAppbmRleCBmNjllOGIwNzgyMDVmZTMx
OWM3YmI1OTE5OWIzODBiYjE3YmE4OTMzLi4wOTJiZmI3YTE0OWE0MjhhYTBiYTdlZWJmNzYyOTFm
YjA0MTQwNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJh
Y2tzUHJveHkuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2Vu
ZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5o
IgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkN1cnNvcklt
cGwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcAppbmRleCA3NGJhZTMwNTgxNzE0YjdhNmFmNTU2MmNhODAzNGVmNDA1
NWFkOTQwLi5lN2JlYjc4ZTcxZDdkNWFlZDJiZDQ0MmYyNjcxOGYyNGI2NDc1MzI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJv
eHkuY3BwCkBAIC0zMywxNiArMzMsMTUgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNr
cy5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIK
LSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIklEQlRy
YW5zYWN0aW9uQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViRE9NU3RyaW5nTGlzdC5oIgog
I2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrc0ltcGwu
aCIKKyNpbmNsdWRlICJXZWJJREJDdXJzb3IuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZS5o
IgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIgogI2luY2x1ZGUgIldl
YklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgotI2luY2x1
ZGUgIldlYklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb24uaCIK
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02OCwzMSArNjcsMTIgQEAgSURCRGF0YWJh
c2VNZXRhZGF0YSBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6bWV0YWRhdGEoKSBjb25zdAogICAg
IHJldHVybiBtX3dlYklEQkRhdGFiYXNlLT5tZXRhZGF0YSgpOwogfQogCi1QYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmNy
ZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURC
S2V5UGF0aCYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBU
aGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBh
IHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRh
dGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBPd25QdHI8V2ViSURCT2Jq
ZWN0U3RvcmU+IG9iamVjdFN0b3JlID0gYWRvcHRQdHIobV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRl
T2JqZWN0U3RvcmUoaWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsICp0cmFuc2FjdGlv
blByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYykpOwotICAgIGlmICghb2JqZWN0U3Rv
cmUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBJREJPYmplY3RTdG9yZUJhY2tlbmRQ
cm94eTo6Y3JlYXRlKG9iamVjdFN0b3JlLnJlbGVhc2UoKSk7Ci19Ci0KIHZvaWQgSURCRGF0YWJh
c2VCYWNrZW5kUHJveHk6OmNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBh
dGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsKICAgICBpZiAobV93ZWJJREJEYXRh
YmFzZSkKICAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNh
Y3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgbmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCk7CiB9
CiAKLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2Fj
dGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50
ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGlu
IHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZh
Y2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0
cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkq
Pih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJEYXRhYmFzZS0+ZGVsZXRlT2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmVJZCwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCks
IGVjKTsKLX0KLQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6ZGVsZXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpCiB7CiAgICAg
aWYgKG1fd2ViSURCRGF0YWJhc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAppbmRleCBiZWYyODliZmJlNTZmOTljNzNlODZi
NDk1YjQ1OTE4ZjFlYWRlYzUzLi45NzhjY2ZmY2EyNTNlZWZkYTIzNzk1MjZkZjFhZDI4NWVkZDkz
NmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJh
Y2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmgKQEAgLTQ0LDkgKzQ0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBX
ZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNv
cmU6OklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5
UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCk7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVj
dFN0b3JlKGludDY0X3QsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSos
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0
U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwogICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6TW9kZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuY3BwCmluZGV4IGM2MGEzY2JhOTRlMTM4YmU4MGFmMzEyYmJkODAxNmRhZjdkNTlmZWIu
LmQ0NjgxMTA4YmEzMGMwMDNjZGExNmUzZTRhMjQyMmYxYjQxYmIzOGYgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwCkBA
IC0yMTQsMjAgKzIxNCw2IEBAIHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6Z2V0RGF0YWJh
c2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhCiAgICAgbV93ZWJJREJG
YWN0b3J5LT5nZXREYXRhYmFzZU5hbWVzKG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNr
cyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwogfQogCi0KLS8vIEZJWE1FOiBSZW1vdmUg
dGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MzkyMy4KLXZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5h
bWUsIGludDY0X3QgdmVyc2lvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNr
cywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3Ms
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCi17Ci0gICAgUmVmUHRy
PElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7Ci0gICAgUmVmUHRyPElEQkRh
dGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcyhwcnBEYXRhYmFzZUNhbGxiYWNrcyk7
Ci0gICAgV2ViU2VjdXJpdHlPcmlnaW4gb3JpZ2luKHNlY3VyaXR5T3JpZ2luKTsKLSAgICBpZiAo
IWFsbG93SW5kZXhlZERCKGNvbnRleHQsIG5hbWUsIG9yaWdpbiwgY2FsbGJhY2tzKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgV2ViRnJhbWVJbXBsKiB3ZWJGcmFtZSA9IGdldFdlYkZyYW1lKGNv
bnRleHQpOwotICAgIG1fd2ViSURCRmFjdG9yeS0+b3BlbihuYW1lLCB2ZXJzaW9uLCBuZXcgV2Vi
SURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBuZXcgV2ViSURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsKGRhdGFiYXNlQ2FsbGJhY2tzKSwgb3JpZ2luLCB3ZWJGcmFtZSwgZGF0YURpcik7Ci19Ci0K
IHZvaWQgSURCRmFjdG9yeUJhY2tlbmRQcm94eTo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGlu
dDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBE
YXRhYmFzZUNhbGxiYWNrcywgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmln
aW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgZGF0YURp
cikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MocHJwQ2FsbGJhY2tzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5k
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJv
eHkuaAppbmRleCBjODk5ZTgwYjcwMjIyZmU3YTMyOGY2NDMwZDI1MTQ5ZjRlZmNlZDI1Li4xNzVj
NzM5ZGYwOWE4ODNjZDJmN2E0MmUxZDdlOGEzMzc0MmQwZjM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCkBAIC00OSw4ICs0
OSw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZFByb3h5KCk7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKLSAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tz
PiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBT
dHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0
YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
ZGF0YURpcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQklu
ZGV4QmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4
QmFja2VuZFByb3h5LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjAxODhmZDQ4
N2E5ZmYyOTU1ZDg1ZTIwYjVlZDZmOTNlZDcwYWYxZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRl
eEJhY2tlbmRQcm94eS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRQcm94eS5oIgot
Ci0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJDYWxsYmFja3Mu
aCIKLSNpbmNsdWRlICJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKLSNp
bmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgotI2luY2x1ZGUgIldlYklEQkNh
bGxiYWNrc0ltcGwuaCIKLSNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVk
ZSAiV2ViSURCSW5kZXguaCIKLSNpbmNsdWRlICJXZWJJREJLZXkuaCIKLSNpbmNsdWRlICJXZWJJ
REJLZXlSYW5nZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdl
YktpdCB7Ci0KLVBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJJbmRleEJh
Y2tlbmRQcm94eTo6Y3JlYXRlKFBhc3NPd25QdHI8V2ViSURCSW5kZXg+IGluZGV4KQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhCYWNrZW5kUHJveHkoaW5kZXgpKTsKLX0KLQot
SURCSW5kZXhCYWNrZW5kUHJveHk6OklEQkluZGV4QmFja2VuZFByb3h5KFBhc3NPd25QdHI8V2Vi
SURCSW5kZXg+IGluZGV4KQotICAgIDogbV93ZWJJREJJbmRleChpbmRleCkKLXsKLX0KLQotSURC
SW5kZXhCYWNrZW5kUHJveHk6On5JREJJbmRleEJhY2tlbmRQcm94eSgpCi17Ci19Ci0KLXZvaWQg
SURCSW5kZXhCYWNrZW5kUHJveHk6Om9wZW5DdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlv
biwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIg
aXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRo
ZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2Vz
IGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFu
c2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0
cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJJbmRleC0+b3Blbk9iamVjdEN1cnNvcihrZXlSYW5n
ZSwgZGlyZWN0aW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNh
Y3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lkIElEQklu
ZGV4QmFja2VuZFByb3h5Ojpjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhl
IHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBw
cm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRp
b25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJJbmRleC0+Y291
bnQoa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2Fj
dGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLXZvaWQgSURCSW5k
ZXhCYWNrZW5kUHJveHk6Om9wZW5LZXlDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMg
Z3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSBy
ZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFy
ZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2Fj
dGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFu
c2FjdGlvbik7Ci0gICAgbV93ZWJJREJJbmRleC0+b3BlbktleUN1cnNvcihrZXlSYW5nZSwgZGly
ZWN0aW9uLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Q
cm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lkIElEQkluZGV4QmFj
a2VuZFByb3h5OjpnZXQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2Fj
dGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2Jq
ZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJ
REIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPmdldE9iamVjdChr
ZXlSYW5nZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9u
UHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJREJJbmRleEJh
Y2tlbmRQcm94eTo6Z2V0S2V5KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBUaGUgdHJh
bnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5
IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMg
b2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25C
YWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQkluZGV4LT5nZXRLZXko
a2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlv
blByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5oIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWMxYzMzNjkyODkwZTA4ZDIyOWMwNmZmY2FiOWY3ODBiOWEx
NTZiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5oCisrKyAvZGV2L251
bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCSW5kZXhCYWNrZW5kUHJveHlf
aAotI2RlZmluZSBJREJJbmRleEJhY2tlbmRQcm94eV9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgotI2luY2x1
ZGUgIklEQktleVBhdGguaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQkluZGV4
OwotCi1jbGFzcyBJREJJbmRleEJhY2tlbmRQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpJREJJbmRl
eEJhY2tlbmRJbnRlcmZhY2UgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQklu
ZGV4QmFja2VuZEludGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCSW5kZXg+KTsKLSAg
ICB2aXJ0dWFsIH5JREJJbmRleEJhY2tlbmRQcm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIG9w
ZW5DdXJzb3IoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0
IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7
Ci0gICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJL
ZXlSYW5nZT4sIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJ
REJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50KFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNr
cz4sIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0KFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0S2V5KFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFu
Z2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OklEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKLQotcHJp
dmF0ZToKLSAgICBJREJJbmRleEJhY2tlbmRQcm94eShQYXNzT3duUHRyPFdlYklEQkluZGV4Pik7
Ci0KLSAgICBPd25QdHI8V2ViSURCSW5kZXg+IG1fd2ViSURCSW5kZXg7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJJbmRleEJhY2tlbmRQcm94
eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9y
ZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RT
dG9yZUJhY2tlbmRQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDhlODlk
ZWIwMzNmM2RlYzk4OGFhNjdhYzNjZGU0YTVkOTY5NWZiZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
T2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTU0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVC
YWNrZW5kUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVk
ZSAiRE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5oIgotI2luY2x1ZGUg
IklEQkluZGV4QmFja2VuZFByb3h5LmgiCi0jaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKLSNpbmNs
dWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgotI2luY2x1ZGUgIldlYklEQkNhbGxi
YWNrc0ltcGwuaCIKLSNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgotI2luY2x1ZGUgIldlYklE
QkluZGV4LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCT2JqZWN0
U3RvcmUuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkltcGwuaCIKLSNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmNyZWF0ZShQYXNz
T3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSkKLXsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5KG9iamVjdFN0b3JlKSk7Ci19Ci0K
LUlEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eShQ
YXNzT3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSkKLSAgICA6IG1fd2ViSURC
T2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCi17Ci19Ci0KLUlEQk9iamVjdFN0b3JlQmFja2VuZFBy
b3h5Ojp+SURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkoKQotewotfQotCi12b2lkIElEQk9iamVj
dFN0b3JlQmFja2VuZFByb3h5OjpnZXQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2Us
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRo
ZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEg
cHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0
aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5z
YWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3Rv
cmUtPmdldChrZXlSYW5nZSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRy
YW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6cHV0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBj
b25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQotewotICAgIC8vIFRoZSB0cmFuc2Fj
dGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2Jq
ZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJ
REIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPnB1dCh2
YWx1ZSwga2V5LCBzdGF0aWNfY2FzdDxXZWJJREJPYmplY3RTdG9yZTo6UHV0TW9kZT4ocHV0TW9k
ZSksIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5
LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBpbmRleElkcywgaW5kZXhLZXlzKTsKLX0KLQotdm9p
ZCBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6c2V0SW5kZXhLZXlzKFBhc3NSZWZQdHI8SURC
S2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25z
dCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqIHRyYW5zYWN0aW9uKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlz
IGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUg
cmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBh
cmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNh
Y3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJh
bnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPnNldEluZGV4S2V5cyhwcnBQcmlt
YXJ5S2V5LCBXZWJWZWN0b3I8bG9uZyBsb25nPihpbmRleElkcyksIGluZGV4S2V5cywgKnRyYW5z
YWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCkpOwotfQotCi12b2lkIElEQk9iamVj
dFN0b3JlQmFja2VuZFByb3h5OjpkZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBv
aW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwg
aW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nh
c3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJ
REJPYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rpb24oa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFj
a3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlv
bigpLCBlYyk7Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmNsZWFyKFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0
cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJv
eHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9u
cyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUt
PmNsZWFyKG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblBy
b3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLVBhc3NSZWZQdHI8SURCSW5k
ZXhCYWNrZW5kSW50ZXJmYWNlPiBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6Y3JlYXRlSW5k
ZXgoaW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQ
YXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBUaGUg
dHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHBy
b3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlv
bnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBPd25QdHI8V2ViSURCSW5kZXg+
IGluZGV4ID0gYWRvcHRQdHIobV93ZWJJREJPYmplY3RTdG9yZS0+Y3JlYXRlSW5kZXgoaWQsIG5h
bWUsIGtleVBhdGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdl
YklEQlRyYW5zYWN0aW9uKCksIGVjKSk7Ci0gICAgaWYgKCFpbmRleCkKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgcmV0dXJuIElEQkluZGV4QmFja2VuZFByb3h5OjpjcmVhdGUoaW5kZXgucmVsZWFz
ZSgpKTsKLX0KLQotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6c2V0SW5kZXhlc1Jl
YWR5KGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSogdHJhbnNhY3Rpb24pCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50
ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGlu
IHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZh
Y2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0
cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkq
Pih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJPYmplY3RTdG9yZS0+c2V0SW5kZXhlc1JlYWR5
KFdlYlZlY3Rvcjxsb25nIGxvbmc+KGluZGV4SWRzKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdl
YklEQlRyYW5zYWN0aW9uKCkpOwotfQotCi1QYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVy
ZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmluZGV4KGludDY0X3QgaW5kZXhJZCkK
LXsKLSAgICBPd25QdHI8V2ViSURCSW5kZXg+IGluZGV4ID0gYWRvcHRQdHIobV93ZWJJREJPYmpl
Y3RTdG9yZS0+aW5kZXgoaW5kZXhJZCkpOwotICAgIGlmICghaW5kZXgpCi0gICAgICAgIHJldHVy
biAwOwotICAgIHJldHVybiBJREJJbmRleEJhY2tlbmRQcm94eTo6Y3JlYXRlKGluZGV4LnJlbGVh
c2UoKSk7Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmRlbGV0ZUluZGV4
KGNvbnN0IGludDY0X3QgaW5kZXhJZCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0
cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9u
IHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3Qg
YXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBp
bnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5k
UHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJPYmplY3RTdG9yZS0+ZGVsZXRlSW5k
ZXgoaW5kZXhJZCwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVj
KTsKLX0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6Om9wZW5DdXJzb3IoUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIElEQkN1cnNvcjo6RGlyZWN0aW9uIGRpcmVjdGlvbiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW50ZXJmYWNlOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5z
YWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBv
YmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9m
IElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25C
YWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJPYmplY3RTdG9yZS0+b3Bl
bkN1cnNvcihyYW5nZSwgc3RhdGljX2Nhc3Q8V2ViSURCQ3Vyc29yOjpEaXJlY3Rpb24+KGRpcmVj
dGlvbiksIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIHN0YXRpY19jYXN0PFdl
YklEQlRyYW5zYWN0aW9uOjpUYXNrVHlwZT4odGFza1R5cGUpLCAqdHJhbnNhY3Rpb25Qcm94eS0+
Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFj
a2VuZFByb3h5Ojpjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0
aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmpl
Y3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElE
QiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJPYmplY3RTdG9yZS0+Y291bnQo
cmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblBy
b3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGE4ZjZiYmRkODJkMWYyYjA4OTQzZTc4MzJl
ZTU4YWViZTIyNTllYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94
eS5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kUHJveHlfaAotI2RlZmluZSBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94
eV9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIklEQktleVBh
dGguaCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURC
T2JqZWN0U3RvcmU7Ci0KLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5IDogcHVibGlj
IFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSB7Ci1wdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
PiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9yZT4pOwotICAgIHZpcnR1YWwgfklE
Qk9iamVjdFN0b3JlQmFja2VuZFByb3h5KCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgZ2V0KFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxi
YWNrcz4sIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQ
dXRNb2RlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIGNvbnN0IFdURjo6VmVjdG9yPGludDY0X3Q+Jiwg
Y29uc3QgV1RGOjpWZWN0b3I8SW5kZXhLZXlzPiYpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVG
dW5jdGlvbihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotCi0gICAgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUluZGV4KGludDY0
X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6SURCS2V5UGF0aCYsIGJv
b2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5kZXhLZXlzKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBj
b25zdCBXVEY6OlZlY3RvcjxpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JiwgV2Vi
Q29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7Ci0gICAgdmlydHVhbCB2b2lk
IHNldEluZGV4ZXNSZWFkeShjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKTsKLQotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
SW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleChpbnQ2NF90KTsKLSAgICB2b2lkIGRlbGV0ZUlu
ZGV4KGludDY0X3QsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCBXZWJDb3JlOjpJREJDdXJzb3I6OkRpcmVj
dGlvbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlLCBXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVh
bCB2b2lkIGNvdW50KFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKLQotcHJpdmF0ZToKLSAgICBJREJP
YmplY3RTdG9yZUJhY2tlbmRQcm94eShQYXNzT3duUHRyPFdlYklEQk9iamVjdFN0b3JlPik7Ci0K
LSAgICBPd25QdHI8V2ViSURCT2JqZWN0U3RvcmU+IG1fd2ViSURCT2JqZWN0U3RvcmU7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJPYmplY3RT
dG9yZUJhY2tlbmRQcm94eV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAKaW5kZXggNmUwMTM0YzJhOWZhZDI2
ODMwNjU5YThkYjQwOTczNmNhMDAxMTVmNS4uMDJhMDU4Y2Y3YzA4YmQyYzRmOTdlZDY3OTg0MGNk
ODk3YjIzZDYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJh
bnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcApAQCAtMjgsMTAgKzI4LDggQEAKIAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNr
ZW5kUHJveHkuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oIgogI2luY2x1
ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9yZS5o
IgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViSURCVHJhbnNh
Y3Rpb25DYWxsYmFja3NJbXBsLmgiCiAKQEAgLTU0LDE0ICs1Miw2IEBAIElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5Ojp+SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkoKQogewogfQogCi1QYXNz
UmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHk6Om9iamVjdFN0b3JlKGludDY0X3QgaW5kZXhJZCwgRXhjZXB0aW9u
Q29kZSYgZWMpCi17Ci0gICAgT3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSA9
IGFkb3B0UHRyKG1fd2ViSURCVHJhbnNhY3Rpb24tPm9iamVjdFN0b3JlKGluZGV4SWQsIGVjKSk7
Ci0gICAgaWYgKCFvYmplY3RTdG9yZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIElE
Qk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpjcmVhdGUob2JqZWN0U3RvcmUucmVsZWFzZSgpKTsK
LX0KLQogdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6Y29tbWl0KCkKIHsKICAgICBt
X3dlYklEQlRyYW5zYWN0aW9uLT5jb21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oCmluZGV4IDhlYWQzMTY0
YzJjY2Q4MDdmMDFhNWI4YThlZDYyZjlhMmViNmIyMWUuLmM2YzNkODQxMjA3N2U0NjkwNDUwNmIw
ODJlZWY3MmQzY2I0ZTQyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
PiBjcmVhdGUoUGFzc093blB0cjxXZWJJREJUcmFuc2FjdGlvbj4pOwogICAgIHZpcnR1YWwgfklE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KCk7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBvYmplY3RTdG9yZShpbnQ2NF90
LCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3Mo
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IDM4NTViZTU5MjVjN2Jl
ZjBhMTY0ZWY2NjI4ZjgzN2U2MzRmZTBmZDEuLjg4N2QxNWQxMmNjMDAwOTYwNTk2ZDYwOTdiZmFj
MTEzMTVhZjU4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcApAQCAtMzAsMTcgKzMwLDE3IEBACiAKICNpbmNsdWRlICJET01TdHJp
bmdMaXN0LmgiCiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKKyNpbmNsdWRlICJJREJD
dXJzb3IuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2Uu
aCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFj
a2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZS5oIgogI2luY2x1ZGUgIldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzLmgiCisjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVkZSAiV2ViSURC
S2V5UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIldlYklE
Qk9iamVjdFN0b3JlSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uSW1wbC5oIgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYyLDI2ICs2MiwxMSBAQCBXZWJJREJNZXRh
ZGF0YSBXZWJJREJEYXRhYmFzZUltcGw6Om1ldGFkYXRhKCkgY29uc3QKICAgICByZXR1cm4gbV9k
YXRhYmFzZUJhY2tlbmQtPm1ldGFkYXRhKCk7CiB9CiAKLVdlYklEQk9iamVjdFN0b3JlKiBXZWJJ
REJEYXRhYmFzZUltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBpZCwgY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNy
ZW1lbnQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9u
Q29kZSYgZWMpCi17Ci0gICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4g
b2JqZWN0U3RvcmUgPSBtX2RhdGFiYXNlQmFja2VuZC0+Y3JlYXRlT2JqZWN0U3RvcmUoaWQsIG5h
bWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci0gICAgaWYgKCFvYmplY3RTdG9yZSkgewotICAgICAg
ICBBU1NFUlQoZWMpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgcmV0dXJuIG5ldyBX
ZWJJREJPYmplY3RTdG9yZUltcGwob2JqZWN0U3RvcmUpOwotfQotCiB2b2lkIFdlYklEQkRhdGFi
YXNlSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcg
bG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktl
eVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCkKIHsKICAgICBtX2RhdGFiYXNlQmFj
a2VuZC0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgbmFt
ZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCk7CiB9CiAKLXZvaWQgV2ViSURCRGF0YWJhc2VJbXBs
OjpkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBt
X2RhdGFiYXNlQmFja2VuZC0+ZGVsZXRlT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZCwgdHJhbnNh
Y3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQogdm9p
ZCBXZWJJREJEYXRhYmFzZUltcGw6OmRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2Fj
dGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCkKIHsKICAgICBtX2RhdGFiYXNlQmFja2Vu
ZC0+ZGVsZXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCk7CkBAIC0x
NjUsNyArMTUwLDcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OnB1dChsb25nIGxvbmcgdHJh
bnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIFcKIAogICAgIEFTU0VSVCh3ZWJJ
bmRleElkcy5zaXplKCkgPT0gd2ViSW5kZXhLZXlzLnNpemUoKSk7CiAgICAgVmVjdG9yPGludDY0
X3Q+IGluZGV4SWRzKHdlYkluZGV4SWRzLnNpemUoKSk7Ci0gICAgVmVjdG9yPElEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRleEtleXMod2ViSW5kZXhLZXlzLnNp
emUoKSk7CisgICAgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlz
PiBpbmRleEtleXMod2ViSW5kZXhLZXlzLnNpemUoKSk7CiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHdlYkluZGV4SWRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGluZGV4SWRzW2ldID0g
d2ViSW5kZXhJZHNbaV07CkBAIC0xODcsNyArMTcyLDcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUlt
cGw6OnNldEluZGV4S2V5cyhsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVj
dFMKIAogICAgIEFTU0VSVCh3ZWJJbmRleElkcy5zaXplKCkgPT0gd2ViSW5kZXhLZXlzLnNpemUo
KSk7CiAgICAgVmVjdG9yPGludDY0X3Q+IGluZGV4SWRzKHdlYkluZGV4SWRzLnNpemUoKSk7Ci0g
ICAgVmVjdG9yPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRl
eEtleXMod2ViSW5kZXhLZXlzLnNpemUoKSk7CisgICAgVmVjdG9yPElEQkRhdGFiYXNlQmFja2Vu
ZEludGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRleEtleXMod2ViSW5kZXhLZXlzLnNpemUoKSk7CiAK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYkluZGV4SWRzLnNpemUoKTsgKytpKSB7CiAg
ICAgICAgIGluZGV4SWRzW2ldID0gd2ViSW5kZXhJZHNbaV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCmluZGV4IGFjZTUyMGFkYjAyYmM5NzNi
YTY2NmM5YzYxNGJmNTA4ZWE2NzZlOTQuLjkxODQ2MjJlYWJjODI0YjFhMDc3M2FkMGYzOTg4NTMz
MGU0ZjhhMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5oCkBAIC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrczsKIGNsYXNzIFdlYklEQkRhdGFiYXNlTWV0YWRhdGE7Ci1j
bGFzcyBXZWJJREJPYmplY3RTdG9yZTsKIGNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwogCiAvLyBT
ZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhl
c2UgY2xhc3Nlcy4KQEAgLTUzLDkgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJJ
REJNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBXZWJJREJPYmplY3RT
dG9yZSogY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVP
YmplY3RTdG9yZShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgYXV0
b0luY3JlbWVudCk7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9u
ZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVj
dFN0b3JlSWQsIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkKTsKICAgICAvLyBGSVhNRTogUmVtb3Zl
IHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDM5MjMuCiAgICAgdmlydHVhbCBXZWJJREJUcmFuc2FjdGlvbiogY3JlYXRlVHJhbnNhY3Rpb24o
bG9uZyBsb25nIGlkLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIHVuc2lnbmVkIHNob3J0
IG1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFj
dG9yeUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUlt
cGwuY3BwCmluZGV4IGQxMGViOTIxNjJjYzk3MTNjMzQ4YWE0ZjdmOGQ4ZjAxNWI4ODgzMWIuLjM1
ODllMTU1ZDM0ZDUwNjhmMGVjMjEwNTNiN2I5NDhiOTQwMmEyNGYgMTAwNzU1Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKQEAgLTY1LDE1ICs2NSw2
IEBAIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6OmdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJh
Y2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlCiAgICAgbV9pZGJGYWN0b3J5QmFja2VuZC0+Z2V0
RGF0YWJhc2VOYW1lcyhJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNr
cykpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwogfQogCi0vLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0
aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi12
b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBs
b25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNh
bGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmln
aW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKQotewotICAgIFJlZlB0cjxJ
REJDYWxsYmFja3NQcm94eT4gY2FsbGJhY2tzUHJveHkgPSBJREJDYWxsYmFja3NQcm94eTo6Y3Jl
YXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOwotICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNr
c1Byb3h5PiBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5ID0gSURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eTo6Y3JlYXRlKGFkb3B0UHRyKGRhdGFiYXNlQ2FsbGJhY2tzKSk7Ci0gICAgY2FsbGJhY2tzUHJv
eHktPnNldERhdGFiYXNlQ2FsbGJhY2tzKGRhdGFiYXNlQ2FsbGJhY2tzUHJveHkpOwotICAgIG1f
aWRiRmFjdG9yeUJhY2tlbmQtPm9wZW4obmFtZSwgdmVyc2lvbiwgY2FsbGJhY2tzUHJveHkuZ2V0
KCksIGRhdGFiYXNlQ2FsbGJhY2tzUHJveHkuZ2V0KCksIG9yaWdpbiwgMCwgZGF0YURpcik7Ci19
Ci0KIHZvaWQgV2ViSURCRmFjdG9yeUltcGw6Om9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBs
b25nIGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIFdlYklEQkNhbGxiYWNr
cyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3Ms
IGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiwgY29uc3QgV2ViU3Ry
aW5nJiBkYXRhRGlyKQogewogICAgIFJlZlB0cjxJREJDYWxsYmFja3NQcm94eT4gY2FsbGJhY2tz
UHJveHkgPSBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKaW5kZXgg
N2MwZGVlNzkxMTkzMmE2ZDRmMmQzOTE5OTMzYTI2MjBhOTY0NmQ5My4uMTY2OWY5ZDBmODBkZDFi
ZjAxMWRhMWJiZDNlZmVjYzkzNzc0Mzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCkBAIC00NSw4ICs0NSw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5XZWJJREJGYWN0b3J5SW1wbCgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFi
YXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJG
cmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0
aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
OTIzLgotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBs
b25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyosIFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwg
Y29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0
YURpcik7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBsb25n
IGxvbmcgdmVyc2lvbiwgbG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIFdlYklEQkNhbGxiYWNrcyos
IFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzKiwgY29uc3QgV2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJG
cmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0
ZURhdGFiYXNlKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3Qg
V2ViU2VjdXJpdHlPcmlnaW4mLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDhmODU0ZjM1ZjU4NzIyZGJmNTA4ODJkMzQ2
NDVhZjkyMWVkNDg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIldlYklEQkluZGV4SW1wbC5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0KLSNpbmNsdWRlICJJREJDYWxsYmFja3NQcm94eS5oIgotI2luY2x1ZGUgIklEQkluZGV4Lmgi
Ci0jaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCS2V5
UmFuZ2UuaCIKLSNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJXZWJJREJL
ZXkuaCIKLSNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYklEQkluZGV4SW1wbDo6V2ViSURCSW5k
ZXhJbXBsKFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBiYWNrZW5kKQotICAg
IDogbV9iYWNrZW5kKGJhY2tlbmQpCi17Ci19Ci0KLVdlYklEQkluZGV4SW1wbDo6fldlYklEQklu
ZGV4SW1wbCgpCi17Ci19Ci0KLXZvaWQgV2ViSURCSW5kZXhJbXBsOjpvcGVuT2JqZWN0Q3Vyc29y
KGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRy
YW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX2JhY2tlbmQtPm9wZW5D
dXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9w
dFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJbmRleEltcGw6Om9wZW5LZXlDdXJzb3Io
Y29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+b3Blbktl
eUN1cnNvcihrZXlSYW5nZSwgZGlyZWN0aW9uLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFk
b3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UoKSwgZWMpOwotfQotCi12b2lkIFdlYklEQkluZGV4SW1wbDo6Y291bnQoY29uc3Qg
V2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCAgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgbV9iYWNrZW5kLT5jb3VudChrZXlSYW5nZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJbmRleEltcGw6OmdldE9i
amVjdChjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2Fs
bGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+Z2V0KGtleVJhbmdlLCBJREJDYWxsYmFja3NQ
cm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotfQotCi12b2lkIFdlYklEQkluZGV4SW1w
bDo6Z2V0S2V5KGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgV2ViSURCQ2FsbGJhY2tz
KiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhj
ZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9iYWNrZW5kLT5nZXRLZXkoa2V5UmFuZ2UsIElEQkNh
bGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdl
dElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA1NzhhMDk3OWJhNWY3NGUwMmJkZDRlN2FhNTZmZjc3OTE2MzAwZjM5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURCSW5kZXhJbXBsX2gKLSNkZWZpbmUgV2ViSURC
SW5kZXhJbXBsX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAi
V2ViSURCSW5kZXguaCIKLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tbW9uLmg+Ci0jaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsgY2xhc3MgSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlOyB9Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi0vLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGln
aCBsZXZlbCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgotY2xhc3MgV2ViSURCSW5kZXhJbXBsIDog
cHVibGljIFdlYklEQkluZGV4IHsKLXB1YmxpYzoKLSAgICBXZWJJREJJbmRleEltcGwoV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEludGVyZmFjZT4pOwotICAgIHZpcnR1
YWwgfldlYklEQkluZGV4SW1wbCgpOwotCi0gICAgdmlydHVhbCB2b2lkIG9wZW5PYmplY3RDdXJz
b3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklE
QkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYp
OyAKLSAgICB2aXJ0dWFsIHZvaWQgb3BlbktleUN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYs
IHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50
KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJh
bnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldE9iamVj
dChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRy
YW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRLZXko
Y29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotcHJpdmF0ZToKLSAgICBXVEY6OlJlZlB0
cjxXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IG1fYmFja2VuZDsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci0KLSNlbmRpZiAvLyBXZWJJREJJbmRleEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDEwMjgwNGJjODFkZjY0OGFlYmZiMDkyZTBjMTRhODkzMjJiOWQ1OTcuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldl
YklEQk9iamVjdFN0b3JlSW1wbC5oIgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0K
LSNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHku
aCIKLSNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJJREJL
ZXlQYXRoLmgiCi0jaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJJREJPYmplY3RT
dG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJXZWJJREJJbmRleEltcGwuaCIKLSNp
bmNsdWRlICJXZWJJREJLZXkuaCIKLSNpbmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgotI2luY2x1
ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2Ug
V2ViS2l0IHsKLQotV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpXZWJJREJPYmplY3RTdG9yZUltcGwo
UGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IG9iamVjdFN0b3JlKQot
ICAgIDogbV9vYmplY3RTdG9yZShvYmplY3RTdG9yZSkKLXsKLX0KLQotV2ViSURCT2JqZWN0U3Rv
cmVJbXBsOjp+V2ViSURCT2JqZWN0U3RvcmVJbXBsKCkKLXsKLX0KLQotdm9pZCBXZWJJREJPYmpl
Y3RTdG9yZUltcGw6OmdldChjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNh
bGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24s
IFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0U3RvcmUtPmdldChrZXlSYW5n
ZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNh
Y3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9p
ZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OnB1dChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFs
dWUmIHZhbHVlLCBjb25zdCBXZWJJREJLZXkmIGtleSwgUHV0TW9kZSBwdXRNb2RlLCBXZWJJREJD
YWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9u
LCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgd2ViSW5kZXhJZHMsIGNvbnN0IFdlYlZlY3Rv
cjxXZWJJbmRleEtleXM+JiB3ZWJJbmRleEtleXMpCi17Ci0gICAgQVNTRVJUKHdlYkluZGV4SWRz
LnNpemUoKSA9PSB3ZWJJbmRleEtleXMuc2l6ZSgpKTsKLSAgICBWZWN0b3I8aW50NjRfdD4gaW5k
ZXhJZHMod2ViSW5kZXhJZHMuc2l6ZSgpKTsKLSAgICBWZWN0b3I8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+IGluZGV4S2V5cyh3ZWJJbmRleEtleXMuc2l6ZSgpKTsK
LQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2ViSW5kZXhJZHMuc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgaW5kZXhJZHNbaV0gPSB3ZWJJbmRleElkc1tpXTsKLSAgICAgICAgVmVjdG9yPFJl
ZlB0cjxJREJLZXk+ID4gaW5kZXhLZXlMaXN0KHdlYkluZGV4S2V5c1tpXS5zaXplKCkpOwotICAg
ICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHdlYkluZGV4S2V5c1tpXS5zaXplKCk7ICsraikK
LSAgICAgICAgICAgIGluZGV4S2V5TGlzdFtqXSA9IHdlYkluZGV4S2V5c1tpXVtqXTsKLSAgICAg
ICAgaW5kZXhLZXlzW2ldID0gaW5kZXhLZXlMaXN0OwotICAgIH0KLQotICAgIG1fb2JqZWN0U3Rv
cmUtPnB1dCh2YWx1ZSwga2V5LCBzdGF0aWNfY2FzdDxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2U6OlB1dE1vZGU+KHB1dE1vZGUpLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0
UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UoKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3Rv
cmVJbXBsOjpzZXRJbmRleEtleXMoY29uc3QgV2ViSURCS2V5JiBwcmltYXJ5S2V5LCBjb25zdCBX
ZWJWZWN0b3I8bG9uZyBsb25nPiYgd2ViSW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRl
eEtleXM+JiB3ZWJJbmRleEtleXMsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
bikKLXsKLSAgICBBU1NFUlQod2ViSW5kZXhJZHMuc2l6ZSgpID09IHdlYkluZGV4S2V5cy5zaXpl
KCkpOwotICAgIFZlY3RvcjxpbnQ2NF90PiBpbmRleElkcyh3ZWJJbmRleElkcy5zaXplKCkpOwot
ICAgIFZlY3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5k
ZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOwotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB3ZWJJbmRleElkcy5zaXplKCk7ICsraSkgewotICAgICAgICBpbmRleElkc1tpXSA9IHdlYklu
ZGV4SWRzW2ldOwotICAgICAgICBWZWN0b3I8UmVmUHRyPElEQktleT4gPiBpbmRleEtleUxpc3Qo
d2ViSW5kZXhLZXlzW2ldLnNpemUoKSk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGogPSAwOyBqIDwg
d2ViSW5kZXhLZXlzW2ldLnNpemUoKTsgKytqKQotICAgICAgICAgICAgaW5kZXhLZXlMaXN0W2pd
ID0gd2ViSW5kZXhLZXlzW2ldW2pdOwotICAgICAgICBpbmRleEtleXNbaV0gPSBpbmRleEtleUxp
c3Q7Ci0gICAgfQotICAgIG1fb2JqZWN0U3RvcmUtPnNldEluZGV4S2V5cyhwcmltYXJ5S2V5LCBp
bmRleElkcywgaW5kZXhLZXlzLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UoKSk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpzZXRJbmRleGVz
UmVhZHkoY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4TmFtZXMsIGNvbnN0IFdl
YklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKLXsKLSAgICBWZWN0b3I8aW50NjRfdD4gaW5k
ZXhJZHMod2ViSW5kZXhOYW1lcy5zaXplKCkpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
d2ViSW5kZXhOYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgaW5kZXhJZHNbaV0gPSB3ZWJJbmRl
eE5hbWVzW2ldOwotICAgIG1fb2JqZWN0U3RvcmUtPnNldEluZGV4ZXNSZWFkeShpbmRleElkcywg
dHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkpOwotfQotCi12
b2lkIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6ZGVsZXRlRnVuY3Rpb24oY29uc3QgV2ViSURCS2V5
UmFuZ2UmIGtleVJhbmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBt
X29iamVjdFN0b3JlLT5kZWxldGVGdW5jdGlvbihrZXlSYW5nZSwgSURCQ2FsbGJhY2tzUHJveHk6
OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUlt
cGw6OmNsZWFyKFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0
U3RvcmUtPmNsZWFyKElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tz
KSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7
Ci19Ci0KLVdlYklEQkluZGV4KiBXZWJJREJPYmplY3RTdG9yZUltcGw6OmNyZWF0ZUluZGV4KGxv
bmcgbG9uZyBpZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiBr
ZXlQYXRoLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxJ
REJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGluZGV4ID0gbV9vYmplY3RTdG9yZS0+Y3JlYXRlSW5k
ZXgoaWQsIG5hbWUsIGtleVBhdGgsIHVuaXF1ZSwgbXVsdGlFbnRyeSwgdHJhbnNhY3Rpb24uZ2V0
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLSAgICBpZiAoIWluZGV4KQot
ICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbmV3IFdlYklEQkluZGV4SW1wbChpbmRleCk7
Ci19Ci0KLVdlYklEQkluZGV4KiBXZWJJREJPYmplY3RTdG9yZUltcGw6OmluZGV4KGxvbmcgbG9u
ZyBvYmplY3RTdG9yZUlkKQotewotICAgIFJlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+
IGluZGV4ID0gbV9vYmplY3RTdG9yZS0+aW5kZXgob2JqZWN0U3RvcmVJZCk7Ci0gICAgaWYgKCFp
bmRleCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBXZWJJREJJbmRleEltcGwo
aW5kZXgpOwotfQotCi12b2lkIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6ZGVsZXRlSW5kZXgobG9u
ZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
biwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9vYmplY3RTdG9yZS0+ZGVsZXRlSW5k
ZXgob2JqZWN0U3RvcmVJZCwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6Om9wZW5DdXJz
b3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCBXZWJJREJDdXJzb3I6OkRpcmVjdGlv
biBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJUcmFuc2FjdGlv
bjo6VGFza1R5cGUgdGFza1R5cGUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
biwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9vYmplY3RTdG9yZS0+b3BlbkN1cnNv
cihrZXlSYW5nZSwgc3RhdGljX2Nhc3Q8SURCQ3Vyc29yOjpEaXJlY3Rpb24+KGRpcmVjdGlvbiks
IElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHN0YXRpY19j
YXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGU+KHRhc2tUeXBlKSwg
dHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0K
LQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmNvdW50KGNvbnN0IFdlYklEQktleVJhbmdl
JiBrZXlSYW5nZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9vYmpl
Y3RTdG9yZS0+Y291bnQoa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQ
dHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSgpLCBlYyk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
MzY5NjRjNTEyYmZmZTVkMzRlZmY4N2M0NDc0MmJhN2Y5OThhZjM1Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQk9iamVjdFN0b3JlSW1wbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgV2ViSURCT2JqZWN0U3RvcmVJbXBsX2gKLSNkZWZpbmUgV2ViSURCT2Jq
ZWN0U3RvcmVJbXBsX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVk
ZSAiV2ViSURCT2JqZWN0U3RvcmUuaCIKLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tbW9uLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOyB9
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJJbmRleDsKLQotLy8gU2VlIGNv
bW1lbnQgaW4gV2ViSW5kZXhlZE9iamVjdFN0b3JlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcg
dGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlSW1wbCA6IHB1YmxpYyBXZWJJ
REJPYmplY3RTdG9yZSB7Ci1wdWJsaWM6Ci0gICAgV2ViSURCT2JqZWN0U3RvcmVJbXBsKFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+KTsKLSAg
ICB+V2ViSURCT2JqZWN0U3RvcmVJbXBsKCk7Ci0KLSAgICB2b2lkIGdldChjb25zdCBXZWJJREJL
ZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2Vi
RXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgcHV0KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSYsIGNvbnN0IFdlYklEQktleSYsIFB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCBjb25zdCBX
ZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpOwotICAgIHZvaWQgc2V0SW5kZXhLZXlzKGNvbnN0IFdl
YklEQktleSYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleE5hbWVzLCBjb25zdCBX
ZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJik7Ci0gICAg
dm9pZCBzZXRJbmRleGVzUmVhZHkoY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYpOwotICAgIHZvaWQgZGVsZXRlRnVuY3Rpb24oY29uc3QgV2ViSURC
S2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdl
YkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIGNsZWFyKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgV2ViSURCSW5k
ZXgqIGNyZWF0ZUluZGV4KGxvbmcgbG9uZywgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBX
ZWJJREJLZXlQYXRoJiwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0gICAgV2ViSURCSW5kZXgqIGluZGV4
KGxvbmcgbG9uZyk7Ci0gICAgdm9pZCBkZWxldGVJbmRleChsb25nIGxvbmcsIGNvbnN0IFdlYklE
QlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotCi0gICAgdm9pZCBvcGVuQ3Vyc29y
KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ3Vyc29yOjpEaXJlY3Rpb24sIFdlYklEQkNh
bGxiYWNrcyosIFdlYklEQlRyYW5zYWN0aW9uOjpUYXNrVHlwZSwgY29uc3QgV2ViSURCVHJhbnNh
Y3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBjb3VudChjb25zdCBXZWJJREJL
ZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2Vi
RXhjZXB0aW9uQ29kZSYpOwotCi0gcHJpdmF0ZToKLSAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IG1fb2JqZWN0U3RvcmU7Ci19OwotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQot
Ci0jZW5kaWYgLy8gV2ViSURCT2JqZWN0U3RvcmVJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwCmluZGV4IDQxZjRjOWQy
MDM5ZmE0MTQ3N2UxN2UzZTdlYWQ4OTQ5NGNlMWFhODYuLjlkZmQ2N2JkZDhiMmU1NTc0Yzg0Zjgy
ZDFiZjE5ZDViNTk3ODkxMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcApAQCAtMjgsMTAgKzI4LDkgQEAKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKKyNpbmNsdWRlICJJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkNh
bGxiYWNrc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgiCiAjaW5j
bHVkZSAiV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC00NywxNCArNDYsNiBAQCBXZWJJREJUcmFuc2FjdGlvbkltcGw6On5XZWJJREJU
cmFuc2FjdGlvbkltcGwoKQogewogfQogCi1XZWJJREJPYmplY3RTdG9yZSogV2ViSURCVHJhbnNh
Y3Rpb25JbXBsOjpvYmplY3RTdG9yZShsb25nIGxvbmcgaW5kZXhJZCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2JqZWN0
U3RvcmUgPSBtX2JhY2tlbmQtPm9iamVjdFN0b3JlKGluZGV4SWQsIGVjKTsKLSAgICBpZiAoIW9i
amVjdFN0b3JlKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gbmV3IFdlYklEQk9iamVj
dFN0b3JlSW1wbChvYmplY3RTdG9yZSk7Ci19Ci0KIHZvaWQgV2ViSURCVHJhbnNhY3Rpb25JbXBs
Ojpjb21taXQoKQogewogICAgIG1fYmFja2VuZC0+Y29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oCmluZGV4IDQyNzJjYmUx
MGIyNzEwMTFiMDc5MGZkODkwNjE2ZmU0MzdhYTk4MmIuLjE2ZjA2YTZlZWY0NWQxOThhZjUzZDY3
MjQ4OWRjOTUyMjM1NjI3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oCkBAIC00MSw3ICs0MSw2IEBAIHB1YmxpYzoKICAgICBX
ZWJJREJUcmFuc2FjdGlvbkltcGwoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZT4pOwogICAgIHZpcnR1YWwgfldlYklEQlRyYW5zYWN0aW9uSW1w
bCgpOwogCi0gICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9yZSogb2JqZWN0U3RvcmUobG9uZyBs
b25nIGluZGV4SWQsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0
KCk7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KCk7CiAgICAgdmlydHVhbCB2b2lkIHNldENhbGxi
YWNrcyhXZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCmluZGV4IDQ3M2Ey
MDc4NmEyYjVhMTFiN2JjODhkZDcyNzM0ZjBkNGE4MWI5NDMuLmRhN2M2ZmExODZkMzNkMDJiZWJi
Y2I4ZDY3N2RjMDQzMzIwMTZmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBU
RVNUKElEQkFib3J0VGVzdCwgVGhlVGVzdCkKICAgICBSZWZQdHI8RmFrZUlEQkRhdGFiYXNlQ2Fs
bGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcyA9IEZha2VJREJEYXRhYmFzZUNhbGxiYWNrczo6Y3Jl
YXRlKCk7CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKCJodHRwIiwgImxvY2FsaG9zdCIsIDgxKTsKICAgICBjb25zdCBpbnQ2NF90IER1
bW15VmVyc2lvbiA9IDI7Ci0gICAgZmFjdG9yeS0+b3BlbihuYW1lLCBEdW1teVZlcnNpb24sIGNh
bGxiYWNrcy5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0
cmluZygpIC8qcGF0aCovKTsKKyAgICBmYWN0b3J5LT5vcGVuKG5hbWUsIER1bW15VmVyc2lvbiwg
MSwgY2FsbGJhY2tzLmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrcywgb3JpZ2luLCAwIC8qRnJhbWUq
LywgU3RyaW5nKCkgLypwYXRoKi8pOwogfQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAK
aW5kZXggN2NkNjQ0YTQxMjBjYjhmNzdkYzk2ZjVjMmUwZmIzOTczN2I0ODI4OC4uMzVhNWQ1MGFm
M2U5ZTIzZTJiYTQ1MzcyMmJiZWI4YThlZWVlMTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xMzcs
MTAgKzEzNyw4IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICB2aXJ0dWFsIElEQkRhdGFiYXNlTWV0
YWRhdGEgbWV0YWRhdGEoKSBjb25zdCB7IHJldHVybiBJREJEYXRhYmFzZU1ldGFkYXRhKCk7IH0K
LSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktl
eVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSosIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklERSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBhdGgmLCBib29sIGF1
dG9JbmNyZW1lbnQpIE9WRVJSSURFIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0
U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpIE9WRVJS
SURFIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREUgeyB9
CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYsIElEQlRyYW5zYWN0aW9uOjpNb2RlKSBPVkVSUklERSB7IHJl
dHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3QsIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCB1
bnNpZ25lZCBzaG9ydCBtb2RlKSBPVkVSUklERSB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182602</attachid>
            <date>2013-01-14 11:05:34 -0800</date>
            <delta_ts>2013-01-14 13:28:13 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106605-20130114110233.patch</filename>
            <type>text/plain</type>
            <size>126247</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNiMWM5YWFmODY0NTZi
ZWM1MDRjZTRjMGE4MGNlNjNhNmFlYTNiMC4uMmRiYmRlMTk5YzJiY2YyMGRmZWQ4ZGE3MDJlYmI1
YjQyYjYwNDg3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3MyBAQAorMjAxMy0wMS0xMCAgQWxl
YyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBS
ZW1vdmUgSURCT2JqZWN0U3RvcmUvSW5kZXhCYWNrZW5kSW1wbCBhbmQgc3VwcG9ydCBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjYw
NQorCisgICAgICAgIFJlbW92ZSBhbGwgdXNlcyBvZiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2UgYW5kIElEQkluZGV4QmFja2VuZCosCisgICAgICAgIGFzIHRoZXkgYXJlIG5vIGxvbmdl
ciB1c2VkIGFmdGVyIHJlY2VudCByZWZhY3RvcmluZy4KKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkNh
bGxiYWNrcy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkN1cnNvcjo6dXBkYXRlKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElE
QkRhdGFiYXNlQmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRJbXBs
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFj
ZS5oOgorICAgICAgICAoSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZTo6YWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgIChJ
REJPYmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsOjptYWtlSW5kZXhXcml0ZXJzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpJbmRleFdyaXRlcjo6SW5kZXhXcml0ZXIpOgorICAgICAgICAoSW5k
ZXhXcml0ZXIpOgorICAgICAgICAoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg6IFJl
bW92ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoK
KyAgICAgICAgKElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25Db29yZGlu
YXRvci5jcHA6CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisyMDEzLTAxLTA4ICBBbGVjIEZsZXR0
ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEFsbG93IGNy
ZWF0ZUluZGV4L2NyZWF0ZU9iamVjdFN0b3JlIHRvIGJlIGFzeW5jaHJvbm91cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2Mzc3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAgICAgICBNaWdyYXRlIGltcGxlbWVudGF0aW9u
cyBvZiBjcmVhdGVJbmRleC9kZWxldGVJbmRleCwKKyAgICAgICAgY3JlYXRlT2JqZWN0U3RvcmUv
ZGVsZXRlT2JqZWN0U3RvcmUgb3ZlciB0byBJREJEYXRhYmFzZUJhY2tlbmRJbXBsLAorICAgICAg
ICBzbyB0aGF0IHRoZXkgY2FuIGJlIGFzeW5jaHJvbm91cyBpbiBtdWx0aS1wcm9jZXNzIHBvcnRz
LgorCisgICAgICAgIEhhcyB0aGUgc2lkZSBlZmZlY3Qgb2YgcmVtb3ZpbmcgdGhlIGxhc3QgY29u
c3VtZXJzIG9mCisgICAgICAgIElEQkluZGV4QmFja2VuZEltcGwgYW5kIElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuIFRoZSBmb3JtZXIKKyAgICAgICAgaXMgcmVtb3ZlZCBjb21wbGV0ZSBhbmQg
dGhlIGxhdHRlciBiZWNvbWVzIGEgdGVtcG9yYXJ5IG5hbWVzcGFjZQorICAgICAgICBwZW5kaW5n
IGEgZnVydGhlciBtb3JlIG1lY2hhbmljYWwgY29kZSBzaHVmZmxlLgorCisgICAgICAgIEEga2V5
IHJlZmFjdG9yaW5nIGVmZmVjdCBpcyB0aGF0IHRoZSBJREJEYXRhYmFzZUJhY2tlbmRJbXBsCisg
ICAgICAgIG5vdyBjb250YWlucyB0aGUgYXV0aG9yaXRhdGl2ZSBJREJEYXRhYmFzZU1ldGFkYXRh
IGhpZXJhcmNoeSwKKyAgICAgICAgYW5kIHVwZGF0ZXMgdG8gaXQgYXJlIGNvbnNvbGlkYXRlZCBp
biBvbmUgcGxhY2UgcmF0aGVyIHRoYW4KKyAgICAgICAgc2NhdHRlcmVkIGFjcm9zcyBhIHBhcmFs
bGVsIG9iamVjdCB0cmVlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGlzIGlzIGp1c3Qg
cmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3Rv
cmUuY3BwOiBTaW1wbGlmeSBvYmplY3RzdG9yZS9pbmRleCBsb2FkaW5nIGFuZCBwcm9wYWdhdGUg
ZXJyb3JzLgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpnZXRPYmplY3RTdG9y
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCQmFja2luZ1N0b3JlOjpnZXRJbmRleGVzKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKElE
QkJhY2tpbmdTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFj
a2VuZEltcGwuY3BwOiBEZXBlbmRlbmN5IGNsZWFudXAuCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuaDogRGVwZW5kZW5jeSBjbGVhbnVwLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
OiBGcm9udGVuZCBJREJPYmplY3RTdG9yZXMgbm8gbG9uZ2VyIGhvbGQgb250byBiYWNrZW5kIG9i
amVjdHMuCisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDogQWRk
IGFsbCBjcmVhdGUvZGVsZXRlSW5kZXggb3BlcmF0aW9ucyBmcm9tIElEQkluZGV4QmFja2VuZElt
cGwuCisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpDcmVhdGVP
YmplY3RTdG9yZU9wZXJhdGlvbik6CisgICAgICAgIChDcmVhdGVPYmplY3RTdG9yZU9wZXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlvbjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbik6CisgICAgICAgIChEZWxldGVPYmplY3RTdG9yZU9wZXJhdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlv
bjo6Q3JlYXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbik6CisgICAgICAgIChDcmVhdGVPYmpl
Y3RTdG9yZUFib3J0T3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZU9iamVjdFN0
b3JlQWJvcnRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVPYmpl
Y3RTdG9yZUFib3J0T3BlcmF0aW9uOjpEZWxldGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uKToK
KyAgICAgICAgKERlbGV0ZU9iamVjdFN0b3JlQWJvcnRPcGVyYXRpb24pOgorICAgICAgICAoQ3Jl
YXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlYXRlSW5kZXhPcGVyYXRp
b246OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVhdGVJbmRleE9wZXJhdGlvbjo6Q3Jl
YXRlSW5kZXhPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChEZWxldGVJ
bmRleE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVJbmRleE9wZXJhdGlvbjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkRlbGV0ZUluZGV4T3BlcmF0aW9uOjpEZWxldGVJ
bmRleE9wZXJhdGlvbik6CisgICAgICAgIChDcmVhdGVJbmRleEFib3J0T3BlcmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4QWJvcnRPcGVyYXRpb246OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDcmVhdGVJbmRleEFib3J0T3BlcmF0aW9uOjpDcmVhdGVJbmRleEFib3J0
T3BlcmF0aW9uKToKKyAgICAgICAgKERlbGV0ZUluZGV4QWJvcnRPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhBYm9ydE9wZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGV0ZUluZGV4QWJvcnRPcGVyYXRpb246OkRlbGV0ZUluZGV4QWJvcnRPcGVy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R2V0T3BlcmF0aW9uOjpHZXRPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6YWRkT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6YWRkSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cmVtb3ZlSW5k
ZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkludGVy
bmFsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6Om1ldGFkYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0ZU9iamVj
dFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZU9iamVjdFN0b3JlT3BlcmF0aW9uOjpw
ZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmRlbGV0
ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4T3BlcmF0aW9uOjpw
ZXJmb3JtKToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWF0ZUluZGV4QWJvcnRPcGVyYXRpb246OnBl
cmZvcm0pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6ZGVsZXRl
SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhPcGVyYXRpb246OnBlcmZvcm0p
OgorICAgICAgICAoV2ViQ29yZTo6RGVsZXRlSW5kZXhBYm9ydE9wZXJhdGlvbjo6cGVyZm9ybSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpnZXQpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OnNldEluZGV4S2V5cyk6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWxldGVSYW5nZU9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpEZWxldGVP
YmplY3RTdG9yZU9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpkZWxldGVEYXRhYmFzZUZpbmFsKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmxvYWRPYmplY3RTdG9yZXMpOiBMb2FkIGRpcmVjdGx5
IGludG8gbWV0YWRhdGEgZnJvbSBiYWNraW5nIHN0b3JlLgorICAgICAgICAoV2ViQ29yZTo6Q3Jl
YXRlT2JqZWN0U3RvcmVBYm9ydE9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgIChXZWJDb3Jl
OjpEZWxldGVPYmplY3RTdG9yZUFib3J0T3BlcmF0aW9uOjpwZXJmb3JtKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OlZlcnNpb25DaGFuZ2VBYm9ydE9wZXJhdGlv
bjo6cGVyZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tl
bmRJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNyZWF0
ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eEJhY2tlbmRJbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9J
REJJbmRleEJhY2tlbmRJbXBsLmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6
OklEQk9iamVjdFN0b3JlKTogRnJvbnRlbmQgSURCSW5kZXggb2JqZWN0cyBubyBsb25nZXIgaG9s
ZCBvbnRvIGJhY2tlbmQuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y3JlYXRl
SW5kZXgpOiAKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpkZWxldGVJbmRleCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpjcmVhdGUpOgorICAgICAgICAoSURCT2JqZWN0U3Rv
cmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEltcGwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Om9iamVjdFN0b3JlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Om9iamVjdFN0b3JlKToKKyAgICAgICAg
KiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDEzLTAx
LTEyICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBBdmFpbGFi
bGUgaGVpZ2h0IHNob3VsZCByZXNwZWN0IG1pbiBhbmQgbWF4IGhlaWdodApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBiYzAzNTk3NTE4MDQyNDcyZTg2N2M4ZThkZjhjNmJlODMzZjk4ZTRl
Li44MzY5MGE2YTZkZWNiNjY0MTA3Y2M4ZGM5NDhiMjEyOGI3YTY2NGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEzLTAxLTEwICBBbGVjIEZsZXR0ICA8
YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJlbW92ZSBJREJP
YmplY3RTdG9yZS9JbmRleEJhY2tlbmRJbXBsIGFuZCBzdXBwb3J0IGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NjA1CisKKyAgICAg
ICAgUmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIElEQk9iamVjdFN0b3JlQmFja2VuZCogYW5kIElE
QkluZGV4QmFja2VuZCoKKyAgICAgICAgYXMgdGhleSBubyBsb25nZXIgZXhpc3QgaW4gV2ViQ29y
ZS4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCisKKyAgICAgICAgKiBXZWJL
aXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgIChXZWJL
aXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZTo6bWV0YWRhdGEpOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJGYWN0b3J5Lmg6CisgICAgICAgIChXZWJJREJGYWN0b3J5KToKKyAg
ICAgICAgKiBwdWJsaWMvV2ViSURCSW5kZXguaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMv
V2ViSURCT2JqZWN0U3RvcmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViSURCVHJh
bnNhY3Rpb24uaDoKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwOgorICAgICAg
ICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgICogc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRQcm94eSk6
CisgICAgICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAqIHNy
Yy9JREJGYWN0b3J5QmFja2VuZFByb3h5Lmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZFBy
b3h5KToKKyAgICAgICAgKiBzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHNyYy9JREJJbmRleEJhY2tlbmRQcm94eS5oOiBSZW1vdmVkLgorICAgICAgICAq
IHNyYy9JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eS5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
c3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3Jj
L0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKiBzcmMvSURCVHJhbnNh
Y3Rpb25CYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
KToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCRGF0YWJhc2VJbXBsOjpwdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRh
YmFzZUltcGw6OnNldEluZGV4S2V5cyk6CisgICAgICAgICogc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6Cisg
ICAgICAgICogc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
SURCRmFjdG9yeUltcGw6OmdldERhdGFiYXNlTmFtZXMpOgorICAgICAgICAqIHNyYy9XZWJJREJG
YWN0b3J5SW1wbC5oOgorICAgICAgICAoV2ViSURCRmFjdG9yeUltcGwpOgorICAgICAgICAqIHNy
Yy9XZWJJREJJbmRleEltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJJbmRl
eEltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmg6IFJlbW92
ZWQuCisgICAgICAgICogc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHA6CisgICAgICAgICog
c3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAqIHRlc3RzL0lEQkFib3J0T25D
b3JydXB0VGVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpURVNUKToKKyAgICAgICAgKiB0ZXN0
cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcDoKKworMjAxMy0wMS0wOCAgQWxlYyBGbGV0dCAg
PGFsZWNmbGV0dEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBBbGxvdyBjcmVh
dGVJbmRleC9jcmVhdGVPYmplY3RTdG9yZSB0byBiZSBhc3luY2hyb25vdXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjM3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAgICAgUmVtb3ZlIHRoaXMgdGVzdCBhcyBpdCBt
YWtlcyBubyBzZW5zZSBvbmNlIHRoZSBvYmplY3RzdG9yZS9pbmRleAorICAgICAgICBoaWVyYXJj
aHkgaXMgZ29uZS4KKworICAgICAgICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3Bw
OgorCiAyMDEzLTAxLTExICBEYW4gQmVhbSAgPGRiZWFtQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2xlYW4gdXBdIFJlbW92ZSBIVE1MRm9ybUVsZW1lbnQ6OkF1dG9jb21wbGV0ZVJlc3VsdEVy
cm9yIGluIGZhdm9yIG9mIG1vcmUgc3BlY2lmaWMgRXJyb3IgcmVhc29ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggZmFiZjM1MzUzOTA0NGFmZWI3MDQwMWYyNmFjMTgxMzEzY2Nk
Njc1Zi4uNmNkODJjZDJiODk1NzI4NDhkYmM1MjViNjc1ZTIyYWEyZjk2MTJhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xODczLDcgKzE4NzMsNiBAQCB3ZWJjb3JlX21vZHVs
ZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuaCBcCi0JU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhC
YWNrZW5kSW50ZXJmYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
aCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcCBcCkBAIC0x
ODg3LDcgKzE4ODYsNiBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTWV0YWRhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBc
Ci0JU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlLmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCQ2FsbGJhY2tzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxs
YmFja3MuaAppbmRleCAxY2Y0YjdiZDBkYzU0ZTFkYTE5MjYyNDFlMmUzY2YzN2YwNmZhMDRjLi5m
OGQzY2U0OGNkODM3NGZmMWVkNmI5ODI4OGU2NDhmZGFiNmU1YWFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNDIsNyArNDIsNiBA
QAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRE9NU3RyaW5nTGlzdDsKIGNsYXNzIElEQkN1
cnNvckJhY2tlbmRJbnRlcmZhY2U7Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2U7CiAKIGNsYXNzIElEQkNhbGxiYWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkNhbGxiYWNr
cz4gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1
cnNvci5jcHAKaW5kZXggZDQxMWRhOTM3NWVmYWI5MTBjYmQ2NWU3ZDliMWU0NGM5MzA4M2RjMS4u
YzdkYzQ3ZGQ5YzQwZWI0NzY0M2IwYTZmNDg0N2MyNzEzZTljMDdkYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xNTIsNyArMTUyLDcg
QEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJDdXJzb3I6OnVwZGF0ZShTY3JpcHRTdGF0ZSog
c3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVy
biBvYmplY3RTdG9yZS0+cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6Q3Vyc29y
VXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBtX2N1cnJlbnRQcmlt
YXJ5S2V5LCBlYyk7CisgICAgcmV0dXJuIG9iamVjdFN0b3JlLT5wdXQoSURCRGF0YWJhc2VCYWNr
ZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwg
dmFsdWUsIG1fY3VycmVudFByaW1hcnlLZXksIGVjKTsKIH0KIAogdm9pZCBJREJDdXJzb3I6OmFk
dmFuY2UobG9uZyBsb25nIGNvdW50LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA3NDY0NmQwMDgx
NzVkYmE0ZTE1Yzk0N2QxNTI2OTk5OTI3ZGFmZmQ4Li44ODNhNjVjNmViNGVlZTZkNDQ1ZTdmMWU3
NjBmOTZmN2ViOGEzOWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2UuY3BwCkBAIC0xODYsNyArMTg2LDcgQEAgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZT4gSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY28KICAgICBpbnQ2NF90IG9iamVjdFN0b3JlSWQgPSBtX21ldGFkYXRhLm1heE9iamVjdFN0
b3JlSWQgKyAxOwogICAgIG1fYmFja2VuZC0+Y3JlYXRlT2JqZWN0U3RvcmUobV92ZXJzaW9uQ2hh
bmdlVHJhbnNhY3Rpb24tPmlkKCksIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1dG9J
bmNyZW1lbnQpOwogCi0gICAgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBtZXRhZGF0YShuYW1lLCBv
YmplY3RTdG9yZUlkLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBJREJPYmplY3RTdG9yZUJhY2tl
bmRJbnRlcmZhY2U6Ok1pbmltdW1JbmRleElkKTsKKyAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRh
IG1ldGFkYXRhKG5hbWUsIG9iamVjdFN0b3JlSWQsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIElE
QkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6TWluaW11bUluZGV4SWQpOwogICAgIFJlZlB0cjxJ
REJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUgPSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKG1ldGFk
YXRhLCBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgbV9tZXRhZGF0YS5v
YmplY3RTdG9yZXMuc2V0KG1ldGFkYXRhLmlkLCBtZXRhZGF0YSk7CiAgICAgKyttX21ldGFkYXRh
Lm1heE9iamVjdFN0b3JlSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCmluZGV4IDkyYzkxOGM5YTA2
MTQwYjIwN2MzNzdkYzdkMGVjNTE5ODZmOTY5NmEuLmM2YWQxMjVhMzdjODcwOWY0OWQ1YzFmYjNk
ZDc1ZTcxZjM0ZjA3ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwCkBAIC01NjEsNyArNTYxLDcg
QEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2IKICAgICBBU1NFUlQobV90cmFuc2FjdGlvbnMuY29u
dGFpbnModHJhbnNhY3Rpb25JZCkpOwogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRy
YW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogCi0gICAgSURC
T2JqZWN0U3RvcmVNZXRhZGF0YSBvYmplY3RTdG9yZU1ldGFkYXRhKG5hbWUsIG9iamVjdFN0b3Jl
SWQsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFj
ZTo6TWluaW11bUluZGV4SWQpOworICAgIElEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0U3Rv
cmVNZXRhZGF0YShuYW1lLCBvYmplY3RTdG9yZUlkLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6Ok1pbmltdW1JbmRleElkKTsKIAogICAgIHRyYW5z
YWN0aW9uLT5zY2hlZHVsZVRhc2soQ3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb246OmNyZWF0ZSht
X2JhY2tpbmdTdG9yZSwgb2JqZWN0U3RvcmVNZXRhZGF0YSksIENyZWF0ZU9iamVjdFN0b3JlQWJv
cnRPcGVyYXRpb246OmNyZWF0ZSh0aGlzLCBvYmplY3RTdG9yZUlkKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuaAppbmRleCAzNDdmMjNlZDFiYWM1MTc5YzhmNjY3MTYzYjAyODM1N2E2M2ZmMjhlLi42NmMx
ZWUyYWM0OTc2MzNkYjAzMDgyZjkwNDI5YWM1NjdjOGFiMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5o
CkBAIC02Myw5ICs2Myw3IEBAIHB1YmxpYzoKIAogICAgIC8vIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZQogICAgIHZpcnR1YWwgSURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+
IGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
SURCS2V5UGF0aCYsIGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4g
MDsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJ
REJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
T2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhj
ZXB0aW9uQ29kZSYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQpOwogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMs
IElEQlRyYW5zYWN0aW9uOjpNb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXgg
NGJiZmJiODZhY2NlMTNiMDgwNzE0MmYxMmFkYzM2MWY4OGFjZWU0MC4uYzIxOTY2YzVmMDgxYWIx
YTIwY2ViY2Q1MzkyOWIxNDFlYjQwMTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgK
QEAgLTQwLDcgKzQwLDYgQEAgY2xhc3MgSURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBJREJL
ZXk7CiBjbGFzcyBJREJLZXlQYXRoOwogY2xhc3MgSURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2U7CiBzdHJ1Y3QgSURCRGF0YWJhc2VNZXRhZGF0YTsKIApAQCAtNTUsMTEgKzU0LDggQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29u
c3QgPSAwOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVh
dGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVt
ZW50KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkKSA9IDA7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhv
ZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0
ZVRyYW5zYWN0aW9uKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBvYmplY3RTdG9yZUlkcywgSURCVHJhbnNhY3Rpb246Ok1vZGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9y
ZUlkcywgdW5zaWduZWQgc2hvcnQgbW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQ
YXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPikgPSAwOwpAQCAtODIsNiArNzgsOCBAQCBw
dWJsaWM6CiAgICAgICAgIEN1cnNvclVwZGF0ZQogICAgIH07CiAKKyAgICBzdGF0aWMgY29uc3Qg
aW50NjRfdCBNaW5pbXVtSW5kZXhJZCA9IDMwOworCiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PElEQktleT4gPiBJbmRleEtleXM7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+LCBib29sIGtleU9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEltcGwuaAppbmRleCAzYzExY2QzNWEyOTgxNDBlMDdkNmQ4ZjkxYmY2
NTUyOTM2NWI0YTExLi4yNGY3M2FlZjg4OTdhMDIwYzY0NDI1MjdmMjk5YWNhMzU5ZTZmYTA4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFj
a2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEltcGwuaApAQCAtNTgsMTEgKzU4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVJREJCYWNraW5nU3RvcmUoY29uc3QgU3RyaW5nJiBmaWxlSWRlbnRpZmllcik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0
aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0g
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG9wZW4obmFtZSwgdmVyc2lv
biwgMCwgY2FsbGJhY2tzLCBkYXRhYmFzZUNhbGxiYWNrcywgc2VjdXJpdHlPcmlnaW4sIGNvbnRl
eHQsIGRhdGFEaXIpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcm
IG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3Ry
aW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oCmluZGV4IGE5ZmQzYTZmMTMzNGEzMTg2NTk5MzI4ZjFh
NzI1ZDRlMDZlYzQzZjguLjIzYjdjMjE0ZGQ3NWQ1MDlhNzZlYmZmNTUwZGEwOGJmZGE0N2U3Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAogICAgIHZpcnR1
YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpID0gMDsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVh
bCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBkYXRhRGlyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJ
REJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcm
IGRhdGFEaXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3Ry
aW5nJiBuYW1lLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9
IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
SW5kZXguY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3Bw
CmluZGV4IGE4YzE5NjA2MDNhNjBlMmZiOGJjOTZlNDYyMDMwYWI4ZWM5OTEzZDEuLjY4MGI3YTdm
MzE0Nzc1OWY1MGI0YTAxYTQ2NGVmOGQwN2YxNzI0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1
ZGUgIklEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4
Y2VwdGlvbi5oIgotI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1
ZGUgIklEQktleS5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2Jq
ZWN0U3RvcmUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg0ZGM1YjcyNTJlYTU2MGZjZDJiOTFhZTdhZjc3MDRhM2JkNDc1ZjguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2Vf
aAotI2RlZmluZSBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2VfaAotCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi0jaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSURCQ2FsbGJhY2tz
OwotY2xhc3MgSURCS2V5OwotY2xhc3MgSURCS2V5UGF0aDsKLWNsYXNzIElEQktleVJhbmdlOwot
Y2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOwotCi10eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwotCi1jbGFzcyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVm
Q291bnRlZDxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFs
IH5JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvcGVu
Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24s
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
b3BlbktleUN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGly
ZWN0aW9uLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldChQYXNz
UmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBnZXRLZXkoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJ
REJJbmRleEJhY2tlbmRJbnRlcmZhY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGY1MGZlMWViYjgwODJlMjE3NmY4
ZDRmZWQzMGQ5YWFiMDMyNTVmOGEuLmYxMGQwODZlZTQ5NmZkZTFiNTgxODA4ZTk5YzlhZTdlYTk0
NWMzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZS5jcHAKQEAgLTEyMywxNiArMTIzLDE2IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRl
SW5kZXhLZXlzRm9yVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0IElE
QkluCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0U3Rh
dGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmFkZCIp
OwotICAgIHJldHVybiBwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpBZGRPbmx5
LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBrZXksIGVjKTsKKyAgICByZXR1
cm4gcHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6QWRkT25seSwgSURCQW55OjpjcmVh
dGUodGhpcyksIHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVl
JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAg
ICAgSURCX1RSQUNFKCJJREJPYmplY3RTdG9yZTo6cHV0Iik7Ci0gICAgcmV0dXJuIHB1dChJREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkFkZE9yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0
aGlzKSwgc3RhdGUsIHZhbHVlLCBrZXksIGVjKTsKKyAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZTo6QWRkT3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0
ZSwgdmFsdWUsIGtleSwgZWMpOwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlOjpwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1v
ZGUsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0
VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBl
YykKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNv
dXJjZSwgU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8
SURCS2V5PiBwcnBLZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURC
T2JqZWN0U3RvcmU6OnB1dCIpOwogICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IHBycEtleTsKQEAg
LTE2OCw3ICsxNjgsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpw
dXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNbwogICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbVNjcmlwdFN0
YXRlKHN0YXRlKTsKICAgICBET01SZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRlKGNvbnRleHQpOwog
Ci0gICAgaWYgKHB1dE1vZGUgIT0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpDdXJz
b3JVcGRhdGUgJiYgdXNlc0luTGluZUtleXMgJiYga2V5KSB7CisgICAgaWYgKHB1dE1vZGUgIT0g
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUgJiYgdXNlc0luTGluZUtl
eXMgJiYga2V5KSB7CiAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJv
cjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKaW5kZXggNmRmZDk3ODhhNTA4YzZiOTg1MjBk
ZTBmNDFkMzFkZDEzZmRhMjdhZi4uNTkyYmJjMTZjOTQ5YWMwOTVkYzZjY2U4YTNkYTI2ZDEzMDMz
MzRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZS5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVk
ZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIK
ICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5o
IgpAQCAtOTUsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBj
b3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAot
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZTo6UHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBT
Y3JpcHRWYWx1ZSYsIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0
TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1
ZSYsIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgbWFya0Rl
bGV0ZWQoKSB7IG1fZGVsZXRlZCA9IHRydWU7IH0KICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNo
ZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAppbmRleCBkMjRiNjdmZDliY2EwOTEy
MDcxZDViOTA5MTgwNmQ5N2E2YWIxZTY0Li40ZmM4YjE3ZjM0MmZjYzA4YmQxZTZiNDAzOTM1ZjZh
ODg5ZTMzYzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtODYsMTIgKzg2LDEy
IEBAIGJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6SW5kZXhXcml0ZXI6OmFkZGluZ0tl
eUFsbG93ZWQoSURCQmFja2luZ1N0b3JlJiBiCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmUqIGJh
Y2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFk
YXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5
V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0
b3I8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiBpbmRleEtleXMs
IFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+ID4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJv
ck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkKK2Jvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bDo6bWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+
IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRh
YmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1Jl
ZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0
b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlOjpJbmRleEtleXM+JiBpbmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+
ID4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkK
IHsKICAgICBBU1NFUlQoaW5kZXhJZHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkpOwogICAg
IGNvbXBsZXRlZCA9IGZhbHNlOwogCi0gICAgSGFzaE1hcDxpbnQ2NF90LCBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlNYXA7CisgICAgSGFzaE1hcDxp
bnQ2NF90LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlN
YXA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmRleElkcy5zaXplKCk7ICsraSkKICAg
ICAgICAgaW5kZXhLZXlNYXAuYWRkKGluZGV4SWRzW2ldLCBpbmRleEtleXNbaV0pOwogCkBAIC05
OSw3ICs5OSw3IEBAIGJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUluZGV4V3Jp
dGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuCiAKICAgICAgICAgY29uc3QgSURC
SW5kZXhNZXRhZGF0YSYgaW5kZXggPSBpdC0+dmFsdWU7CiAKLSAgICAgICAgSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMga2V5cyA9IGluZGV4S2V5TWFwLmdldChpdC0+
a2V5KTsKKyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMga2V5
cyA9IGluZGV4S2V5TWFwLmdldChpdC0+a2V5KTsKICAgICAgICAgLy8gSWYgdGhlIG9iamVjdFN0
b3JlIGlzIHVzaW5nIGF1dG9JbmNyZW1lbnQsIHRoZW4gYW55IGluZGV4ZXMgd2l0aCBhbiBpZGVu
dGljYWwga2V5UGF0aCBuZWVkIHRvIGFsc28gdXNlIHRoZSBwcmltYXJ5IChnZW5lcmF0ZWQpIGtl
eSBhcyBhIGtleS4KICAgICAgICAgaWYgKGtleVdhc0dlbmVyYXRlZCAmJiAoaW5kZXgua2V5UGF0
aCA9PSBvYmplY3RTdG9yZS5rZXlQYXRoKSkKICAgICAgICAgICAgIGtleXMuYXBwZW5kKHByaW1h
cnlLZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oCmluZGV4IDk3MGZjNDlhMmU2OTkxNTgxMDAy
NWU0MGUwOTNmYzljMGRiOTE5ZjUuLjNkMmU0ZDM0NWRiNmMyZDBkNDJmOTg5MjdjZWIwZjc4MGIw
NTE5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNs
dWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCS2V5UGF0aC5oIgog
I2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdIYXNoLmg+CiAKQEAgLTUyLDcgKzUxLDcgQEAgbmFtZXNwYWNlIElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwgewogICAgICAgICAgICAgOiBtX2luZGV4TWV0YWRhdGEoaW5kZXhNZXRh
ZGF0YSkKICAgICAgICAgeyB9CiAKLSAgICAgICAgSW5kZXhXcml0ZXIoY29uc3QgSURCSW5kZXhN
ZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSwgY29uc3QgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJm
YWNlOjpJbmRleEtleXMmIGluZGV4S2V5cykKKyAgICAgICAgSW5kZXhXcml0ZXIoY29uc3QgSURC
SW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0YSwgY29uc3QgSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlOjpJbmRleEtleXMmIGluZGV4S2V5cykKICAgICAgICAgICAgIDogbV9pbmRleE1ldGFk
YXRhKGluZGV4TWV0YWRhdGEpCiAgICAgICAgICAgICAsIG1faW5kZXhLZXlzKGluZGV4S2V5cykK
ICAgICAgICAgeyB9CkBAIC02NSwxMCArNjQsMTAgQEAgbmFtZXNwYWNlIElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwgewogICAgICAgICBib29sIGFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0
b3JlJiwgSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwg
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5k
ZXhLZXksIGNvbnN0IElEQktleSogcHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QgV0FS
Tl9VTlVTRURfUkVUVVJOOwogCiAgICAgICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEgbV9pbmRl
eE1ldGFkYXRhOwotICAgICAgICBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4
S2V5cyBtX2luZGV4S2V5czsKKyAgICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJ
bmRleEtleXMgbV9pbmRleEtleXM7CiAgICAgfTsKIAotICAgIGJvb2wgbWFrZUluZGV4V3JpdGVy
cyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+LCBJREJCYWNraW5nU3RvcmUq
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBQYXNz
UmVmUHRyPElEQktleT4gcHJpbWFyeUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZl
Y3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJPYmplY3RTdG9yZUJhY2tl
bmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mLCBWZWN0b3I8T3duUHRyPEluZGV4V3JpdGVyPiA+KiBp
bmRleFdyaXRlcnMsIFN0cmluZyogZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5f
VU5VU0VEX1JFVFVSTjsKKyAgICBib29sIG1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsPiwgSURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFz
ZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiwgUGFzc1JlZlB0cjxJREJLZXk+IHBy
aW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGlu
ZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtl
eXM+JiwgVmVjdG9yPE93blB0cjxJbmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcq
IGVycm9yTWVzc2FnZSwgYm9vbCYgY29tcGxldGVkKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKICAg
ICBQYXNzUmVmUHRyPElEQktleT4gZ2VuZXJhdGVLZXkoUGFzc1JlZlB0cjxJREJCYWNraW5nU3Rv
cmU+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+LCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAgICAgYm9vbCB1cGRhdGVLZXlHZW5lcmF0
b3IoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
Y29uc3QgSURCS2V5KiwgYm9vbCBjaGVja0N1cnJlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM5YTBkNzU2OWYwNzVk
ZTk3N2U4OTcxNjIyYzI0NTE1Yjk3MTdiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZV9oCi0jZGVmaW5l
IElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZV9oCi0KLSNpbmNsdWRlICJJREJDdXJzb3Iu
aCIKLSNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJDYWxsYmFja3M7Ci1jbGFzcyBJREJJ
bmRleEJhY2tlbmRJbnRlcmZhY2U7Ci1jbGFzcyBJREJLZXk7Ci1jbGFzcyBJREJLZXlQYXRoOwot
Y2xhc3MgSURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7
Ci1jbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7Ci0KLWNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBSZWZD
b3VudGVkPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gewotcHVibGljOgotICAgIHZp
cnR1YWwgfklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZSgpIHsgfQotCi0gICAgdmlydHVh
bCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFj
a3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAw
OwotCi0gICAgZW51bSBQdXRNb2RlIHsKLSAgICAgICAgQWRkT3JVcGRhdGUsCi0gICAgICAgIEFk
ZE9ubHksCi0gICAgICAgIEN1cnNvclVwZGF0ZQotICAgIH07Ci0KLSAgICBzdGF0aWMgY29uc3Qg
aW50NjRfdCBNaW5pbXVtSW5kZXhJZCA9IDMwOwotCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PElEQktleT4gPiBJbmRleEtleXM7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVGdW5jdGlvbihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBF
eGNlcHRpb25Db2RlJikgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9u
Q29kZSYpID0gMDsKLQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2U+IGNyZWF0ZUluZGV4KGludDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURC
S2V5UGF0aCYsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEluZGV4S2V5cyhQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiwgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mLCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShjb25z
dCBWZWN0b3I8aW50NjRfdD4mLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7
Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgo
aW50NjRfdCkgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGludDY0X3QsIElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0KLSAg
ICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgSURCQ3Vy
c29yOjpEaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uY3BwCmluZGV4IDU2NDZkZWM4Yjk4MmNjYzBmYzBjNDVjZGY0MGUxNmJiMjQz
ZWFkN2UuLmJhMTQ5NWVhZDc4NjBlYTdjN2VlMDViOGY5MGQ1ODBmMzQ4YmUzZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAK
QEAgLTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNs
dWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSAi
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCT3BlbkRCUmVx
dWVzdC5oIgogI2luY2x1ZGUgIklEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKICNpbmNs
dWRlICJJREJUcmFjaW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgKaW5kZXggMGI1YjY0MGFk
ZWNlNGRmODExYjg0MjdmM2M3MDcyZTVmNmNmMzQ2ZC4uOGYyZjVjNjBmOGYxM2RhNTI0YzBiMmUz
NzgxZjIyMWEyOTc1MDU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuaApAQCAtNTIsNyArNTIs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCgpOwog
CiAgICAgLy8gSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlCi0gICAgdmlydHVhbCBQYXNz
UmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUoaW50NjRf
dCwgRXhjZXB0aW9uQ29kZSYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGFib3J0KCk7CiAgICAgdm9pZCBjb21taXQoKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0Q2FsbGJhY2tzKElEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpIHsg
bV9jYWxsYmFja3MgPSBjYWxsYmFja3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
LmgKaW5kZXggYWM1MzU1MzQwZjI3ZWYwOWYyNThhMDdjNzY2YjRiZDU3ZGM5NjYyNy4uNzg1ZWNm
ZDc2NzY0OGJkM2Y2MDk4NDlmNWRlOGFmNDA3ODYwMjgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlLmgKQEAgLTM2LDcgKzM2LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgSURCQ3Vyc29yQmFja2VuZEltcGw7Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkNhbGxiYWNrczsKIAogdHlwZWRlZiBpbnQg
RXhjZXB0aW9uQ29kZTsKQEAgLTUzLDcgKzUyLDYgQEAgcHVibGljOgogICAgICAgICBQcmVlbXB0
aXZlVGFzawogICAgIH07CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlPiBvYmplY3RTdG9yZShpbnQ2NF90LCBFeGNlcHRpb25Db2RlJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3MoSURCVHJhbnNhY3Rpb25DYWxs
YmFja3MqKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI0ZWE4MDI5MWY5
MGMzMWE3NTkzNGMwMjFhZjBiOTNmMWNmODc2YjguLjBiYjVhY2E5NWEwOGM1YzUxNmEzNjUxMzI1
NDViOGU0Njk3ZDUwZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0yOSw3ICsy
OSw2IEBACiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJm
YWNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGVkZGZhNzIyMTdjMGFmYmU5OTVl
ZTk0NjI4YmIzMjBkMjk1NmMzZTAuLmJjMTY4NDdiZjZhNzFkNTdiOTY4ZTdkMTA5MzUxNjQyZDc5
YTU1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMzYzLDcgKzM2Myw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGRvbS9EZXZpY2VNb3Rpb25EYXRhLmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkV2ZW50LmNw
cCBcCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5jcHAgXAotICAgIGRvbS9E
ZXZpY2VPcmllbnRhdGlvbkRhdGEuY3BwIFwgICAgCisgICAgZG9tL0RldmljZU9yaWVudGF0aW9u
RGF0YS5jcHAgXAogICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9t
L0RvY3VtZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXApAQCAtMzA0
OCwxMiArMzA0OCwxMCBAQCBlbmFibGU/KElOREVYRURfREFUQUJBU0UpIHsKICAgICAgICAgTW9k
dWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBcCiAgICAgICAgIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5oIFwKICAgICAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXguaCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4QmFja2VuZEludGVyZmFjZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
LmggXAogICAgICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oIFwKICAgICAgICAg
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBcCi0gICAgICAgIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIFwKICAgICAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
VHJhbnNhY3Rpb24uaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZGEyOTJjMWJlZTgzYWY4MDE3
NjUwNjc3ZjQ4MWVmYmQyOGMyYjhiOS4uYzUzNjMxYTRmZTVkZGMwOTFlMWU4Y2E3ZDE3Y2I3ODEw
YjY5MzBjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzM4LDcgKzczOCw2IEBACiAgICAgICAgICAg
ICAnTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCcsCiAgICAg
ICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwJywKICAgICAgICAgICAgICdN
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5LmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwJywK
QEAgLTc1Myw3ICs3NTIsNiBAQAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9i
amVjdFN0b3JlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlQmFja2VuZEltcGwuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9p
bmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4
ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDk5Y2ExY2YzMjk2NjFhMTI0MTA1
NmVlMjYxOGE2OTY1ZDlkYTVkNTAuLmEwMTY5YWU3YzRmZDYyNzczNzFjMGU3ZjBiZTdhMGMxYTI1
YWQ3ODIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yNDk4NSwxMCArMjQ5ODUsNiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
Ci0JCQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xpbmRleGVkZGJcSURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlLmgiCi0JCQkJCT4KLQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxNb2R1bGVzXGluZGV4ZWRkYlxJREJLZXkuY3BwIgogCQkJCQk+CiAJCQkJPC9G
aWxlPgpAQCAtMjUwMjEsMTAgKzI1MDE3LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8
RmlsZQotCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXE1vZHVsZXNcaW5kZXhlZGRiXElEQk9iamVjdFN0
b3JlQmFja2VuZEludGVyZmFjZS5oIgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cTW9kdWxlc1xpbmRleGVkZGJcSURCUmVxdWVzdC5jcHAiCiAJ
CQkJCT4KIAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2YxMTQxNDgyMzFjZTFhNmI1NWIzZjE4OTM0OTFjZDYx
Mjg5Y2MzMy4uYzlhNzkwYTJjOTZkODQ5YjYwMWUwYjI5ZTM1Zjg0OWEyYmM1Yjc0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzQ5OSw3ICszNDk5LDYgQEAKIAkJOTcxMkE1RDQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzEyQTU3QjE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UuaCAqLzsgfTsKIAkJOTcxMkE1RDUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NTdDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5jcHAgKi87IH07CiAJCTk3MTJBNUQ2MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4Lmgg
Ki87IH07Ci0JCTk3MTJBNURBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3
MTJBNTgxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCAqLzsg
fTsKIAkJOTcxMkE1REIxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4MjE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5LmNwcCAqLzsgfTsKIAkJOTcxMkE1REMxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QktleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcx
MkE1ODMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oICovOyB9OwogCQk5NzEyQTVERTE1MDA0
RURBMDA0OEFGMTAgLyogSURCS2V5UGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4NTE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UGF0
aC5jcHAgKi87IH07CkBAIC0zNTEzLDcgKzM1MTIsNiBAQAogCQk5NzEyQTVFQTE1MDA0RURBMDA0
OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNTkxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9y
ZS5oICovOyB9OwogCQk5NzEyQTVFQzE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU5MzE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5jcHAgKi87IH07CiAJCTk3MTJBNUVEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzEyQTU5NDE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5oICovOyB9OwotCQk5NzEyQTVFRTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5NzEyQTU5NTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlLmggKi87IH07CiAJCTk3MTJBNUVGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmNwcCAqLzsgfTsKIAkJOTcxMkE1RjAxNTAwNEVEQTAwNDhBRjEwIC8q
IElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmggKi87IH07CiAJCTk3MTJBNUYxMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3MTJBNTk4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJSZXF1ZXN0LmNwcCAqLzsg
fTsKQEAgLTEwODI5LDcgKzEwODI3LDYgQEAKIAkJOTcxMkE1N0MxNTAwNEVEQTAwNDhBRjEwIC8q
IElEQkluZGV4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQklu
ZGV4LmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQkluZGV4Lmg7IHBhdGggPSBN
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NzEyQTU3RTE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IElEQkluZGV4LmlkbDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTcxMkE1ODExNTAwNEVEQTAwNDhB
RjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NzEyQTU4MjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQktleS5jcHA7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4
MzE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IElEQktleS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTg0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJL
ZXkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQktleS5pZGw7IHBhdGggPSBNb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4
NDYsNyArMTA4NDMsNiBAQAogCQk5NzEyQTU5MjE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0
U3RvcmUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQk9iamVjdFN0b3JlLmlkbDsgcGF0
aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1OTQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzEyQTU5NTE1MDA0RURBMDA0OEFGMTAg
LyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oOyBwYXRoID0gTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5k
aW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuY3BwOyBwYXRoID0gTW9kdWxlcy9p
bmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk3MTJBNTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJh
bnNhY3Rpb25Nb25pdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1OTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCUmVxdWVzdC5jcHA7IHBhdGggPSBNb2R1bGVzL2lu
ZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
MTcxLDcgKzE4MTY3LDYgQEAKIAkJCQk5NzEyQTU3QzE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5k
ZXguY3BwICovLAogCQkJCTk3MTJBNTdEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5oICov
LAogCQkJCTk3MTJBNTdFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5pZGwgKi8sCi0JCQkJ
OTcxMkE1ODExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oICov
LAogCQkJCTk3MTJBNTgyMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuY3BwICovLAogCQkJCTk3
MTJBNTgzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaCAqLywKIAkJCQk5NzEyQTU4NDE1MDA0
RURBMDA0OEFGMTAgLyogSURCS2V5LmlkbCAqLywKQEAgLTE4MTg4LDcgKzE4MTgzLDYgQEAKIAkJ
CQk5NzEyQTU5MjE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaWRsICovLAogCQkJ
CTk3MTJBNTkzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNw
cCAqLywKIAkJCQk5NzEyQTU5NDE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5oICovLAotCQkJCTk3MTJBNTk1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RT
dG9yZUJhY2tlbmRJbnRlcmZhY2UuaCAqLywKIAkJCQk5NzEyQTU5NjE1MDA0RURBMDA0OEFGMTAg
LyogSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAgKi8sCiAJCQkJOTcxMkE1OTcxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCAqLywKIAkJCQk5
NzEyQTU5ODE1MDA0RURBMDA0OEFGMTAgLyogSURCUmVxdWVzdC5jcHAgKi8sCkBAIC0yNDIwMCwx
NCArMjQxOTQsMTIgQEAKIAkJCQk5NzEyQTVEMjE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9y
eUJhY2tlbmRJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVENDE1MDA0RURBMDA0OEFG
MTAgLyogSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
MTJBNUQ2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OTcxMkE1REExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1REMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1REYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGgu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUUzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlS
YW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RTgxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QkxldmVsREJDb2RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUVBMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJPYmplY3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RUQxNTAw
NEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICov
LAotCQkJCTk3MTJBNUVFMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUYwMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEy
QTVGMjE1MDA0RURBMDA0OEFGMTAgLyogSURCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTcxMkE1RjQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlRyYWNpbmcuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IGQ4YzM3ZWE0MmI0MWJkMDUzOTdhYTU1Zjhl
MjMzZmQ3NjVlMDE5YjAuLjNjNDdmNDQ1ZWYxYzZhNmJhZDZmYTA4ZTIyZDljZWMyZjMwMjg4MzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE4MywxMiArMTgzLDEwIEBACiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJEYXRhYmFzZUVycm9yLmgnLAogICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViSURCRGF0YWJhc2VFeGNlcHRpb24uaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJREJGYWN0b3J5LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURC
SW5kZXguaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXkuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJREJLZXlQYXRoLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCS2V5UmFuZ2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJNZXRh
ZGF0YS5oJywKLSAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgnLAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAg
ICAgICAncHVibGljL1dlYkljb25Mb2FkaW5nQ29tcGxldGlvbi5oJywKQEAgLTQxNiwxMCArNDE0
LDYgQEAKICAgICAgICAgICAgICAgICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgnLAotICAgICAgICAg
ICAgICAgICdzcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAn
c3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAgICAgICdzcmMvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0lEQk9iamVj
dFN0b3JlQmFja2VuZFByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxs
YmFja3NQcm94eS5jcHAnLApAQCAtNTYwLDE0ICs1NTQsMTAgQEAKICAgICAgICAgICAgICAgICAn
c3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkZh
Y3RvcnlJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJGYWN0b3J5SW1wbC5o
JywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5jcHAnLAotICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SURCS2V5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJLZXlQYXRoLmNwcCcsCiAg
ICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJLZXlSYW5nZS5jcHAnLAogICAgICAgICAgICAgICAg
ICdzcmMvV2ViSURCTWV0YWRhdGEuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk9i
amVjdFN0b3JlSW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3Rv
cmVJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJREJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXgg
MDk4NjFmMTMzMDBmNmIxNWYzYzBiYWNiYTJjMTI5ZmI3ZDBiNzdlZC4uNTQ5MWI5NmE4ODJjZGNk
ZWU3NDhiNDEzZGRkNzZmZWUwOWI0YzU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTM4LDcgKzM4LDYgQEAgY2xhc3MgV2ViSURC
RGF0YWJhc2VFcnJvcjsKIGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBj
bGFzcyBXZWJJREJJbmRleDsKLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURC
VHJhbnNhY3Rpb247CiBjbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDUxNmEyMWRk
OTQyY2VjZTdmYmM0MGUwMTBhNWM5YzZiNGRjY2EzZmEuLmE5OGVlYTRhODY5NTQxOGMyOTM0MTBk
ZTAzM2E3YTY1ZDdlYjc0OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCRGF0YWJhc2UuaApAQCAtNDAsNyArNDAsNiBAQCBjbGFzcyBXZWJJREJEYXRhYmFzZUNh
bGxiYWNrczsKIGNsYXNzIFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBX
ZWJJREJLZXlSYW5nZTsKLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURCVHJh
bnNhY3Rpb247CiAKIC8vIFNlZSBjb21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGlnaCBs
ZXZlbCBvdmVydmlldyBvZiB0aGVzZSBjbGFzc2VzLgpAQCAtNTMsMTMgKzUyLDcgQEAgcHVibGlj
OgogICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBX
ZWJJREJNZXRhZGF0YSgpOwogICAgIH0KLSAgICB2aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBj
cmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYklE
QktleVBhdGgmLCBib29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNv
ZGUmKQotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGxv
bmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2Vi
U3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVP
YmplY3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBs
b25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkKSB7IFdFQktJVF9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0
dWFsIFdlYklEQlRyYW5zYWN0aW9uKiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNv
bnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyBXRUJLSVRf
QVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJREJGYWN0b3J5LmgKaW5kZXggNmE1OGU2YWU3OGQ1ZTJiZGIwMjI2OTAy
ZDhlYTY0Yjk3ZGJkZDM4Zi4uNjc4YmVhMDRjNDk1Nzc5ZmVkMjE0NDUwYWZiMjY1NzI2NDk2Yjcw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaApA
QCAtNTYsOCArNTYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFt
ZXMoV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogCiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRh
dGlvbiBvZiBvcGVuIGlnbm9yZXMgdGhlIFdlYkZyYW1lKiBwYXJhbWV0ZXIuCi0gICAgLy8gRklY
TUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYg
bmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJ
REJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGly
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvcGVu
KGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFu
c2FjdGlvbklkLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxs
YmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShj
b25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5
T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJJbmRleC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCSW5kZXguaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAyNThlY2M3MTQ2NDk0
Mzg5MDBiNjEwNzE5YTVjZmYxNGJmYTg2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRl
eC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURC
SW5kZXhfaAotI2RlZmluZSBXZWJJREJJbmRleF9oCi0KLSNpbmNsdWRlICJXZWJFeGNlcHRpb25D
b2RlLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5z
YWN0aW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBXZWJJREJDYWxsYmFja3M7Ci1jbGFzcyBXZWJJREJLZXk7Ci1jbGFz
cyBXZWJJREJLZXlSYW5nZTsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3Ig
YSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNsYXNzZXMuCi1jbGFzcyBXZWJJREJJbmRl
eCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+V2ViSURCSW5kZXgoKSB7IH0KLQotICAgIHZpcnR1
YWwgdm9pZCBvcGVuT2JqZWN0Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQg
c2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQot
ICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5z
aWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBjb3VudChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklE
QkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldE9i
amVjdChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklE
QlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldEtleShjb25zdCBXZWJJREJLZXlSYW5nZSYs
IFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9u
Q29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLXByb3RlY3RlZDoKLSAg
ICBXZWJJREJJbmRleCgpIHt9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlm
IC8vIFdlYklEQkluZGV4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYklEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJPYmplY3RTdG9yZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTU0MTcx
NjA0OTg5N2ZjYjBhMmE0NWFkZWIzZGI3YTY4Yzk1NjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQk9iamVjdFN0b3JlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXZWJJREJPYmplY3RTdG9yZV9oCi0jZGVmaW5lIFdlYklEQk9iamVjdFN0b3JlX2gK
LQotI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJXZWJFeGNlcHRpb25D
b2RlLmgiCi0jaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCQ3Vy
c29yLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5z
YWN0aW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vV2ViU3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJL
ZXlSYW5nZTsKLWNsYXNzIFdlYklEQlRyYW5zYWN0aW9uOwotCi0vLyBTZWUgY29tbWVudCBpbiBX
ZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNs
YXNzIFdlYklEQk9iamVjdFN0b3JlIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJJREJPYmpl
Y3RTdG9yZSgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGdldChjb25zdCBXZWJJREJLZXlSYW5n
ZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0
aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICBlbnVtIFB1
dE1vZGUgewotICAgICAgICBBZGRPclVwZGF0ZSwKLSAgICAgICAgQWRkT25seSwKLSAgICAgICAg
Q3Vyc29yVXBkYXRlCi0gICAgfTsKLQotICAgIHR5cGVkZWYgV2ViVmVjdG9yPFdlYklEQktleT4g
V2ViSW5kZXhLZXlzOwotCi0gICAgdmlydHVhbCB2b2lkIHB1dChjb25zdCBXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBp
bmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKSB7IFdFQktJVF9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGdW5jdGlvbihjb25zdCBX
ZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9u
JiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGNsZWFyKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9Ci0gICAgdmlydHVhbCBXZWJJREJJbmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5n
JiwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wsIGJvb2wsIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpCi0gICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICB2aXJ0dWFsIFdlYklE
QkluZGV4KiBjcmVhdGVJbmRleChsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdl
YklEQktleVBhdGgmLCBib29sLCBib29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4
Y2VwdGlvbkNvZGUmKQotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5
cyhjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIGNvbnN0IFdl
YlZlY3RvcjxXZWJJbmRleEtleXM+JiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKSB7IFdFQktJ
VF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVh
ZHkoY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9OwotICAgIC8vIFRyYW5zZmVycyBvd25l
cnNoaXAgb2YgdGhlIFdlYklEQkluZGV4IHRvIHRoZSBjYWxsZXIuCi0gICAgdmlydHVhbCBXZWJJ
REJJbmRleCogaW5kZXgobG9uZyBsb25nKQotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgdmlydHVhbCB2b2lk
IGRlbGV0ZUluZGV4KGxvbmcgbG9uZyBpbmRleElkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYs
IFdlYkV4Y2VwdGlvbkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAg
IHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ3Vy
c29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJUcmFuc2Fj
dGlvbjo6VGFza1R5cGUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29k
ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNv
dW50KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KLQotcHJvdGVjdGVkOgotICAgIFdlYklEQk9iamVjdFN0b3JlKCkge30KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSURCT2JqZWN0U3RvcmVfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmgK
aW5kZXggMjIxYmY2MDU2NWJhYWVjNjFmNGNmNTFhOThmY2FjZjFmYzliNDdjOS4uNjU2MmI5NDY3
YTYzM2U1ZmFkZGFlYmE0NmZkYTE1NTQ3ODcwYjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJUcmFuc2FjdGlvbi5oCkBAIC0zMyw3ICszMyw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOyB9
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJJREJPYmplY3RTdG9yZTsKIGNsYXNz
IFdlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzOwogCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJREJG
YWN0b3J5IGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgb2YgdGhlc2UgY2xhc3Nlcy4KQEAgLTQ2
LDExICs0NSw2IEBAIHB1YmxpYzoKICAgICAgICAgUHJlZW1wdGl2ZVRhc2sKICAgICB9OwogCi0g
ICAgdmlydHVhbCBXZWJJREJPYmplY3RTdG9yZSogb2JqZWN0U3RvcmUobG9uZyBsb25nLCBXZWJF
eGNlcHRpb25Db2RlJikKLSAgICB7Ci0gICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQogICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENv
bXBsZXRlVGFza0V2ZW50cygpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXgg
ZjY5ZThiMDc4MjA1ZmUzMTljN2JiNTkxOTliMzgwYmIxN2JhODkzMy4uMDkyYmZiN2ExNDlhNDI4
YWEwYmE3ZWViZjc2MjkxZmIwNDE0MDYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUg
IklEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFj
a3NQcm94eS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJJREJP
YmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRl
ICJXZWJJREJDdXJzb3JJbXBsLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggNzRiYWUzMDU4MTcxNGI3YTZh
ZjU1NjJjYTgwMzRlZjQwNTVhZDk0MC4uZTdiZWI3OGU3MWQ3ZDVhZWQyYmQ0NDJmMjY3MThmMjRi
NjQ3NTMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJh
c2VCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5LmNwcApAQCAtMzMsMTYgKzMzLDE1IEBACiAjaW5jbHVkZSAiSURC
RGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUg
IklEQk1ldGFkYXRhLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaCIK
ICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIldlYkRP
TVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJ
REJDYWxsYmFja3NJbXBsLmgiCisjaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAi
V2ViSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5
UmFuZ2UuaCIKLSNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIldlYklE
QlRyYW5zYWN0aW9uLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjgsMzEgKzY3
LDEyIEBAIElEQkRhdGFiYXNlTWV0YWRhdGEgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6Om1ldGFk
YXRhKCkgY29uc3QKICAgICByZXR1cm4gbV93ZWJJREJEYXRhYmFzZS0+bWV0YWRhdGEoKTsKIH0K
IAotUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNl
QmFja2VuZFByb3h5OjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBi
ZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAv
LyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3Rz
LgotICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3Rh
dGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAg
T3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBvYmplY3RTdG9yZSA9IGFkb3B0UHRyKG1fd2ViSURC
RGF0YWJhc2UtPmNyZWF0ZU9iamVjdFN0b3JlKGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVt
ZW50LCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpKTsKLSAg
ICBpZiAoIW9iamVjdFN0b3JlKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kUHJveHk6OmNyZWF0ZShvYmplY3RTdG9yZS5yZWxlYXNlKCkpOwotfQot
CiB2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAg
aWYgKG1fd2ViSURCRGF0YWJhc2UpCiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZU9i
amVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1
dG9JbmNyZW1lbnQpOwogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpkZWxldGVP
YmplY3RTdG9yZShpbnQ2NF90IG9iamVjdFN0b3JlSWQsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0
cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJv
eHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9u
cyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCRGF0YWJhc2UtPmRl
bGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWQsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJ
REJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6
OmRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RT
dG9yZUlkKQogewogICAgIGlmIChtX3dlYklEQkRhdGFiYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggYmVmMjg5
YmZiZTU2Zjk5YzczZTg2YjQ5NWI0NTkxOGYxZWFkZWM1My4uOTc4Y2NmZmNhMjUzZWVmZGEyMzc5
NTI2ZGYxYWQyODVlZGQ5MzZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCkBAIC00NCw5ICs0NCw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgV2ViQ29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNv
bnN0OwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJDb3JlOjpJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFdlYkNvcmU6OklEQktleVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwg
dm9pZCBkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKTsKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJh
bnNhY3Rpb24oaW50NjRfdCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb246Ok1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAppbmRleCBjNjBhM2NiYTk0ZTEzOGJlODBhZjMxMmJi
ZDgwMTZkYWY3ZDU5ZmViLi5kNDY4MTEwOGJhMzBjMDAzY2RhMTZlM2U0YTI0MjJmMWI0MWJiMzhm
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2Vu
ZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFj
a2VuZFByb3h5LmNwcApAQCAtMjE0LDIwICsyMTQsNiBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5k
UHJveHk6OmdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxi
YQogICAgIG1fd2ViSURCRmFjdG9yeS0+Z2V0RGF0YWJhc2VOYW1lcyhuZXcgV2ViSURCQ2FsbGJh
Y2tzSW1wbChjYWxsYmFja3MpLCBvcmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKIH0KIAotCi0v
LyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDM5MjMuCi12b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERh
dGFiYXNlQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdp
biwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGly
KQotewotICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3MpOwot
ICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MocHJwRGF0
YWJhc2VDYWxsYmFja3MpOwotICAgIFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1cml0eU9y
aWdpbik7Ci0gICAgaWYgKCFhbGxvd0luZGV4ZWREQihjb250ZXh0LCBuYW1lLCBvcmlnaW4sIGNh
bGxiYWNrcykpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUg
PSBnZXRXZWJGcmFtZShjb250ZXh0KTsKLSAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwg
dmVyc2lvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgbmV3IFdlYklEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbChkYXRhYmFzZUNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUs
IGRhdGFEaXIpOwotfQotCiB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3Qg
U3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gcHJwRGF0YWJhc2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IHNlY3VyaXR5T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHJpbmcmIGRhdGFEaXIpCiB7CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
KHBycENhbGxiYWNrcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJG
YWN0b3J5QmFja2VuZFByb3h5LmgKaW5kZXggYzg5OWU4MGI3MDIyMmZlN2EzMjhmNjQzMGQyNTE0
OWY0ZWZjZWQyNS4uMTc1YzczOWRmMDlhODgzY2QyZjdhNDJlMWQ3ZThhMzM3NDJkMGYzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJv
eHkuaApAQCAtNDksOCArNDksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJh
Y2tlbmRQcm94eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
ZGF0YURpcik7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgdm9pZCBv
cGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2
b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJh
bnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJp
bmcmIG5hbWUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYwMTg4ZmQ0ODdhOWZmMjk1NWQ4NWUyMGI1ZWQ2ZjkzZWQ3MGFmMWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSURCSW5kZXhC
YWNrZW5kUHJveHkuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVk
ZSAiSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIklE
QktleVJhbmdlLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLSNp
bmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VF
cnJvci5oIgotI2luY2x1ZGUgIldlYklEQkluZGV4LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5Lmgi
Ci0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1QYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVy
ZmFjZT4gSURCSW5kZXhCYWNrZW5kUHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkluZGV4
PiBpbmRleCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkluZGV4QmFja2VuZFByb3h5
KGluZGV4KSk7Ci19Ci0KLUlEQkluZGV4QmFja2VuZFByb3h5OjpJREJJbmRleEJhY2tlbmRQcm94
eShQYXNzT3duUHRyPFdlYklEQkluZGV4PiBpbmRleCkKLSAgICA6IG1fd2ViSURCSW5kZXgoaW5k
ZXgpCi17Ci19Ci0KLUlEQkluZGV4QmFja2VuZFByb3h5Ojp+SURCSW5kZXhCYWNrZW5kUHJveHko
KQotewotfQotCi12b2lkIElEQkluZGV4QmFja2VuZFByb3h5OjpvcGVuQ3Vyc29yKFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFu
c2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkg
b2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBv
ZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9wZW5PYmpl
Y3RDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2Fs
bGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsK
LX0KLQotdm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUg
YSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8g
YWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4K
LSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRp
Y19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1f
d2ViSURCSW5kZXgtPmNvdW50KGtleVJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxs
YmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwot
fQotCi12b2lkIElEQkluZGV4QmFja2VuZFByb3h5OjpvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IGtleVJhbmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2Fj
dGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2Jq
ZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJ
REIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9wZW5LZXlDdXJz
b3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tz
KSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQot
dm9pZCBJREJJbmRleEJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtl
eVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRl
ciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBs
ZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQklu
ZGV4LT5nZXRPYmplY3Qoa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNr
cyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0K
LXZvaWQgSURCSW5kZXhCYWNrZW5kUHJveHk6OmdldEtleShQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17
Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBv
aW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwg
aW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAg
IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nh
c3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJ
REJJbmRleC0+Z2V0S2V5KGtleVJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFj
a3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNr
ZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFBy
b3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFjMWMzMzY5Mjg5MGUwOGQyMjlj
MDZmZmNhYjlmNzgwYjlhMTU2YjUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJv
eHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQklu
ZGV4QmFja2VuZFByb3h5X2gKLSNkZWZpbmUgSURCSW5kZXhCYWNrZW5kUHJveHlfaAotCi0jaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRJbnRl
cmZhY2UuaCIKLSNpbmNsdWRlICJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1j
bGFzcyBXZWJJREJJbmRleDsKLQotY2xhc3MgSURCSW5kZXhCYWNrZW5kUHJveHkgOiBwdWJsaWMg
V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZShQYXNzT3duUHRyPFdl
YklEQkluZGV4Pik7Ci0gICAgdmlydHVhbCB+SURCSW5kZXhCYWNrZW5kUHJveHkoKTsKLQotICAg
IHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+
LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJh
Y2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6
RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9p
ZCBjb3VudChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldChQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxs
YmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlJik7Ci0KLXByaXZhdGU6Ci0gICAgSURCSW5kZXhCYWNrZW5kUHJveHkoUGFzc093blB0
cjxXZWJJREJJbmRleD4pOwotCi0gICAgT3duUHRyPFdlYklEQkluZGV4PiBtX3dlYklEQkluZGV4
OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8gSURC
SW5kZXhCYWNrZW5kUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDc1NQppbmRleCA4ZTg5ZGViMDMzZjNkZWM5ODhhYTY3YWMzY2RlNGE1ZDk2OTVmYmZkLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDE1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IklEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQotI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFj
a3MuaCIKLSNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRQcm94eS5oIgotI2luY2x1ZGUgIklEQktl
eVJhbmdlLmgiCi0jaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLSNpbmNs
dWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIK
LSNpbmNsdWRlICJXZWJJREJJbmRleC5oIgotI2luY2x1ZGUgIldlYklEQktleS5oIgotI2luY2x1
ZGUgIldlYklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25JbXBs
LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZFBy
b3h5OjpjcmVhdGUoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUpCi17
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eShvYmpl
Y3RTdG9yZSkpOwotfQotCi1JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6SURCT2JqZWN0U3Rv
cmVCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUp
Ci0gICAgOiBtX3dlYklEQk9iamVjdFN0b3JlKG9iamVjdFN0b3JlKQotewotfQotCi1JREJPYmpl
Y3RTdG9yZUJhY2tlbmRQcm94eTo6fklEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5KCkKLXsKLX0K
LQotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBl
YykKLXsKLSAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJl
IGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8v
IGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMu
Ci0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0
aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBt
X3dlYklEQk9iamVjdFN0b3JlLT5nZXQoa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBs
KGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBl
Yyk7Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnB1dChQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFB1
dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgY29uc3QgVmVjdG9yPGludDY0
X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKLXsKLSAg
ICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRl
ciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBs
ZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9i
amVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgc3RhdGljX2Nhc3Q8V2ViSURCT2JqZWN0U3RvcmU6
OlB1dE1vZGU+KHB1dE1vZGUpLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAq
dHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgaW5kZXhJZHMsIGluZGV4
S2V5cyk7Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnNldEluZGV4S2V5
cyhQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cywgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbikKLXsKLSAgICAvLyBUaGUgdHJhbnNh
Y3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9i
amVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2Yg
SURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5zZXRJ
bmRleEtleXMocHJwUHJpbWFyeUtleSwgV2ViVmVjdG9yPGxvbmcgbG9uZz4oaW5kZXhJZHMpLCBp
bmRleEtleXMsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpKTsKLX0K
LQotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6ZGVsZXRlRnVuY3Rpb24oUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJh
bnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVy
ZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJv
eHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Q
cm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rp
b24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPmRlbGV0ZUZ1bmN0aW9uKGtleVJhbmdlLCBu
ZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0
V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2Vu
ZFByb3h5OjpjbGVhcihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEg
cG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFs
bCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0g
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNf
Y2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dl
YklEQk9iamVjdFN0b3JlLT5jbGVhcihuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
LCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi1Q
YXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNrZW5k
UHJveHk6OmNyZWF0ZUluZGV4KGludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
SURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgLy8gVGhlIHRyYW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBh
IHBvaW50ZXIgdG8gYSBwcm94eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBh
bGwgaW1wbGVtZW50YXRpb25zIG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgot
ICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGlj
X2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgT3du
UHRyPFdlYklEQkluZGV4PiBpbmRleCA9IGFkb3B0UHRyKG1fd2ViSURCT2JqZWN0U3RvcmUtPmNy
ZWF0ZUluZGV4KGlkLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksICp0cmFuc2Fj
dGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYykpOwotICAgIGlmICghaW5kZXgp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBJREJJbmRleEJhY2tlbmRQcm94eTo6Y3Jl
YXRlKGluZGV4LnJlbGVhc2UoKSk7Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJv
eHk6OnNldEluZGV4ZXNSZWFkeShjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRyYW5zYWN0aW9uKQotewotICAgIC8vIFRoZSB0
cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJv
eHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9u
cyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUt
PnNldEluZGV4ZXNSZWFkeShXZWJWZWN0b3I8bG9uZyBsb25nPihpbmRleElkcyksICp0cmFuc2Fj
dGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpKTsKLX0KLQotUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbnRlcmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjppbmRleChp
bnQ2NF90IGluZGV4SWQpCi17Ci0gICAgT3duUHRyPFdlYklEQkluZGV4PiBpbmRleCA9IGFkb3B0
UHRyKG1fd2ViSURCT2JqZWN0U3RvcmUtPmluZGV4KGluZGV4SWQpKTsKLSAgICBpZiAoIWluZGV4
KQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gSURCSW5kZXhCYWNrZW5kUHJveHk6OmNy
ZWF0ZShpbmRleC5yZWxlYXNlKCkpOwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFBy
b3h5OjpkZWxldGVJbmRleChjb25zdCBpbnQ2NF90IGluZGV4SWQsIElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8v
IFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRv
IGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVu
dGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRy
YW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0
U3RvcmUtPmRlbGV0ZUluZGV4KGluZGV4SWQsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJU
cmFuc2FjdGlvbigpLCBlYyk7Ci19Ci12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5Ojpv
cGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBJREJDdXJzb3I6OkRpcmVj
dGlvbiBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0
aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2lu
dGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGlt
cGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0
PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURC
T2JqZWN0U3RvcmUtPm9wZW5DdXJzb3IocmFuZ2UsIHN0YXRpY19jYXN0PFdlYklEQkN1cnNvcjo6
RGlyZWN0aW9uPihkaXJlY3Rpb24pLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
LCBzdGF0aWNfY2FzdDxXZWJJREJUcmFuc2FjdGlvbjo6VGFza1R5cGU+KHRhc2tUeXBlKSwgKnRy
YW5zYWN0aW9uUHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJ
REJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
cmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVy
IHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxl
bWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2Jq
ZWN0U3RvcmUtPmNvdW50KHJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
LCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVC
YWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3Jl
QmFja2VuZFByb3h5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOGY2YmJkZDgy
ZDFmMmIwODk0M2U3ODMyZWU1OGFlYmUyMjU5ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0
U3RvcmVCYWNrZW5kUHJveHkuaAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5X2gKLSNkZWZpbmUgSURCT2JqZWN0
U3RvcmVCYWNrZW5kUHJveHlfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNp
bmNsdWRlICJJREJLZXlQYXRoLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50
ZXJmYWNlLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci0KLWNsYXNzIFdlYklEQk9iamVjdFN0b3JlOwotCi1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tl
bmRQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Ug
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCT2JqZWN0U3RvcmU+KTsK
LSAgICB2aXJ0dWFsIH5JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eSgpOwotCi0gICAgdmlydHVh
bCB2b2lkIGdldChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxX
ZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+
LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBXVEY6OlZl
Y3RvcjxpbnQ2NF90PiYsIGNvbnN0IFdURjo6VmVjdG9yPEluZGV4S2V5cz4mKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4s
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBjbGVhcihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUm
KTsKLQotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBj
cmVhdGVJbmRleChpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6
OklEQktleVBhdGgmLCBib29sIHVuaXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4g
cHJwUHJpbWFyeUtleSwgY29uc3QgV1RGOjpWZWN0b3I8aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8
SW5kZXhLZXlzPiYsIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoY29uc3QgVmVjdG9yPGludDY0X3Q+Jiwg
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKik7Ci0KLSAgICBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoaW50NjRfdCk7Ci0g
ICAgdm9pZCBkZWxldGVJbmRleChpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2aXJ0dWFsIHZv
aWQgb3BlbkN1cnNvcihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgV2ViQ29yZTo6
SURCQ3Vyc29yOjpEaXJlY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwg
V2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29k
ZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJh
bmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0KLXBy
aXZhdGU6Ci0gICAgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJJREJP
YmplY3RTdG9yZT4pOwotCi0gICAgT3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBtX3dlYklEQk9i
amVjdFN0b3JlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgotCi0jZW5k
aWYgLy8gSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCmluZGV4
IDZlMDEzNGMyYTlmYWQyNjgzMDY1OWE4ZGI0MDk3MzZjYTAwMTE1ZjUuLjAyYTA1OGNmN2MwOGJk
MmM0Zjk3ZWQ2Nzk4NDBjZDg5N2IyM2Q2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAKQEAgLTI4LDEw
ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklE
Qk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxs
YmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2Vi
SURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1
ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzSW1wbC5oIgogCkBAIC01NCwxNCArNTIsNiBA
QCBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eTo6fklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
KCkKIHsKIH0KIAotUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2U+IElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5OjpvYmplY3RTdG9yZShpbnQ2NF90IGlu
ZGV4SWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIE93blB0cjxXZWJJREJPYmplY3RTdG9y
ZT4gb2JqZWN0U3RvcmUgPSBhZG9wdFB0cihtX3dlYklEQlRyYW5zYWN0aW9uLT5vYmplY3RTdG9y
ZShpbmRleElkLCBlYykpOwotICAgIGlmICghb2JqZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiAw
OwotICAgIHJldHVybiBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6Y3JlYXRlKG9iamVjdFN0
b3JlLnJlbGVhc2UoKSk7Ci19Ci0KIHZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNv
bW1pdCgpCiB7CiAgICAgbV93ZWJJREJUcmFuc2FjdGlvbi0+Y29tbWl0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHku
aAppbmRleCA4ZWFkMzE2NGMyY2NkODA3ZjAxYTViOGE4ZWQ2MmY5YTJlYjZiMjFlLi5jNmMzZDg0
MTIwNzdlNDY5MDQ1MDZiMDgyZWVmNzJkM2NiNGU0MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgKQEAgLTQx
LDcgKzQxLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZT4gY3JlYXRlKFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+KTsK
ICAgICB2aXJ0dWFsIH5JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2Jq
ZWN0U3RvcmUoaW50NjRfdCwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBjb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q2FsbGJhY2tzKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRl
eCAzODU1YmU1OTI1YzdiZWYwYTE2NGVmNjYyOGY4MzdlNjM0ZmUwZmQxLi44ODdkMTVkMTJjYzAw
MDk2MDU5NmQ2MDk3YmZhYzExMzE1YWY1ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKQEAgLTMwLDE3ICszMCwxNyBAQAogCiAj
aW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5Lmgi
CisjaW5jbHVkZSAiSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1
ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNs
dWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgog
I2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEuaCIK
LSNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9yZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJUcmFu
c2FjdGlvbkltcGwuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02MiwyNiArNjIs
MTEgQEAgV2ViSURCTWV0YWRhdGEgV2ViSURCRGF0YWJhc2VJbXBsOjptZXRhZGF0YSgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fZGF0YWJhc2VCYWNrZW5kLT5tZXRhZGF0YSgpOwogfQogCi1XZWJJREJP
YmplY3RTdG9yZSogV2ViSURCRGF0YWJhc2VJbXBsOjpjcmVhdGVPYmplY3RTdG9yZShsb25nIGxv
bmcgaWQsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0
aCwgYm9vbCBhdXRvSW5jcmVtZW50LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2U+IG9iamVjdFN0b3JlID0gbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZU9i
amVjdFN0b3JlKGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCB0cmFuc2FjdGlvbi5n
ZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotICAgIGlmICghb2JqZWN0
U3RvcmUpIHsKLSAgICAgICAgQVNTRVJUKGVjKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
ICAgIHJldHVybiBuZXcgV2ViSURCT2JqZWN0U3RvcmVJbXBsKG9iamVjdFN0b3JlKTsKLX0KLQog
dm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OmNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFu
c2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJJREJLZXlQYXRoJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAg
ICAgbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9i
amVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpOwogfQogCi12b2lkIFdl
YklEQkRhdGFiYXNlSW1wbDo6ZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgbV9kYXRhYmFzZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKG9iamVj
dFN0b3JlSWQsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgp
LCBlYyk7Ci19Ci0KIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpkZWxldGVPYmplY3RTdG9yZShs
b25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQpCiB7CiAgICAg
bV9kYXRhYmFzZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVj
dFN0b3JlSWQpOwpAQCAtMTY1LDcgKzE1MCw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpw
dXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBXCiAK
ICAgICBBU1NFUlQod2ViSW5kZXhJZHMuc2l6ZSgpID09IHdlYkluZGV4S2V5cy5zaXplKCkpOwog
ICAgIFZlY3RvcjxpbnQ2NF90PiBpbmRleElkcyh3ZWJJbmRleElkcy5zaXplKCkpOwotICAgIFZl
Y3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlz
KHdlYkluZGV4S2V5cy5zaXplKCkpOworICAgIFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOwogCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB3ZWJJbmRleElkcy5zaXplKCk7ICsraSkgewogICAgICAg
ICBpbmRleElkc1tpXSA9IHdlYkluZGV4SWRzW2ldOwpAQCAtMTg3LDcgKzE3Miw3IEBAIHZvaWQg
V2ViSURCRGF0YWJhc2VJbXBsOjpzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQs
IGxvbmcgbG9uZyBvYmplY3RTCiAKICAgICBBU1NFUlQod2ViSW5kZXhJZHMuc2l6ZSgpID09IHdl
YkluZGV4S2V5cy5zaXplKCkpOwogICAgIFZlY3RvcjxpbnQ2NF90PiBpbmRleElkcyh3ZWJJbmRl
eElkcy5zaXplKCkpOwotICAgIFZlY3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6
OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOworICAgIFZlY3RvcjxJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4
S2V5cy5zaXplKCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3ZWJJbmRleElkcy5z
aXplKCk7ICsraSkgewogICAgICAgICBpbmRleElkc1tpXSA9IHdlYkluZGV4SWRzW2ldOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCBh
Y2U1MjBhZGIwMmJjOTczYmE2NjZjOWM2MTRiZjUwOGVhNjc2ZTk0Li45MTg0NjIyZWFiYzgyNGIx
YTA3NzNhZDBmMzk4ODUzMzBlNGY4YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViSURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBXZWJJREJEYXRh
YmFzZU1ldGFkYXRhOwotY2xhc3MgV2ViSURCT2JqZWN0U3RvcmU7CiBjbGFzcyBXZWJJREJUcmFu
c2FjdGlvbjsKIAogLy8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxl
dmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCkBAIC01Myw5ICs1Miw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgV2ViSURCTWV0YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKIAotICAgIHZpcnR1
YWwgV2ViSURCT2JqZWN0U3RvcmUqIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZywgY29uc3Qg
V2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50
LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcg
bG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktl
eVBhdGgmLCBib29sIGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmpl
Y3RTdG9yZShsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
LCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNy
ZWF0ZVRyYW5zYWN0aW9uKGxvbmcgbG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4m
LCB1bnNpZ25lZCBzaG9ydCBtb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkZhY3RvcnlJbXBsLmNwcAppbmRleCBkMTBlYjkyMTYyY2M5NzEzYzM0OGFhNGY3Zjhk
OGYwMTViODg4MzFiLi4zNTg5ZTE1NWQzNGQ1MDY4ZjBlYzIxMDUzYjdiOTQ4Yjk0MDJhMjRmIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3Bw
CkBAIC02NSwxNSArNjUsNiBAQCB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRhYmFzZU5h
bWVzKFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1faWRiRmFj
dG9yeUJhY2tlbmQtPmdldERhdGFiYXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShh
ZG9wdFB0cihjYWxsYmFja3MpKSwgb3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAotLy8gRklYTUU6
IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzOTIzLgotdm9pZCBXZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJp
bmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywg
V2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1
cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikK
LXsKLSAgICBSZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2Fs
bGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKLSAgICBSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3NQcm94eT4gZGF0YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFi
YXNlQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihkYXRhYmFzZUNhbGxiYWNrcykpOwot
ICAgIGNhbGxiYWNrc1Byb3h5LT5zZXREYXRhYmFzZUNhbGxiYWNrcyhkYXRhYmFzZUNhbGxiYWNr
c1Byb3h5KTsKLSAgICBtX2lkYkZhY3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIGNh
bGxiYWNrc1Byb3h5LmdldCgpLCBkYXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgpLCBvcmlnaW4s
IDAsIGRhdGFEaXIpOwotfQotCiB2b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRh
dGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFt
ZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tz
UHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0
cihjYWxsYmFja3MpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQkZhY3RvcnlJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0
b3J5SW1wbC5oCmluZGV4IDdjMGRlZTc5MTE5MzJhNmQ0ZjJkMzkxOTkzM2EyNjIwYTk2NDZkOTMu
LjE2NjlmOWQwZjgwZGQxYmYwMTFkYTFiYmQzZWZlY2M5Mzc3NDM3OGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuaApAQCAtNDUsOCArNDUsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCRmFjdG9yeUltcGwoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3Vy
aXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwotICAgIC8v
IEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzkyMy4KLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJp
bmcmIG5hbWUsIGxvbmcgbG9uZyB2ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJEYXRh
YmFzZUNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25z
dCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBX
ZWJJREJDYWxsYmFja3MqLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3Vy
aXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNh
bGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJT
dHJpbmcmIGRhdGFEaXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJJbmRleEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
SW5kZXhJbXBsLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA4Zjg1NGYzNWY1
ODcyMmRiZjUwODgyZDM0NjQ1YWY5MjFlZDQ4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRl
eEltcGwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJREJJbmRleEltcGwuaCIKLQotI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKLSNpbmNs
dWRlICJJREJJbmRleC5oIgotI2luY2x1ZGUgIklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgot
I2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCi0j
aW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJJbmRl
eEltcGw6OldlYklEQkluZGV4SW1wbChQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFj
ZT4gYmFja2VuZCkKLSAgICA6IG1fYmFja2VuZChiYWNrZW5kKQotewotfQotCi1XZWJJREJJbmRl
eEltcGw6On5XZWJJREJJbmRleEltcGwoKQotewotfQotCi12b2lkIFdlYklEQkluZGV4SW1wbDo6
b3Blbk9iamVjdEN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVk
IHNob3J0IGRpcmVjdGlvbiwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklE
QlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAg
bV9iYWNrZW5kLT5vcGVuQ3Vyc29yKGtleVJhbmdlLCBkaXJlY3Rpb24sIElEQkNhbGxiYWNrc1By
b3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCSW5kZXhJbXBs
OjpvcGVuS2V5Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQg
c2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBt
X2JhY2tlbmQtPm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgSURCQ2FsbGJhY2tz
UHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJbmRleElt
cGw6OmNvdW50KGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgIFdlYklEQkNhbGxiYWNr
cyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+Y291bnQoa2V5UmFuZ2UsIElEQkNh
bGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdl
dElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURC
SW5kZXhJbXBsOjpnZXRPYmplY3QoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCBXZWJJ
REJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX2JhY2tlbmQtPmdldChrZXlSYW5n
ZSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNh
Y3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9p
ZCBXZWJJREJJbmRleEltcGw6OmdldEtleShjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2Us
IFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+Z2V0S2V5
KGtleVJhbmdlLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykp
LCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5k
ZXhJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTc4YTA5NzliYTVmNzRlMDJiZGQ0ZTdhYTU2
ZmY3NzkxNjMwMGYzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysgL2Rl
di9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQkluZGV4SW1wbF9o
Ci0jZGVmaW5lIFdlYklEQkluZGV4SW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLQotI2luY2x1ZGUgIldlYklEQkluZGV4LmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1v
bi5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkluZGV4QmFja2VuZEludGVyZmFjZTsg
fQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERh
dGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdl
YklEQkluZGV4SW1wbCA6IHB1YmxpYyBXZWJJREJJbmRleCB7Ci1wdWJsaWM6Ci0gICAgV2ViSURC
SW5kZXhJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2U+KTsKLSAgICB2aXJ0dWFsIH5XZWJJREJJbmRleEltcGwoKTsKLQotICAgIHZpcnR1YWwgdm9p
ZCBvcGVuT2JqZWN0Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQg
ZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdl
YkV4Y2VwdGlvbkNvZGUmKTsgCi0gICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoY29uc3Qg
V2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNr
cyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZp
cnR1YWwgdm9pZCBjb3VudChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBnZXRPYmplY3QoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3Mq
LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZ2V0S2V5KGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwg
Y29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6
Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBtX2Jh
Y2tlbmQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotCi0jZW5kaWYgLy8gV2ViSURCSW5kZXhJbXBsX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAxMDI4MDRiYzgxZGY2NDhhZWJmYjA5MmUwYzE0
YTg5MzIyYjlkNTk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
Ci0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJXZWJJREJPYmplY3RTdG9yZUltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIklE
QkNhbGxiYWNrc1Byb3h5LmgiCi0jaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgi
Ci0jaW5jbHVkZSAiSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5j
bHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiV2ViSURC
SW5kZXhJbXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5
UmFuZ2UuaCIKLSNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgInBsYXRm
b3JtL1dlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYklEQk9iamVjdFN0b3JlSW1wbDo6V2ViSURC
T2JqZWN0U3RvcmVJbXBsKFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
PiBvYmplY3RTdG9yZSkKLSAgICA6IG1fb2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCi17Ci19Ci0K
LVdlYklEQk9iamVjdFN0b3JlSW1wbDo6fldlYklEQk9iamVjdFN0b3JlSW1wbCgpCi17Ci19Ci0K
LXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpnZXQoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtl
eVJhbmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX29iamVjdFN0
b3JlLT5nZXQoa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2Fs
bGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgp
LCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpwdXQoY29uc3QgV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiBrZXksIFB1dE1vZGUg
cHV0TW9kZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRz
LCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQotewotICAgIEFT
U0VSVCh3ZWJJbmRleElkcy5zaXplKCkgPT0gd2ViSW5kZXhLZXlzLnNpemUoKSk7Ci0gICAgVmVj
dG9yPGludDY0X3Q+IGluZGV4SWRzKHdlYkluZGV4SWRzLnNpemUoKSk7Ci0gICAgVmVjdG9yPElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRleEtleXMod2ViSW5k
ZXhLZXlzLnNpemUoKSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYkluZGV4SWRz
LnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGluZGV4SWRzW2ldID0gd2ViSW5kZXhJZHNbaV07Ci0g
ICAgICAgIFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+IGluZGV4S2V5TGlzdCh3ZWJJbmRleEtleXNb
aV0uc2l6ZSgpKTsKLSAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7IGogPCB3ZWJJbmRleEtleXNb
aV0uc2l6ZSgpOyArK2opCi0gICAgICAgICAgICBpbmRleEtleUxpc3Rbal0gPSB3ZWJJbmRleEtl
eXNbaV1bal07Ci0gICAgICAgIGluZGV4S2V5c1tpXSA9IGluZGV4S2V5TGlzdDsKLSAgICB9Ci0K
LSAgICBtX29iamVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgc3RhdGljX2Nhc3Q8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRNb2RlKSwgSURCQ2FsbGJhY2tzUHJv
eHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKCksIGluZGV4SWRzLCBpbmRleEtleXMpOwotfQotCi12b2lk
IFdlYklEQk9iamVjdFN0b3JlSW1wbDo6c2V0SW5kZXhLZXlzKGNvbnN0IFdlYklEQktleSYgcHJp
bWFyeUtleSwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBX
ZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCi17Ci0gICAgQVNTRVJUKHdlYkluZGV4SWRzLnNpemUoKSA9PSB3
ZWJJbmRleEtleXMuc2l6ZSgpKTsKLSAgICBWZWN0b3I8aW50NjRfdD4gaW5kZXhJZHMod2ViSW5k
ZXhJZHMuc2l6ZSgpKTsKLSAgICBWZWN0b3I8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
OjpJbmRleEtleXM+IGluZGV4S2V5cyh3ZWJJbmRleEtleXMuc2l6ZSgpKTsKLQotICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgd2ViSW5kZXhJZHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaW5k
ZXhJZHNbaV0gPSB3ZWJJbmRleElkc1tpXTsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxJREJLZXk+
ID4gaW5kZXhLZXlMaXN0KHdlYkluZGV4S2V5c1tpXS5zaXplKCkpOwotICAgICAgICBmb3IgKHNp
emVfdCBqID0gMDsgaiA8IHdlYkluZGV4S2V5c1tpXS5zaXplKCk7ICsraikKLSAgICAgICAgICAg
IGluZGV4S2V5TGlzdFtqXSA9IHdlYkluZGV4S2V5c1tpXVtqXTsKLSAgICAgICAgaW5kZXhLZXlz
W2ldID0gaW5kZXhLZXlMaXN0OwotICAgIH0KLSAgICBtX29iamVjdFN0b3JlLT5zZXRJbmRleEtl
eXMocHJpbWFyeUtleSwgaW5kZXhJZHMsIGluZGV4S2V5cywgdHJhbnNhY3Rpb24uZ2V0SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKCkpOwotfQotCi12b2lkIFdlYklEQk9iamVjdFN0b3Jl
SW1wbDo6c2V0SW5kZXhlc1JlYWR5KGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJbmRl
eE5hbWVzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCi17Ci0gICAgVmVj
dG9yPGludDY0X3Q+IGluZGV4SWRzKHdlYkluZGV4TmFtZXMuc2l6ZSgpKTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHdlYkluZGV4TmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGluZGV4
SWRzW2ldID0gd2ViSW5kZXhOYW1lc1tpXTsKLSAgICBtX29iamVjdFN0b3JlLT5zZXRJbmRleGVz
UmVhZHkoaW5kZXhJZHMsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSgpKTsKLX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmRlbGV0ZUZ1bmN0aW9u
KGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFj
a3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29k
ZSYgZWMpCi17Ci0gICAgbV9vYmplY3RTdG9yZS0+ZGVsZXRlRnVuY3Rpb24oa2V5UmFuZ2UsIElE
QkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9u
LmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2Vi
SURCT2JqZWN0U3RvcmVJbXBsOjpjbGVhcihXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICBtX29iamVjdFN0b3JlLT5jbGVhcihJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFk
b3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bnRlcmZhY2UoKSwgZWMpOwotfQotCi1XZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBs
OjpjcmVhdGVJbmRleChsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3Qg
V2ViSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29u
c3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykK
LXsKLSAgICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0
U3RvcmUtPmNyZWF0ZUluZGV4KGlkLCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnks
IHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci0g
ICAgaWYgKCFpbmRleCkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBXZWJJREJJ
bmRleEltcGwoaW5kZXgpOwotfQotCi1XZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBs
OjppbmRleChsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCkKLXsKLSAgICBSZWZQdHI8SURCSW5kZXhC
YWNrZW5kSW50ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0U3RvcmUtPmluZGV4KG9iamVjdFN0b3Jl
SWQpOwotICAgIGlmICghaW5kZXgpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBuZXcg
V2ViSURCSW5kZXhJbXBsKGluZGV4KTsKLX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6
OmRlbGV0ZUluZGV4KGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0
U3RvcmUtPmRlbGV0ZUluZGV4KG9iamVjdFN0b3JlSWQsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5z
YWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3Rv
cmVJbXBsOjpvcGVuQ3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgV2ViSURC
Q3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywg
V2ViSURCVHJhbnNhY3Rpb246OlRhc2tUeXBlIHRhc2tUeXBlLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0
U3RvcmUtPm9wZW5DdXJzb3Ioa2V5UmFuZ2UsIHN0YXRpY19jYXN0PElEQkN1cnNvcjo6RGlyZWN0
aW9uPihkaXJlY3Rpb24pLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxi
YWNrcykpLCBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U6OlRhc2tU
eXBlPih0YXNrVHlwZSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjb3VudChjb25z
dCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBj
b25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVj
KQotewotICAgIG1fb2JqZWN0U3RvcmUtPmNvdW50KGtleVJhbmdlLCBJREJDYWxsYmFja3NQcm94
eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggNzM2OTY0YzUxMmJmZmU1ZDM0ZWZmODdjNDQ3NDJiYTdmOTk4YWYzNS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuaAorKysgL2Rldi9udWxsCkBA
IC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCi0j
ZGVmaW5lIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQotI2luY2x1ZGUgIldlYklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSA8cHVibGlj
L1dlYkNvbW1vbi5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQk9iamVjdFN0b3JlQmFj
a2VuZEludGVyZmFjZTsgfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCSW5k
ZXg7Ci0KLS8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWRPYmplY3RTdG9yZSBmb3IgYSBoaWdo
IGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCi1jbGFzcyBXZWJJREJPYmplY3RTdG9yZUlt
cGwgOiBwdWJsaWMgV2ViSURCT2JqZWN0U3RvcmUgewotcHVibGljOgotICAgIFdlYklEQk9iamVj
dFN0b3JlSW1wbChXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlPik7Ci0gICAgfldlYklEQk9iamVjdFN0b3JlSW1wbCgpOwotCi0gICAgdm9pZCBn
ZXQoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHB1dChjb25zdCBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIGNvbnN0IFdlYlZlY3Rvcjxsb25n
IGxvbmc+JiwgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mKTsKLSAgICB2b2lkIHNldElu
ZGV4S2V5cyhjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5k
ZXhOYW1lcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYpOwotICAgIHZvaWQgc2V0SW5kZXhlc1JlYWR5KGNvbnN0IFdlYlZlY3Rvcjxsb25n
IGxvbmc+JiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKTsKLSAgICB2b2lkIGRlbGV0ZUZ1bmN0
aW9uKGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBjbGVhcihXZWJJREJD
YWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsK
LQotICAgIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50
cnksIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIFdl
YklEQkluZGV4KiBpbmRleChsb25nIGxvbmcpOwotICAgIHZvaWQgZGVsZXRlSW5kZXgobG9uZyBs
b25nLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotICAg
IHZvaWQgb3BlbkN1cnNvcihjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkN1cnNvcjo6RGly
ZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJUcmFuc2FjdGlvbjo6VGFza1R5cGUsIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgY291
bnQoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotIHByaXZhdGU6Ci0gICAgV1RGOjpS
ZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBtX29iamVjdFN0
b3JlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKLQotI2VuZGlmIC8vIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNw
cAppbmRleCA0MWY0YzlkMjAzOWZhNDE0NzdlMTdlM2U3ZWFkODk0OTRjZTFhYTg2Li45ZGZkNjdi
ZGQ4YjJlNTU3NGM4NGY4MmQxYmYxOWQ1YjU5Nzg5MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQlRyYW5zYWN0aW9uSW1wbC5jcHAKQEAgLTI4LDEwICsy
OCw5IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQk9i
amVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgi
CisjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAi
SURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5oIgotI2luY2x1ZGUgIldlYklEQk9iamVjdFN0
b3JlSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDcsMTQgKzQ2LDYgQEAgV2ViSURCVHJhbnNhY3Rp
b25JbXBsOjp+V2ViSURCVHJhbnNhY3Rpb25JbXBsKCkKIHsKIH0KIAotV2ViSURCT2JqZWN0U3Rv
cmUqIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6b2JqZWN0U3RvcmUobG9uZyBsb25nIGluZGV4SWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2U+IG9iamVjdFN0b3JlID0gbV9iYWNrZW5kLT5vYmplY3RTdG9yZShpbmRleElkLCBl
Yyk7Ci0gICAgaWYgKCFvYmplY3RTdG9yZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJu
IG5ldyBXZWJJREJPYmplY3RTdG9yZUltcGwob2JqZWN0U3RvcmUpOwotfQotCiB2b2lkIFdlYklE
QlRyYW5zYWN0aW9uSW1wbDo6Y29tbWl0KCkKIHsKICAgICBtX2JhY2tlbmQtPmNvbW1pdCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25J
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwu
aAppbmRleCA0MjcyY2JlMTBiMjcxMDExYjA3OTBmZDg5MDYxNmZlNDM3YWE5ODJiLi4xNmYwNmE2
ZWVmNDVkMTk4YWY1M2Q2NzI0ODlkYzk1MjIzNTYyN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaApAQCAtNDEsNyArNDEsNiBA
QCBwdWJsaWM6CiAgICAgV2ViSURCVHJhbnNhY3Rpb25JbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIH5XZWJJ
REJUcmFuc2FjdGlvbkltcGwoKTsKIAotICAgIHZpcnR1YWwgV2ViSURCT2JqZWN0U3RvcmUqIG9i
amVjdFN0b3JlKGxvbmcgbG9uZyBpbmRleElkLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmly
dHVhbCB2b2lkIGNvbW1pdCgpOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRDYWxsYmFja3MoV2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0
LmNwcAppbmRleCA0NzNhMjA3ODZhMmI1YTExYjdiYzg4ZGQ3MjczNGYwZDRhODFiOTQzLi5kYTdj
NmZhMTg2ZDMzZDAyYmViYmNiOGQ2NzdkYzA0MzMyMDE2ZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC0x
MjYsNyArMTI2LDcgQEAgVEVTVChJREJBYm9ydFRlc3QsIFRoZVRlc3QpCiAgICAgUmVmUHRyPEZh
a2VJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MgPSBGYWtlSURCRGF0YWJh
c2VDYWxsYmFja3M6OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
ID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSgiaHR0cCIsICJsb2NhbGhvc3QiLCA4MSk7CiAgICAg
Y29uc3QgaW50NjRfdCBEdW1teVZlcnNpb24gPSAyOwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwg
RHVtbXlWZXJzaW9uLCBjYWxsYmFja3MuZ2V0KCksIGRhdGFiYXNlQ2FsbGJhY2tzLCBvcmlnaW4s
IDAgLypGcmFtZSovLCBTdHJpbmcoKSAvKnBhdGgqLyk7CisgICAgZmFjdG9yeS0+b3BlbihuYW1l
LCBEdW1teVZlcnNpb24sIDEsIGNhbGxiYWNrcy5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3MsIG9y
aWdpbiwgMCAvKkZyYW1lKi8sIFN0cmluZygpIC8qcGF0aCovKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VC
YWNrZW5kVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNl
QmFja2VuZFRlc3QuY3BwCmluZGV4IDdjZDY0NGE0MTIwY2I4Zjc3ZGM5NmY1YzJlMGZiMzk3Mzdi
NDgyODguLjM1YTVkNTBhZjNlOWUyM2UyYmE0NTM3MjJiYmViOGE4ZWVlZTE4NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRU
ZXN0LmNwcApAQCAtMTM3LDEwICsxMzcsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVh
bCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gSURCRGF0YWJh
c2VNZXRhZGF0YSgpOyB9Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREUgeyByZXR1cm4gMDsg
fQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9u
SWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJL
ZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSBPVkVSUklERSB7IH07CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkKSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmUoaW50NjRfdCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29k
ZSYpIE9WRVJSSURFIHsgfQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2Fj
dGlvbihpbnQ2NF90LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJREJUcmFuc2FjdGlvbjo6TW9k
ZSkgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2Fj
dGlvbihpbnQ2NF90LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVj
dG9yPGludDY0X3Q+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgT1ZFUlJJREUgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182617</attachid>
            <date>2013-01-14 13:28:15 -0800</date>
            <delta_ts>2013-01-14 14:41:52 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106605-20130114132516.patch</filename>
            <type>text/plain</type>
            <size>119728</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNiMWM5YWFmODY0NTZi
ZWM1MDRjZTRjMGE4MGNlNjNhNmFlYTNiMC4uYjhkMDYzZGU4MDQyOGU2NzVmMGU3NzE4NjliNGFk
NTQxMzkyOWFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAxLTEwICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IFJl
bW92ZSBJREJPYmplY3RTdG9yZS9JbmRleEJhY2tlbmRJbXBsIGFuZCBzdXBwb3J0IGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2NjA1
CisKKyAgICAgICAgUmVtb3ZlIGFsbCB1c2VzIG9mIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZSBhbmQgSURCSW5kZXhCYWNrZW5kKiwKKyAgICAgICAgYXMgdGhleSBhcmUgbm8gbG9uZ2Vy
IHVzZWQgYWZ0ZXIgcmVjZW50IHJlZmFjdG9yaW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEZpc2hlci4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ3Vyc29yOjp1cGRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpjcmVhdGVP
YmplY3RTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmg6CisgICAgICAg
IChJREJGYWN0b3J5QmFja2VuZEltcGwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgIChJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5oOiBSZW1v
dmVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmU6OnB1dCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuaDoKKyAgICAgICAgKElEQk9iamVjdFN0b3JlKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6Om1ha2VJbmRleFdyaXRlcnMpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OkluZGV4V3JpdGVyOjpJbmRl
eFdyaXRlcik6CisgICAgICAgIChJbmRleFdyaXRlcik6CisgICAgICAgIChJREJPYmplY3RTdG9y
ZUJhY2tlbmRJbXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZUJhY2tlbmRJbnRlcmZhY2UuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKiBUYXJnZXQucHJpOgor
ICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTMtMDEtMTIgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAg
IEF2YWlsYWJsZSBoZWlnaHQgc2hvdWxkIHJlc3BlY3QgbWluIGFuZCBtYXggaGVpZ2h0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGJjMDM1OTc1MTgwNDI0NzJlODY3YzhlOGRmOGM2YmU4
MzNmOThlNGUuLjA1MDY5YzNlZWMxYmE2YzU4NzlmMTY1NmZlZWRkYTgyOWIzN2Y0NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTMtMDEtMTAgIEFsZWMg
RmxldHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4ZWREQjogUmVt
b3ZlIElEQk9iamVjdFN0b3JlL0luZGV4QmFja2VuZEltcGwgYW5kIHN1cHBvcnQgZnVuY3Rpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDY2MDUK
KworICAgICAgICBSZW1vdmUgYWxsIHJlZmVyZW5jZXMgdG8gSURCT2JqZWN0U3RvcmVCYWNrZW5k
KiBhbmQgSURCSW5kZXhCYWNrZW5kKgorICAgICAgICBhcyB0aGV5IG5vIGxvbmdlciBleGlzdCBp
biBXZWJDb3JlLgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5oOgorICAg
ICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBwdWJsaWMvV2ViSURCRGF0YWJhc2UuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkRhdGFiYXNlOjptZXRhZGF0YSk6
CisgICAgICAgICogcHVibGljL1dlYklEQkZhY3RvcnkuaDoKKyAgICAgICAgKFdlYklEQkZhY3Rv
cnkpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJJbmRleC5oOiBSZW1vdmVkLgorICAgICAgICAq
IHB1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9X
ZWJJREJUcmFuc2FjdGlvbi5oOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6
CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNwcDoKKyAgICAgICAgKiBz
cmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5KToKKyAgICAgICAgKiBzcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5jcHA6CisgICAg
ICAgICogc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaDoKKyAgICAgICAgKElEQkZhY3RvcnlC
YWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9JREJJbmRleEJhY2tlbmRQcm94eS5jcHA6IFJl
bW92ZWQuCisgICAgICAgICogc3JjL0lEQkluZGV4QmFja2VuZFByb3h5Lmg6IFJlbW92ZWQuCisg
ICAgICAgICogc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAqIHNyYy9J
REJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oOgorICAgICAgICAoSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OnB1dCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkRhdGFiYXNlSW1wbDo6c2V0SW5kZXhLZXlzKToKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0
YWJhc2VJbXBsLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViSURCRGF0YWJhc2VJ
bXBsKToKKyAgICAgICAgKiBzcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJGYWN0b3J5SW1wbDo6Z2V0RGF0YWJhc2VOYW1lcyk6CisgICAgICAgICogc3Jj
L1dlYklEQkZhY3RvcnlJbXBsLmg6CisgICAgICAgIChXZWJJREJGYWN0b3J5SW1wbCk6CisgICAg
ICAgICogc3JjL1dlYklEQkluZGV4SW1wbC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogc3JjL1dl
YklEQkluZGV4SW1wbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJPYmplY3RTdG9y
ZUltcGwuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHNyYy9XZWJJREJPYmplY3RTdG9yZUltcGwu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAg
ICAgICAgKiBzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmg6CisgICAgICAgICogdGVzdHMvSURC
QWJvcnRPbkNvcnJ1cHRUZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRFU1QpOgorICAgICAg
ICAqIHRlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwOgorCiAyMDEzLTAxLTExICBEYW4g
QmVhbSAgPGRiZWFtQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2xlYW4gdXBdIFJlbW92ZSBI
VE1MRm9ybUVsZW1lbnQ6OkF1dG9jb21wbGV0ZVJlc3VsdEVycm9yIGluIGZhdm9yIG9mIG1vcmUg
c3BlY2lmaWMgRXJyb3IgcmVhc29ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
ZmFiZjM1MzUzOTA0NGFmZWI3MDQwMWYyNmFjMTgxMzEzY2NkNjc1Zi4uNmNkODJjZDJiODk1NzI4
NDhkYmM1MjViNjc1ZTIyYWEyZjk2MTJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC0xODczLDcgKzE4NzMsNiBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaCBcCi0JU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmggXAog
CVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcCBcCkBAIC0xODg3LDcgKzE4ODYsNiBAQCB3ZWJj
b3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCTWV0YWRhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCBcCi0JU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVxdWVzdC5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ2FsbGJhY2tzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDYWxsYmFja3MuaAppbmRleCAxY2Y0Yjdi
ZDBkYzU0ZTFkYTE5MjYyNDFlMmUzY2YzN2YwNmZhMDRjLi5mOGQzY2U0OGNkODM3NGZmMWVkNmI5
ODI4OGU2NDhmZGFiNmU1YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJDYWxsYmFja3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDYWxsYmFja3MuaApAQCAtNDIsNyArNDIsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgRE9NU3RyaW5nTGlzdDsKIGNsYXNzIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U7
Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U7CiAKIGNsYXNzIElEQkNhbGxi
YWNrcyA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkNhbGxiYWNrcz4gewogcHVibGljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggZDQxMWRh
OTM3NWVmYWI5MTBjYmQ2NWU3ZDliMWU0NGM5MzA4M2RjMS4uYzdkYzQ3ZGQ5YzQwZWI0NzY0M2Iw
YTZmNDg0N2MyNzEzZTljMDdkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJDdXJzb3I6OnVwZGF0ZShTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2
YWx1ZSwKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBvYmplY3RTdG9yZS0+cHV0KElE
Qk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6Q3Vyc29yVXBkYXRlLCBJREJBbnk6OmNyZWF0
ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBtX2N1cnJlbnRQcmltYXJ5S2V5LCBlYyk7CisgICAgcmV0
dXJuIG9iamVjdFN0b3JlLT5wdXQoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JV
cGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIG1fY3VycmVudFByaW1h
cnlLZXksIGVjKTsKIH0KIAogdm9pZCBJREJDdXJzb3I6OmFkdmFuY2UobG9uZyBsb25nIGNvdW50
LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlLmNwcAppbmRleCA3NDY0NmQwMDgxNzVkYmE0ZTE1Yzk0N2QxNTI2OTk5
OTI3ZGFmZmQ4Li44ODNhNjVjNmViNGVlZTZkNDQ1ZTdmMWU3NjBmOTZmN2ViOGEzOWJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCkBA
IC0xODYsNyArMTg2LDcgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gSURCRGF0YWJhc2U6
OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY28KICAgICBpbnQ2NF90IG9i
amVjdFN0b3JlSWQgPSBtX21ldGFkYXRhLm1heE9iamVjdFN0b3JlSWQgKyAxOwogICAgIG1fYmFj
a2VuZC0+Y3JlYXRlT2JqZWN0U3RvcmUobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmlkKCks
IG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpOwogCi0gICAgSURC
T2JqZWN0U3RvcmVNZXRhZGF0YSBtZXRhZGF0YShuYW1lLCBvYmplY3RTdG9yZUlkLCBrZXlQYXRo
LCBhdXRvSW5jcmVtZW50LCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6Ok1pbmltdW1J
bmRleElkKTsKKyAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIG1ldGFkYXRhKG5hbWUsIG9iamVj
dFN0b3JlSWQsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTo6TWluaW11bUluZGV4SWQpOwogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZT4gb2JqZWN0
U3RvcmUgPSBJREJPYmplY3RTdG9yZTo6Y3JlYXRlKG1ldGFkYXRhLCBtX3ZlcnNpb25DaGFuZ2VU
cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgbV9tZXRhZGF0YS5vYmplY3RTdG9yZXMuc2V0KG1ldGFk
YXRhLmlkLCBtZXRhZGF0YSk7CiAgICAgKyttX21ldGFkYXRhLm1heE9iamVjdFN0b3JlSWQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwCmluZGV4IDkyYzkxOGM5YTA2MTQwYjIwN2MzNzdkYzdkMGVjNTE5
ODZmOTY5NmEuLmM2YWQxMjVhMzdjODcwOWY0OWQ1YzFmYjNkZDc1ZTcxZjM0ZjA3ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2Vu
ZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuY3BwCkBAIC01NjEsNyArNTYxLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2IKICAgICBBU1NFUlQobV90cmFuc2FjdGlvbnMuY29udGFpbnModHJhbnNhY3Rpb25JZCkp
OwogICAgIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwqIHRyYW5zYWN0aW9uID0gbV90cmFuc2Fj
dGlvbnMuZ2V0KHRyYW5zYWN0aW9uSWQpOwogCi0gICAgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBv
YmplY3RTdG9yZU1ldGFkYXRhKG5hbWUsIG9iamVjdFN0b3JlSWQsIGtleVBhdGgsIGF1dG9JbmNy
ZW1lbnQsIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6TWluaW11bUluZGV4SWQpOwor
ICAgIElEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0U3RvcmVNZXRhZGF0YShuYW1lLCBvYmpl
Y3RTdG9yZUlkLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6Ok1pbmltdW1JbmRleElkKTsKIAogICAgIHRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2so
Q3JlYXRlT2JqZWN0U3RvcmVPcGVyYXRpb246OmNyZWF0ZShtX2JhY2tpbmdTdG9yZSwgb2JqZWN0
U3RvcmVNZXRhZGF0YSksIENyZWF0ZU9iamVjdFN0b3JlQWJvcnRPcGVyYXRpb246OmNyZWF0ZSh0
aGlzLCBvYmplY3RTdG9yZUlkKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCAzNDdmMjNlZDFi
YWM1MTc5YzhmNjY3MTYzYjAyODM1N2E2M2ZmMjhlLi42NmMxZWUyYWM0OTc2MzNkYjAzMDgyZjkw
NDI5YWM1NjdjOGFiMjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC02Myw5ICs2Myw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZQogICAgIHZpcnR1YWwg
SURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgYXV0
b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29k
ZSYpICB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRv
SW5jcmVtZW50KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwg
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpIHsgQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQpOwogICAgIC8vIEZJWE1F
OiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYgb2JqZWN0U3RvcmVJZHMsIElEQlRyYW5zYWN0aW9uOjpNb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNGJiZmJiODZhY2NlMTNiMDgwNzE0
MmYxMmFkYzM2MWY4OGFjZWU0MC4uYzIxOTY2YzVmMDgxYWIxYTIwY2ViY2Q1MzkyOWIxNDFlYjQw
MTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTQwLDcgKzQwLDYgQEAgY2xh
c3MgSURCRGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlQYXRo
OwogY2xhc3MgSURCS2V5UmFuZ2U7Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2U7CiBjbGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7CiBzdHJ1Y3QgSURCRGF0
YWJhc2VNZXRhZGF0YTsKIApAQCAtNTUsMTEgKzU0LDggQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBJREJEYXRhYmFzZU1ldGFkYXRhIG1ldGFkYXRhKCkgY29uc3QgPSAwOwogCi0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRlT2JqZWN0
U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9v
bCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRp
b25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9i
amVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSA9
IDA7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZVRyYW5zYWN0aW9uKGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgSURC
VHJhbnNhY3Rpb246Ok1vZGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlVHJhbnNhY3Rp
b24oaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tz
PiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBvYmplY3RTdG9yZUlkcywgdW5zaWduZWQgc2hvcnQg
bW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbG9zZShQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPikgPSAwOwpAQCAtODIsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEN1cnNv
clVwZGF0ZQogICAgIH07CiAKKyAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBNaW5pbXVtSW5kZXhJ
ZCA9IDMwOworCiAgICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPElEQktleT4gPiBJbmRleEtleXM7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBv
YmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBi
b29sIGtleU9ubHksIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwu
aAppbmRleCAzYzExY2QzNWEyOTgxNDBlMDdkNmQ4ZjkxYmY2NTUyOTM2NWI0YTExLi4yNGY3M2Fl
Zjg4OTdhMDIwYzY0NDI1MjdmMjk5YWNhMzU5ZTZmYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuaApAQCAt
NTgsMTEgKzU4LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJCYWNraW5n
U3RvcmUoY29uc3QgU3RyaW5nJiBmaWxlSWRlbnRpZmllcik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRh
RGlyKTsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNl
Q2FsbGJhY2tzLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQotICAg
IHsKLSAgICAgICAgcmV0dXJuIG9wZW4obmFtZSwgdmVyc2lvbiwgMCwgY2FsbGJhY2tzLCBkYXRh
YmFzZUNhbGxiYWNrcywgc2VjdXJpdHlPcmlnaW4sIGNvbnRleHQsIGRhdGFEaXIpOwotICAgIH0K
ICAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lv
biwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFj
ZS5oCmluZGV4IGE5ZmQzYTZmMTMzNGEzMTg2NTk5MzI4ZjFhNzI1ZDRlMDZlYzQzZjguLjIzYjdj
MjE0ZGQ3NWQ1MDlhNzZlYmZmNTUwZGEwOGJmZGE0N2U3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2UuaApAQCAtNTQsOCArNTQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2UoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5h
bWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4s
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKLSAg
ICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMuCi0gICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3Ry
aW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24s
IGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCmluZGV4IGE4YzE5NjA2MDNhNjBl
MmZiOGJjOTZlNDYyMDMwYWI4ZWM5OTEzZDEuLjY4MGI3YTdmMzE0Nzc1OWY1MGI0YTAxYTQ2NGVm
OGQwN2YxNzI0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIklEQkN1cnNvckJhY2tlbmRJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgotI2luY2x1ZGUg
IklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1
ZGUgIklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5k
SW50ZXJmYWNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg0ZGM1YjcyNTJlYTU2
MGZjZDJiOTFhZTdhZjc3MDRhM2JkNDc1ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5k
ZXhCYWNrZW5kSW50ZXJmYWNlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2VfaAotI2RlZmluZSBJREJJbmRleEJh
Y2tlbmRJbnRlcmZhY2VfaAotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSURCQ2FsbGJhY2tzOwotY2xhc3MgSURCS2V5OwotY2xh
c3MgSURCS2V5UGF0aDsKLWNsYXNzIElEQktleVJhbmdlOwotY2xhc3MgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlOwotCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwotCi1jbGFzcyBJ
REJJbmRleEJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJJbmRleEJhY2tl
bmRJbnRlcmZhY2U+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JREJJbmRleEJhY2tlbmRJbnRl
cmZhY2UoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb3BlbktleUN1cnNvcihQYXNzUmVm
UHRyPElEQktleVJhbmdlPiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2VwdGlvbkNv
ZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPElEQktleVJhbmdlPiwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
LCBFeGNlcHRpb25Db2RlJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRLZXkoUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmCi0KLSNlbmRpZiAvLyBJREJJbmRleEJhY2tlbmRJbnRlcmZh
Y2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuY3BwCmluZGV4IGY1MGZlMWViYjgwODJlMjE3NmY4ZDRmZWQzMGQ5YWFiMDMyNTVmOGEu
LmYxMGQwODZlZTQ5NmZkZTFiNTgxODA4ZTk5YzlhZTdlYTk0NWMzNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTEy
MywxNiArMTIzLDE2IEBAIHN0YXRpYyB2b2lkIGdlbmVyYXRlSW5kZXhLZXlzRm9yVmFsdWUoRE9N
UmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0IElEQkluCiBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1
ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OmFkZCIpOwotICAgIHJldHVybiBwdXQoSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpBZGRPbmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlz
KSwgc3RhdGUsIHZhbHVlLCBrZXksIGVjKTsKKyAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNlQmFj
a2VuZEludGVyZmFjZTo6QWRkT25seSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1
ZSwga2V5LCBlYyk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6
OnB1dChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwgUGFzc1JlZlB0cjxJ
REJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJPYmpl
Y3RTdG9yZTo6cHV0Iik7Ci0gICAgcmV0dXJuIHB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2U6OkFkZE9yVXBkYXRlLCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBr
ZXksIGVjKTsKKyAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6QWRk
T3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIGtleSwgZWMpOwog
fQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSURCT2JqZWN0
U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQW55
PiBzb3VyY2UsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVm
UHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1
dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0
YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OnB1dCIpOwog
ICAgIFJlZlB0cjxJREJLZXk+IGtleSA9IHBycEtleTsKQEAgLTE2OCw3ICsxNjgsNyBAQCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlOjpQdXRNbwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQg
PSBzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbVNjcmlwdFN0YXRlKHN0YXRlKTsKICAgICBET01S
ZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRlKGNvbnRleHQpOwogCi0gICAgaWYgKHB1dE1vZGUgIT0g
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpDdXJzb3JVcGRhdGUgJiYgdXNlc0luTGlu
ZUtleXMgJiYga2V5KSB7CisgICAgaWYgKHB1dE1vZGUgIT0gSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlOjpDdXJzb3JVcGRhdGUgJiYgdXNlc0luTGluZUtleXMgJiYga2V5KSB7CiAgICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRhdGFFcnJvcjsKICAgICAgICAgcmV0dXJuIDA7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlLmgKaW5kZXggNmRmZDk3ODhhNTA4YzZiOTg1MjBkZTBmNDFkMzFkZDEzZmRhMjdhZi4u
NTkyYmJjMTZjOTQ5YWMwOTVkYzZjY2U4YTNkYTI2ZDEzMDMzMzRiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCkBAIC0zMiw3ICsz
Miw2IEBACiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNp
bmNsdWRlICJJREJNZXRhZGF0YS5oIgotI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZS5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgpAQCAtOTUsNyArOTQsNyBAQCBw
dWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNz
UmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSwgUGFzc1Jl
ZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIFBhc3NSZWZQ
dHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
cHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSwgUGFzc1JlZlB0cjxJREJB
bnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIFBhc3NSZWZQdHI8SURCS2V5
PiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgbWFya0RlbGV0ZWQoKSB7IG1fZGVsZXRlZCA9
IHRydWU7IH0KICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWQoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsLmNwcAppbmRleCBkMjRiNjdmZDliY2EwOTEyMDcxZDViOTA5MTgwNmQ5N2E2YWIx
ZTY0Li40ZmM4YjE3ZjM0MmZjYzA4YmQxZTZiNDAzOTM1ZjZhODg5ZTMzYzgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsLmNwcApAQCAtODYsMTIgKzg2LDEyIEBAIGJvb2wgSURCT2JqZWN0U3Rv
cmVCYWNrZW5kSW1wbDo6SW5kZXhXcml0ZXI6OmFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0
b3JlJiBiCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbDo6bWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+IHRyYW5zYWN0aW9uLCBJREJCYWNraW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBk
YXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFz
c1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiBpbmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhX
cml0ZXI+ID4qIGluZGV4V3JpdGVycywgU3RyaW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBs
ZXRlZCkKK2Jvb2wgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUluZGV4V3JpdGVycyhQ
YXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uLCBJREJCYWNr
aW5nU3RvcmUqIGJhY2tpbmdTdG9yZSwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXksIGJvb2wga2V5V2FzR2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRz
LCBjb25zdCBWZWN0b3I8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiBp
bmRleEtleXMsIFZlY3RvcjxPd25QdHI8SW5kZXhXcml0ZXI+ID4qIGluZGV4V3JpdGVycywgU3Ry
aW5nKiBlcnJvck1lc3NhZ2UsIGJvb2wmIGNvbXBsZXRlZCkKIHsKICAgICBBU1NFUlQoaW5kZXhJ
ZHMuc2l6ZSgpID09IGluZGV4S2V5cy5zaXplKCkpOwogICAgIGNvbXBsZXRlZCA9IGZhbHNlOwog
Ci0gICAgSGFzaE1hcDxpbnQ2NF90LCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6Oklu
ZGV4S2V5cz4gaW5kZXhLZXlNYXA7CisgICAgSGFzaE1hcDxpbnQ2NF90LCBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlNYXA7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBpbmRleElkcy5zaXplKCk7ICsraSkKICAgICAgICAgaW5kZXhLZXlNYXAuYWRk
KGluZGV4SWRzW2ldLCBpbmRleEtleXNbaV0pOwogCkBAIC05OSw3ICs5OSw3IEBAIGJvb2wgSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6bWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuCiAKICAgICAgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXgg
PSBpdC0+dmFsdWU7CiAKLSAgICAgICAgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJ
bmRleEtleXMga2V5cyA9IGluZGV4S2V5TWFwLmdldChpdC0+a2V5KTsKKyAgICAgICAgSURCRGF0
YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMga2V5cyA9IGluZGV4S2V5TWFwLmdldChp
dC0+a2V5KTsKICAgICAgICAgLy8gSWYgdGhlIG9iamVjdFN0b3JlIGlzIHVzaW5nIGF1dG9JbmNy
ZW1lbnQsIHRoZW4gYW55IGluZGV4ZXMgd2l0aCBhbiBpZGVudGljYWwga2V5UGF0aCBuZWVkIHRv
IGFsc28gdXNlIHRoZSBwcmltYXJ5IChnZW5lcmF0ZWQpIGtleSBhcyBhIGtleS4KICAgICAgICAg
aWYgKGtleVdhc0dlbmVyYXRlZCAmJiAoaW5kZXgua2V5UGF0aCA9PSBvYmplY3RTdG9yZS5rZXlQ
YXRoKSkKICAgICAgICAgICAgIGtleXMuYXBwZW5kKHByaW1hcnlLZXkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbC5oCmluZGV4IDk3MGZjNDlhMmU2OTkxNTgxMDAyNWU0MGUwOTNmYzljMGRiOTE5ZjUu
LjNkMmU0ZDM0NWRiNmMyZDBkNDJmOTg5MjdjZWIwZjc4MGIwNTE5YWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJh
Y2tlbmRJbXBsLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCS2V5UGF0aC5oIgogI2luY2x1ZGUgIklEQk1ldGFkYXRh
LmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKQEAg
LTUyLDcgKzUxLDcgQEAgbmFtZXNwYWNlIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwgewogICAg
ICAgICAgICAgOiBtX2luZGV4TWV0YWRhdGEoaW5kZXhNZXRhZGF0YSkKICAgICAgICAgeyB9CiAK
LSAgICAgICAgSW5kZXhXcml0ZXIoY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhNZXRhZGF0
YSwgY29uc3QgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMmIGluZGV4
S2V5cykKKyAgICAgICAgSW5kZXhXcml0ZXIoY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgaW5kZXhN
ZXRhZGF0YSwgY29uc3QgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMmIGlu
ZGV4S2V5cykKICAgICAgICAgICAgIDogbV9pbmRleE1ldGFkYXRhKGluZGV4TWV0YWRhdGEpCiAg
ICAgICAgICAgICAsIG1faW5kZXhLZXlzKGluZGV4S2V5cykKICAgICAgICAgeyB9CkBAIC02NSwx
MCArNjQsMTAgQEAgbmFtZXNwYWNlIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwgewogICAgICAg
ICBib29sIGFkZGluZ0tleUFsbG93ZWQoSURCQmFja2luZ1N0b3JlJiwgSURCQmFja2luZ1N0b3Jl
OjpUcmFuc2FjdGlvbiosIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIGNvbnN0IElEQktleSogaW5kZXhLZXksIGNvbnN0IElEQktleSog
cHJpbWFyeUtleSwgYm9vbCYgYWxsb3dlZCkgY29uc3QgV0FSTl9VTlVTRURfUkVUVVJOOwogCiAg
ICAgICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEgbV9pbmRleE1ldGFkYXRhOwotICAgICAgICBJ
REJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cyBtX2luZGV4S2V5czsKKyAg
ICAgICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXMgbV9pbmRleEtleXM7
CiAgICAgfTsKIAotICAgIGJvb2wgbWFrZUluZGV4V3JpdGVycyhQYXNzUmVmUHRyPElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGw+LCBJREJCYWNraW5nU3RvcmUqLCBpbnQ2NF90IGRhdGFiYXNlSWQs
IGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmLCBQYXNzUmVmUHRyPElEQktleT4gcHJpbWFy
eUtleSwgYm9vbCBrZXlXYXNHZW5lcmF0ZWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJ
ZHMsIGNvbnN0IFZlY3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5
cz4mLCBWZWN0b3I8T3duUHRyPEluZGV4V3JpdGVyPiA+KiBpbmRleFdyaXRlcnMsIFN0cmluZyog
ZXJyb3JNZXNzYWdlLCBib29sJiBjb21wbGV0ZWQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICBi
b29sIG1ha2VJbmRleFdyaXRlcnMoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
PiwgSURCQmFja2luZ1N0b3JlKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBjb25zdCBJREJPYmplY3RT
dG9yZU1ldGFkYXRhJiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIGJvb2wga2V5V2Fz
R2VuZXJhdGVkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8
SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+JiwgVmVjdG9yPE93blB0cjxJ
bmRleFdyaXRlcj4gPiogaW5kZXhXcml0ZXJzLCBTdHJpbmcqIGVycm9yTWVzc2FnZSwgYm9vbCYg
Y29tcGxldGVkKSBXQVJOX1VOVVNFRF9SRVRVUk47CiAKICAgICBQYXNzUmVmUHRyPElEQktleT4g
Z2VuZXJhdGVLZXkoUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+LCBQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw+LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCk7CiAgICAgYm9vbCB1cGRhdGVLZXlHZW5lcmF0b3IoUGFzc1JlZlB0cjxJREJCYWNr
aW5nU3RvcmU+LCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+LCBpbnQ2NF90
IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5KiwgYm9vbCBj
aGVja0N1cnJlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzM5YTBkNzU2OWYwNzVkZTk3N2U4OTcxNjIyYzI0NTE1Yjk3
MTdiMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQk9i
amVjdFN0b3JlQmFja2VuZEludGVyZmFjZV9oCi0jZGVmaW5lIElEQk9iamVjdFN0b3JlQmFja2Vu
ZEludGVyZmFjZV9oCi0KLSNpbmNsdWRlICJJREJDdXJzb3IuaCIKLSNpbmNsdWRlICJJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+Ci0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBJREJDYWxsYmFja3M7Ci1jbGFzcyBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U7
Ci1jbGFzcyBJREJLZXk7Ci1jbGFzcyBJREJLZXlQYXRoOwotY2xhc3MgSURCS2V5UmFuZ2U7Ci1j
bGFzcyBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U7Ci1jbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLWNsYXNzIElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZSA6IHB1YmxpYyBSZWZDb3VudGVkPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gewotcHVibGljOgotICAgIHZpcnR1YWwgfklEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZSgpIHsgfQotCi0gICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRy
PElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwotCi0gICAgZW51bSBQdXRNb2Rl
IHsKLSAgICAgICAgQWRkT3JVcGRhdGUsCi0gICAgICAgIEFkZE9ubHksCi0gICAgICAgIEN1cnNv
clVwZGF0ZQotICAgIH07Ci0KLSAgICBzdGF0aWMgY29uc3QgaW50NjRfdCBNaW5pbXVtSW5kZXhJ
ZCA9IDMwOwotCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPElEQktleT4gPiBJbmRleEtleXM7
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiwgUGFzc1JlZlB0cjxJREJLZXk+LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYs
IGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVG
dW5jdGlvbihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBFeGNlcHRpb25Db2RlJikgPSAwOwot
Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0gMDsKLQotICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUluZGV4KGlu
dDY0X3QsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYsIGJvb2wgdW5pcXVl
LCBib29sIG11bHRpRW50cnksIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSosIEV4Y2Vw
dGlvbkNvZGUmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhQYXNzUmVmUHRy
PElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgY29uc3QgVmVj
dG9yPEluZGV4S2V5cz4mLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShjb25zdCBWZWN0b3I8aW50NjRfdD4mLCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqKSA9IDA7Ci0gICAgdmlydHVhbCBQYXNzUmVm
UHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gaW5kZXgoaW50NjRfdCkgPSAwOwotCi0gICAg
dmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGludDY0X3QsIElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZSosIEV4Y2VwdGlvbkNvZGUmKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1
cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgSURCQ3Vyc29yOjpEaXJlY3Rpb24sIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNr
VHlwZSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhj
ZXB0aW9uQ29kZSYpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
Ci0KLSNlbmRpZiAvLyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2VfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCmluZGV4
IDU2NDZkZWM4Yjk4MmNjYzBmYzBjNDVjZGY0MGUxNmJiMjQzZWFkN2UuLmJhMTQ5NWVhZDc4NjBl
YTdjN2VlMDViOGY5MGQ1ODBmMzQ4YmUzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKQEAgLTM1LDcgKzM1LDYgQEAKICNp
bmNsdWRlICJJREJFdmVudERpc3BhdGNoZXIuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgogI2lu
Y2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCT3BlbkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIklE
QlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCIKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRJbXBsLmgKaW5kZXggMGI1YjY0MGFkZWNlNGRmODExYjg0MjdmM2M3MDcy
ZTVmNmNmMzQ2ZC4uOGYyZjVjNjBmOGYxM2RhNTI0YzBiMmUzNzgxZjIyMWEyOTc1MDU4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwuaApAQCAtNTIsNyArNTIsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB+SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCgpOwogCiAgICAgLy8gSURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUoaW50NjRfdCwgRXhjZXB0aW9uQ29kZSYpIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGFib3J0
KCk7CiAgICAgdm9pZCBjb21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FsbGJhY2tzKElE
QlRyYW5zYWN0aW9uQ2FsbGJhY2tzKiBjYWxsYmFja3MpIHsgbV9jYWxsYmFja3MgPSBjYWxsYmFj
a3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggYWM1MzU1MzQwZjI3
ZWYwOWYyNThhMDdjNzY2YjRiZDU3ZGM5NjYyNy4uNzg1ZWNmZDc2NzY0OGJkM2Y2MDk4NDlmNWRl
OGFmNDA3ODYwMjgyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgKQEAgLTM2
LDcgKzM2LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCQ3Vyc29yQmFja2Vu
ZEltcGw7Ci1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U7CiBjbGFzcyBJREJU
cmFuc2FjdGlvbkNhbGxiYWNrczsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTUz
LDcgKzUyLDYgQEAgcHVibGljOgogICAgICAgICBQcmVlbXB0aXZlVGFzawogICAgIH07CiAKLSAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBvYmpl
Y3RTdG9yZShpbnQ2NF90LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
b21taXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0KCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRDYWxsYmFja3MoSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkNvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI0ZWE4MDI5MWY5MGMzMWE3NTkzNGMwMjFhZjBiOTNm
MWNmODc2YjguLjBiYjVhY2E5NWEwOGM1YzUxNmEzNjUxMzI1NDViOGU0Njk3ZDUwZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAKICNpbmNsdWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgiCi0j
aW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURC
VHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsLmgiCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9U
YXJnZXQucHJpCmluZGV4IGVkZGZhNzIyMTdjMGFmYmU5OTVlZTk0NjI4YmIzMjBkMjk1NmMzZTAu
LmJjMTY4NDdiZjZhNzFkNTdiOTY4ZTdkMTA5MzUxNjQyZDc5YTU1MGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpA
QCAtMzYzLDcgKzM2Myw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGRvbS9EZXZpY2VNb3Rpb25EYXRh
LmNwcCBcCiAgICAgZG9tL0RldmljZU1vdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL0RldmljZU9y
aWVudGF0aW9uQ29udHJvbGxlci5jcHAgXAotICAgIGRvbS9EZXZpY2VPcmllbnRhdGlvbkRhdGEu
Y3BwIFwgICAgCisgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5jcHAgXAogICAgIGRvbS9E
ZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCBcCiAgICAgZG9tL0RvY3VtZW50LmNwcCBcCiAgICAg
ZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAgXApAQCAtMzA0OCwxMiArMzA0OCwxMCBAQCBlbmFi
bGU/KElOREVYRURfREFUQUJBU0UpIHsKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW1wbC5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXgu
aCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEludGVyZmFjZS5o
IFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmggXAogICAgICAgICBNb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaCBcCiAgICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGwuaCBcCi0gICAgICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
QmFja2VuZEludGVyZmFjZS5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5oIFwKICAgICAgICAgTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaCBcCiAgICAg
ICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZS5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggZGEyOTJjMWJlZTgzYWY4MDE3NjUwNjc3ZjQ4MWVmYmQyOGMyYjhi
OS4uYzUzNjMxYTRmZTVkZGMwOTFlMWU4Y2E3ZDE3Y2I3ODEwYjY5MzBjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtNzM4LDcgKzczOCw2IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXguY3BwJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5oJywKLSAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJ
bnRlcmZhY2UuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmgnLAogICAgICAgICAgICAg
J01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguY3BwJywKQEAgLTc1Myw3ICs3NTIsNiBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgnLAogICAgICAg
ICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwJywK
ICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2Vu
ZEludGVyZmFjZS5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJS
ZXF1ZXN0LmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNh
Y3Rpb25Nb25pdG9yLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCmluZGV4IDk5Y2ExY2YzMjk2NjFhMTI0MTA1NmVlMjYxOGE2OTY1ZDlkYTVkNTAu
LmEwMTY5YWU3YzRmZDYyNzczNzFjMGU3ZjBiZTdhMGMxYTI1YWQ3ODIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDk4NSwxMCArMjQ5ODUs
NiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0i
Li5cTW9kdWxlc1xpbmRleGVkZGJcSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCi0JCQkJCT4K
LQkJCQk8L0ZpbGU+Ci0JCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxNb2R1bGVzXGlu
ZGV4ZWRkYlxJREJLZXkuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMjUwMjEsMTAgKzI1
MDE3LDYgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQotCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXE1vZHVsZXNcaW5kZXhlZGRiXElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZS5o
IgotCQkJCQk+Ci0JCQkJPC9GaWxlPgotCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
TW9kdWxlc1xpbmRleGVkZGJcSURCUmVxdWVzdC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggN2YxMTQxNDgyMzFjZTFhNmI1NWIzZjE4OTM0OTFjZDYxMjg5Y2MzMy4uYzlhNzkwYTJjOTZk
ODQ5YjYwMWUwYjI5ZTM1Zjg0OWEyYmM1Yjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzQ5OSw3ICszNDk5LDYgQEAKIAkJ
OTcxMkE1RDQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU3QjE1
MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKIAkJ
OTcxMkE1RDUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTdDMTUwMDRFREEwMDQ4QUYxMCAv
KiBJREJJbmRleC5jcHAgKi87IH07CiAJCTk3MTJBNUQ2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJ
bmRleC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcx
MkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmggKi87IH07Ci0JCTk3MTJBNURBMTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTgxMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCAqLzsgfTsKIAkJOTcxMkE1REIxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQktleS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzEyQTU4MjE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5LmNwcCAqLzsg
fTsKIAkJOTcxMkE1REMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1ODMxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQktleS5oICovOyB9OwogCQk5NzEyQTVERTE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5
UGF0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzEyQTU4NTE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5UGF0aC5jcHAgKi87IH07CkBAIC0zNTEz
LDcgKzM1MTIsNiBAQAogCQk5NzEyQTVFQTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3Rv
cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NTkxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5oICovOyB9OwogCQk5NzEyQTVF
QzE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5MzE1MDA0RURB
MDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTk3MTJB
NUVEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5NDE1MDA0RURB
MDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oICovOyB9OwotCQk5NzEyQTVF
RTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU5NTE1MDA0
RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmggKi87IH07CiAJ
CTk3MTJBNUVGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9y
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJB
NTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCAq
LzsgfTsKIAkJOTcxMkE1RjAxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBlbmRpbmdUcmFuc2FjdGlv
bk1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3MTJBNTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9y
LmggKi87IH07CiAJCTk3MTJBNUYxMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJSZXF1ZXN0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTk4MTUw
MDRFREEwMDQ4QUYxMCAvKiBJREJSZXF1ZXN0LmNwcCAqLzsgfTsKQEAgLTEwODI5LDcgKzEwODI3
LDYgQEAKIAkJOTcxMkE1N0MxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQkluZGV4LmNwcDsgcGF0aCA9IE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTcxMkE1N0QxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IElEQkluZGV4Lmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU3RTE1MDA0RURBMDA0
OEFGMTAgLyogSURCSW5kZXguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQkluZGV4Lmlk
bDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTcxMkE1ODExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkluZGV4QmFja2Vu
ZEludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJJbmRleEJh
Y2tlbmRJbnRlcmZhY2UuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2Vu
ZEludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4MjE1MDA0
RURBMDA0OEFGMTAgLyogSURCS2V5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IElEQktleS5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4MzE1MDA0RURBMDA0OEFGMTAgLyog
SURCS2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQktleS5oOyBwYXRo
ID0gTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MTJBNTg0MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXkuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IElEQktleS5pZGw7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTA4NDYsNyArMTA4NDMsNiBAQAogCQk5
NzEyQTU5MjE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IElEQk9iamVjdFN0b3JlLmlkbDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1
OTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bC5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTQxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOyBwYXRoID0gTW9kdWxlcy9p
bmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5NzEyQTU5NTE1MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQk9iamVj
dFN0b3JlQmFja2VuZEludGVyZmFjZS5oOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk3MTJBNTk2MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IElEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1Ry
YW5zYWN0aW9uTW9uaXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MTJB
NTk3MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OTgxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQlJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gSURCUmVxdWVzdC5jcHA7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTcxLDcgKzE4MTY3LDYgQEAKIAkJ
CQk5NzEyQTU3QzE1MDA0RURBMDA0OEFGMTAgLyogSURCSW5kZXguY3BwICovLAogCQkJCTk3MTJB
NTdEMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJJbmRleC5oICovLAogCQkJCTk3MTJBNTdFMTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJJbmRleC5pZGwgKi8sCi0JCQkJOTcxMkE1ODExNTAwNEVEQTAwNDhB
RjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oICovLAogCQkJCTk3MTJBNTgyMTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJLZXkuY3BwICovLAogCQkJCTk3MTJBNTgzMTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJLZXkuaCAqLywKIAkJCQk5NzEyQTU4NDE1MDA0RURBMDA0OEFGMTAgLyogSURCS2V5
LmlkbCAqLywKQEAgLTE4MTg4LDcgKzE4MTgzLDYgQEAKIAkJCQk5NzEyQTU5MjE1MDA0RURBMDA0
OEFGMTAgLyogSURCT2JqZWN0U3RvcmUuaWRsICovLAogCQkJCTk3MTJBNTkzMTUwMDRFREEwMDQ4
QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCAqLywKIAkJCQk5NzEyQTU5NDE1
MDA0RURBMDA0OEFGMTAgLyogSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oICovLAotCQkJCTk3
MTJBNTk1MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2Uu
aCAqLywKIAkJCQk5NzEyQTU5NjE1MDA0RURBMDA0OEFGMTAgLyogSURCUGVuZGluZ1RyYW5zYWN0
aW9uTW9uaXRvci5jcHAgKi8sCiAJCQkJOTcxMkE1OTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuaCAqLywKIAkJCQk5NzEyQTU5ODE1MDA0RURBMDA0OEFG
MTAgLyogSURCUmVxdWVzdC5jcHAgKi8sCkBAIC0yNDIwMCwxNCArMjQxOTQsMTIgQEAKIAkJCQk5
NzEyQTVEMjE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tlbmRJbXBsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5NzEyQTVENDE1MDA0RURBMDA0OEFGMTAgLyogSURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3MTJBNUQ2MTUwMDRFREEwMDQ4QUYx
MCAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTcxMkE1REExNTAwNEVEQTAwNDhB
RjEwIC8qIElEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcx
MkE1REMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcx
MkE1REYxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVBhdGguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTk3MTJBNUUzMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlSYW5nZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTcxMkE1RTgxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2RpbmcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTk3MTJBNUVBMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9y
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RUQxNTAwNEVEQTAwNDhBRjEwIC8qIElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovLAotCQkJCTk3MTJBNUVFMTUwMDRF
REEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3MTJBNUYwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJQZW5kaW5nVHJhbnNhY3Rp
b25Nb25pdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzEyQTVGMjE1MDA0RURBMDA0OEFGMTAg
LyogSURCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTcxMkE1RjQxNTAwNEVEQTAwNDhB
RjEwIC8qIElEQlRyYWNpbmcuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCmluZGV4IGQ4YzM3ZWE0MmI0MWJkMDUzOTdhYTU1ZjhlMjMzZmQ3NjVlMDE5YjAuLjNjNDdm
NDQ1ZWYxYzZhNmJhZDZmYTA4ZTIyZDljZWMyZjMwMjg4MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKQEAgLTE4MywxMiArMTgzLDEwIEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJJREJEYXRhYmFzZUVycm9yLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCRGF0
YWJhc2VFeGNlcHRpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJGYWN0b3J5
LmgnLAotICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCSW5kZXguaCcsCiAgICAgICAgICAg
ICAgICAgJ3B1YmxpYy9XZWJJREJLZXkuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJ
REJLZXlQYXRoLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCS2V5UmFuZ2UuaCcs
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJNZXRhZGF0YS5oJywKLSAgICAgICAgICAg
ICAgICAncHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViSURCVHJhbnNhY3Rpb24uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJU
cmFuc2FjdGlvbkNhbGxiYWNrcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkljb25M
b2FkaW5nQ29tcGxldGlvbi5oJywKQEAgLTQxNiwxMCArNDE0LDYgQEAKICAgICAgICAgICAgICAg
ICAnc3JjL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9J
REJGYWN0b3J5QmFja2VuZFByb3h5LmgnLAotICAgICAgICAgICAgICAgICdzcmMvSURCSW5kZXhC
YWNrZW5kUHJveHkuY3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0lEQkluZGV4QmFja2VuZFBy
b3h5LmgnLAotICAgICAgICAgICAgICAgICdzcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHku
Y3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5Lmgn
LAogICAgICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgnLAogICAg
ICAgICAgICAgICAgICdzcmMvSURCVHJhbnNhY3Rpb25DYWxsYmFja3NQcm94eS5jcHAnLApAQCAt
NTYwLDE0ICs1NTQsMTAgQEAKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1w
bC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNwcCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oJywKLSAgICAgICAgICAgICAgICAn
c3JjL1dlYklEQkluZGV4SW1wbC5jcHAnLAotICAgICAgICAgICAgICAgICdzcmMvV2ViSURCSW5k
ZXhJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCS2V5LmNwcCcsCiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJJREJLZXlQYXRoLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJJREJLZXlSYW5nZS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSURCTWV0YWRhdGEu
Y3BwJywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAnLAot
ICAgICAgICAgICAgICAgICdzcmMvV2ViSURCT2JqZWN0U3RvcmVJbXBsLmgnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJ
REJUcmFuc2FjdGlvbkNhbGxiYWNrc0ltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggMDk4NjFmMTMzMDBmNmIxNWYzYzBi
YWNiYTJjMTI5ZmI3ZDBiNzdlZC4uNTQ5MWI5NmE4ODJjZGNkZWU3NDhiNDEzZGRkNzZmZWUwOWI0
YzU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2Fs
bGJhY2tzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJh
Y2tzLmgKQEAgLTM4LDcgKzM4LDYgQEAgY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsKIGNsYXNz
IFdlYklEQktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJJbmRleDsKLWNs
YXNzIFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247CiBjbGFzcyBX
ZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJEYXRhYmFzZS5oCmluZGV4IDUxNmEyMWRkOTQyY2VjZTdmYmM0MGUwMTBhNWM5
YzZiNGRjY2EzZmEuLmE5OGVlYTRhODY5NTQxOGMyOTM0MTBkZTAzM2E3YTY1ZDdlYjc0OGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAt
NDAsNyArNDAsNiBAQCBjbGFzcyBXZWJJREJEYXRhYmFzZUNhbGxiYWNrczsKIGNsYXNzIFdlYklE
QktleTsKIGNsYXNzIFdlYklEQktleVBhdGg7CiBjbGFzcyBXZWJJREJLZXlSYW5nZTsKLWNsYXNz
IFdlYklEQk9iamVjdFN0b3JlOwogY2xhc3MgV2ViSURCVHJhbnNhY3Rpb247CiAKIC8vIFNlZSBj
b21tZW50IGluIFdlYklEQkZhY3RvcnkgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyBvZiB0aGVz
ZSBjbGFzc2VzLgpAQCAtNTMsMTMgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBXRUJLSVRfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBXZWJJREJNZXRhZGF0YSgpOwogICAg
IH0KLSAgICB2aXJ0dWFsIFdlYklEQk9iamVjdFN0b3JlKiBjcmVhdGVPYmplY3RTdG9yZShsb25n
IGxvbmcsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sLCBjb25z
dCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKQotICAgIHsKLSAgICAgICAg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9CiAg
ICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklk
LCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBX
ZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcg
b2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJF
eGNlcHRpb25Db2RlJiBlYykgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxv
bmcgbG9uZyBvYmplY3RTdG9yZUlkKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQog
ICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFdlYklEQlRyYW5zYWN0aW9u
KiBjcmVhdGVUcmFuc2FjdGlvbihsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxv
bmc+JiwgdW5zaWduZWQgc2hvcnQgbW9kZSkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7
IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJJREJGYWN0b3J5LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJGYWN0
b3J5LmgKaW5kZXggNmE1OGU2YWU3OGQ1ZTJiZGIwMjI2OTAyZDhlYTY0Yjk3ZGJkZDM4Zi4uNjc4
YmVhMDRjNDk1Nzc5ZmVkMjE0NDUwYWZiMjY1NzI2NDk2YjcwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYklEQkZhY3RvcnkuaApAQCAtNTYsOCArNTYsNiBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoV2ViSURCQ2FsbGJhY2tzKiBj
YWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogCiAgICAgLy8gVGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiBvcGVuIGlnbm9yZXMg
dGhlIFdlYkZyYW1lKiBwYXJhbWV0ZXIuCi0gICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhv
ZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotICAg
IHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25nIHZlcnNp
b24sIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyog
ZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIFdlYkZy
YW1lKiBmcmFtZSwgY29uc3QgV2ViU3RyaW5nJiBkYXRhRGlyKSB7IFdFQktJVF9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFt
ZSwgbG9uZyBsb25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxs
YmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJh
Y2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSogZnJhbWUsIGNv
bnN0IFdlYlN0cmluZyYgZGF0YURpcikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUs
IFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBj
b25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMTAyNThlY2M3MTQ2NDk0Mzg5MDBiNjEwNzE5YTVjZmYxNGJm
YTg2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
Ci0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSURCSW5kZXhfaAotI2RlZmluZSBXZWJJ
REJJbmRleF9oCi0KLSNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiV2Vi
SURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAi
cGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJ
REJDYWxsYmFja3M7Ci1jbGFzcyBXZWJJREJLZXk7Ci1jbGFzcyBXZWJJREJLZXlSYW5nZTsKLQot
Ly8gU2VlIGNvbW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3
IG9mIHRoZXNlIGNsYXNzZXMuCi1jbGFzcyBXZWJJREJJbmRleCB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+V2ViSURCSW5kZXgoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuT2JqZWN0Q3Vy
c29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJ
REJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUm
KSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvcGVu
S2V5Q3Vyc29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9u
LCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlv
bkNvZGUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9p
ZCBjb3VudChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdl
YklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGdldE9iamVjdChjb25zdCBXZWJJREJLZXlS
YW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhj
ZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGdldEtleShjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNv
bnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLXByb3RlY3RlZDoKLSAgICBXZWJJREJJbmRleCgpIHt9Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYklEQkluZGV4X2gKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3Jl
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJPYmplY3RTdG9yZS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NTU0MTcxNjA0OTg5N2ZjYjBhMmE0NWFkZWIz
ZGI3YTY4Yzk1NjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQk9iamVjdFN0b3JlLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJJREJPYmplY3RT
dG9yZV9oCi0jZGVmaW5lIFdlYklEQk9iamVjdFN0b3JlX2gKLQotI2luY2x1ZGUgIldlYkRPTVN0
cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJXZWJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiV2Vi
SURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCi0jaW5jbHVkZSAiV2Vi
SURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAi
cGxhdGZvcm0vV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJLZXlSYW5nZTsKLWNsYXNzIFdlYklE
QlRyYW5zYWN0aW9uOwotCi0vLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhp
Z2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQk9iamVjdFN0b3Jl
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJJREJPYmplY3RTdG9yZSgpIHsgfQotCi0gICAg
dmlydHVhbCB2b2lkIGdldChjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyos
IGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0KLSAgICBlbnVtIFB1dE1vZGUgewotICAgICAgICBBZGRP
clVwZGF0ZSwKLSAgICAgICAgQWRkT25seSwKLSAgICAgICAgQ3Vyc29yVXBkYXRlCi0gICAgfTsK
LQotICAgIHR5cGVkZWYgV2ViVmVjdG9yPFdlYklEQktleT4gV2ViSW5kZXhLZXlzOwotCi0gICAg
dmlydHVhbCB2b2lkIHB1dChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBX
ZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcywgY29uc3QgV2ViVmVj
dG9yPFdlYkluZGV4S2V5cz4mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAg
IHZpcnR1YWwgdm9pZCBkZWxldGVGdW5jdGlvbihjb25zdCBXZWJJREJLZXlSYW5nZSYsIFdlYklE
QkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYp
IHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFy
KFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9u
Q29kZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCBXZWJJ
REJJbmRleCogY3JlYXRlSW5kZXgoY29uc3QgV2ViU3RyaW5nJiwgY29uc3QgV2ViSURCS2V5UGF0
aCYsIGJvb2wsIGJvb2wsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29k
ZSYpCi0gICAgewotICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLSAgICB2aXJ0dWFsIFdlYklEQkluZGV4KiBjcmVhdGVJbmRleChs
b25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sLCBi
b29sLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKQotICAgIHsK
LSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsK
LSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIHNldEluZGV4S2V5cyhjb25zdCBXZWJJREJLZXkmLCBj
b25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+
JiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoY29uc3QgV2ViVmVjdG9yPGxv
bmcgbG9uZz4mLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9OwotICAgIC8vIFRyYW5zZmVycyBvd25lcnNoaXAgb2YgdGhlIFdlYklEQklu
ZGV4IHRvIHRoZSBjYWxsZXIuCi0gICAgdmlydHVhbCBXZWJJREJJbmRleCogaW5kZXgobG9uZyBs
b25nKQotICAgIHsKLSAgICAgICAgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZUluZGV4KGxvbmcgbG9u
ZyBpbmRleElkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKSB7
IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vy
c29yKGNvbnN0IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGlyZWN0
aW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJUcmFuc2FjdGlvbjo6VGFza1R5cGUsIGNvbnN0
IFdlYklEQlRyYW5zYWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpIHsgV0VCS0lUX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOyB9Ci0gICAgdmlydHVhbCB2b2lkIGNvdW50KGNvbnN0IFdlYklEQktleVJh
bmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KLQotcHJvdGVjdGVk
OgotICAgIFdlYklEQk9iamVjdFN0b3JlKCkge30KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gV2ViSURCT2JqZWN0U3RvcmVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQlRyYW5zYWN0aW9uLmgKaW5kZXggMjIxYmY2MDU2NWJhYWVj
NjFmNGNmNTFhOThmY2FjZjFmYzliNDdjOS4uNjU2MmI5NDY3YTYzM2U1ZmFkZGFlYmE0NmZkYTE1
NTQ3ODcwYjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SURCVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
REJUcmFuc2FjdGlvbi5oCkBAIC0zMyw3ICszMyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsgY2xh
c3MgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOyB9CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1jbGFzcyBXZWJJREJPYmplY3RTdG9yZTsKIGNsYXNzIFdlYklEQlRyYW5zYWN0aW9uQ2Fs
bGJhY2tzOwogCiAvLyBTZWUgY29tbWVudCBpbiBXZWJJREJGYWN0b3J5IGZvciBhIGhpZ2ggbGV2
ZWwgb3ZlcnZpZXcgb2YgdGhlc2UgY2xhc3Nlcy4KQEAgLTQ2LDExICs0NSw2IEBAIHB1YmxpYzoK
ICAgICAgICAgUHJlZW1wdGl2ZVRhc2sKICAgICB9OwogCi0gICAgdmlydHVhbCBXZWJJREJPYmpl
Y3RTdG9yZSogb2JqZWN0U3RvcmUobG9uZyBsb25nLCBXZWJFeGNlcHRpb25Db2RlJikKLSAgICB7
Ci0gICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgfQogICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpIHsgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRlVGFza0V2ZW50cygpIHsg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKaW5kZXggZjY5ZThiMDc4MjA1ZmUzMTljN2Ji
NTkxOTliMzgwYmIxN2JhODkzMy4uMDkyYmZiN2ExNDlhNDI4YWEwYmE3ZWViZjc2MjkxZmIwNDE0
MDYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tz
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1By
b3h5LmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZFBy
b3h5LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlRXJyb3IuaCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRl
cmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJDdXJzb3JJbXBsLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5jcHAKaW5kZXggNzRiYWUzMDU4MTcxNGI3YTZhZjU1NjJjYTgwMzRlZjQwNTVhZDk0
MC4uZTdiZWI3OGU3MWQ3ZDVhZWQyYmQ0NDJmMjY3MThmMjRiNjQ3NTMyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmNw
cApAQCAtMzMsMTYgKzMzLDE1IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2VDYWxsYmFja3MuaCIK
ICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk1ldGFkYXRhLmgiCi0jaW5j
bHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJJREJUcmFuc2Fj
dGlvbkJhY2tlbmRQcm94eS5oIgogI2luY2x1ZGUgIldlYkRPTVN0cmluZ0xpc3QuaCIKICNpbmNs
dWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJbXBsLmgiCisj
aW5jbHVkZSAiV2ViSURCQ3Vyc29yLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIKICNp
bmNsdWRlICJXZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCIKICNpbmNsdWRlICJXZWJJREJE
YXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJX
ZWJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9uLmgiCiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNjgsMzEgKzY3LDEyIEBAIElEQkRhdGFiYXNlTWV0
YWRhdGEgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6Om1ldGFkYXRhKCkgY29uc3QKICAgICByZXR1
cm4gbV93ZWJJREJEYXRhYmFzZS0+bWV0YWRhdGEoKTsKIH0KIAotUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpjcmVhdGVP
YmplY3RTdG9yZShpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IElEQktleVBh
dGgmIGtleVBhdGgsIGJvb2wgYXV0b0luY3JlbWVudCwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50
ZXJmYWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRy
YW5zYWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94
eSBvYmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25z
IG9mIElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rp
b25CYWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgT3duUHRyPFdlYklEQk9iamVjdFN0
b3JlPiBvYmplY3RTdG9yZSA9IGFkb3B0UHRyKG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZU9iamVj
dFN0b3JlKGlkLCBuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50LCAqdHJhbnNhY3Rpb25Qcm94
eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpKTsKLSAgICBpZiAoIW9iamVjdFN0b3JlKQot
ICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6
OmNyZWF0ZShvYmplY3RTdG9yZS5yZWxlYXNlKCkpOwotfQotCiB2b2lkIElEQkRhdGFiYXNlQmFj
a2VuZFByb3h5OjpjcmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiBr
ZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgaWYgKG1fd2ViSURCRGF0YWJhc2Up
CiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9u
SWQsIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQpOwogfQogCi12
b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpkZWxldGVPYmplY3RTdG9yZShpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlz
IGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUg
cmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBh
cmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNh
Y3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJh
bnNhY3Rpb24pOwotICAgIG1fd2ViSURCRGF0YWJhc2UtPmRlbGV0ZU9iamVjdFN0b3JlKG9iamVj
dFN0b3JlSWQsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7
Ci19Ci0KIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OmRlbGV0ZU9iamVjdFN0b3JlKGlu
dDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKQogewogICAgIGlmICht
X3dlYklEQkRhdGFiYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkRhdGFiYXNlQmFja2VuZFByb3h5LmgKaW5kZXggYmVmMjg5YmZiZTU2Zjk5YzczZTg2YjQ5NWI0
NTkxOGYxZWFkZWM1My4uOTc4Y2NmZmNhMjUzZWVmZGEyMzc5NTI2ZGYxYWQyODVlZGQ5MzZhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5k
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oCkBAIC00NCw5ICs0NCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SURCRGF0YWJhc2VNZXRhZGF0YSBtZXRhZGF0YSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRl
T2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJDb3JlOjpJ
REJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2
b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgm
LCBib29sIGF1dG9JbmNyZW1lbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9y
ZShpbnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKTsKICAgICAvLyBG
SVhNRTogUmVtb3ZlIHRoaXMgbWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5MjMuCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCwgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb246Ok1vZGUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5
LmNwcAppbmRleCBjNjBhM2NiYTk0ZTEzOGJlODBhZjMxMmJiZDgwMTZkYWY3ZDU5ZmViLi5kNDY4
MTEwOGJhMzBjMDAzY2RhMTZlM2U0YTI0MjJmMWI0MWJiMzhmIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmNwcApAQCAtMjE0
LDIwICsyMTQsNiBAQCB2b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6OmdldERhdGFiYXNlTmFt
ZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYQogICAgIG1fd2ViSURCRmFjdG9y
eS0+Z2V0RGF0YWJhc2VOYW1lcyhuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBv
cmlnaW4sIHdlYkZyYW1lLCBkYXRhRGlyKTsKIH0KIAotCi0vLyBGSVhNRTogUmVtb3ZlIHRoaXMg
bWV0aG9kIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MjMu
Ci12b2lkIElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBp
bnQ2NF90IHZlcnNpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERhdGFiYXNlQ2FsbGJhY2tzLCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKQotewotICAgIFJlZlB0cjxJREJD
YWxsYmFja3M+IGNhbGxiYWNrcyhwcnBDYWxsYmFja3MpOwotICAgIFJlZlB0cjxJREJEYXRhYmFz
ZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MocHJwRGF0YWJhc2VDYWxsYmFja3MpOwotICAg
IFdlYlNlY3VyaXR5T3JpZ2luIG9yaWdpbihzZWN1cml0eU9yaWdpbik7Ci0gICAgaWYgKCFhbGxv
d0luZGV4ZWREQihjb250ZXh0LCBuYW1lLCBvcmlnaW4sIGNhbGxiYWNrcykpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFdlYkZyYW1lSW1wbCogd2ViRnJhbWUgPSBnZXRXZWJGcmFtZShjb250ZXh0
KTsKLSAgICBtX3dlYklEQkZhY3RvcnktPm9wZW4obmFtZSwgdmVyc2lvbiwgbmV3IFdlYklEQkNh
bGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgbmV3IFdlYklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbChk
YXRhYmFzZUNhbGxiYWNrcyksIG9yaWdpbiwgd2ViRnJhbWUsIGRhdGFEaXIpOwotfQotCiB2b2lk
IElEQkZhY3RvcnlCYWNrZW5kUHJveHk6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90
IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IHBycENhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gcHJwRGF0YWJh
c2VDYWxsYmFja3MsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpCiB7
CiAgICAgUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKHBycENhbGxiYWNrcyk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJGYWN0b3J5QmFja2VuZFByb3h5LmgK
aW5kZXggYzg5OWU4MGI3MDIyMmZlN2EzMjhmNjQzMGQyNTE0OWY0ZWZjZWQyNS4uMTc1YzczOWRm
MDlhODgzY2QyZjdhNDJlMWQ3ZThhMzM3NDJkMGYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRmFjdG9yeUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkZhY3RvcnlCYWNrZW5kUHJveHkuaApAQCAtNDksOCArNDksNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRQcm94eSgpOwogCiAgICAg
dmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxs
YmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcik7Ci0gICAgLy8gRklY
TUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzOTIzLgotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgaW50NjRfdCB2ZXJzaW9uLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgZGF0YURpcik7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkRhdGFiYXNl
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4sIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZp
cnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4sIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJh
Y2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleEJhY2tl
bmRQcm94eS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYwMTg4ZmQ0ODdhOWZm
Mjk1NWQ4NWUyMGI1ZWQ2ZjkzZWQ3MGFmMWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNr
ZW5kUHJveHkuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTAxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kUHJveHkuaCIKLQotI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCi0j
aW5jbHVkZSAiSURCS2V5UGF0aC5oIgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVk
ZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLSNpbmNsdWRlICJXZWJJREJDYWxsYmFj
a3NJbXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgotI2luY2x1ZGUgIldl
YklEQkluZGV4LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5
UmFuZ2UuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1QYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gSURCSW5kZXhCYWNrZW5k
UHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkluZGV4PiBpbmRleCkKLXsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IElEQkluZGV4QmFja2VuZFByb3h5KGluZGV4KSk7Ci19Ci0KLUlEQklu
ZGV4QmFja2VuZFByb3h5OjpJREJJbmRleEJhY2tlbmRQcm94eShQYXNzT3duUHRyPFdlYklEQklu
ZGV4PiBpbmRleCkKLSAgICA6IG1fd2ViSURCSW5kZXgoaW5kZXgpCi17Ci19Ci0KLUlEQkluZGV4
QmFja2VuZFByb3h5Ojp+SURCSW5kZXhCYWNrZW5kUHJveHkoKQotewotfQotCi12b2lkIElEQklu
ZGV4QmFja2VuZFByb3h5OjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBj
YWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1
YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVu
ZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUg
cHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rp
b25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNh
Y3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9wZW5PYmplY3RDdXJzb3Ioa2V5UmFuZ2UsIGRp
cmVjdGlvbiwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9u
UHJveHktPmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJREJJbmRleEJh
Y2tlbmRQcm94eTo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFu
c2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkg
b2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBv
ZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCSW5kZXgtPmNvdW50KGtl
eVJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Q
cm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi12b2lkIElEQkluZGV4QmFj
a2VuZFByb3h5OjpvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdl
LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxs
YmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJh
bnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVy
ZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJv
eHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Q
cm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rp
b24pOwotICAgIG1fd2ViSURCSW5kZXgtPm9wZW5LZXlDdXJzb3Ioa2V5UmFuZ2UsIGRpcmVjdGlv
biwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSwgKnRyYW5zYWN0aW9uUHJveHkt
PmdldFdlYklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJREJJbmRleEJhY2tlbmRQ
cm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqIHRy
YW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBUaGUgdHJhbnNhY3Rpb24g
cG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBh
cywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGlu
dGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJv
eHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQkluZGV4LT5nZXRPYmplY3Qoa2V5UmFu
Z2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2FjdGlvblByb3h5
LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLXZvaWQgSURCSW5kZXhCYWNrZW5k
UHJveHk6OmdldEtleShQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5zYWN0
aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBvYmpl
Y3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9mIElE
QiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgbV93ZWJJREJJbmRleC0+Z2V0S2V5KGtleVJh
bmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94
eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4QmFja2VuZFByb3h5LmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDFjMWMzMzY5Mjg5MGUwOGQyMjljMDZmZmNhYjlmNzgwYjlhMTU2YjUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhCYWNrZW5kUHJveHkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDYxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQkluZGV4QmFja2VuZFByb3h5X2gKLSNk
ZWZpbmUgSURCSW5kZXhCYWNrZW5kUHJveHlfaAotCi0jaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCi0KLSNpbmNsdWRlICJJREJJbmRleEJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRlICJJ
REJLZXlQYXRoLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJJREJJbmRleDsKLQot
Y2xhc3MgSURCSW5kZXhCYWNrZW5kUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6SURCSW5kZXhCYWNr
ZW5kSW50ZXJmYWNlIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleEJh
Y2tlbmRJbnRlcmZhY2U+IGNyZWF0ZShQYXNzT3duUHRyPFdlYklEQkluZGV4Pik7Ci0gICAgdmly
dHVhbCB+SURCSW5kZXhCYWNrZW5kUHJveHkoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vy
c29yKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJl
Y3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAg
IHZpcnR1YWwgdm9pZCBvcGVuS2V5Q3Vyc29yKFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFu
Z2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChQYXNzUmVmUHRyPFdl
YkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBX
ZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRp
b25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktl
eVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdmlydHVhbCB2b2lkIGdldEtleShQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlv
bkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6
Ci0gICAgSURCSW5kZXhCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJJREJJbmRleD4pOwotCi0g
ICAgT3duUHRyPFdlYklEQkluZGV4PiBtX3dlYklEQkluZGV4OwotfTsKLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8gSURCSW5kZXhCYWNrZW5kUHJveHlfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNr
ZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVC
YWNrZW5kUHJveHkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCA4ZTg5ZGViMDMz
ZjNkZWM5ODhhYTY3YWMzY2RlNGE1ZDk2OTVmYmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVj
dFN0b3JlQmFja2VuZFByb3h5LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE1NCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
LSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2Vu
ZFByb3h5LmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIkRP
TVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKLSNpbmNsdWRlICJJREJJ
bmRleEJhY2tlbmRQcm94eS5oIgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAi
SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaCIKLSNpbmNsdWRlICJXZWJJREJDYWxsYmFja3NJ
bXBsLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJXZWJJREJJbmRl
eC5oIgotI2luY2x1ZGUgIldlYklEQktleS5oIgotI2luY2x1ZGUgIldlYklEQk9iamVjdFN0b3Jl
LmgiCi0jaW5jbHVkZSAiV2ViSURCVHJhbnNhY3Rpb25JbXBsLmgiCi0jaW5jbHVkZSAicGxhdGZv
cm0vV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tl
bmRJbnRlcmZhY2U+IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpjcmVhdGUoUGFzc093blB0
cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eShvYmplY3RTdG9yZSkpOwotfQotCi1JREJP
YmplY3RTdG9yZUJhY2tlbmRQcm94eTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkoUGFzc093
blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUpCi0gICAgOiBtX3dlYklEQk9iamVj
dFN0b3JlKG9iamVjdFN0b3JlKQotewotfQotCi1JREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eTo6
fklEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5KCkKLXsKLX0KLQotdm9pZCBJREJPYmplY3RTdG9y
ZUJhY2tlbmRQcm94eTo6Z2V0KFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBUaGUgdHJh
bnNhY3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5
IG9iamVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMg
b2YgSURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25C
YWNrZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlv
bkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5n
ZXQoa2V5UmFuZ2UsIG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksICp0cmFuc2Fj
dGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19Ci0KLXZvaWQgSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kUHJveHk6OnB1dChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFB1dE1vZGUgcHV0TW9kZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiB0cmFuc2FjdGlvbiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3Qg
VmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykKLXsKLSAgICAvLyBUaGUgdHJhbnNhY3Rpb24g
cG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBh
cywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGlu
dGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJv
eHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5wdXQodmFsdWUs
IGtleSwgc3RhdGljX2Nhc3Q8V2ViSURCT2JqZWN0U3RvcmU6OlB1dE1vZGU+KHB1dE1vZGUpLCBu
ZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0
V2ViSURCVHJhbnNhY3Rpb24oKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7Ci19Ci0KLXZvaWQgSURC
T2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnNldEluZGV4S2V5cyhQYXNzUmVmUHRyPElEQktleT4g
cHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVj
dG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cywgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KiB0cmFuc2FjdGlvbikKLXsKLSAgICAvLyBUaGUgdHJhbnNhY3Rpb24gcG9pbnRlciBpcyBndWFy
YW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9iamVjdCBhcywgaW4gdGhlIHJlbmRl
cmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2YgSURCIGludGVyZmFjZXMgYXJlIHBy
b3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkqIHRyYW5zYWN0aW9u
UHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSo+KHRyYW5zYWN0
aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5zZXRJbmRleEtleXMocHJwUHJpbWFyeUtl
eSwgV2ViVmVjdG9yPGxvbmcgbG9uZz4oaW5kZXhJZHMpLCBpbmRleEtleXMsICp0cmFuc2FjdGlv
blByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpKTsKLX0KLQotdm9pZCBJREJPYmplY3RTdG9y
ZUJhY2tlbmRQcm94eTo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9u
QmFja2VuZEludGVyZmFjZSogdHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAg
IC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVy
IHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxl
bWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElE
QlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2Jq
ZWN0U3RvcmUtPmRlbGV0ZUZ1bmN0aW9uKGtleVJhbmdlLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1w
bChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwg
ZWMpOwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpjbGVhcihQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqIHRyYW5zYWN0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICAvLyBUaGUgdHJhbnNh
Y3Rpb24gcG9pbnRlciBpcyBndWFyYW50ZWVkIHRvIGJlIGEgcG9pbnRlciB0byBhIHByb3h5IG9i
amVjdCBhcywgaW4gdGhlIHJlbmRlcmVyLAotICAgIC8vIGFsbCBpbXBsZW1lbnRhdGlvbnMgb2Yg
SURCIGludGVyZmFjZXMgYXJlIHByb3h5IG9iamVjdHMuCi0gICAgSURCVHJhbnNhY3Rpb25CYWNr
ZW5kUHJveHkqIHRyYW5zYWN0aW9uUHJveHkgPSBzdGF0aWNfY2FzdDxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRQcm94eSo+KHRyYW5zYWN0aW9uKTsKLSAgICBtX3dlYklEQk9iamVjdFN0b3JlLT5jbGVh
cihuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+
Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi1QYXNzUmVmUHRyPElEQkluZGV4QmFj
a2VuZEludGVyZmFjZT4gSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OmNyZWF0ZUluZGV4KGlu
dDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgSURCS2V5UGF0aCYga2V5UGF0aCwg
Ym9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKiB0cmFuc2FjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgLy8gVGhlIHRyYW5z
YWN0aW9uIHBvaW50ZXIgaXMgZ3VhcmFudGVlZCB0byBiZSBhIHBvaW50ZXIgdG8gYSBwcm94eSBv
YmplY3QgYXMsIGluIHRoZSByZW5kZXJlciwKLSAgICAvLyBhbGwgaW1wbGVtZW50YXRpb25zIG9m
IElEQiBpbnRlcmZhY2VzIGFyZSBwcm94eSBvYmplY3RzLgotICAgIElEQlRyYW5zYWN0aW9uQmFj
a2VuZFByb3h5KiB0cmFuc2FjdGlvblByb3h5ID0gc3RhdGljX2Nhc3Q8SURCVHJhbnNhY3Rpb25C
YWNrZW5kUHJveHkqPih0cmFuc2FjdGlvbik7Ci0gICAgT3duUHRyPFdlYklEQkluZGV4PiBpbmRl
eCA9IGFkb3B0UHRyKG1fd2ViSURCT2JqZWN0U3RvcmUtPmNyZWF0ZUluZGV4KGlkLCBuYW1lLCBr
ZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJU
cmFuc2FjdGlvbigpLCBlYykpOwotICAgIGlmICghaW5kZXgpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIHJldHVybiBJREJJbmRleEJhY2tlbmRQcm94eTo6Y3JlYXRlKGluZGV4LnJlbGVhc2UoKSk7
Ci19Ci0KLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHk6OnNldEluZGV4ZXNSZWFkeShj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqIHRyYW5zYWN0aW9uKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2ludGVyIGlz
IGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBpbiB0aGUg
cmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJmYWNlcyBh
cmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSogdHJhbnNh
Y3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5Kj4odHJh
bnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPnNldEluZGV4ZXNSZWFkeShXZWJW
ZWN0b3I8bG9uZyBsb25nPihpbmRleElkcyksICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJU
cmFuc2FjdGlvbigpKTsKLX0KLQotUGFzc1JlZlB0cjxJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+
IElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjppbmRleChpbnQ2NF90IGluZGV4SWQpCi17Ci0g
ICAgT3duUHRyPFdlYklEQkluZGV4PiBpbmRleCA9IGFkb3B0UHRyKG1fd2ViSURCT2JqZWN0U3Rv
cmUtPmluZGV4KGluZGV4SWQpKTsKLSAgICBpZiAoIWluZGV4KQotICAgICAgICByZXR1cm4gMDsK
LSAgICByZXR1cm4gSURCSW5kZXhCYWNrZW5kUHJveHk6OmNyZWF0ZShpbmRleC5yZWxlYXNlKCkp
OwotfQotCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpkZWxldGVJbmRleChjb25z
dCBpbnQ2NF90IGluZGV4SWQsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJhbnNh
Y3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBwb2lu
dGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFzLCBp
biB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50ZXJm
YWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eSog
dHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5
Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPmRlbGV0ZUluZGV4KGlu
ZGV4SWQsICp0cmFuc2FjdGlvblByb3h5LT5nZXRXZWJJREJUcmFuc2FjdGlvbigpLCBlYyk7Ci19
Ci12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5OjpvcGVuQ3Vyc29yKFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IHJhbmdlLCBJREJDdXJzb3I6OkRpcmVjdGlvbiBkaXJlY3Rpb24sIFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVy
ZmFjZTo6VGFza1R5cGUgdGFza1R5cGUsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSog
dHJhbnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlv
biBwb2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0
IGFzLCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIg
aW50ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQ
cm94eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2Vu
ZFByb3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPm9wZW5DdXJz
b3IocmFuZ2UsIHN0YXRpY19jYXN0PFdlYklEQkN1cnNvcjo6RGlyZWN0aW9uPihkaXJlY3Rpb24p
LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCBzdGF0aWNfY2FzdDxXZWJJREJU
cmFuc2FjdGlvbjo6VGFza1R5cGU+KHRhc2tUeXBlKSwgKnRyYW5zYWN0aW9uUHJveHktPmdldFdl
YklEQlRyYW5zYWN0aW9uKCksIGVjKTsKLX0KLQotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRQ
cm94eTo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiBjYWxsYmFja3MsIElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSogdHJh
bnNhY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIC8vIFRoZSB0cmFuc2FjdGlvbiBw
b2ludGVyIGlzIGd1YXJhbnRlZWQgdG8gYmUgYSBwb2ludGVyIHRvIGEgcHJveHkgb2JqZWN0IGFz
LCBpbiB0aGUgcmVuZGVyZXIsCi0gICAgLy8gYWxsIGltcGxlbWVudGF0aW9ucyBvZiBJREIgaW50
ZXJmYWNlcyBhcmUgcHJveHkgb2JqZWN0cy4KLSAgICBJREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94
eSogdHJhbnNhY3Rpb25Qcm94eSA9IHN0YXRpY19jYXN0PElEQlRyYW5zYWN0aW9uQmFja2VuZFBy
b3h5Kj4odHJhbnNhY3Rpb24pOwotICAgIG1fd2ViSURCT2JqZWN0U3RvcmUtPmNvdW50KHJhbmdl
LCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3MpLCAqdHJhbnNhY3Rpb25Qcm94eS0+
Z2V0V2ViSURCVHJhbnNhY3Rpb24oKSwgZWMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQk9iamVjdFN0b3JlQmFja2VuZFByb3h5LmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhOGY2YmJkZDgyZDFmMmIwODk0M2U3ODMyZWU1OGFl
YmUyMjU5ZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHkuaAor
KysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElEQk9iamVjdFN0
b3JlQmFja2VuZFByb3h5X2gKLSNkZWZpbmUgSURCT2JqZWN0U3RvcmVCYWNrZW5kUHJveHlfaAot
Ci0jaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KLSNpbmNsdWRlICJJREJLZXlQYXRoLmgi
Ci0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSA8
d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYklEQk9iamVj
dFN0b3JlOwotCi1jbGFzcyBJREJPYmplY3RTdG9yZUJhY2tlbmRQcm94eSA6IHB1YmxpYyBXZWJD
b3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2UgewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlKFBhc3NPd25QdHI8V2ViSURCT2JqZWN0U3RvcmU+KTsKLSAgICB2aXJ0dWFsIH5JREJPYmpl
Y3RTdG9yZUJhY2tlbmRQcm94eSgpOwotCi0gICAgdmlydHVhbCB2b2lkIGdldChQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+
LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3JlOjpFeGNl
cHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIHB1dChQYXNzUmVmUHRyPFdlYkNvcmU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5PiwgUHV0TW9k
ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBjb25zdCBXVEY6OlZlY3RvcjxpbnQ2NF90PiYsIGNvbnN0
IFdURjo6VmVjdG9yPEluZGV4S2V5cz4mKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnVuY3Rp
b24oUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6
SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwg
V2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjbGVhcihQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSosIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVJbmRleChpbnQ2NF90IGlk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYkNvcmU6OklEQktleVBhdGgmLCBib29sIHVu
aXF1ZSwgYm9vbCBtdWx0aUVudHJ5LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRl
cmZhY2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIHNldElu
ZGV4S2V5cyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3Qg
V1RGOjpWZWN0b3I8aW50NjRfdD4mLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYsIFdlYkNvcmU6
OklEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSopOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJ
bmRleGVzUmVhZHkoY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKik7Ci0KLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkluZGV4
QmFja2VuZEludGVyZmFjZT4gaW5kZXgoaW50NjRfdCk7Ci0gICAgdm9pZCBkZWxldGVJbmRleChp
bnQ2NF90LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBXZWJDb3Jl
OjpFeGNlcHRpb25Db2RlJik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgb3BlbkN1cnNvcihQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgV2ViQ29yZTo6SURCQ3Vyc29yOjpEaXJlY3Rpb24s
IFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW50ZXJmYWNlKiwgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9p
ZCBjb3VudChQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdlPiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZh
Y2UqLCBXZWJDb3JlOjpFeGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6Ci0gICAgSURCT2JqZWN0
U3RvcmVCYWNrZW5kUHJveHkoUGFzc093blB0cjxXZWJJREJPYmplY3RTdG9yZT4pOwotCi0gICAg
T3duUHRyPFdlYklEQk9iamVjdFN0b3JlPiBtX3dlYklEQk9iamVjdFN0b3JlOwotfTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZgotCi0jZW5kaWYgLy8gSURCT2JqZWN0U3RvcmVC
YWNrZW5kUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
VHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuY3BwCmluZGV4IDZlMDEzNGMyYTlmYWQyNjgzMDY1
OWE4ZGI0MDk3MzZjYTAwMTE1ZjUuLjAyYTA1OGNmN2MwOGJkMmM0Zjk3ZWQ2Nzk4NDBjZDg5N2Iy
M2Q2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQlRyYW5zYWN0
aW9uQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eS5jcHAKQEAgLTI4LDEwICsyOCw4IEBACiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZFBy
b3h5LmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFja3MuaCIKICNpbmNsdWRlICJX
ZWJJREJEYXRhYmFzZUVycm9yLmgiCi0jaW5jbHVkZSAiV2ViSURCT2JqZWN0U3RvcmUuaCIKICNp
bmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIldlYklEQlRyYW5zYWN0aW9u
Q2FsbGJhY2tzSW1wbC5oIgogCkBAIC01NCwxNCArNTIsNiBAQCBJREJUcmFuc2FjdGlvbkJhY2tl
bmRQcm94eTo6fklEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5KCkKIHsKIH0KIAotUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IElEQlRyYW5zYWN0aW9u
QmFja2VuZFByb3h5OjpvYmplY3RTdG9yZShpbnQ2NF90IGluZGV4SWQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIE93blB0cjxXZWJJREJPYmplY3RTdG9yZT4gb2JqZWN0U3RvcmUgPSBhZG9w
dFB0cihtX3dlYklEQlRyYW5zYWN0aW9uLT5vYmplY3RTdG9yZShpbmRleElkLCBlYykpOwotICAg
IGlmICghb2JqZWN0U3RvcmUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBJREJPYmpl
Y3RTdG9yZUJhY2tlbmRQcm94eTo6Y3JlYXRlKG9iamVjdFN0b3JlLnJlbGVhc2UoKSk7Ci19Ci0K
IHZvaWQgSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHk6OmNvbW1pdCgpCiB7CiAgICAgbV93ZWJJ
REJUcmFuc2FjdGlvbi0+Y29tbWl0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9JREJUcmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCVHJhbnNhY3Rpb25CYWNrZW5kUHJveHkuaAppbmRleCA4ZWFkMzE2NGMyY2Nk
ODA3ZjAxYTViOGE4ZWQ2MmY5YTJlYjZiMjFlLi5jNmMzZDg0MTIwNzdlNDY5MDQ1MDZiMDgyZWVm
NzJkM2NiNGU0MmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJU
cmFuc2FjdGlvbkJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQlRyYW5zYWN0aW9uQmFja2VuZFByb3h5LmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlKFBhc3NPd25QdHI8V2ViSURCVHJhbnNhY3Rpb24+KTsKICAgICB2aXJ0dWFsIH5JREJUcmFu
c2FjdGlvbkJhY2tlbmRQcm94eSgpOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gb2JqZWN0U3RvcmUoaW50NjRfdCwgV2Vi
Q29yZTo6RXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBjb21taXQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgYWJvcnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FsbGJhY2tzKFdlYkNv
cmU6OklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCAzODU1YmU1OTI1YzdiZWYwYTE2
NGVmNjYyOGY4MzdlNjM0ZmUwZmQxLi44ODdkMTVkMTJjYzAwMDk2MDU5NmQ2MDk3YmZhYzExMzE1
YWY1ODQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAKQEAgLTMwLDE3ICszMCwxNyBAQAogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlz
dC5oIgogI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCisjaW5jbHVkZSAiSURCQ3Vyc29y
LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAi
SURCRGF0YWJhc2VDYWxsYmFja3NQcm94eS5oIgogI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCiAj
aW5jbHVkZSAiSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJJREJPYmplY3RTdG9yZUJhY2tlbmRJ
bnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIK
ICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUNh
bGxiYWNrcy5oIgorI2luY2x1ZGUgIldlYklEQktleS5oIgogI2luY2x1ZGUgIldlYklEQktleVJh
bmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEuaCIKLSNpbmNsdWRlICJXZWJJREJPYmpl
Y3RTdG9yZUltcGwuaCIKICNpbmNsdWRlICJXZWJJREJUcmFuc2FjdGlvbkltcGwuaCIKIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02MiwyNiArNjIsMTEgQEAgV2ViSURCTWV0YWRhdGEg
V2ViSURCRGF0YWJhc2VJbXBsOjptZXRhZGF0YSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fZGF0YWJh
c2VCYWNrZW5kLT5tZXRhZGF0YSgpOwogfQogCi1XZWJJREJPYmplY3RTdG9yZSogV2ViSURCRGF0
YWJhc2VJbXBsOjpjcmVhdGVPYmplY3RTdG9yZShsb25nIGxvbmcgaWQsIGNvbnN0IFdlYlN0cmlu
ZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50
LCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IG9iamVj
dFN0b3JlID0gbV9kYXRhYmFzZUJhY2tlbmQtPmNyZWF0ZU9iamVjdFN0b3JlKGlkLCBuYW1lLCBr
ZXlQYXRoLCBhdXRvSW5jcmVtZW50LCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2UoKSwgZWMpOwotICAgIGlmICghb2JqZWN0U3RvcmUpIHsKLSAgICAgICAgQVNT
RVJUKGVjKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHJldHVybiBuZXcgV2ViSURC
T2JqZWN0U3RvcmVJbXBsKG9iamVjdFN0b3JlKTsKLX0KLQogdm9pZCBXZWJJREJEYXRhYmFzZUlt
cGw6OmNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcg
b2JqZWN0U3RvcmVJZCwgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJJREJLZXlQYXRo
JiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQt
PmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIG5hbWUsIGtl
eVBhdGgsIGF1dG9JbmNyZW1lbnQpOwogfQogCi12b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6ZGVs
ZXRlT2JqZWN0U3RvcmUobG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9kYXRh
YmFzZUJhY2tlbmQtPmRlbGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWQsIHRyYW5zYWN0aW9u
LmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KIHZvaWQgV2Vi
SURCRGF0YWJhc2VJbXBsOjpkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgdHJhbnNhY3Rpb25J
ZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQpCiB7CiAgICAgbV9kYXRhYmFzZUJhY2tlbmQtPmRl
bGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQpOwpAQCAtMTY1LDcg
KzE1MCw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0
aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBXCiAKICAgICBBU1NFUlQod2ViSW5kZXhJ
ZHMuc2l6ZSgpID09IHdlYkluZGV4S2V5cy5zaXplKCkpOwogICAgIFZlY3RvcjxpbnQ2NF90PiBp
bmRleElkcyh3ZWJJbmRleElkcy5zaXplKCkpOwotICAgIFZlY3RvcjxJREJPYmplY3RTdG9yZUJh
Y2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkp
OworICAgIFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5k
ZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB3ZWJJbmRleElkcy5zaXplKCk7ICsraSkgewogICAgICAgICBpbmRleElkc1tpXSA9IHdlYklu
ZGV4SWRzW2ldOwpAQCAtMTg3LDcgKzE3Miw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpz
ZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTCiAK
ICAgICBBU1NFUlQod2ViSW5kZXhJZHMuc2l6ZSgpID09IHdlYkluZGV4S2V5cy5zaXplKCkpOwog
ICAgIFZlY3RvcjxpbnQ2NF90PiBpbmRleElkcyh3ZWJJbmRleElkcy5zaXplKCkpOwotICAgIFZl
Y3RvcjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlz
KHdlYkluZGV4S2V5cy5zaXplKCkpOworICAgIFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6OkluZGV4S2V5cz4gaW5kZXhLZXlzKHdlYkluZGV4S2V5cy5zaXplKCkpOwogCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCB3ZWJJbmRleElkcy5zaXplKCk7ICsraSkgewogICAgICAg
ICBpbmRleElkc1tpXSA9IHdlYkluZGV4SWRzW2ldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRleCBhY2U1MjBhZGIwMmJjOTczYmE2NjZj
OWM2MTRiZjUwOGVhNjc2ZTk0Li45MTg0NjIyZWFiYzgyNGIxYTA3NzNhZDBmMzk4ODUzMzBlNGY4
YTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFz
ZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuaApAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURC
RGF0YWJhc2VDYWxsYmFja3M7CiBjbGFzcyBXZWJJREJEYXRhYmFzZU1ldGFkYXRhOwotY2xhc3Mg
V2ViSURCT2JqZWN0U3RvcmU7CiBjbGFzcyBXZWJJREJUcmFuc2FjdGlvbjsKIAogLy8gU2VlIGNv
bW1lbnQgaW4gV2ViSURCRmFjdG9yeSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNs
YXNzZXMuCkBAIC01Myw5ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViSURCTWV0
YWRhdGEgbWV0YWRhdGEoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgV2ViSURCT2JqZWN0U3RvcmUq
IGNyZWF0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZywgY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25z
dCBXZWJJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5jcmVtZW50LCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0
U3RvcmUobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBj
b25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYklEQktleVBhdGgmLCBib29sIGF1dG9JbmNy
ZW1lbnQpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVPYmplY3RTdG9yZShsb25nIGxvbmcgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNlcHRpb25Db2RlJik7
CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGxvbmcgbG9uZyBvYmplY3RTdG9y
ZUlkLCBsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IG1ldGhvZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIz
LgogICAgIHZpcnR1YWwgV2ViSURCVHJhbnNhY3Rpb24qIGNyZWF0ZVRyYW5zYWN0aW9uKGxvbmcg
bG9uZyBpZCwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mLCB1bnNpZ25lZCBzaG9ydCBtb2Rl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmNw
cAppbmRleCBkMTBlYjkyMTYyY2M5NzEzYzM0OGFhNGY3ZjhkOGYwMTViODg4MzFiLi4zNTg5ZTE1
NWQzNGQ1MDY4ZjBlYzIxMDUzYjdiOTQ4Yjk0MDJhMjRmIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViSURCRmFjdG9yeUltcGwuY3BwCkBAIC02NSwxNSArNjUsNiBAQCB2
b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpnZXREYXRhYmFzZU5hbWVzKFdlYklEQkNhbGxiYWNrcyog
Y2FsbGJhY2tzLCBjb25zdCBXZWJTZQogICAgIG1faWRiRmFjdG9yeUJhY2tlbmQtPmdldERhdGFi
YXNlTmFtZXMoSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwg
b3JpZ2luLCAwLCBkYXRhRGlyKTsKIH0KIAotLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1ldGhvZCBp
biBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTIzLgotdm9pZCBX
ZWJJREJGYWN0b3J5SW1wbDo6b3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2
ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFj
a3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBX
ZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYgZGF0YURpcikKLXsKLSAgICBSZWZQdHI8SURCQ2Fs
bGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5ID0gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShh
ZG9wdFB0cihjYWxsYmFja3MpKTsKLSAgICBSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3NQcm94
eT4gZGF0YWJhc2VDYWxsYmFja3NQcm94eSA9IElEQkRhdGFiYXNlQ2FsbGJhY2tzUHJveHk6OmNy
ZWF0ZShhZG9wdFB0cihkYXRhYmFzZUNhbGxiYWNrcykpOwotICAgIGNhbGxiYWNrc1Byb3h5LT5z
ZXREYXRhYmFzZUNhbGxiYWNrcyhkYXRhYmFzZUNhbGxiYWNrc1Byb3h5KTsKLSAgICBtX2lkYkZh
Y3RvcnlCYWNrZW5kLT5vcGVuKG5hbWUsIHZlcnNpb24sIGNhbGxiYWNrc1Byb3h5LmdldCgpLCBk
YXRhYmFzZUNhbGxiYWNrc1Byb3h5LmdldCgpLCBvcmlnaW4sIDAsIGRhdGFEaXIpOwotfQotCiB2
b2lkIFdlYklEQkZhY3RvcnlJbXBsOjpvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBs
b25nIHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxsYmFja3MqIGNh
bGxiYWNrcywgV2ViSURCRGF0YWJhc2VDYWxsYmFja3MqIGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25z
dCBXZWJTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBXZWJGcmFtZSosIGNvbnN0IFdlYlN0cmluZyYg
ZGF0YURpcikKIHsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzUHJveHk+IGNhbGxiYWNrc1Byb3h5
ID0gSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkZhY3RvcnlJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJGYWN0b3J5SW1wbC5oCmluZGV4IDdjMGRl
ZTc5MTE5MzJhNmQ0ZjJkMzkxOTkzM2EyNjIwYTk2NDZkOTMuLjE2NjlmOWQwZjgwZGQxYmYwMTFk
YTFiYmQzZWZlY2M5Mzc3NDM3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklEQkZhY3RvcnlJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRmFjdG9yeUltcGwuaApAQCAtNDUsOCArNDUsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+V2ViSURCRmFjdG9yeUltcGwoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5h
bWVzKFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUq
LCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwotICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBt
ZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzkyMy4K
LSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGxvbmcgbG9uZyB2
ZXJzaW9uLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJREJEYXRhYmFzZUNhbGxiYWNrcyosIGNvbnN0
IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIp
OwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgbG9uZyBsb25n
IHZlcnNpb24sIGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBXZWJJREJDYWxsYmFja3MqLCBXZWJJ
REJEYXRhYmFzZUNhbGxiYWNrcyosIGNvbnN0IFdlYlNlY3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUq
LCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRh
YmFzZShjb25zdCBXZWJTdHJpbmcmIG5hbWUsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYlNl
Y3VyaXR5T3JpZ2luJiwgV2ViRnJhbWUqLCBjb25zdCBXZWJTdHJpbmcmIGRhdGFEaXIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjA4Zjg1NGYzNWY1ODcyMmRiZjUwODgyZDM0NjQ1YWY5
MjFlZDQ4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJXZWJJREJJbmRleEltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0j
aW5jbHVkZSAiSURCQ2FsbGJhY2tzUHJveHkuaCIKLSNpbmNsdWRlICJJREJJbmRleC5oIgotI2lu
Y2x1ZGUgIklEQkluZGV4QmFja2VuZEludGVyZmFjZS5oIgotI2luY2x1ZGUgIklEQktleVJhbmdl
LmgiCi0jaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5Lmgi
Ci0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJJREJJbmRleEltcGw6OldlYklEQkluZGV4SW1w
bChQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEludGVyZmFjZT4gYmFja2VuZCkKLSAgICA6IG1f
YmFja2VuZChiYWNrZW5kKQotewotfQotCi1XZWJJREJJbmRleEltcGw6On5XZWJJREJJbmRleElt
cGwoKQotewotfQotCi12b2lkIFdlYklEQkluZGV4SW1wbDo6b3Blbk9iamVjdEN1cnNvcihjb25z
dCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIHVuc2lnbmVkIHNob3J0IGRpcmVjdGlvbiwgV2Vi
SURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9iYWNrZW5kLT5vcGVuQ3Vyc29y
KGtleVJhbmdlLCBkaXJlY3Rpb24sIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIo
Y2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCSW5kZXhJbXBsOjpvcGVuS2V5Q3Vyc29yKGNvbnN0
IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJ
REJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX2JhY2tlbmQtPm9wZW5LZXlDdXJz
b3Ioa2V5UmFuZ2UsIGRpcmVjdGlvbiwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0
cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJbmRleEltcGw6OmNvdW50KGNvbnN0IFdlYklE
QktleVJhbmdlJiBrZXlSYW5nZSwgIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBX
ZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIG1fYmFja2VuZC0+Y291bnQoa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUo
YWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCSW5kZXhJbXBsOjpnZXRPYmplY3Qo
Y29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNr
cywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2Rl
JiBlYykKLXsKLSAgICBtX2JhY2tlbmQtPmdldChrZXlSYW5nZSwgSURCQ2FsbGJhY2tzUHJveHk6
OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlKCksIGVjKTsKLX0KLQotdm9pZCBXZWJJREJJbmRleEltcGw6Omdl
dEtleShjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2Fs
bGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlv
bkNvZGUmIGVjKQotewotICAgIG1fYmFja2VuZC0+Z2V0S2V5KGtleVJhbmdlLCBJREJDYWxsYmFj
a3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTc4YTA5NzliYTVmNzRlMDJiZGQ0ZTdhYTU2ZmY3NzkxNjMwMGYzOS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0g
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFdlYklEQkluZGV4SW1wbF9oCi0jZGVmaW5lIFdlYklEQkluZGV4
SW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIldlYklE
QkluZGV4LmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1vbi5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7IGNsYXNzIElEQkluZGV4QmFja2VuZEludGVyZmFjZTsgfQotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2
ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KLWNsYXNzIFdlYklEQkluZGV4SW1wbCA6IHB1Ymxp
YyBXZWJJREJJbmRleCB7Ci1wdWJsaWM6Ci0gICAgV2ViSURCSW5kZXhJbXBsKFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJJbmRleEJhY2tlbmRJbnRlcmZhY2U+KTsKLSAgICB2aXJ0dWFsIH5X
ZWJJREJJbmRleEltcGwoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBvcGVuT2JqZWN0Q3Vyc29yKGNv
bnN0IFdlYklEQktleVJhbmdlJiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBXZWJJREJDYWxs
YmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsgCi0g
ICAgdmlydHVhbCB2b2lkIG9wZW5LZXlDdXJzb3IoY29uc3QgV2ViSURCS2V5UmFuZ2UmLCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBjb3VudChjb25z
dCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkNhbGxiYWNrcyosIGNvbnN0IFdlYklEQlRyYW5zYWN0
aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRPYmplY3QoY29u
c3QgV2ViSURCS2V5UmFuZ2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2Fj
dGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0S2V5KGNvbnN0
IFdlYklEQktleVJhbmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rp
b24mLCBXZWJFeGNlcHRpb25Db2RlJik7Ci0KLXByaXZhdGU6Ci0gICAgV1RGOjpSZWZQdHI8V2Vi
Q29yZTo6SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBtX2JhY2tlbmQ7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0j
ZW5kaWYgLy8gV2ViSURCSW5kZXhJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJPYmplY3RTdG9yZUltcGwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAxMDI4MDRiYzgxZGY2NDhhZWJmYjA5MmUwYzE0YTg5MzIyYjlkNTk3Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQk9iamVjdFN0b3JlSW1wbC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwx
NDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
Ci0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0g
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJJREJP
YmplY3RTdG9yZUltcGwuaCIKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCi0jaW5j
bHVkZSAiRE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIklEQkNhbGxiYWNrc1Byb3h5LmgiCi0j
aW5jbHVkZSAiSURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiSURCS2V5UGF0
aC5oIgotI2luY2x1ZGUgIklEQktleVJhbmdlLmgiCi0jaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlLmgiCi0jaW5jbHVkZSAiV2ViSURCSW5kZXhJbXBsLmgiCi0jaW5jbHVk
ZSAiV2ViSURCS2V5LmgiCi0jaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKLSNpbmNsdWRlICJX
ZWJJREJUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgInBsYXRmb3JtL1dlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLVdlYklEQk9iamVjdFN0b3JlSW1wbDo6V2ViSURCT2JqZWN0U3RvcmVJbXBsKFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBvYmplY3RTdG9yZSkKLSAgICA6
IG1fb2JqZWN0U3RvcmUob2JqZWN0U3RvcmUpCi17Ci19Ci0KLVdlYklEQk9iamVjdFN0b3JlSW1w
bDo6fldlYklEQk9iamVjdFN0b3JlSW1wbCgpCi17Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3Rv
cmVJbXBsOjpnZXQoY29uc3QgV2ViSURCS2V5UmFuZ2UmIGtleVJhbmdlLCBXZWJJREJDYWxsYmFj
a3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBXZWJF
eGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX29iamVjdFN0b3JlLT5nZXQoa2V5UmFuZ2UsIElE
QkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9u
LmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2Vi
SURCT2JqZWN0U3RvcmVJbXBsOjpwdXQoY29uc3QgV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2
YWx1ZSwgY29uc3QgV2ViSURCS2V5JiBrZXksIFB1dE1vZGUgcHV0TW9kZSwgV2ViSURCQ2FsbGJh
Y2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgY29u
c3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2Vi
SW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQotewotICAgIEFTU0VSVCh3ZWJJbmRleElkcy5zaXpl
KCkgPT0gd2ViSW5kZXhLZXlzLnNpemUoKSk7Ci0gICAgVmVjdG9yPGludDY0X3Q+IGluZGV4SWRz
KHdlYkluZGV4SWRzLnNpemUoKSk7Ci0gICAgVmVjdG9yPElEQk9iamVjdFN0b3JlQmFja2VuZElu
dGVyZmFjZTo6SW5kZXhLZXlzPiBpbmRleEtleXMod2ViSW5kZXhLZXlzLnNpemUoKSk7Ci0KLSAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYkluZGV4SWRzLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIGluZGV4SWRzW2ldID0gd2ViSW5kZXhJZHNbaV07Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8
SURCS2V5PiA+IGluZGV4S2V5TGlzdCh3ZWJJbmRleEtleXNbaV0uc2l6ZSgpKTsKLSAgICAgICAg
Zm9yIChzaXplX3QgaiA9IDA7IGogPCB3ZWJJbmRleEtleXNbaV0uc2l6ZSgpOyArK2opCi0gICAg
ICAgICAgICBpbmRleEtleUxpc3Rbal0gPSB3ZWJJbmRleEtleXNbaV1bal07Ci0gICAgICAgIGlu
ZGV4S2V5c1tpXSA9IGluZGV4S2V5TGlzdDsKLSAgICB9Ci0KLSAgICBtX29iamVjdFN0b3JlLT5w
dXQodmFsdWUsIGtleSwgc3RhdGljX2Nhc3Q8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNl
OjpQdXRNb2RlPihwdXRNb2RlKSwgSURCQ2FsbGJhY2tzUHJveHk6OmNyZWF0ZShhZG9wdFB0cihj
YWxsYmFja3MpKSwgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNl
KCksIGluZGV4SWRzLCBpbmRleEtleXMpOwotfQotCi12b2lkIFdlYklEQk9iamVjdFN0b3JlSW1w
bDo6c2V0SW5kZXhLZXlzKGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViVmVj
dG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlz
PiYgd2ViSW5kZXhLZXlzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCi17
Ci0gICAgQVNTRVJUKHdlYkluZGV4SWRzLnNpemUoKSA9PSB3ZWJJbmRleEtleXMuc2l6ZSgpKTsK
LSAgICBWZWN0b3I8aW50NjRfdD4gaW5kZXhJZHMod2ViSW5kZXhJZHMuc2l6ZSgpKTsKLSAgICBW
ZWN0b3I8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpJbmRleEtleXM+IGluZGV4S2V5
cyh3ZWJJbmRleEtleXMuc2l6ZSgpKTsKLQotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2Vi
SW5kZXhJZHMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaW5kZXhJZHNbaV0gPSB3ZWJJbmRleElk
c1tpXTsKLSAgICAgICAgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4gaW5kZXhLZXlMaXN0KHdlYklu
ZGV4S2V5c1tpXS5zaXplKCkpOwotICAgICAgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IHdlYklu
ZGV4S2V5c1tpXS5zaXplKCk7ICsraikKLSAgICAgICAgICAgIGluZGV4S2V5TGlzdFtqXSA9IHdl
YkluZGV4S2V5c1tpXVtqXTsKLSAgICAgICAgaW5kZXhLZXlzW2ldID0gaW5kZXhLZXlMaXN0Owot
ICAgIH0KLSAgICBtX29iamVjdFN0b3JlLT5zZXRJbmRleEtleXMocHJpbWFyeUtleSwgaW5kZXhJ
ZHMsIGluZGV4S2V5cywgdHJhbnNhY3Rpb24uZ2V0SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKCkpOwotfQotCi12b2lkIFdlYklEQk9iamVjdFN0b3JlSW1wbDo6c2V0SW5kZXhlc1JlYWR5
KGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJbmRleE5hbWVzLCBjb25zdCBXZWJJREJU
cmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCi17Ci0gICAgVmVjdG9yPGludDY0X3Q+IGluZGV4SWRz
KHdlYkluZGV4TmFtZXMuc2l6ZSgpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHdlYklu
ZGV4TmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGluZGV4SWRzW2ldID0gd2ViSW5kZXhOYW1l
c1tpXTsKLSAgICBtX29iamVjdFN0b3JlLT5zZXRJbmRleGVzUmVhZHkoaW5kZXhJZHMsIHRyYW5z
YWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpKTsKLX0KLQotdm9pZCBX
ZWJJREJPYmplY3RTdG9yZUltcGw6OmRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleVJhbmdl
JiBrZXlSYW5nZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgV2ViRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgbV9vYmpl
Y3RTdG9yZS0+ZGVsZXRlRnVuY3Rpb24oa2V5UmFuZ2UsIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVh
dGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFj
a2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpj
bGVhcihXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBtX29iamVjdFN0b3Jl
LT5jbGVhcihJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCB0
cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UoKSwgZWMpOwotfQot
Ci1XZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjcmVhdGVJbmRleChsb25nIGxv
bmcgaWQsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURCS2V5UGF0aCYga2V5UGF0
aCwgYm9vbCB1bmlxdWUsIGJvb2wgbXVsdGlFbnRyeSwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBXZWJFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBSZWZQdHI8SURCSW5k
ZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRleCA9IG1fb2JqZWN0U3RvcmUtPmNyZWF0ZUluZGV4KGlk
LCBuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIG11bHRpRW50cnksIHRyYW5zYWN0aW9uLmdldElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci0gICAgaWYgKCFpbmRleCkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBXZWJJREJJbmRleEltcGwoaW5kZXgpOwotfQot
Ci1XZWJJREJJbmRleCogV2ViSURCT2JqZWN0U3RvcmVJbXBsOjppbmRleChsb25nIGxvbmcgb2Jq
ZWN0U3RvcmVJZCkKLXsKLSAgICBSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW50ZXJmYWNlPiBpbmRl
eCA9IG1fb2JqZWN0U3RvcmUtPmluZGV4KG9iamVjdFN0b3JlSWQpOwotICAgIGlmICghaW5kZXgp
Ci0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBuZXcgV2ViSURCSW5kZXhJbXBsKGluZGV4
KTsKLX0KLQotdm9pZCBXZWJJREJPYmplY3RTdG9yZUltcGw6OmRlbGV0ZUluZGV4KGxvbmcgbG9u
ZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdl
YkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0U3RvcmUtPmRlbGV0ZUluZGV4KG9i
amVjdFN0b3JlSWQsIHRyYW5zYWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZSgpLCBlYyk7Ci19Ci0KLXZvaWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpvcGVuQ3Vyc29yKGNv
bnN0IFdlYklEQktleVJhbmdlJiBrZXlSYW5nZSwgV2ViSURCQ3Vyc29yOjpEaXJlY3Rpb24gZGly
ZWN0aW9uLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgV2ViSURCVHJhbnNhY3Rpb246OlRh
c2tUeXBlIHRhc2tUeXBlLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIFdl
YkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0U3RvcmUtPm9wZW5DdXJzb3Ioa2V5
UmFuZ2UsIHN0YXRpY19jYXN0PElEQkN1cnNvcjo6RGlyZWN0aW9uPihkaXJlY3Rpb24pLCBJREJD
YWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBzdGF0aWNfY2FzdDxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U6OlRhc2tUeXBlPih0YXNrVHlwZSksIHRyYW5z
YWN0aW9uLmdldElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSgpLCBlYyk7Ci19Ci0KLXZv
aWQgV2ViSURCT2JqZWN0U3RvcmVJbXBsOjpjb3VudChjb25zdCBXZWJJREJLZXlSYW5nZSYga2V5
UmFuZ2UsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJJREJUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24sIFdlYkV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIG1fb2JqZWN0U3Rv
cmUtPmNvdW50KGtleVJhbmdlLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNh
bGxiYWNrcykpLCB0cmFuc2FjdGlvbi5nZXRJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uo
KSwgZWMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCT2JqZWN0U3RvcmVJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJPYmplY3RTdG9yZUltcGwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzM2OTY0
YzUxMmJmZmU1ZDM0ZWZmODdjNDQ3NDJiYTdmOTk4YWYzNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJPYmplY3RTdG9yZUltcGwuaAorKysgL2Rldi9udWxsCkBAIC0xLDcwICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCi0jZGVmaW5lIFdlYklEQk9iamVjdFN0
b3JlSW1wbF9oCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2luY2x1ZGUgIldl
YklEQk9iamVjdFN0b3JlLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbW1vbi5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7IGNsYXNzIElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTsgfQotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViSURCSW5kZXg7Ci0KLS8vIFNlZSBjb21tZW50
IGluIFdlYkluZGV4ZWRPYmplY3RTdG9yZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNl
IGNsYXNzZXMuCi1jbGFzcyBXZWJJREJPYmplY3RTdG9yZUltcGwgOiBwdWJsaWMgV2ViSURCT2Jq
ZWN0U3RvcmUgewotcHVibGljOgotICAgIFdlYklEQk9iamVjdFN0b3JlSW1wbChXVEY6OlBhc3NS
ZWZQdHI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPik7Ci0gICAgfldl
YklEQk9iamVjdFN0b3JlSW1wbCgpOwotCi0gICAgdm9pZCBnZXQoY29uc3QgV2ViSURCS2V5UmFu
Z2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICB2b2lkIHB1dChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUm
LCBjb25zdCBXZWJJREJLZXkmLCBQdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJ
REJUcmFuc2FjdGlvbiYsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgY29uc3QgV2ViVmVj
dG9yPFdlYkluZGV4S2V5cz4mKTsKLSAgICB2b2lkIHNldEluZGV4S2V5cyhjb25zdCBXZWJJREJL
ZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhOYW1lcywgY29uc3QgV2ViVmVj
dG9yPFdlYkluZGV4S2V5cz4mLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYpOwotICAgIHZvaWQg
c2V0SW5kZXhlc1JlYWR5KGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiwgY29uc3QgV2ViSURC
VHJhbnNhY3Rpb24mKTsKLSAgICB2b2lkIGRlbGV0ZUZ1bmN0aW9uKGNvbnN0IFdlYklEQktleVJh
bmdlJiwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViSURCVHJhbnNhY3Rpb24mLCBXZWJFeGNl
cHRpb25Db2RlJik7Ci0gICAgdm9pZCBjbGVhcihXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJ
REJUcmFuc2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIFdlYklEQkluZGV4KiBj
cmVhdGVJbmRleChsb25nIGxvbmcsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViSURC
S2V5UGF0aCYsIGJvb2wgdW5pcXVlLCBib29sIG11bHRpRW50cnksIGNvbnN0IFdlYklEQlRyYW5z
YWN0aW9uJiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIFdlYklEQkluZGV4KiBpbmRleChsb25n
IGxvbmcpOwotICAgIHZvaWQgZGVsZXRlSW5kZXgobG9uZyBsb25nLCBjb25zdCBXZWJJREJUcmFu
c2FjdGlvbiYsIFdlYkV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIHZvaWQgb3BlbkN1cnNvcihjb25z
dCBXZWJJREJLZXlSYW5nZSYsIFdlYklEQkN1cnNvcjo6RGlyZWN0aW9uLCBXZWJJREJDYWxsYmFj
a3MqLCBXZWJJREJUcmFuc2FjdGlvbjo6VGFza1R5cGUsIGNvbnN0IFdlYklEQlRyYW5zYWN0aW9u
JiwgV2ViRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgY291bnQoY29uc3QgV2ViSURCS2V5UmFu
Z2UmLCBXZWJJREJDYWxsYmFja3MqLCBjb25zdCBXZWJJREJUcmFuc2FjdGlvbiYsIFdlYkV4Y2Vw
dGlvbkNvZGUmKTsKLQotIHByaXZhdGU6Ci0gICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlPiBtX29iamVjdFN0b3JlOwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2Vu
ZGlmIC8vIFdlYklEQk9iamVjdFN0b3JlSW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmNwcAppbmRleCA0MWY0YzlkMjAzOWZh
NDE0NzdlMTdlM2U3ZWFkODk0OTRjZTFhYTg2Li45ZGZkNjdiZGQ4YjJlNTU3NGM4NGY4MmQxYmYx
OWQ1YjU5Nzg5MTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJUcmFuc2FjdGlvbkltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQlRyYW5zYWN0aW9uSW1wbC5jcHAKQEAgLTI4LDEwICsyOCw5IEBACiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKIAotI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAiSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25DYWxsYmFj
a3NQcm94eS5oIgotI2luY2x1ZGUgIldlYklEQk9iamVjdFN0b3JlSW1wbC5oIgogI2luY2x1ZGUg
IldlYklEQlRyYW5zYWN0aW9uQ2FsbGJhY2tzLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtNDcsMTQgKzQ2LDYgQEAgV2ViSURCVHJhbnNhY3Rpb25JbXBsOjp+V2ViSURCVHJhbnNh
Y3Rpb25JbXBsKCkKIHsKIH0KIAotV2ViSURCT2JqZWN0U3RvcmUqIFdlYklEQlRyYW5zYWN0aW9u
SW1wbDo6b2JqZWN0U3RvcmUobG9uZyBsb25nIGluZGV4SWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQot
ewotICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U+IG9iamVjdFN0b3Jl
ID0gbV9iYWNrZW5kLT5vYmplY3RTdG9yZShpbmRleElkLCBlYyk7Ci0gICAgaWYgKCFvYmplY3RT
dG9yZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG5ldyBXZWJJREJPYmplY3RTdG9y
ZUltcGwob2JqZWN0U3RvcmUpOwotfQotCiB2b2lkIFdlYklEQlRyYW5zYWN0aW9uSW1wbDo6Y29t
bWl0KCkKIHsKICAgICBtX2JhY2tlbmQtPmNvbW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCVHJhbnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJUcmFuc2FjdGlvbkltcGwuaAppbmRleCA0MjcyY2JlMTBiMjcx
MDExYjA3OTBmZDg5MDYxNmZlNDM3YWE5ODJiLi4xNmYwNmE2ZWVmNDVkMTk4YWY1M2Q2NzI0ODlk
Yzk1MjIzNTYyN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJUcmFuc2FjdGlvbkltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
REJUcmFuc2FjdGlvbkltcGwuaApAQCAtNDEsNyArNDEsNiBAQCBwdWJsaWM6CiAgICAgV2ViSURC
VHJhbnNhY3Rpb25JbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbnRlcmZhY2U+KTsKICAgICB2aXJ0dWFsIH5XZWJJREJUcmFuc2FjdGlvbkltcGwoKTsK
IAotICAgIHZpcnR1YWwgV2ViSURCT2JqZWN0U3RvcmUqIG9iamVjdFN0b3JlKGxvbmcgbG9uZyBp
bmRleElkLCBXZWJFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBhYm9ydCgpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDYWxsYmFja3Mo
V2ViSURCVHJhbnNhY3Rpb25DYWxsYmFja3MqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvSURCQWJvcnRPbkNvcnJ1cHRUZXN0LmNwcAppbmRleCA0NzNhMjA3ODZh
MmI1YTExYjdiYzg4ZGQ3MjczNGYwZDRhODFiOTQzLi5kYTdjNmZhMTg2ZDMzZDAyYmViYmNiOGQ2
NzdkYzA0MzMyMDE2ZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0lEQkFib3J0T25Db3JydXB0VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9JREJBYm9ydE9uQ29ycnVwdFRlc3QuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgVEVTVChJ
REJBYm9ydFRlc3QsIFRoZVRlc3QpCiAgICAgUmVmUHRyPEZha2VJREJEYXRhYmFzZUNhbGxiYWNr
cz4gZGF0YWJhc2VDYWxsYmFja3MgPSBGYWtlSURCRGF0YWJhc2VDYWxsYmFja3M6OmNyZWF0ZSgp
OwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZSgiaHR0cCIsICJsb2NhbGhvc3QiLCA4MSk7CiAgICAgY29uc3QgaW50NjRfdCBEdW1teVZl
cnNpb24gPSAyOwotICAgIGZhY3RvcnktPm9wZW4obmFtZSwgRHVtbXlWZXJzaW9uLCBjYWxsYmFj
a3MuZ2V0KCksIGRhdGFiYXNlQ2FsbGJhY2tzLCBvcmlnaW4sIDAgLypGcmFtZSovLCBTdHJpbmco
KSAvKnBhdGgqLyk7CisgICAgZmFjdG9yeS0+b3BlbihuYW1lLCBEdW1teVZlcnNpb24sIDEsIGNh
bGxiYWNrcy5nZXQoKSwgZGF0YWJhc2VDYWxsYmFja3MsIG9yaWdpbiwgMCAvKkZyYW1lKi8sIFN0
cmluZygpIC8qcGF0aCovKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCmluZGV4
IDdjZDY0NGE0MTIwY2I4Zjc3ZGM5NmY1YzJlMGZiMzk3MzdiNDgyODguLjM1YTVkNTBhZjNlOWUy
M2UyYmE0NTM3MjJiYmViOGE4ZWVlZTE4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcApAQCAtMTM3LDEwICsx
MzcsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgdmlydHVhbCBJREJEYXRhYmFzZU1ldGFkYXRh
IG1ldGFkYXRhKCkgY29uc3QgeyByZXR1cm4gSURCRGF0YWJhc2VNZXRhZGF0YSgpOyB9Ci0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZT4gY3JlYXRl
T2JqZWN0U3RvcmUoaW50NjRfdCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRo
JiwgYm9vbCBhdXRvSW5jcmVtZW50LCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqLCBF
eGNlcHRpb25Db2RlJikgT1ZFUlJJREUgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdm9pZCBj
cmVhdGVPYmplY3RTdG9yZShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBJREJLZXlQYXRoJiwgYm9vbCBhdXRvSW5j
cmVtZW50KSBPVkVSUklERSB7IH07CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkKSBPVkVSUklERSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoaW50NjRfdCwgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlKiwgRXhjZXB0aW9uQ29kZSYpIE9WRVJSSURFIHsgfQogICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBtZXRob2QgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMzkyMy4KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mLCBJREJUcmFuc2FjdGlvbjo6TW9kZSkgT1ZFUlJJREUgeyByZXR1cm4g
MDsgfQogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVUcmFuc2FjdGlvbihpbnQ2NF90LCBQYXNzUmVm
UHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiwgdW5zaWdu
ZWQgc2hvcnQgbW9kZSkgT1ZFUlJJREUgeyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>